Jenny Messerly
384678e4b3
port DDC's code_generator to Kernel
...
Change-Id: I2b6a5f56a69f5d3a965aefc3f8d4550d5940ac5a
Reviewed-on: https://dart-review.googlesource.com/17980
Reviewed-by: Vijay Menon <vsm@google.com >
Reviewed-by: Bob Nystrom <rnystrom@google.com >
Reviewed-by: Leaf Petersen <leafp@google.com >
2017-11-04 22:17:56 +00:00
Jenny Messerly
f2478e5526
fix SDK for fuzzy arrows change to main function
...
Change-Id: I7b7d5b64c1694b0cd4d5b6d8b13231db236617cc
Reviewed-on: https://dart-review.googlesource.com/18688
Reviewed-by: Jenny Messerly <jmesserly@google.com >
Commit-Queue: Jenny Messerly <jmesserly@google.com >
2017-11-04 08:20:24 +00:00
Jenny Messerly
1dfa9d2320
fix DDC SDK for Symbol.computeUnmangledName
...
Change-Id: I8b793744339dd934833f6188b5b8267d4dad1746
Reviewed-on: https://dart-review.googlesource.com/17864
Reviewed-by: Jenny Messerly <jmesserly@google.com >
Commit-Queue: Jenny Messerly <jmesserly@google.com >
2017-11-01 20:38:06 +00:00
Vijay Menon
48cfab5deb
Fix source maps for better dev tools hover
...
Change-Id: Id706a1c5817f174a3b512e5c7e2f29599b078eb8
Reviewed-on: https://dart-review.googlesource.com/17700
Commit-Queue: Vijay Menon <vsm@google.com >
Reviewed-by: Jenny Messerly <jmesserly@google.com >
2017-10-31 22:09:10 +00:00
Jacob Richman
8b221d13a4
Fix ddc debugger_test Fix regression in custom formatters due to change in metadata signatures to use Object.__proto__ instead of a null __proto__.
...
Bug:
Change-Id: I68fdb980e777b7c3f335fd6b57181134e3159cc3
Reviewed-on: https://dart-review.googlesource.com/17060
Commit-Queue: Jacob Richman <jacobr@google.com >
Reviewed-by: Jacob Richman <jacobr@google.com >
Reviewed-by: Vijay Menon <vsm@google.com >
Reviewed-by: Bob Nystrom <rnystrom@google.com >
2017-10-31 19:45:27 +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
5a4100b595
add a workaround to async/await for DDC's ignore cast fail unsoundness
...
Change-Id: Ic5e58d31b6b5d46bf74a3c7363e19fca239cdc21
Reviewed-on: https://dart-review.googlesource.com/17040
Reviewed-by: Leaf Petersen <leafp@google.com >
Commit-Queue: Jenny Messerly <jmesserly@google.com >
2017-10-27 20:12:39 +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
Vijay Menon
4f9f77aedc
Remove dcall in dart:convert
...
Seeing this in the hot path on an internal app.
Change-Id: I921f12ece706b4ea92d9a97858fde2799972f653
Reviewed-on: https://dart-review.googlesource.com/15940
Commit-Queue: Vijay Menon <vsm@google.com >
Reviewed-by: Leaf Petersen <leafp@google.com >
2017-10-25 18:28:06 +00:00
Jenny Messerly
ef3ac59dd6
add a dartdevk command that compiles with the new front end
...
This ports a fairly large part of DDC's Analyzer-based code generator,
however most nodes are not supported yet.
The goal is to preserve all functionality of code that was ported,
except for deprecated features (e.g. mirrors, fuzzy arrows, libraryRoot).
Change-Id: I3b10d5773c7c10a740fa336720243b03c6b82529
Reviewed-on: https://dart-review.googlesource.com/10705
Reviewed-by: Vijay Menon <vsm@google.com >
2017-10-16 21:13:52 +00:00
Jennifer Messerly
697e531c17
fix IdentityMap setter concurrent modification detection
...
Change-Id: Ib999210cf5709a4cef6a14a8d7fafe7b516f09c9
Reviewed-on: https://dart-review.googlesource.com/13641
Commit-Queue: Vijay Menon <vsm@google.com >
Reviewed-by: Vijay Menon <vsm@google.com >
2017-10-13 20:57:24 +00:00
Vijay Menon
0553e2ba15
Regen DDC SDK
...
TBR=rnystrom@google.com
Change-Id: I4406552de08e379cac8a75f9c8e0e353dd927a21
Reviewed-on: https://dart-review.googlesource.com/13440
Reviewed-by: Vijay Menon <vsm@google.com >
Commit-Queue: Vijay Menon <vsm@google.com >
2017-10-12 04:07:05 +00:00
Jennifer Messerly
8c36b4685f
fix #31049 , fix #31050 , avoid name collision for static members
...
Change-Id: I5a14315b99ace15aa6ac0c67f753bc3e1f39b3a9
Reviewed-on: https://dart-review.googlesource.com/12481
Commit-Queue: Jennifer Messerly <jmesserly@google.com >
Reviewed-by: Vijay Menon <vsm@google.com >
2017-10-11 21:00:02 +00:00
Vijay Menon
4917131ff4
Regen DDC sdk
...
TBR=rnystrom@google.com
Change-Id: I58e832edd16bd6b864eadb27b91dc3645be13e90
Reviewed-on: https://dart-review.googlesource.com/13001
Reviewed-by: Vijay Menon <vsm@google.com >
Commit-Queue: Vijay Menon <vsm@google.com >
2017-10-11 15:19:10 +00:00
Vijay Menon
c1d45769c3
Inline constant values
...
Change-Id: Iee929bc64c152be989e6e7ba38132f806c33c7e0
Reviewed-on: https://dart-review.googlesource.com/11960
Commit-Queue: Vijay Menon <vsm@google.com >
Reviewed-by: Jennifer Messerly <jmesserly@google.com >
2017-10-10 13:21:41 +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
Vijay Menon
05619da8ea
Optimize String.length
...
Change-Id: I7e8481c8822d170492112704e04b92b19d5e5f2e
Reviewed-on: https://dart-review.googlesource.com/12340
Reviewed-by: Jennifer Messerly <jmesserly@google.com >
Commit-Queue: Vijay Menon <vsm@google.com >
2017-10-10 00:22:36 +00:00
Vijay Menon
a7e5d104bf
Fill array on allocation
...
Fixes #31002
Change-Id: Idaee4ca544e567b4239098c852a040128e6b5d82
Reviewed-on: https://dart-review.googlesource.com/11242
Commit-Queue: Vijay Menon <vsm@google.com >
Reviewed-by: Jennifer Messerly <jmesserly@google.com >
2017-10-05 20:04:24 +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
Vijay Menon
d6582a9d1b
Use unique proto object for each library object
...
This appears to improve Gabriel's is-check benchmark by 2x and
DeltaBlue by about 30% (DDC on d8-tip).
I suspect this is improving inlining of top-level accesses on library
objects (including helpers like dart.is).
Change-Id: I1629d821b481194075a80dd6858334c1f678dd12
Reviewed-on: https://dart-review.googlesource.com/7446
Commit-Queue: Vijay Menon <vsm@google.com >
Reviewed-by: Leaf Petersen <leafp@google.com >
2017-10-04 18:06:59 +00:00
Vijay Menon
d22557b560
Regen DDC SDK
...
TBR=rnystrom@google.com
Change-Id: I50cb06235bb5f9a0bd8cae8e7cc6500c33c812c2
Reviewed-on: https://dart-review.googlesource.com/10703
Reviewed-by: Vijay Menon <vsm@google.com >
Reviewed-by: Bob Nystrom <rnystrom@google.com >
Commit-Queue: Vijay Menon <vsm@google.com >
2017-10-03 21:49:21 +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
e5de4e2aaa
fix #30966 , generate signature info for native setters
...
Change-Id: I512a3c74ceffcab3013791b82c92cee16d804af8
Reviewed-on: https://dart-review.googlesource.com/10207
Reviewed-by: Vijay Menon <vsm@google.com >
Commit-Queue: Jennifer Messerly <jmesserly@google.com >
2017-10-03 02:55:27 +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
Vijay Menon
8a81bdf64a
Regen DDC sdk
...
TBR=jmesserly@google.com
Change-Id: I9a02f4e06d84df2f2794180755d6cb2dea2f767e
Reviewed-on: https://dart-review.googlesource.com/10160
Reviewed-by: Vijay Menon <vsm@google.com >
Commit-Queue: Vijay Menon <vsm@google.com >
2017-10-02 19:45:37 +00:00
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
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
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
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
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
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