Commit Graph

4835 Commits

Author SHA1 Message Date
Mayank Patke a52d6ea9b9 [dart2js] Fork backend subtyping into legacy and null-safe variants.
Change-Id: I64a20b5c64d700b873ac6210e5845c8d59192991
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133331
Commit-Queue: Mayank Patke <fishythefish@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2020-01-30 17:02:38 +00:00
Stephen Adams deae9152e0 [dart2js] Use HInvokeExternal for native calls
A new instruction, HInvokeExternal, codes a variety of calls to JavaScript.
'native' and js-interop calls use this instruction instead of
HForeignCode. This leads to fewer places generating similar JavaScript
patterns, and slightly better scheduling around call sites.
More js-interop calls are now lowered to direct JavaScript calls rather
than interceptor calls.

Change-Id: I8d30827bb099d27f4cc2ad469449769418ccb6da
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133021
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2020-01-29 21:19:00 +00:00
Sigmund Cherem bf6c439e9a [dart2js] SSA: Avoid emitting generate-at-use twice
This seems to happen in a check-chain when the input is unnamed.  I'd
rather name something than do this, since it interferes with counting
occurrences for sharing constants.

Fixed: 40349
Change-Id: I6a077707b172cee7505130119e41f856244f9424
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133624
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2020-01-29 00:26:37 +00:00
Nate Bosch 833c70be61 Add the first Kernel check for invalid JS interop
Add a visitor that checks for invalid JS interop usage and reports
diagnostics. Wire the visitor up to the `DevCompilerTarget` and `Dart2jsTarget`.

- Add a message without an analyzer code for this error. In the long term we may
  want to also add it to analyzer.
- Add a new package `_js_interop_checks` to share the kernel visitor between
  dart2js and ddc. Some of the code is copied from ddc, and in the long term we
  can centralize more of the detection of JS interop annotations to this
  package.
- Implement the first check to detect definitions of `operator []` or
  `operator []=` which are not allowed in JS interop classes.

Change-Id: I095a4b7f4732796dbc3cae55b32d5fc9bcdbd798
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130733
Commit-Queue: Nate Bosch <nbosch@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2020-01-28 22:39:10 +00:00
Stephen Adams 6b34a69496 [dart2js] Cleanup of a few dynamic calls
Change-Id: I8d616c98fedc12c9c4ee937bf5e6df55e8d9fe2d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133338
Reviewed-by: Mayank Patke <fishythefish@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2020-01-25 02:14:34 +00:00
Stephen Adams 5f780997a2 [dart2js] Redirecting a selector should clear cached element
Change-Id: Ib3b37378df32dfc17449ea127b560e9a0be430fe
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133332
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2020-01-25 02:14:06 +00:00
Mayank Patke 4f516c61c8 [dart2js] Redirect all subclasses of JavaScriptObject.
Change-Id: I23b42b7f4b7632b3ecfc29bfe66bbf25a2b3cf75
Bug: https://github.com/dart-lang/sdk/issues/40296
Fixes: https://github.com/dart-lang/sdk/issues/40296
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133300
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Mayank Patke <fishythefish@google.com>
2020-01-24 20:59:04 +00:00
Stephen Adams 782c83fe5a [dart2js] Fix incorrect SideEffects for native members
Change-Id: Idc99607693cc52550f0012828e93153a002ef718
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133280
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2020-01-24 20:11:23 +00:00
Sigmund Cherem f910a7575f dart2js nnbd setup
- fixes check_nnbd_sdk.dart to run on dart2js patch files
- splits golden file used by that script by target
- adds it to the old-rti bot (until we get the new nnbd bot)
- adds a suite that runs legacy tests in nnbd weak mode

Change-Id: I0a89534dcd1cf7338849d59ab3e5d989d2ecf3d0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/131885
Reviewed-by: Vijay Menon <vsm@google.com>
2020-01-21 06:22:51 +00:00
Sigmund Cherem b74620ba85 Update the nnbd-mode flag name according to the proposed specification.
See: https://github.com/dart-lang/language/pull/779/files

Currently this only handles one or the other configuration via the flag.
We might have to add extra logic to change the default when no flag is provided
depending on how that proposal lands (likely the requirement will be to default
to weak if the main entry point is opted-out, but default to strong otherwise).

Change-Id: Iebf573f251de6a3a9cf93781b76061f41c181f3c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/131761
Reviewed-by: Mayank Patke <fishythefish@google.com>
2020-01-21 06:22:51 +00:00
Jens Johansen 128771af8a [CFE] Version 2 of incremental compiler invalidation strategy
Change-Id: Iff860e2665dee64fc005a50237ae890986ddb0f1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127896
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-01-16 07:50:39 +00:00
Johnni Winther 99e2a348b3 [dart2js,cfe] Move filenames.dart to _fe_analyzer_shared
... and use it fix perf_test on Windows

`currentDirectory` is replaced by `Uri.base` (the former sounded more magical than it was!)

Change-Id: I5fb8dc5dba004ebad221d4b39d213d51964c5ea2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/131622
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2020-01-15 10:12:23 +00:00
Stephen Adams ee3c221a76 [dart2js] Remove unused method
TBR: sigmund@google.com

Change-Id: I8e6d373b3f02f28f5ae92ab6e2d5a4e46c88a8f7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/131709
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2020-01-14 21:26:04 +00:00
Johnni Winther d08f070b28 [cfe] Add canonical way to detect the synthesized redirecting factory field
Change-Id: Ied5ffe786558856c4e63881880cbd19fa0bd6c68
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/131620
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-01-14 09:42:45 +00:00
Mayank Patke aaaaa479f3 [dartjs] Remove unsound contains method from AbstractValueDomain.
Change-Id: Ib84dad1acea6fa5783e9f40788a0cf3b8315368b
Bug: https://github.com/dart-lang/sdk/issues/39287
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130565
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Mayank Patke <fishythefish@google.com>
2020-01-14 00:01:53 +00:00
Sigmund Cherem 8a1a4e75ec Add flag to specify which null-safety semantics to use for codegen
Change-Id: I0abca982a76139a18d186f3a979a34f508d18065
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/131442
Reviewed-by: Mayank Patke <fishythefish@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2020-01-13 20:39:37 +00:00
Sigmund Cherem a92a9f1ba2 (dart2js) initialize the receiver type to its static type during inference
This also reverts the use of indirection for `==` during global inference, as it
turns out the bulk of edges from that selector were added because of the missing
static type data.

Change-Id: I970fea214983c7b2350466fc932ef45d6f7ad96e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130501
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2020-01-11 00:28:31 +00:00
Sigmund Cherem 529913fd39 (dart2js) remove unnecessary uses of receiverMask
Removes uses in static, constructor, super calls, and closures. Also moves the
mask field to the dynamic call site nodes (direct and indirect) to avoid
confusion.

Change-Id: I97d3217c18d15bad7db1723b2a8b20e4dc616f68
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130560
Reviewed-by: Stephen Adams <sra@google.com>
2020-01-11 00:28:31 +00:00
Sigmund Cherem 4bc9c8b52c (dart2js) rename typeOfSend, delete unused typeOfGetter
Change-Id: Ief7421845f89c2f6569230b8497981d96f46ce61
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130520
Reviewed-by: Stephen Adams <sra@google.com>
2020-01-11 00:28:31 +00:00
Stephen Adams e643b423ca [dart2js] Fix over-eager NullCheck removal
Change-Id: I6a6a7ca3bb4621eac35305b96dec6039bc630d9e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130966
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2020-01-10 05:08:07 +00:00
Sigmund Cherem b233061a90 Ensure native methods default to have all side-effects
note: NativeBehavior also has a SideEffect property, which is only used for
foreign helpers. If we add annotations in the future, we could move the effects
there and consume them at this point in inference.
Change-Id: I3e62faa3d80c0ba96a2626972c332c27eb52c142
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130964
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2020-01-10 04:48:47 +00:00
Mayank Patke 7ad7e9aa55 [dart2js] Implement new subtype algorithm structure for DartTypes.
Change-Id: Ib5144c7960dda82a82a16da7cef0b302e34a4b18
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130464
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Mayank Patke <fishythefish@google.com>
2020-01-10 01:20:06 +00:00
Stephen Adams 3947b15b29 [dart2js] nnbd: Implement NullCheck
Use NullCheck for inlining and remove 'isNullCheck' from HFieldGet.

Change-Id: Ic9908739a26367243002c1c71f9193660a8c08e8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130222
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2020-01-09 23:49:37 +00:00
Stephen Adams 395daaa3ec Revert "Remove HInstruction.isControlFlow()"
This reverts commit f6ec68444f.

Reason for revert: the 'isControlFlow()' property did actally have a use orthogonal to 'isJsStatement'.

Original change's description:
> Remove HInstruction.isControlFlow()
> 
> The use of this property was confused.
> It was not clear if it referred to HControlFlow instructions (the last instruction in a block),
> or whether it will be generated as JavaScript containing control-flow.
> 
> We keep isJsStatement() for HInstructions that must be generated in statement position.
> If the instruction has an output, it must be one of the inputs and variable allocation
> makes the input/output available as a JavaScript variable.
> 
> 
> Change-Id: I8018335f42787727b14ae26297fd96fbf52adb7d
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130640
> Reviewed-by: Sigmund Cherem <sigmund@google.com>
> Commit-Queue: Stephen Adams <sra@google.com>

TBR=sra@google.com,sigmund@google.com

Change-Id: I175a1112319fcc839076218f97b75425ee72d51b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130888
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2020-01-09 18:33:56 +00:00
Stephen Adams f6ec68444f Remove HInstruction.isControlFlow()
The use of this property was confused.
It was not clear if it referred to HControlFlow instructions (the last instruction in a block),
or whether it will be generated as JavaScript containing control-flow.

We keep isJsStatement() for HInstructions that must be generated in statement position.
If the instruction has an output, it must be one of the inputs and variable allocation
makes the input/output available as a JavaScript variable.


Change-Id: I8018335f42787727b14ae26297fd96fbf52adb7d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130640
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2020-01-09 03:25:57 +00:00
Mayank Patke 43495c489c [dart2js] Handle nullability correctly in
UnionTypeMask.locateSingleMember().

Change-Id: Ibdffdb958d37cc52792fb47ecaa0dd03edef6db6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130728
Commit-Queue: Mayank Patke <fishythefish@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2020-01-09 02:12:17 +00:00
Dmitry Stefantsov 1eacac48cf [cfe] Make .{thisF,f}unctionType nullability-aware
Change-Id: I4a83f4db7d6412165882e4a1f08c7fded6b9ea3d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130373
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
2020-01-08 11:52:06 +00:00
Johnni Winther 35f14f3eff [dart2js] Remove ConstantExpression/Constructor/Evaluation
Change-Id: Iea3f12e5f14eeff1aa2a57e86a41c65d468dcc86
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129706
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2020-01-08 08:21:59 +00:00
Johnni Winther 64dae246db [dart2js] Use CFE constant evaluator for non-required constants
Change-Id: Id363332caf29e98307553ec048c2dea36c739d95
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129701
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2020-01-08 08:21:59 +00:00
Johnni Winther 4cdf5c77b5 [dart2js] Remove code dependent on non-cfe-constants
Change-Id: Id53d0610f5640d597050cff987f3febe4218fcd3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129700
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2020-01-08 08:21:59 +00:00
Mayank Patke 0c51615dd9 [dart2js] Add TYPE_REF<T>().
Change-Id: I0cb576502575cd67031f3189a11d80e51dd70f0b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125462
Commit-Queue: Mayank Patke <fishythefish@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2020-01-07 19:51:30 +00:00
Mayank Patke 497005dd05 [dart2js] Represent nullability as its own bit on UnionTypeMasks.
Change-Id: I2edab02eb6d611215e490defb6f4919ce19f0f3f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130462
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2020-01-07 19:51:30 +00:00
Sigmund Cherem d735f1f12d (dart2js): enable new-rti by default
This change:
* adds the `--use-old-rti` flag to revert to the old behavior
* enables the new behavior by default
* changes the -rti- builders to run the old rti instead of the new rti
* documents the change in CHANGELOG.md

I've kept around the logic as `useNewRti` to avoid swapping all the conditions
in the compiler.

Change-Id: I773ac33b658cb60f72e0b6beef83375abec31bad
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127492
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Mayank Patke <fishythefish@google.com>
2020-01-04 00:44:25 +00:00
Mayank Patke 4bc01d0dd4 [dart2js] Treat type variable bounds checks as implicit is-tests.
Change-Id: I19e26c1d16f9515b9307073318532c6467af5cf1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130126
Commit-Queue: Mayank Patke <fishythefish@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2020-01-03 21:47:29 +00:00
Johnni Winther e3a20bf361 [analyzer,cfe,dart2js] Support annotated code generation
Add support for generating annotations from actual data using
option -g

Change-Id: I88d9cdb62a38d579234b15097c9e9bb3d81ebe8c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129708
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-01-03 13:57:39 +00:00
Sigmund Cherem 4eae39672a (dart2js) release some data-structures after resolution.
The resolution-world-builder and impact transformer were holding onto a
class-hierarchy-builder in dart2js, which uses a lot of space.

On a some artificial sample apps with thousands of classes this
reduces the overall memory capacity by 25%. On a large internal app
this reduced the overall memory capacity from 13G to 11G.

Change-Id: I5d0d40764649364f2cd2411ef1346812beb411c4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129544
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-01-03 00:24:08 +00:00
Mayank Patke b5bf014eb1 [dart2js] Add redirections for unneeded native classes in ruleset.
Change-Id: Ic29686447c87b7707480a161e76ab500c1455617
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130011
Commit-Queue: Mayank Patke <fishythefish@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2020-01-03 00:11:27 +00:00
Mayank Patke a62e63f0cc [dart2js] Add new RTI impact for is-tests and type checks.
Change-Id: Ib93def2db9b4f0d4ee5aab843c0a894129e773e7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130082
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Mayank Patke <fishythefish@google.com>
2020-01-02 23:58:17 +00:00
Stephen Adams 75fc15c7e1 [dart2js] Use cache in CommonMasks.isInterceptor
Change-Id: I8e9bf8b1c93d7bb03c3a7c4b39d603e056338270
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129310
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2019-12-24 01:29:30 +00:00
Stephen Adams 424ae5c7ef [dart2js] interceptor_simplifier cleanup
Delete some outdated comments and use a set literal.

Change-Id: I60885c1fea5d4d94ce5a405e195ffeaf97e521a4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128313
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2019-12-17 00:56:19 +00:00
Stephen Adams a57a97703a [dart2js] Make repeated 'usedAsVariable' tests faster
This helps SsaInstructionSimplifier time when a method
references a parameter many times.


Change-Id: I6eda0f88690adb9b5fc7427b3bd40ecdc48be88d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128372
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2019-12-13 22:34:52 +00:00
Stephen Adams 11a910323c [dart2js] new-rti: Put sourceInformation on more nodes
Change-Id: I493c8f10d19ec1f1adc92a5d6ba12b3c4685ebf7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128341
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2019-12-13 18:07:19 +00:00
Stephen Adams bf0d1ce497 [dart2js] avoid empty statement in single-unit output
Change-Id: Iadb72a098d357b84a71affd6ccbc1c8d020cab0f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128361
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2019-12-13 18:07:02 +00:00
Johnni Winther 818ec6db92 [cfe] Implement nnbd-top-merge
+ and use nnbd-top-merge and legacy erasure in hierarchy computation

Change-Id: I4bf06ce8d3c68a9926865ebf84b24b4029828d73
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128065
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-12-13 17:19:59 +00:00
Sigmund Cherem 52e0bcce0b (dart2js): escape names when creating tearoff closures
The CFE recently changed the name of the top-level deferred load library method
from `__loadLibrary` to `_#loadLibrary` (see #39682)

We were properly escaping this name when generating the method itself, but we
didn't properly escape the name when creating tearoff closures derived from it.

This is why the issue was not detected earlier.

Change-Id: Ic1487a10f521a86a3466608b1825a2b632a191be
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128260
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2019-12-12 20:37:01 +00:00
Mayank Patke c108ded0ea [dart2js] Remove bad assert from runtime_types_new.
The RTI need computation is primarily focused on classes (as opposed to
types), so it's a poor choice for asserting that a type variable is
needed _in a type term_.

Change-Id: I593105cc092529ef6ac2dfc87f6d8d99ccd4ffb8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128007
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Mayank Patke <fishythefish@google.com>
2019-12-11 19:49:28 +00:00
Mayank Patke 18b2d24887 Revert "[dart2js] Mark native classes as needed if they have new-rti is-tests or"
This reverts commit bcd18e67dc.

Reason for revert: Deoptimizes native classes.

Original change's description:
> [dart2js] Mark native classes as needed if they have new-rti is-tests or
> named type variables.
> 
> Change-Id: I12af7f8595d6580cac4bc98cad5cd7795f6a71ab
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127964
> Commit-Queue: Mayank Patke <fishythefish@google.com>
> Reviewed-by: Sigmund Cherem <sigmund@google.com>

TBR=sra@google.com,sigmund@google.com,fishythefish@google.com

Change-Id: Ia65ea6c32aef5f979d39ef83ab0af68ee503f510
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128011
Reviewed-by: Mayank Patke <fishythefish@google.com>
Commit-Queue: Mayank Patke <fishythefish@google.com>
2019-12-11 01:36:55 +00:00
Mayank Patke bcd18e67dc [dart2js] Mark native classes as needed if they have new-rti is-tests or
named type variables.

Change-Id: I12af7f8595d6580cac4bc98cad5cd7795f6a71ab
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127964
Commit-Queue: Mayank Patke <fishythefish@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2019-12-11 00:04:08 +00:00
Stephen Adams ac3b45708f [dart2js] Ensure native lookup always initialized
The initialization is needed if there are no native classes but there
are JS-interop calls.

Change-Id: I7a66f75087be0200dfcc4ea60aa9b629c446616b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127801
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Mayank Patke <fishythefish@google.com>
2019-12-10 23:56:56 +00:00
Stephen Adams 2a1fadb66c [dart2js] types_propagation - handle HAsCheckSimple
Change-Id: I4bd01b5a06b407fee2418e43c2196746afbe5a64
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127741
Reviewed-by: Mayank Patke <fishythefish@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2019-12-09 22:07:32 +00:00