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
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
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
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
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
Johnni Winther
66398a511a
Store CallStructure in StaticUse
...
- in preparation for tracking unused optional arguments of static methods
Change-Id: I8a9b1d0d9acd57256d383f880b9c602d91804486
Reviewed-on: https://dart-review.googlesource.com/29801
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-19 10:21:08 +00:00
Emily Fortuna
4cd0593574
Tiny fix to fix type errors in our compiler while running host-checked
...
and deferred loaded code.
Bug:
Change-Id: I57b51a287fd7ffad59a1a59eae34e739b5e5603b
Reviewed-on: https://dart-review.googlesource.com/29745
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Stephen Adams <sra@google.com >
Commit-Queue: Emily Fortuna <efortuna@google.com >
2017-12-15 18:42:33 +00:00
Johnni Winther
b13a6015cc
Support subtyping for function type variables.
...
Change-Id: I0e00330d76cc9b1f3d48bb1f0d87f6334976de54
Reviewed-on: https://dart-review.googlesource.com/29281
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-14 10:09:55 +00:00
Johnni Winther
5f06d51d1a
Enable inlining by default
...
Change-Id: I4810959da23193d8a1b572b4feea329a2f4b2f31
Reviewed-on: https://dart-review.googlesource.com/29320
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-14 10:02:54 +00:00
Johnni Winther
b759f8fb15
Use sorted named parameters on inlining.
...
Change-Id: I066383b86b55e1d76633c281f30ebbc3fa5d46e3
Reviewed-on: https://dart-review.googlesource.com/29280
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-14 09:21:44 +00:00
Johnni Winther
5c0f33934b
Register inlined constructor types
...
Change-Id: I097394c868a0fabe0e83814a65ec7884b64741af
Reviewed-on: https://dart-review.googlesource.com/29121
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-14 09:07:03 +00:00
Johnni Winther
0edef589d4
Ensure type variables for inlined constructors and mixin fields
...
Change-Id: I348acffb7842ff1c9f28ebf73c507e282c6a045e
Reviewed-on: https://dart-review.googlesource.com/29080
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-14 08:53:21 +00:00
Sigmund Cherem
08bd966708
Count return/throw and their children in inlining heuristic.
...
I discovered this because a deferred method was being inlined accidentally: we
thought it was empty and inlined it when we shouldn't have.
Change-Id: I9795b62f4ffb81222100afedd3b42cb8828900bd
Reviewed-on: https://dart-review.googlesource.com/27925
Commit-Queue: Sigmund Cherem <sigmund@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2017-12-13 23:26:54 +00:00
Dan Rubel
3ab29148f4
Add fasta parser cascade recovery
...
Change-Id: I1cf32604acf2124a9d61621fbb4cfb9343d98d33
Reviewed-on: https://dart-review.googlesource.com/28840
Reviewed-by: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com >
Commit-Queue: Dan Rubel <danrubel@google.com >
2017-12-13 18:30:25 +00:00
Erik Ernst
f95a3cc1e6
dart2js no longer warns that function type variables are not reified
...
Change-Id: I69746c92912fcbbc35e1f6c37e310352f92708f6
Reviewed-on: https://dart-review.googlesource.com/28641
Commit-Queue: Erik Ernst <eernst@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com >
2017-12-13 14:01:16 +00:00
Johnni Winther
5599c80edd
Don't create HParameterValue nodes for type arguments when inlining
...
Change-Id: If44fc4cbb39336f7ac01b906702f5aaa2ed1cd90
Reviewed-on: https://dart-review.googlesource.com/28721
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-13 10:10:23 +00:00
Johnni Winther
a1f5474f80
Allow inlining of platform library functions
...
Change-Id: I2803d66f54d2e1052ca8af5fb719bded8f400171
Reviewed-on: https://dart-review.googlesource.com/28563
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-13 09:35:59 +00:00
Johnni Winther
9df549a2d0
Avoid inlining of external functions
...
Change-Id: I43aed9e484c55d40a9fa7d5db029e0d11a698b3e
Reviewed-on: https://dart-review.googlesource.com/28562
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-13 09:28:09 +00:00
Harry Terkelsen
1e0a657961
dart2js kernel: Add types seen in the superclass chain to the hierarchy
...
Change-Id: I5c0f6b76042e7a3cf8f54326963d56eb6a78f568
Reviewed-on: https://dart-review.googlesource.com/27020
Commit-Queue: Harry Terkelsen <het@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2017-12-13 00:19:03 +00:00
Bob Nystrom
650c9dcc8e
Support extractTypeArguments() in 1.0 mode on the VM and dart2js.
...
Without strong mode, a "good enough" implementation is to simply call
the generic method with "dynamic" for the type arguments, which is what
this does. That should be enough to unblock our internal users.
We also need to not report a compile error when
dart_internal/extract_type_arguments.dart imports the hidden
"dart:_internal" library.
This patch does both of those for the VM and dart2js (using its old
front end).
Note that the test still fails because the test is more particular than
most actual user code would be -- it validates that the instantiated
type arguments are *exactly* correct, and not that the returned object
is merely subtype compatible.
Bug:
Change-Id: I0343beace4991861b29712b3fd7067ec8dc8f8ba
Reviewed-on: https://dart-review.googlesource.com/28020
Commit-Queue: Bob Nystrom <rnystrom@google.com >
Reviewed-by: Alexander Thomas <athom@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-12 19:04:18 +00:00
Johnni Winther
59106e8f55
Fix crashes caused by inlining
...
Change-Id: I7fef190a4b5248f1508f0122c5dcb5ee7fdc4c40
Reviewed-on: https://dart-review.googlesource.com/27940
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2017-12-12 08:07:29 +00:00
Emily Fortuna
1dab6ab88c
Add List/Map factory type checks.
...
Bug:
Change-Id: I27b4cd1e4b528606e2ea2028eab3cdea1d47abc4
Reviewed-on: https://dart-review.googlesource.com/27882
Commit-Queue: Emily Fortuna <efortuna@google.com >
Reviewed-by: Stephen Adams <sra@google.com >
2017-12-08 23:11:20 +00:00
Sigmund Cherem
5fde58ceb0
Map closure entities so they get emitted in the correct output unit
...
Change-Id: I7edcf1715adcff3caba5bbe7ebfc18ecaeca6801
Reviewed-on: https://dart-review.googlesource.com/27920
Commit-Queue: Sigmund Cherem <sigmund@google.com >
Reviewed-by: Emily Fortuna <efortuna@google.com >
2017-12-08 22:40:40 +00:00
Stephen Adams
d7516551ca
measure computeWorldImpact in Kernel pipeline
...
Change-Id: I23d80a1272413350f3bf846d6e55e4bc533ddc59
Reviewed-on: https://dart-review.googlesource.com/25724
Commit-Queue: Stephen Adams <sra@google.com >
Reviewed-by: Stephen Adams <sra@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2017-12-08 21:01:51 +00:00