Commit Graph

1589 Commits

Author SHA1 Message Date
Vijay Menon 3e8f4dce13 Regen DDC SDK
TBR=jmesserly@google.com

Change-Id: I875cacca1a71cfb499f707e088195bad13ba3502
Reviewed-on: https://dart-review.googlesource.com/9740
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
2017-09-29 16:56:32 +00:00
Jennifer Messerly 9978b808b4 implement NoSuchMethodError.withInvocation in DDC
Change-Id: If51546abb290d2956bacce9b5ae5adf6f2ca2d11
Reviewed-on: https://dart-review.googlesource.com/9429
Reviewed-by: Jennifer Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2017-09-28 23:39:43 +00:00
Jennifer Messerly 749d298b6c fix extension member discovery in DDC
In particular, some types like the base/mixin classes for Map in dart:collection did not work correctly.
This also has cleanups/optimizations to how DDC registers signatures, partially addressing #30499
Also fixes #29897, const maps are now immutable in DDC.

Change-Id: Icfdc7921d255a58a9e13908cf800832f787314ee
Reviewed-on: https://dart-review.googlesource.com/7442
Reviewed-by: Jennifer Messerly <jmesserly@google.com>
2017-09-28 23:21:43 +00:00
Vijay Menon 84cde41da5 Add NoSuchMethodError.withInvocation to DDC patch
TBR-jmesserly@google.com

Change-Id: I7352d0caefe12f3d8a10d1383cfb2ec983b1051b
Reviewed-on: https://dart-review.googlesource.com/9368
Reviewed-by: Vijay Menon <vsm@google.com>
Reviewed-by: Jennifer Messerly <jmesserly@google.com>
2017-09-28 22:27:22 +00:00
Jennifer Messerly 13b57ceafe fix #30912, record scope dependencies on unused typedef type arguments
Change-Id: Ic859620fb4ff7f9965b46849aa96eb74dfe59ccb
Reviewed-on: https://dart-review.googlesource.com/9125
Reviewed-by: Vijay Menon <vsm@google.com>
2017-09-28 21:25:31 +00:00
Jennifer Messerly a784320a99 fix #30852 - if static field init throws, it should return null after
Change-Id: Ibf273deee51be4b187dbb6d4d7f66dc35dd16fed
Reviewed-on: https://dart-review.googlesource.com/8240
Reviewed-by: Vijay Menon <vsm@google.com>
2017-09-28 18:07:58 +00:00
Vijay Menon 9ab7137ede Regen ddc sdk
TBR=leafp@google.com

Change-Id: Ia5721ff75771f3eec20eaf664d3977cbbc126b70
Reviewed-on: https://dart-review.googlesource.com/8741
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
2017-09-27 03:03:25 +00:00
Vijay Menon 0a9253ef30 Regen SDK
Looks like merge conflicts on crossing CLs.

TBR=leafp@google.com

Change-Id: Iee2c42e53d03c57fc07f18b46635f423927a1b17
Reviewed-on: https://dart-review.googlesource.com/8700
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
2017-09-26 17:00:11 +00:00
Vijay Menon 2ba49b4ac0 Utility for building / running on d8
Change-Id: I8ba4c7ce37d9a5fcf7742ecfdac4c0df48dc9497
Reviewed-on: https://dart-review.googlesource.com/7845
Commit-Queue: Vijay Menon <vsm@google.com>
Reviewed-by: Jennifer Messerly <jmesserly@google.com>
2017-09-26 16:09:51 +00:00
Leaf Petersen 8c924f2923 Tighten the is check in handleError.
Bug:
Change-Id: I23f49f65a395579293f0567e8069ccd931e00c4a
Reviewed-on: https://dart-review.googlesource.com/7842
Commit-Queue: Leaf Petersen <leafp@google.com>
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-09-26 13:38:05 +00:00
Leaf Petersen e350bb4565 Eliminate fuzzy arrow uses in SDK libraries.
Bug:
Change-Id: Ia1a00966b8d77c5aa812ed19eca136c47132ae58
Reviewed-on: https://dart-review.googlesource.com/8540
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2017-09-26 12:56:05 +00:00
Leaf Petersen e0c2e8191f Eliminate fuzzy arrow from conversions_dart2js.dart
Bug:
Change-Id: Ide970d2a5353e53af9f0a73748b12b2fb770ebcb
Reviewed-on: https://dart-review.googlesource.com/7941
Reviewed-by: Jennifer Messerly <jmesserly@google.com>
2017-09-26 10:37:48 +00:00
Vijay Menon ed8d1d32e6 Regen DDC SDK
TBR=leafp@google.com

Change-Id: I830fb4b0f293a5b9805907f461e57ccf48214363
Reviewed-on: https://dart-review.googlesource.com/7740
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: William Hesse <whesse@google.com>
2017-09-22 15:29:37 +00:00
Gary Roumanis c69a9274d3 Don't annotate FunctionDeclarations
Bug:38419508
Change-Id: I5298fcd31e058bb4958136775e67d955a3feb010
Reviewed-on: https://dart-review.googlesource.com/7630
Commit-Queue: Gary Roumanis <grouma@google.com>
Reviewed-by: Jennifer Messerly <jmesserly@google.com>
2017-09-21 23:05:39 +00:00
Vijay Menon d8083faecc Regen DDC SDK
TBR=jmesserly@google.com

Bug:
Change-Id: Icecb6576b4f5c70fdcfb0e220543a96e3621da92
Reviewed-on: https://dart-review.googlesource.com/7580
Reviewed-by: Vijay Menon <vsm@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
2017-09-21 17:18:02 +00:00
Vijay Menon 8470c871d6 Enable polyfill in d8 modules
This enables running benchmarks (e.g., DeltaBlue) on d8.  d8 tip (with
es6 modules) appears quite a bit faster than the latest dev nodejs (with common modules).

Change-Id: Iedcc97fac57c48b925ae7c1b6cba4bbedeba4d0b
Reviewed-on: https://dart-review.googlesource.com/7443
Commit-Queue: Vijay Menon <vsm@google.com>
Reviewed-by: Jennifer Messerly <jmesserly@google.com>
2017-09-20 22:47:21 +00:00
Jennifer Messerly 3224db05be fix #30792 -- fix variables shadowing parameters in an async function
Change-Id: I40667f607450af8695aafc613358d401cd395af2
Reviewed-on: https://dart-review.googlesource.com/7042
Reviewed-by: Vijay Menon <vsm@google.com>
2017-09-20 20:09:25 +00:00
Florian Loitsch 38bf70d7ac Use generic functions in zones.
Migrated from https://chromiumcodereview.appspot.com/2893893002/

Change-Id: I0bd6dc1438eb1e6762e7760a08b5a760b07d4b10
Reviewed-on: https://dart-review.googlesource.com/4942
Reviewed-by: Florian Loitsch <floitsch@google.com>
Commit-Queue: Florian Loitsch <floitsch@google.com>
2017-09-20 15:46:06 +00:00
Vijay Menon 6ce85d5f99 Revert "Remove support for functions in asserts in DDC."
This reverts commit 8140e1db64.

Change-Id: If505903ba475324392d6c6bcdae3392f523aadc8
Reviewed-on: https://dart-review.googlesource.com/7107
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
2017-09-19 21:46:13 +00:00
Gary Roumanis 07e9cfedad Load exception event
Dispatch load exception so that others can react without capturing the corresponding error. Will be used in conjunction with https://github.com/dart-lang/test/pull/682

Bug:
Change-Id: I19458ac01ba013cac6ad5408b3b763777e50ca4e
Reviewed-on: https://dart-review.googlesource.com/6644
Reviewed-by: Jake Macdonald <jakemac@google.com>
Commit-Queue: Gary Roumanis <grouma@google.com>
2017-09-18 19:12:52 +00:00
Bob Nystrom 8140e1db64 Remove support for functions in asserts in DDC.
These are not supported in Dart 2.0:

https://github.com/dart-lang/sdk/issues/30326
Change-Id: I2e177a647c43af2bf7f37ff382234b12b8c2286c
Reviewed-on: https://dart-review.googlesource.com/4182
Reviewed-by: Jennifer Messerly <jmesserly@google.com>
2017-09-15 23:37:06 +00:00
Jennifer Messerly 67b9d3b9f9 fix metadata reflection for fields
Change-Id: I25d69eea235b0824c49320212706e66945480034
Reviewed-on: https://dart-review.googlesource.com/6024
Reviewed-by: Jennifer Messerly <jmesserly@google.com>
Commit-Queue: Jennifer Messerly <jmesserly@google.com>
2017-09-15 00:08:17 +00:00
Jennifer Messerly 5522bb1aa9 fix #29004, unify compiler code for emitting classes
Change-Id: If3a58d364f8f125a3bc1ab5e1fc47c6b43328637
Reviewed-on: https://dart-review.googlesource.com/5140
Reviewed-by: Vijay Menon <vsm@google.com>
2017-09-13 21:05:06 +00:00
Jennifer Messerly 67f82b4eee optimize == in some more cases
Change-Id: Icdda25e85c8d3ab3805c7f0ab180c6e88e47f8ed
Reviewed-on: https://dart-review.googlesource.com/4580
Commit-Queue: Jennifer Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2017-09-13 02:02:41 +00:00
Jennifer Messerly e14b589991 fix #30636, improve stack trace for anon closures variable declarations
Change-Id: I193c6cca765821193cdcaa62ddfbf961f1333428
Reviewed-on: https://dart-review.googlesource.com/4183
Reviewed-by: Vijay Menon <vsm@google.com>
2017-09-13 00:19:02 +00:00
Vijay Menon d5c913ef95 Fix null analysis on constants with unknown value
Terry is landing the test for this.  We were throwing on this:

  const u4 = const String.fromEnvironment("XXXXX");

  void main() {
    print(u4.toString());
  }

Change-Id: I5ad158978ce9a19c2d5a3b65a39beae1676fe7b1
Reviewed-on: https://dart-review.googlesource.com/5042
Reviewed-by: Jennifer Messerly <jmesserly@google.com>
Commit-Queue: Terry Lucas <terry@google.com>
2017-09-11 22:28:53 +00:00
Jennifer Messerly dc81668848 fix #30659, type tests in enums
Change-Id: I9cecc2a90889276af3cf75b6fa7a1b8f79778167
Reviewed-on: https://dart-review.googlesource.com/4609
Commit-Queue: Jennifer Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2017-09-08 22:47:16 +00:00
Leaf Petersen b78fea7129 Restore subtyping between Dart classes and anonymous JS classes
Bug:
Change-Id: I9e7e78d1f309fb814644245d6fd281d3b9110589
Reviewed-on: https://dart-review.googlesource.com/4160
Reviewed-by: Jennifer Messerly <jmesserly@google.com>
2017-09-07 23:56:38 +00:00
Jennifer Messerly afe4e6c7af fix tearoff equality against null
Two different optimizations conflicted (in the SDK, == methods must take care to consider a null value, but at the same time tearoff == was optimized), so it fixes that. Also adds a test for this.

Change-Id: I3d6fef7cae9df2fcbb9c276ae4e48490fd62eabb
Reviewed-on: https://dart-review.googlesource.com/4180
Commit-Queue: Jennifer Messerly <jmesserly@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2017-09-07 22:49:52 +00:00
Jennifer Messerly b075ae01ca fix #30640, give names to async/async*/sync* functions
this will help stack traces

Change-Id: I76a26f87f7690a1a97f3bc40721240232550ed3f
Reviewed-on: https://dart-review.googlesource.com/4121
Reviewed-by: Vijay Menon <vsm@google.com>
2017-09-07 20:28:23 +00:00
Jennifer Messerly 1e9c2e109b fix #30634, optimize generic functions in DDC
this removes the extra closure that is unnecessary

Change-Id: I1f1a6c1e7fd378bd8dc4807c8ce77968b1e94319
Reviewed-on: https://dart-review.googlesource.com/3745
Reviewed-by: Vijay Menon <vsm@google.com>
2017-09-07 18:04:24 +00:00
Vijay Menon a068f82684 Bump stack trace limit
Change-Id: I509832879681f39f2592180166e53070eb6f8ae9
Reviewed-on: https://dart-review.googlesource.com/4060
Reviewed-by: Jacob Richman <jacobr@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
2017-09-07 16:31:34 +00:00
Jennifer Messerly ab226fd40c optimize Object members in DDC
This should improve performance of these members in most cases:
- toString
- operator ==
- hashCode
- runtimeType
- noSuchMethod

The helpers for checking `null` and then dispatching to the method are now very small again. Also, because we can lookup symbolized names always, we can start taking advantage of this in our Map/Set implementations (for a follow up CL).

This also improves correctness of these helpers given JavaScript objects; we were previously falling back to calling a Dart method name like `.hashCode`, which is incorrect (except for `toString` where fallback is probably the correct behavior).

Change-Id: I39cbc80ca3e93ca7672652610b02bce899894da1
Reviewed-on: https://dart-review.googlesource.com/3427
Commit-Queue: Jennifer Messerly <jmesserly@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2017-09-06 08:12:11 +00:00
Vijay Menon beddf07fdc Refresh DDC SDK
TBR=jmesserly@google.com

Change-Id: I8d1ba8fafadc1d519c511187a36429088e3ce8d1
Reviewed-on: https://dart-review.googlesource.com/3405
Commit-Queue: Vijay Menon <vsm@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
Reviewed-by: Jennifer Messerly <jmesserly@google.com>
2017-09-06 00:10:28 +00:00
Jennifer Messerly 0d8d1af67f fix #30601, covariant checks for bounds were not working in some cases
This has a few related fixes:

fix #30461, DDC now generates covariant checks for superclasses with the correct substitution.

fix #29483, Analyzer can resolve the function type literal syntax correctly when used in type bounds and type arguments.

fix #30095, replace use of DDC's StrongModeError private type with TypeError.

It also has some refactoring to simplify how DDC emits the initialization code at the start of function/method bodies. We no longer jump through AST parent pointers.

Change-Id: I7001f98cd0e00299d77bace49e19aca305abf224
Reviewed-on: https://dart-review.googlesource.com/3100
Reviewed-by: Leaf Petersen <leafp@google.com>
2017-09-05 22:44:19 +00:00
Vijay Menon 0999bffd39 Fix DDC SDK gen
TBR=terry@google.com
BUG=

Review-Url: https://codereview.chromium.org/3011823003 .
2017-09-01 13:31:10 -07:00
Jennifer Messerly 7d142f6033 fix missing SDK symbols
in particular, this fixes the bug that `dartx.noSuchMethod` resulted in undefined

R=leafp@google.com

Review-Url: https://codereview.chromium.org/3010873002 .
2017-09-01 13:13:36 -07:00
Jennifer Messerly c1e58bfb69 fix #30591, ensure all extension methods are generated
R=leafp@google.com

Review-Url: https://codereview.chromium.org/3011763002 .
2017-08-31 14:19:52 -07:00
Vijay Menon e96be63fd5 Fix ddc build_sdk step
R=leafp@google.com

Review-Url: https://codereview.chromium.org/3011753002 .
2017-08-31 13:53:18 -07:00
Leaf Petersen 1c94f7a604 Reland and refactor fuzzy arrow hints.
This restores the functionality from https://codereview.chromium.org/3012593002/, with some small refactors.

The test breakage that caused the revert is fixed in https://codereview.chromium.org/3004143002/ .

Also adds a couple of drive by fuzzy arrow fixes.

BUG=
R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/3006893002 .
2017-08-31 12:18:51 -07:00
Leaf Petersen f606e559c5 Avoid relying on fuzzy arrow for arity check in _FutureListener
BUG=
R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/3009893002 .
2017-08-30 14:18:52 -07:00
Leaf Petersen f185689873 Regen SDK.
No source changes, just a regen of dart_sdk.js since it seems to be
out of date.

BUG=
R=vsm@google.com

Review-Url: https://codereview.chromium.org/3011673002 .
2017-08-30 14:03:28 -07:00
Jennifer Messerly 353583fb10 fix how DDC finds its undefined constant
R=vsm@google.com

Review-Url: https://codereview.chromium.org/3009733002 .
2017-08-29 14:16:39 -07:00
Leaf Petersen bdfc674a54 SDK core library fuzzy arrow fixes.
Fix a couple of places in the core libraries that were relying on
fuzzy arrow (lack of) checking.

BUG=
R=lrn@google.com

Review-Url: https://codereview.chromium.org/3005653002 .
2017-08-29 14:03:38 -07:00
Jennifer Messerly 673af70fe1 restore FutureOr cast failure ignore
R=vsm@google.com

Review-Url: https://codereview.chromium.org/3003943002 .
2017-08-25 18:53:34 -07:00
Jennifer Messerly 4466c461f0 optimize extension member symbols in DDC, issue #30531
This approach preserves our current semantics. There's room for further optimizations, though, as it's still not as fast as string names

R=vsm@google.com

Review-Url: https://codereview.chromium.org/3002393002 .
2017-08-25 18:36:41 -07:00
Jennifer Messerly 087c5c6a81 fix list_test for strong mode, and fix DDC List constructors
R=vsm@google.com

Review-Url: https://codereview.chromium.org/3009623002 .
2017-08-25 18:32:43 -07:00
Jennifer Messerly 45592ee4bb improve DDC's type checks
fixes #30495 - optimize subtype cache
fixes #30464 - optimize `is List`

Additional changes:
- optimize double type checks
- optimize Object type checks
- optimize FutureOr<T> checks
- optimize interface checks for some dart:core and dart:async types (List, Map, Iterable, Future, Stream, and StreamSubscription )
- optimize checks for generic class default instantiations and exact instantiation (e.g. `C<dynamic>` on any instance `C<T>`, and `C<T> on an instance of C<T>`
- optimize checks for native types
- optimize getReifiedType
- optimize dcall/dsend/dput checks to use faster Type._check pattern
- optimize instanceOf/cast functions by moving special cases to appropriate types
- optimize Object.runtimeType
- optimize JS interop type checks
- optimize all function type checks

There's more we can do (especially for class/interface types) but this should cover a lot of cases.

R=leafp@google.com

Review-Url: https://codereview.chromium.org/3003613002 .
2017-08-25 12:45:13 -07:00
Jennifer Messerly d0072fa73f Fix the return type of String.split in DDC to be correct
It wasn't actually a List<String>, so it could fail a strong mode cast, and also permitted non-Strings to be added.

R=leafp@google.com

Review-Url: https://codereview.chromium.org/3005533002 .
2017-08-25 11:24:54 -07:00
Leaf Petersen 19a1393ae7 Address additional comments on nullability
Address some post-submit comments on a previous CL, and fix some
unrelated analyzer hints in passing.

BUG=
R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/3007533002 .
2017-08-24 15:37:43 -07:00