Commit Graph

207 Commits

Author SHA1 Message Date
Vijay Menon c771e4d132 DDC: disallow ignore option on Stream cast failures
See #27223

Change-Id: Ia23edc3700a8e0bb3d982be9b0bb36ad4522091d
Reviewed-on: https://dart-review.googlesource.com/56033
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
2018-05-22 12:15:32 +00:00
Vijay Menon bea580c3a4 Disallow ignore on any explicit cast failures
See #27223

Change-Id: I9689ce9a72597b3e5c945f9787f2de6c5e8c2074
Reviewed-on: https://dart-review.googlesource.com/54701
Commit-Queue: Vijay Menon <vsm@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Jenny Messerly <jmesserly@google.com>
2018-05-21 22:01:39 +00:00
Jenny Messerly 21fbf7d767 fix #33103, switch dartdevk to use Kernel nSM stubs
Change-Id: I383b36809b1e8b43f9f7a36ca84d8db5da7cef67
Reviewed-on: https://dart-review.googlesource.com/55266
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-05-18 23:43:58 +00:00
Jenny Messerly e998c56a72 fix #32980, better error messages for type errors at runtime
Change-Id: I4666c82b706dcaa963f4acf1c1c5d770e0ab1c6a
Reviewed-on: https://dart-review.googlesource.com/54101
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-05-10 00:13:27 +00:00
Bob Nystrom 9d34963947 Stop ignoring explicit ("as") cast failures on all but function types.
Change-Id: Ia421cce7bab4fe9c74775b5bf2474901475cfa89
Reviewed-on: https://dart-review.googlesource.com/53160
Reviewed-by: Vijay Menon <vsm@google.com>
2018-04-30 23:05:24 +00:00
Vijay Menon 001af89c8e Flip DDC to default to sync-async
See #32868

Change-Id: I757321632c9f383edea398741c67fc7c3e3815e5
Reviewed-on: https://dart-review.googlesource.com/52900
Commit-Queue: Vijay Menon <vsm@google.com>
Reviewed-by: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-04-30 15:04:51 +00:00
Jenny Messerly 30b53ceaab fix #30852, cyclic init errors in some cases in dartdevc
Change-Id: Iae73dcf7b3ad9b547d8dc278210310699673a9ab
Reviewed-on: https://dart-review.googlesource.com/52282
Reviewed-by: Vijay Menon <vsm@google.com>
2018-04-26 00:22:19 +00:00
Jenny Messerly 7c6594c0bd fix #32302, friendlier Type.toString() in dartdevc
Change-Id: I650634d17aad8d6b7e154874578eb88cf87fd994
Reviewed-on: https://dart-review.googlesource.com/52081
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-04-25 23:16:56 +00:00
Vijay Menon b4d9c77d68 Make DDC sync-async behavior flippable either way
Step (1) to flipping the default.  When this lands and rolls in, we
can change internal code to explicitly opt-out.

See #32868

Change-Id: Ibd6fc08d6d71b0093decf5667e9b8cdc2b49e3d1
Reviewed-on: https://dart-review.googlesource.com/51444
Reviewed-by: Jenny Messerly <jmesserly@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
2018-04-18 22:54:03 +00:00
Jenny Messerly b62276d97f fix DDC SDK implementation JS type annotations to work with CFE
This migrates the JS builtin's string type to the `<T>` type parameter
for a few more cases. This was done to eliminate null checks, casts and
dynamic calls when dartdevk builds the SDK, so it matches dartdevc.

Change-Id: I8570e5127149a45289a90002c27034333c3038ad
Reviewed-on: https://dart-review.googlesource.com/51207
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-04-17 19:29:40 +00:00
Jenny Messerly e22e3a1884 fix DDC's REPL support functions
these are used by the debugger extension code

Change-Id: If5b9d1aca38fa2f120580d2dbfd02523c6eaa5cf
Reviewed-on: https://dart-review.googlesource.com/51440
Reviewed-by: Vijay Menon <vsm@google.com>
2018-04-17 18:15:49 +00:00
Jenny Messerly 5474ce01d5 fix DDC lazy function tagging (used for mirrors) and tearoffs
It's possible for `dart.fn` (tearoff) to be called after `dart.lazyFn`,
so lazyFn needs to support a setter.

Change-Id: Iaba1a1d6145d94501c77de6a6a2c107eac2d92d7
Reviewed-on: https://dart-review.googlesource.com/51441
Reviewed-by: Vijay Menon <vsm@google.com>
2018-04-17 18:03:28 +00:00
Jenny Messerly 5dd283e783 fix #32270, DDC tests can now work with preview-dart-2
Also removes unsafe-force-compile for DDC's selfhost during snapshot
build, and fixes DDK's snapshot to train by selfhosting.

This does not enable preview-dart-2 for DDC/DDK's snapshots or on
the buildbots yet.

Change-Id: Id0b395eb67677d0e69dc5e827536a9039bc95816
Reviewed-on: https://dart-review.googlesource.com/51206
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-04-16 07:03:07 +00:00
Jenny Messerly 782cfe04d1 fix #32756, DDC dynamic calls to generics will work with emit-metadata
Also fixes DDK to disable metadata by default.

Change-Id: Ic5fd637c1048cb5ccfd035b8e0dd07b0985c1364
Reviewed-on: https://dart-review.googlesource.com/51040
Reviewed-by: Leaf Petersen <leafp@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
2018-04-13 03:01:06 +00:00
Jenny Messerly 2ddc5495f8 Reduce DDC signature overhead
- changes top-level/static method tearoffs to work similar to instance
  method tearoffs (attach typeinfo at the tearoff location).
- changes getters/setter signatures to a more compact representation.
- fixes incorrect reification of tearoffs in DDC Kernel backend,
  causing a couple of tests to pass after the changes.
- module startup should also be faster, because we avoid using
  `defineLazyProperty` for signatures.

Change-Id: I9d1705adcd5101a99f0599120cb927396eae778a
Reviewed-on: https://dart-review.googlesource.com/48455
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-04-12 02:22:09 +00:00
Jenny Messerly 8df4042b2d fix #32088, DDC calls nSM for signature mismatch
also fixes #32653, DDC should call nSM for unexpected named arguments

Change-Id: Id1848cd5af87ac615fd96fbf2784a72f9286801d
Reviewed-on: https://dart-review.googlesource.com/48940
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-04-12 00:29:59 +00:00
Jenny Messerly bed5debbeb Callable object support in Analyzer and DDC.
Fixes #32156
Fixes #32157
Fixes #32426

This also fixes `implements Function` so it has no effect in Dart 2
(it is ignored for the purposes of subtyping.)

Change-Id: Ibec9c77cd516b8b97fef68a579998598d0acf8c6
Reviewed-on: https://dart-review.googlesource.com/45141
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-03-30 18:14:55 +00:00
Jenny Messerly d46dd1bd68 fix error message for dcalls on null
Change-Id: I0f3ab303ce8844c9b147a21f3233ef04ec0acb66
Reviewed-on: https://dart-review.googlesource.com/45920
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-03-30 00:34:29 +00:00
Lasse Reichstein Holst Nielsen b3c12d4e3a Dart 2 Libraries Wave 3
Add `typeArguments` to Invocation.
Add constructors to Invocation, making it less necessary for users to create their own implementations.
Add tests.
Add Symbol.unaryMinus and Symbol.empty constants.

Change-Id: I70cb3265f9413617cf57fce1297e393a29eeb26a
Reviewed-on: https://dart-review.googlesource.com/40741
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-03-08 16:36:07 +00:00
Jenny Messerly dab7da78cd fix implicit casts in DDC
There are a few bug fixes here as well. Most notably, `.name.name`
instead of `.name` in DDK's analysis of virtual accessors. DDC/K's
handling of spread arguments in JS interop was also fairly broken
(it was generating a RestParameter instead of Spread). There's
also a lot of cleanup in js_ast as well, to make it a bit more
type safe.

Change-Id: Ia5333179e6dd0a62f20ce64a2b2b8bedf2ed7c49
Reviewed-on: https://dart-review.googlesource.com/44700
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-03-07 01:26:21 +00:00
Lasse R.H. Nielsen 9ee735b659 Add missing methods to List and Map implementations.
Optimize FollowedBy when the operands have efficient length.

Change-Id: I0af59240d70b929358c06b8d57a85df2deee6aaf
Reviewed-on: https://dart-review.googlesource.com/43665
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-02-28 12:26:53 +00:00
Vijay Menon 64c1dc8e24 Set ignoreWhitelistedErrors to false by default
Our SDK tests explicitly disable this.  I'd like our external apps to
have this disabled as well - not sure it's coming up there.
Internally, we will need to enable in our bootstrap code.  I'll turn
that on there for now - but perhaps we can make that a per-target thing.

Change-Id: I484e048126d8d75f31f404029b94efe1d822c49e
Reviewed-on: https://dart-review.googlesource.com/28381
Reviewed-by: Leaf Petersen <leafp@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
2018-02-20 21:29:25 +00:00
Bob Nystrom a73b141633 Remove StreamSubscription<T> from the cast failure whitelist.
All internal cast failures should be fixed now, so we don't need to
ignore this type any more.

Change-Id: I206d7865f5a3293e579f31e96e919b69b572200f
Reviewed-on: https://dart-review.googlesource.com/38980
Reviewed-by: Vijay Menon <vsm@google.com>
2018-02-06 04:19:02 +00:00
Florian Loitsch 3b8e4d41a7 Reapply "Run async functions immediately."
Which was reverted in commit 032be73dbe.
Originally commited in commit 67bac0bce6.
Original review URL: https://dart-review.googlesource.com/5263

Change-Id: Ic7333c29e502a3924dc6aade8ffa46fc8aa5b04a
Reviewed-on: https://dart-review.googlesource.com/38120
Commit-Queue: Florian Loitsch <floitsch@google.com>
Reviewed-by: William Hesse <whesse@google.com>
2018-02-02 15:50:16 +00:00
Florian Loitsch 032be73dbe Revert "Run async functions immediately."
This reverts commit 67bac0bce6.

Reason for revert: broke the bot.

Original change's description:
> Run async functions immediately.
> 
> Migrated from https://codereview.chromium.org/2478703003/
> 
> Change-Id: I1d678c01ba5876490b12c676c500171328361d31
> Reviewed-on: https://dart-review.googlesource.com/5263
> Commit-Queue: Florian Loitsch <floitsch@google.com>
> Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
> Reviewed-by: Vijay Menon <vsm@google.com>
> Reviewed-by: William Hesse <whesse@google.com>
> Reviewed-by: Martin Kustermann <kustermann@google.com>
> Reviewed-by: Régis Crelier <regis@google.com>

TBR=whesse@google.com,rnystrom@google.com,vegorov@google.com,kustermann@google.com,zra@google.com,floitsch@google.com,jmesserly@google.com,vsm@google.com,regis@google.com,sigmund@google.com

Change-Id: I20c948057423c3fa5aa8c72843f8f2a17e086ad5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/37981
Reviewed-by: Florian Loitsch <floitsch@google.com>
Reviewed-by: William Hesse <whesse@google.com>
2018-02-01 15:01:21 +00:00
Florian Loitsch 67bac0bce6 Run async functions immediately.
Migrated from https://codereview.chromium.org/2478703003/

Change-Id: I1d678c01ba5876490b12c676c500171328361d31
Reviewed-on: https://dart-review.googlesource.com/5263
Commit-Queue: Florian Loitsch <floitsch@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
Reviewed-by: William Hesse <whesse@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Régis Crelier <regis@google.com>
2018-02-01 14:08:57 +00:00
Jenny Messerly 5013b28bbe fix #31999, remove fuzzy arrow runtime support from DDC
Also updates tests that relied on fuzzy arrows.

Change-Id: Ia8df1d8d421e43dfada589223d5e46182b92fa67
Reviewed-on: https://dart-review.googlesource.com/37425
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-01-31 22:20:38 +00:00
Bob Nystrom 4aa55f06f4 Don't redundantly ignore cast failures on function types.
As far as I can tell, this case never gets hit because there is separate
support for ignoring cast failures on function types elsewhere.

Change-Id: I78bd8d0af10764477505545384f5103f294228bf
Reviewed-on: https://dart-review.googlesource.com/37648
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Bob Nystrom <rnystrom@google.com>
2018-01-31 21:48:40 +00:00
Jenny Messerly 16f8bbe68b fix #32001, DDC mixins with getter/setters partially from superclass
Whenever we install a getter or setter, we need to install a corresponding
one that calls `super`, because JS treats getters/setters as pairs for the
purposes of lookup. Normally we generate the paired super accessor, but for
mixins we cannot, because we don't know what the `super` will be at compile
time. So the fix is for `mixinMembers` to handle it at run time.

Change-Id: I2b14ea437720bd26f2879c7daac5b3f796d48038
Reviewed-on: https://dart-review.googlesource.com/37645
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
2018-01-30 21:44:50 +00:00
Leaf Petersen 991753313f Remove deep future flattening from analyzer and DDC
Change-Id: Ic48f29adec3a46744b259ba5b2b8ad7d97caa6c2
Reviewed-on: https://dart-review.googlesource.com/37424
Reviewed-by: Jenny Messerly <jmesserly@google.com>
2018-01-30 18:11:11 +00:00
Mike Fairhurst 8393995457 Fix void usages in ddc
This is to more incrementally land https://dart-review.googlesource.com/c/sdk/+/35805

This code returns "void" values inside a function typed "dynamic", which will be illegal.

Change-Id: I21e2ef2e8a5df0d2ad1bf800571d31fc67cc9021
Reviewed-on: https://dart-review.googlesource.com/36802
Reviewed-by: Jenny Messerly <jmesserly@google.com>
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
2018-01-26 17:29:53 +00:00
Jenny Messerly 46dc1afd9f fix #31897 - wrong number of type arguments should call noSuchMethod
Change-Id: I2a5835bc369c9c4e933a1d53b9ac73f8291264b9
Reviewed-on: https://dart-review.googlesource.com/36488
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-01-24 20:51:42 +00:00
Jenny Messerly 2a0f060bcb fix printing of generic function bounds
This changes DDC/K to handle `dynamic` and `Object` equivalently at
runtime for the purposes of printing `extends` bounds of generic
function types.

Technically speaking DDK is the correct one (`<T>` is short for
`<T extends Object>` in the spec, not `<T extends dynamic>`).
In contrast DDC/Analyzer treat the absence of a bound as `dynamic`.
At runtime this distinction will disappear in Dart 2, and we may
stop tracking it completely, so this change is a step towards that.

Change-Id: Ie1ead2ad55b72718485fe0817456981873a6d04f
Reviewed-on: https://dart-review.googlesource.com/36563
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-01-24 20:19:08 +00:00
Jenny Messerly 5de9c20fb0 fix #31434 - recursive generic classes
Change-Id: I5a30de9e7d48eccacddee621c94088dbd65cc77b
Reviewed-on: https://dart-review.googlesource.com/36381
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-01-23 22:11:27 +00:00
Vijay Menon bbcb34c3aa Fix mocks on js types
Change-Id: I4b07fd0fc5d3771d93f250b5ba51261ea5bef001
Reviewed-on: https://dart-review.googlesource.com/35480
Commit-Queue: Vijay Menon <vsm@google.com>
Reviewed-by: Jacob Richman <jacobr@google.com>
Reviewed-by: Jenny Messerly <jmesserly@google.com>
2018-01-20 00:04:37 +00:00
Jenny Messerly a052d8e0dc fix some issues with compiling the kernel SDK
- fix all usage of `.name` when `.name.name` is required
- fix handling of inline-JS in the SDK
- fix casts on SDK nodes

Change-Id: Ic48e0b77e6e03515f16b8c30d3e274abbe2ed272
Reviewed-on: https://dart-review.googlesource.com/34540
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
2018-01-17 02:53:22 +00:00
Vijay Menon 49156e823b Address leafp's comments
Bug:
Change-Id: I5dce5b80838a5e17397de44166a0be2b0e583397
Reviewed-on: https://dart-review.googlesource.com/27780
Commit-Queue: Vijay Menon <vsm@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-01-08 15:49:02 +00:00
Terry Lucas 529add3834 DDC fix to expose classes which are only created inside of the browser.
R=vsm@google.com

Change-Id: I27ede73ac84a72ee9b5e8b3b0a706ade82b2aa59
Reviewed-on: https://dart-review.googlesource.com/25500
Commit-Queue: Terry Lucas <terry@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2017-12-13 03:03:09 +00:00
Jens Johansen 0ae908f66f [DDC] Fix problem occurring when an async* stream is paused at the end of a yield*
This CL copies the fix for the VM
(https://codereview.chromium.org/2297013003, committed as
8a70e46d76 ~1 year ago) to DDC.

Bug:
Change-Id: I7244de9ae891ee1eb8f58d3921cf996bcfdb60b4
Reviewed-on: https://dart-review.googlesource.com/28220
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2017-12-12 11:14:20 +00:00
Vijay Menon 8602a8446e Fix LazyJsType check
This type is used for JS instanceof checks.  dart.dynamic doesn't work for that.  In general, this fall back looks dodgy (with or without this change), but this unblocks an internal user.

Change-Id: Id7401bbbef1aeddd93f40932b84f1928b4238edb
Reviewed-on: https://dart-review.googlesource.com/28121
Reviewed-by: Leaf Petersen <leafp@google.com>
Reviewed-by: Jacob Richman <jacobr@google.com>
2017-12-11 16:51:48 +00:00
Vijay Menon a9ad047594 Initial DDC implementation of extractTypeArguments
Change-Id: Ifee4349a75bc2c7dab9a8c05df20a62054365c59
Reviewed-on: https://dart-review.googlesource.com/27420
Commit-Queue: Vijay Menon <vsm@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
2017-12-07 23:15:29 +00:00
Leaf Petersen 4a56f7b360 Add back missing cast failure cache on function types.
Casts for function types got moved off of the generic path, and hence
are missing the memo cache.  Added a second function type  cast cache.

Fixes #31392

Bug:
Change-Id: Ie1b87adf630f5059b57d01956778f5adde0533fc
Reviewed-on: https://dart-review.googlesource.com/21525
Reviewed-by: Vijay Menon <vsm@google.com>
2017-11-16 22:48:13 +00:00
Alan Knight dfcce6d012 Make trapRuntimeErrors false by default
Bug:
Change-Id: I4e631113b00d5c39feaee74f4895a2e1f75641d0
Reviewed-on: https://dart-review.googlesource.com/17620
Reviewed-by: Vijay Menon <vsm@google.com>
Reviewed-by: Jacob Richman <jacobr@google.com>
Commit-Queue: Alan Knight <alanknight@google.com>
2017-10-31 18:59:59 +00:00
Jenny Messerly 0aa6801f8a fix function type printing in DDC to match VM
Change-Id: I2e15d34c8a40d9ed86b44f5c3db7052fb7c8a783
Reviewed-on: https://dart-review.googlesource.com/14780
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2017-10-27 22:35:20 +00:00
Jenny Messerly 77775c5292 Unroll mixins in DDC, so each mixin application is generated
This is for compatibility with Kernel, as well as fixing several bugs,
and generally being a more robust architecture.

This may also perform better than the current design.

Notable fixes include several issues around deferred classes.

Change-Id: I1b6f44ebdf6304b10b47d19026156a25e04146ef
Reviewed-on: https://dart-review.googlesource.com/16337
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2017-10-27 04:26:44 +00:00
Jenny Messerly 07f189703a Optimize DDC's async/await code to avoid unnecessary zone registration
Other improvements:
* avoids an extra intermediate future in `async`, and unnecessary type tests
* uses optimized type tests instead of older isSubtypeOf
* avoids an extra closure for async/async*
* avoids Function.apply for async/async*/sync*
* avoids an extra cosure for sync* if the arguments are not modified

Change-Id: I897708387fce59a97696f05b01cc668f1043fe5c
Reviewed-on: https://dart-review.googlesource.com/16332
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2017-10-27 01:07:04 +00:00
Jennifer Messerly 32eb7e3612 fix #30944, mark specific nodes with source information
This change fixes bugs that users see when we mark declaration code,
while also reducing the source map size (improving startup & reducing
the load on devtools). The SDK source map is reduced by 41%.

Stack traces and stepping should be more accurate after this change, but
if we identify any node(s) that need different marking, we now have
the tools to refine it further.

Change-Id: Ie50c6aca873be7b7c0f7c238a9db2001acbceb5c
Reviewed-on: https://dart-review.googlesource.com/10210
Commit-Queue: Jennifer Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
Reviewed-by: Alan Knight <alanknight@google.com>
2017-10-10 03:40:40 +00:00
Jennifer Messerly 3a79c35f3c optimize maps/sets in DDC, fixes #29865
- string/int keys use identity maps
- construct the correct type rather than relying on factory constructors when possible
- checks if key has identity semantics and use that when possible
- avoid helper calls/casts/etc in implementations
- use native ES6 Map/Set key order tracking
- optimized constructor for map literals
- fixes #30466, const maps are now canonicalized correctly

Change-Id: Id44acf3d9bf8cb153a4755aa28df08fe91bfc633
Reviewed-on: https://dart-review.googlesource.com/8167
Reviewed-by: Vijay Menon <vsm@google.com>
2017-10-04 19:04:27 +00:00
Jennifer Messerly 3a907e5cab add a script to build DDC's SDK to a dill file
Change-Id: I93f9d55bd99a3b98ee823c38255e9a8081954a4b
Reviewed-on: https://dart-review.googlesource.com/10213
Reviewed-by: Vijay Menon <vsm@google.com>
2017-10-03 20:27:12 +00:00
Jennifer Messerly 05ba807d43 fix #30925, optimize x is T when x is null
Change-Id: Id99a2ce821c49c4dcce098fe119aab63e916b3ab
Reviewed-on: https://dart-review.googlesource.com/9792
Reviewed-by: Vijay Menon <vsm@google.com>
2017-10-02 20:45:29 +00:00