John Messerly
d27eda4ffc
implement user-defined nSM, Object members on functions
...
fix #591 and fix #59
R=vsm@google.com
Review URL: https://codereview.chromium.org/2061373003 .
2016-06-22 17:18:52 -07:00
Vijay Menon
e8e19b4c5a
Verify status of statically failing tests
...
This should catch tests that suddenly start failing (or passing).
This is an admittedly contrived approach to track compilation failures in
the same runtime logic: the statically failing tests are now compiled
to a trivial output that throws a particular exception. Ideally, we
wouldn't run these, but it's beneficial to keep status in the same
place.
On my laptop, this only adds ~8s to presubmit (which takes ~2:30 min).
Ideas on alternative approaches welcome. :-)
R=jmesserly@google.com , leafp@google.com
Review URL: https://codereview.chromium.org/2079373002 .
2016-06-22 06:25:48 -07:00
John Messerly
430e8f15af
Partial fix for call methods #542
...
This fixes the generated code to support these. Subtype checks are not fixed yet.
R=vsm@google.com
Review URL: https://codereview.chromium.org/2069903002 .
2016-06-16 16:38:43 -07:00
Stan Manilov
715c845d85
Add a regression test for bug #587
...
BUG= https://github.com/dart-lang/dev_compiler/issues/587
R=jmesserly@google.com
Review URL: https://codereview.chromium.org/2075493002 .
2016-06-15 16:58:57 -07:00
Stan Manilov
5a0353b3ab
Allow constant static fields to overwrite defaults
...
Now one can overwrite fields like 'name' as 'static const' fields in
their class definition and not get runtime errors.
BUG= https://github.com/dart-lang/dev_compiler/issues/587
R=jmesserly@google.com
Review URL: https://codereview.chromium.org/2071593003 .
2016-06-15 14:03:34 -07:00
John Messerly
477182e88d
fix worker_test
2016-06-14 14:54:20 -07:00
John Messerly
fe360a9321
make "compile" command optional to address #505
2016-06-14 14:45:00 -07:00
John Messerly
d41215cd54
upgrade analyzer version
2016-06-14 14:09:41 -07:00
John Messerly
caff16a49a
merged
2016-06-14 13:36:18 -07:00
Leaf Petersen
3e5d1d80e6
Fix function subtyping crash
...
Fixes #588
BUG=
R=vsm@google.com
Review URL: https://codereview.chromium.org/2069653003 .
2016-06-14 09:55:04 -07:00
John Messerly
5c67ae3bcc
Use trackCacheDependencies for performance speedup
...
R=scheglov@google.com
Review URL: https://codereview.chromium.org/2059253003 .
2016-06-13 11:27:03 -07:00
John Messerly
1c0759a60b
DDC changes for Analyzer src/task/strong/info.dart refactor
...
Review CL: https://codereview.chromium.org/2057373003/
2016-06-13 10:37:12 -07:00
Priscilla Lee
5016cbce59
Fixed type error in MapEntry and added keyToStringConfig to display the toString() of a key in a MapEntry preview.
...
BUG=
R=jacobr@google.com
Review URL: https://codereview.chromium.org/2033433007 .
2016-06-08 10:12:53 -07:00
Stephen Adams
68f90ac82b
Refactoring assignment
...
The idea is to have more _emitXXX methods, so that different paths for
the same semantic action (e.g. implicit vs explicit 'this') call the
same _emitXXX method.
This is the first (simplest) step: assignments.
R=jmesserly@google.com
Review URL: https://codereview.chromium.org/2039173005 .
2016-06-07 17:09:46 -07:00
Stephen Adams
e68cee47a1
Handle more boolean conversion cases.
...
We were missing boolean conversion checks on logical operators in a
value context.
TBR=jmesserly@google.com
Review URL: https://codereview.chromium.org/2042883004 .
2016-06-06 19:51:58 -07:00
John Messerly
ec945eed6f
enable compatiblity with 1.18 SDKs
...
fixes #584 , works around analyzer message #583
R=leafp@google.com
Review URL: https://codereview.chromium.org/2048463002 .
2016-06-06 17:29:02 -07:00
John Messerly
0ec17d170f
Fixes #586 - enums should now work in SDK libs
...
R=jacobr@google.com
Review URL: https://codereview.chromium.org/2045783002 .
2016-06-06 16:08:58 -07:00
Stephen Adams
aea2fa1291
Update Symbol.hashCode
...
New dart2js version avoids inefficient String.hashCode
TBR=vsm@google.com
Review URL: https://codereview.chromium.org/2040963005 .
2016-06-06 12:34:59 -07:00
Stephen Adams
5fd923523b
Faster type tests
...
Put type tests (is, as, type assertion) on the types as 'is', 'as' and '_check' methods.
The check
dart.check(x, core.String);
becomes
core.String._check(x);
which is more concise and allows the test to be specialized.
In one scrolling action, 224ms in dart.as and dart.check is replaced by 89ms of checks across the specializations.
R=vsm@google.com
Review URL: https://codereview.chromium.org/2012153002 .
2016-06-03 15:35:42 -07:00
Stephen Adams
6ab35de1cf
Further bitop optimizations
...
- avoid unsigned coercion when result is compared with constant
- avoid unsigned coercion when result is shifted right unsigned
- avoid call when right shift result has bits affected by sign bit masked out
- use values of named constants
R=vsm@google.com
Review URL: https://codereview.chromium.org/1950583002 .
2016-06-03 14:29:07 -07:00
Jacob Richman
fb20c9d6a4
Switch how we track whether trackDdcProfile is set to reduce the performance impact. sra was seeing this call hit 14% usage in the chrome profile.
...
Fill in whitelist call ist and add support for list of whitelists that apply to calls only.
BUG=
R=vsm@google.com
Review URL: https://codereview.chromium.org/2032903003 .
2016-06-02 16:59:33 -07:00
Jacob Richman
61a1d8c9c8
Fix a few cases were obj and name were used instead of $obj and $name. remove ProfileEntry class as sadly defining a class in operations.dart appears to have an ordering issue which causes two tests to fail.
...
Review URL: https://codereview.chromium.org/2035583004 .
2016-06-02 13:07:51 -07:00
Jacob Richman
314bd180a2
Profile dynamic calls.
...
Debug logic
BUG=
patch from issue 2012423005 at patchset 1 (http://crrev.com/2012423005#ps1 )
R=jacobr@google.com , leafp@google.com
Review URL: https://codereview.chromium.org/2024353002 .
2016-06-02 09:59:23 -07:00
Leaf Petersen
59abfdb121
Fix bot, law of the excluded middle still holds
...
TBR=jacobr@google.com
BUG=
Review URL: https://codereview.chromium.org/2037503002 .
2016-06-01 20:58:44 -07:00
Leaf Petersen
de24eea382
Check for extension methods when using whitelist
...
BUG=
R=jacobr@google.com
Review URL: https://codereview.chromium.org/2037473002 .
2016-06-01 20:45:21 -07:00
Leaf Petersen
40c7ac9038
Wire up class hierarchy for recursive inheritance
...
BUG=
R=jacobr@google.com
Review URL: https://codereview.chromium.org/2033543002 .
2016-06-01 19:21:45 -07:00
Leaf Petersen
ae4341cf8a
Make whitelist check per element
...
BUG=
R=vsm@google.com
Review URL: https://codereview.chromium.org/2021553002 .
2016-06-01 13:12:41 -07:00
Stephen Adams
73479a600c
Throw TypeError instead of CastError for type coercions.
...
Added 'tag' type StrongModeError, implemented by all errors that are
specific to strong mode semantics.
Failed casts throw CastError(Implementation) or StrongModeCastError.
Failed type assertions and reified coercions throw TypeError or
StrongModeTypeError.
Triaged some tests. Some pass due to now throwing a TypeError, many
pass for unknown reasons.
R=leafp@google.com
Review URL: https://codereview.chromium.org/2026133002 .
2016-06-01 10:18:17 -07:00
Stephen Adams
562f01e4d1
_visitTest should look through parentheses
...
We were missing using dart.test on expressions like
a && (b || c)
TBR=vsm@google.com
Review URL: https://codereview.chromium.org/2022213002 .
2016-05-31 10:34:28 -07:00
John Messerly
f0517c4deb
Enable strong mode in DDC, fix all warnings/errors
...
R=leafp@google.com
Review URL: https://codereview.chromium.org/2016483002 .
2016-05-26 11:13:32 -07:00
Leaf Petersen
834c1bf764
Angular template workarounds
...
BUG=
R=jacobr@google.com
Review URL: https://codereview.chromium.org/2015753002 .
2016-05-25 22:43:59 -07:00
Leaf Petersen
70698bacf0
Short circuit for 'as dynamic'
...
BUG=
R=jacobr@google.com
Review URL: https://codereview.chromium.org/2007423003 .
2016-05-25 21:44:34 -07:00
Stephen Adams
a7174ce8c2
Tweak _checkPrimitiveType
...
V8 does better with typeof x == 'string'
TBR=vsm@google.com
Review URL: https://codereview.chromium.org/2015513005 .
2016-05-25 20:23:43 -07:00
Stephen Adams
d094888eec
Use factory constructor for list literals
...
The list literal `<int>[1, 2, 3]` was
dart.list([1, 2, 3], core.int)
now becomes
JSArrayOfInt().of([1, 2, 3])
R=leafp@google.com
Review URL: https://codereview.chromium.org/2006443002 .
2016-05-25 17:40:46 -07:00
Stephen Adams
cb1cafcaff
More consistent order of type caches
...
R=leafp@google.com
BUG=
Review URL: https://codereview.chromium.org/2002153006 .
2016-05-25 17:29:14 -07:00
Alan Knight
451478b208
Add types for valueFromDecomposedDate
...
BUG=
R=sra@google.com
Review URL: https://codereview.chromium.org/2010873002 .
2016-05-25 16:09:36 -07:00
Leaf Petersen
3e9ed11db6
Name and hoist types
...
Adds infrastructure for naming and hoisting types in various ways. Makes an initial cut at how to slice the naming, but we will want to adjust.
BUG=
R=jmesserly@google.com
Review URL: https://codereview.chromium.org/1988023008 .
2016-05-25 11:07:38 -07:00
Jacob Richman
d4dd53ede6
Add generic types to Sort and Comparable. Fix crasher bug in codegen.
...
BUG=
R=leafp@google.com
Review URL: https://codereview.chromium.org/2011973002 .
2016-05-25 10:42:23 -07:00
Alan Knight
fb363715f3
Add a type on lazyAsJsDate
...
BUG=
R=jmesserly@google.com
Review URL: https://codereview.chromium.org/2010693002 .
2016-05-24 17:35:10 -07:00
Stephen Adams
c74d092ba2
Name loader functions.
...
This helps when looking at profiles.
R=vsm@google.com
Review URL: https://codereview.chromium.org/2006353002 .
2016-05-24 13:28:17 -07:00
Vijay Menon
10dc45de2d
Disable mirrors metadata gen by default
...
This is not used by most apps.
R=het@google.com
Review URL: https://codereview.chromium.org/2000243002 .
2016-05-23 10:52:27 -07:00
John Messerly
17298f330d
upgrade to Analyzer with speed improvements
...
Review URL: https://codereview.chromium.org/2003073002 .
2016-05-23 09:48:05 -07:00
John Messerly
e3836901c3
Make DateTime use in the SDK typed
...
R=leafp@google.com
Review URL: https://codereview.chromium.org/2004463004 .
2016-05-23 09:17:03 -07:00
Leaf Petersen
e6e5635a83
Optimize const construction
...
BUG=
R=jmesserly@google.com
Review URL: https://codereview.chromium.org/1998113004 .
2016-05-20 17:53:28 -07:00
John Messerly
1e0295d4a5
fix performance of setType
...
it was mutating the class (e.g. JSArray<int>) every time an instance was constructed (!)
R=leafp@google.com
Review URL: https://codereview.chromium.org/1999273002 .
2016-05-20 17:46:13 -07:00
John Messerly
31e9d9983d
Simplify ordering of top-level declarations.
...
We had some leftover complexity that could be refactored away. This doesn't fix anything yet, but simplifying the foundation may help with recursive generic types. Removes "customEmitDeclaration" too.
R=vsm@google.com
Review URL: https://codereview.chromium.org/1992373002 .
2016-05-20 12:32:46 -07:00
Jacob Richman
41bac633e1
Fix debugger
...
BUG=
R=vsm@google.com
Review URL: https://codereview.chromium.org/1997473007 .
2016-05-20 11:11:43 -07:00
Leaf Petersen
2e5e9fea63
Flatten _Future at runtime as well
...
Fixes #551
BUG=
R=vsm@google.com
Review URL: https://codereview.chromium.org/1998843002 .
2016-05-19 15:33:32 -07:00
John Messerly
f950e422b8
fix #577 - correctly toString ES Symbols
...
R=sra@google.com
Review URL: https://codereview.chromium.org/1993293002 .
2016-05-19 12:33:06 -07:00
Stephen Adams
ed77841603
Better boolean conversion tests.
...
- Same errors as VM & Dartium
- Failed assertion: boolean expression must not be null
- type 'int' is not a subtype of type 'bool' in boolean expression
- All boolean conversion contexts use the same logic
- No false positives from combining null and as-bool checks in other contexts
R=jmesserly@google.com
Review URL: https://codereview.chromium.org/1993023003 .
2016-05-19 12:04:59 -07:00