Commit Graph

1589 Commits

Author SHA1 Message Date
Andrew Krieger 87bcbf9147 Move type tagging logic out of setSignature
setSignature is only called for classes with constructors or static
members, so previously _runtimeType was only set explicitly on such
classes. Now _runtimeType is not set on any classes except for Object,
and all other types inherit _runtimeType from Object.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/2076713002 .
2016-06-27 15:29:15 -07:00
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 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 fe360a9321 make "compile" command optional to address #505 2016-06-14 14:45:00 -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 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 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
Harry Terkelsen e105544411 implement top-level JS annotated getters
BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1993813003 .
2016-05-19 11:10:24 -07:00
Sigmund Cherem 73a7eb71ac Support @JS with path expressions.
BUG=
R=vsm@google.com

Review URL: https://codereview.chromium.org/1998473002 .
2016-05-19 09:23:32 -07:00
Leaf Petersen 220553b7e7 Future flattening at runtime.
This implements basic one-level future flattening of the runtime
types.

BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1997473002 .
2016-05-18 15:47:26 -07:00
Stephen Adams 0235eba4b9 Updates to collection_patch.dart
BUG=
R=leafp@google.com

Review URL: https://codereview.chromium.org/1987043002 .
2016-05-18 15:10:40 -07:00