Johnni Winther
7568a4e4ce
Don't register closure call methods
...
- closed world is incomplete anyway; we're missing the call methods from static and instance tear-off.
Change-Id: Ibd3fc9d80220bef3ee651bf529a487b617de7a6b
Reviewed-on: https://dart-review.googlesource.com/34144
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2018-01-12 11:47:18 +00:00
Johnni Winther
107f611d4e
Support --disable-rti-optimization for --use-kernel
...
Change-Id: I47e1301629f068c12bd5ef898323fc86804bf4a0
Reviewed-on: https://dart-review.googlesource.com/34160
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2018-01-12 11:37:49 +00:00
Johnni Winther
c7447281f7
Handle type argument to instance members.
...
Change-Id: I40404d2f6da74cbaed68e23bc2fab0ebfb3e2cc8
Reviewed-on: https://dart-review.googlesource.com/33724
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2018-01-11 08:13:28 +00:00
Johnni Winther
06e6f4d105
Add --disable-rti-optimization flag
...
- to separate rti implementation correctness from optimization soundness.
Change-Id: I0786dd45261d6f8cf1380f016bfb7c6f773df6b1
Reviewed-on: https://dart-review.googlesource.com/33880
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2018-01-11 07:56:56 +00:00
Stephen Adams
f756c5e71d
Print names for generic method type parameters in function type
...
- Added JS_GET_FLAG('STRONG_MODE') allow the code to be tailored to
the type system version.
- Split type stringifying code into V1 (existing logic) and V2
(strong mode Dart 2.0 logic).
The V1 code will eventually be deleted.
Change-Id: I78db91796040b6ecfa1bd5d6a9d64bd4c2bc4bcf
Reviewed-on: https://dart-review.googlesource.com/33680
Commit-Queue: Stephen Adams <sra@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2018-01-10 21:00:48 +00:00
Harry Terkelsen
3c77ef6738
Ensure types seen in annotations are resolved as they are seen
...
Change-Id: I138bb7904ff069f1b0df6c85d63ca6b7cbdaca3e
Reviewed-on: https://dart-review.googlesource.com/33664
Reviewed-by: Emily Fortuna <efortuna@google.com >
Commit-Queue: Harry Terkelsen <het@google.com >
2018-01-10 18:08:59 +00:00
Johnni Winther
966168ba67
Pass type arguments to dynamic calls
...
This only works for inlining of dynamic methods. Stubs are not created yet.
Change-Id: Ia138117d503b69774984ce9070a3298b87fdbe78
Reviewed-on: https://dart-review.googlesource.com/32766
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2018-01-09 13:44:37 +00:00
Sigmund Cherem
7139df0e38
Add strong sections to language_2 and corelib_2, and change to run dart2js in
...
strong mode for those two suites
Bug:
Change-Id: I5e7b07c9497afd9f9f65fd0de609d5587d3bd9f1
Reviewed-on: https://dart-review.googlesource.com/33120
Reviewed-by: Emily Fortuna <efortuna@google.com >
Commit-Queue: Sigmund Cherem <sigmund@google.com >
2018-01-08 21:08:05 +00:00
Johnni Winther
ab636dfbd1
Reenable warnings/hints for method type variables in dart2js
...
Change-Id: I09662afc8b1a4e8c9fdbfe2e342e80ea58351593
Reviewed-on: https://dart-review.googlesource.com/32060
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com >
2018-01-08 12:48:02 +00:00
Johnni Winther
8e8915f538
Support generic closures in rti analysis
...
Change-Id: I1d393cff5b83f8db69e7bddb8ecfcd4a5205854f
Reviewed-on: https://dart-review.googlesource.com/32700
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2018-01-08 11:36:40 +00:00
Brian Wilkerson
72200eee24
Fix expressions in asserts to be bool rather than a closure
...
Change-Id: I2fbb495b51ba4ff34b3893075b86153d294607b8
Reviewed-on: https://dart-review.googlesource.com/32684
Reviewed-by: Emily Fortuna <efortuna@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2018-01-06 01:54:18 +00:00
Emily Fortuna
cea3419584
Removed unnecessary Location parameter in closure conversion.
...
Bug:
Change-Id: I4460e8b54e104de1c8643f62f35176a2af537a6d
Reviewed-on: https://dart-review.googlesource.com/32722
Reviewed-by: Stephen Adams <sra@google.com >
Commit-Queue: Emily Fortuna <efortuna@google.com >
2018-01-06 00:34:08 +00:00
Sigmund Cherem
497d592ac7
Fixes for deferred constants in the kernel pipeline.
...
The constant collector was inconsistent with the old frontend: we were
skipping primitives and we were not going into the body of closures.
Change-Id: I3321426da7e684d203f0ac7a2a2c7028f3138a7b
Reviewed-on: https://dart-review.googlesource.com/32663
Commit-Queue: Sigmund Cherem <sigmund@google.com >
Reviewed-by: Emily Fortuna <efortuna@google.com >
2018-01-05 23:37:58 +00:00
Stephen Adams
31cd4e1457
Factor deferred loading data
...
'Normalize' the data used for loading deferred libraries. Replace
URIs and SHA1 hashes with indexes so that the URIs and hashes occur
once.
Bug: https://github.com/dart-lang/sdk/issues/29635
Change-Id: I3ac8791ad44ca588cbb1bd7d86f18243c956a04a
Reviewed-on: https://dart-review.googlesource.com/32505
Commit-Queue: Stephen Adams <sra@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2018-01-05 22:02:49 +00:00
Harry Terkelsen
b8b69b1bd9
dart2js-kernel: fix switch with always-throwing method call
...
Change-Id: I8884207f05ba8cf0a2841f21b1a0e8189ebe14d4
Reviewed-on: https://dart-review.googlesource.com/32662
Commit-Queue: Harry Terkelsen <het@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
Reviewed-by: Emily Fortuna <efortuna@google.com >
2018-01-05 21:48:28 +00:00
Johnni Winther
5aa6132a2c
Avoid marking local functions as needing type arguments
...
Change-Id: I857414d58f2ee413ecf2a04987b61184a90ee164
Reviewed-on: https://dart-review.googlesource.com/32542
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2018-01-05 12:35:13 +00:00
Johnni Winther
534dcf6874
Register methods depending on the rti need of classes.
...
Change-Id: I634d78152fc56167b6f32819ffce5d2221da600a
Reviewed-on: https://dart-review.googlesource.com/32320
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2018-01-05 10:28:00 +00:00
Johnni Winther
4f8682f162
Start computing which generic methods need type arguments
...
+ rename runtime type concepts
Change-Id: I4d5a73a1327abd62a34c91582ed7a2c9b46a9bc4
Reviewed-on: https://dart-review.googlesource.com/32260
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2018-01-05 10:01:14 +00:00
Dan Rubel
86ee5b05d4
Add fasta parser invalid top level member recovery
...
Change-Id: Id343a220d1dd203dfbb31caa50d1e76046081c2a
Reviewed-on: https://dart-review.googlesource.com/32480
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2018-01-05 01:43:06 +00:00
Konstantin Shcheglov
2401b16846
Report HintCode.ABSTRACT_SUPER_MEMBER_REFERENCE even if the superclass has noSuchMethod().
...
See the bug.
This does not make it a compile time error though.
R=brianwilkerson@google.com
Bug: https://github.com/dart-lang/sdk/issues/31593
Change-Id: Iefef8eecec43b6b8afaac74198bffbeae1c8b104
Reviewed-on: https://dart-review.googlesource.com/28120
Commit-Queue: Konstantin Shcheglov <scheglov@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
2018-01-04 20:32:05 +00:00
Kevin Millikin
6fa813d818
Change handling of Kernel static errors
...
Before: Kernel static errors were represented by throwing a distinguished
error or else by calling a distinguished library const constructor.
Now: Kernel static errors are represented by InvalidExpression. To support
error reporting, InvalidExpression has an optional message and a file
offset. A back end can choose to signal these errors at any time; for
example, when deserializing the binary, or when compiling the procedure
containing the static error, or when the erroneous expression is evaluated
at run time.
InvalidStatement is removed because it can be encoded as ExpressionStatement
of InvalidExpression.
Future work:
* supporting static errors where an expression cannot appear in the AST
* allowing InvalidExpression to contain an Expression for error recovery
* adding a top-level list of static errors and warnings to the binary
Bug: https://github.com/dart-lang/sdk/issues/29840
Change-Id: Ifdfe9a76cee6cefed28061bf245be70531d2f413
Reviewed-on: https://dart-review.googlesource.com/31320
Commit-Queue: Kevin Millikin <kmillikin@google.com >
Reviewed-by: Dan Rubel <danrubel@google.com >
Reviewed-by: Konstantin Shcheglov <scheglov@google.com >
2018-01-04 11:00:25 +00:00
Johnni Winther
985eba5139
Refactor RuntimeTypesNeed(Builder) and make them testable
...
Change-Id: I67234dd2b076327c138e5b1d7de47ee3edc987d1
Reviewed-on: https://dart-review.googlesource.com/31901
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2018-01-04 08:35:31 +00:00
Stephen Adams
6ceb6ce00e
Emit type representation for generic function types
...
Change-Id: I0a10f5316b3e3c633c34f2a9e184de01ed9cf7de
Reviewed-on: https://dart-review.googlesource.com/32004
Commit-Queue: Stephen Adams <sra@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2018-01-04 02:45:15 +00:00
Brian Wilkerson
1d0f198eea
Replace function arguments to assert with invocations of those functions
...
Change-Id: I09a3da573c7c936d4d381405c1a68805cbc065c4
Reviewed-on: https://dart-review.googlesource.com/32120
Reviewed-by: Sigmund Cherem <sigmund@google.com >
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com >
2018-01-03 18:48:25 +00:00
Johnni Winther
ca31d3e341
Handle inlining of static generic method calls.
...
Change-Id: I8531fd72589da0b823e59087361e4ff31b7be8cf
Reviewed-on: https://dart-review.googlesource.com/31786
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2018-01-03 08:36:35 +00:00
Johnni Winther
e9243a4d16
Pass type arguments in static calls.
...
+ support generic type variable type literals
+ support generic type variable is test
Change-Id: I2473c39c33940c631070b919c7dcfe712fd1fe3d
Reviewed-on: https://dart-review.googlesource.com/31783
Reviewed-by: Stephen Adams <sra@google.com >
2018-01-03 07:57:58 +00:00
Johnni Winther
220a91122a
Add --strong-mode flag to dart2js
...
+ move generic methods tests into a subfolder.
Change-Id: I00cde6a7dc7d6ff1677a8ca60f3a243f065e3765
Reviewed-on: https://dart-review.googlesource.com/31782
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2018-01-02 08:42:21 +00:00
Johnni Winther
50c0c38a60
Move unittests, #12 of ?
...
Change-Id: I218d69ecdefc7580ab192eb1aa36a0f000427c92
Reviewed-on: https://dart-review.googlesource.com/31485
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-29 13:02:07 +00:00
Johnni Winther
e2b377c73f
Move unittests, part #11 of ?
...
Change-Id: Id45adc172695b71716d5ef7019d688641ca828c4
Reviewed-on: https://dart-review.googlesource.com/31483
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-29 12:35:22 +00:00
Johnni Winther
399f0326c9
Move unittests, part #10 of ?
...
Change-Id: Ia346ac44c75b349b61c35e2e9816a7f3d92f04b4
Reviewed-on: https://dart-review.googlesource.com/31481
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-29 12:15:06 +00:00
Johnni Winther
f6e69b1681
Port unittests, #10 of ?
...
Change-Id: Ic9b8f26d2d08b640a4e06653a1ea8f0623a406b5
Reviewed-on: https://dart-review.googlesource.com/31480
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-29 11:58:19 +00:00
Johnni Winther
410c3c4a69
Move unittests, part #9 of ?
...
Change-Id: Ief32bb619da08133a4247b2e4f80cad592f18d77
Reviewed-on: https://dart-review.googlesource.com/31423
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-29 11:40:45 +00:00
Johnni Winther
9c954eb0ee
Port unittests, part #8 of ?
...
Change-Id: I04b456d2a7c7d7ce0ad58546f2592d7ae852bf36
Reviewed-on: https://dart-review.googlesource.com/31420
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-29 10:33:42 +00:00
Johnni Winther
7fd07aa6a2
Sort emitted instance members
...
- and include injected members in ElementEnvironment.forEachLocalClassMember
Change-Id: I90afacf62177fcc5dfd57f23ccc6a7bb5ca4ef37
Reviewed-on: https://dart-review.googlesource.com/31342
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-29 10:15:23 +00:00
Sigmund Cherem
1ddb7db237
Add support for deferred globals in kernel.
...
Change-Id: I24adb7e4c67b7c1d077efd6705b9bce92406deac
Reviewed-on: https://dart-review.googlesource.com/31680
Commit-Queue: Sigmund Cherem <sigmund@google.com >
Reviewed-by: Emily Fortuna <efortuna@google.com >
2017-12-29 07:17:53 +00:00
Emily Fortuna
fa9e576a40
Adjust importsTo so that you can get the import chain for entities other than memberEntities.
...
Also added some more tests to the deferred equivalence test.
Bug:
Change-Id: Ia5ca50728a96020ff76b7b519558cdb5847d598e
Reviewed-on: https://dart-review.googlesource.com/31600
Commit-Queue: Emily Fortuna <efortuna@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-28 19:31:13 +00:00
Stephen Adams
f937039bd6
Remove unused JS_BUILTIN
...
Became unused at:
https://github.com/dart-lang/sdk/commit/1ae1ec7df4b22238fd61e9e529ad62a498b3199e
Change-Id: I92c167dc2a071a45b2635b9b1d907015043d60ab
Reviewed-on: https://dart-review.googlesource.com/31560
Reviewed-by: Emily Fortuna <efortuna@google.com >
Commit-Queue: Stephen Adams <sra@google.com >
2017-12-28 01:16:02 +00:00
Stephen Adams
7fbacb037d
Add comment on external dependency
...
TBR=sigmund@google.com
Bug:
Change-Id: I61a5a6d53921168c31118b42901a64015f5426bc
Reviewed-on: https://dart-review.googlesource.com/31402
Reviewed-by: Stephen Adams <sra@google.com >
Commit-Queue: Stephen Adams <sra@google.com >
2017-12-22 22:04:14 +00:00
Emily Fortuna
21891a965f
Do id equivalence testing for deferred imports.
...
Also allows us to more generally compare annotations in multi-file tests.
Bug:
Change-Id: I2f4ac34b918cc80400ebc417dfcc2caf56457ac2
Reviewed-on: https://dart-review.googlesource.com/30923
Commit-Queue: Emily Fortuna <efortuna@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2017-12-22 20:04:44 +00:00
Johnni Winther
9fe7c0e806
Port unittests, part #5 of ?
...
Change-Id: I58c9deea426072907a5d02f61f23f138b1f50c1d
Reviewed-on: https://dart-review.googlesource.com/31101
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-22 12:11:47 +00:00
Sigmund Cherem
f404b59d1f
Disable multi-inheritance error when using the kernel FE
...
Workaround for Issue #31118
Change-Id: I1d19eb1adeb7236501c276eeee5446ada36115a3
Reviewed-on: https://dart-review.googlesource.com/31240
Reviewed-by: Emily Fortuna <efortuna@google.com >
Commit-Queue: Sigmund Cherem <sigmund@google.com >
2017-12-21 21:33:03 +00:00
Johnni Winther
a521c7f255
First step debugging tests.
...
Change-Id: I8a947999778f851ed38c1a9fb518af00664f19ec
Reviewed-on: https://dart-review.googlesource.com/30740
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-21 14:03:51 +00:00
Johnni Winther
6d40c7629e
Move unittests, part #4 of ?
...
- add 'deferred' folder for deferred load tests
Change-Id: I60b07b09df80bf6c8d3df6dcec9bce12bdcbafb8
Reviewed-on: https://dart-review.googlesource.com/30862
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-21 10:24:49 +00:00
Johnni Winther
a671328de3
Merge instance and static member usage maps.
...
Change-Id: I2c4802b946af162be2257a10502b2c8f823786d1
Reviewed-on: https://dart-review.googlesource.com/30448
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-20 14:52:59 +00:00
Johnni Winther
f2c2c99714
Adjust inlining heuristics for in-loop calls
...
Change-Id: Ifaa1e3ac5405cb9159fd2e6c462e076d9f48b120
Reviewed-on: https://dart-review.googlesource.com/30444
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-20 08:20:03 +00:00
Johnni Winther
12ee4edbb8
Implement inlining heuristics on conditional expression.
...
Change-Id: I183b6345e29d6c00f140dcbd1ffff05faf0e781f
Reviewed-on: https://dart-review.googlesource.com/30442
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-20 08:02:14 +00:00
Stephen Adams
72736aff0d
Avoid introducing js.Parameters in constructor body
...
Use the Parameter name in the template so that it is converted into a
VariableUse.
This change fixes some double-counting in the function parameter /
local variable minifier which made the --fast-startup constructors
'miss' using some minified names.
I believe the 'missed' names is a regression.
Saves 50k (0.4%) on one large app.
Change-Id: Ib7597f5c474ef285b082697e368667dbac23931b
Reviewed-on: https://dart-review.googlesource.com/30720
Reviewed-by: Sigmund Cherem <sigmund@google.com >
Commit-Queue: Stephen Adams <sra@google.com >
2017-12-20 06:09:25 +00:00
Sigmund Cherem
b280922064
Fix patch location for isolate library
...
Change-Id: Ie1f0913eb61dfd77e73d483fd48f235c58ded523
Reviewed-on: https://dart-review.googlesource.com/30626
Reviewed-by: Emily Fortuna <efortuna@google.com >
Commit-Queue: Sigmund Cherem <sigmund@google.com >
2017-12-20 00:15:43 +00:00
Sigmund Cherem
414bad86df
Directly create dart2js platform files using its patch files
...
Change-Id: I1c7d59968bfafeeb5a8b5252fa2d47e3c05b893e
Reviewed-on: https://dart-review.googlesource.com/27404
Commit-Queue: Sigmund Cherem <sigmund@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Emily Fortuna <efortuna@google.com >
2017-12-19 20:31:57 +00:00
Johnni Winther
d3f6ce4c42
Use _MemberUsage for tracking static use in resolution
...
- in preparation for tracking unused optional arguments of static methods
Change-Id: Iba4d8aff488f6c366b587d543b063ae742494b15
Reviewed-on: https://dart-review.googlesource.com/29981
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-19 11:12:02 +00:00