Commit Graph

71 Commits

Author SHA1 Message Date
Nate Biggs 75be947317 [dart2js] Do some simple null safety clean ups.
- Mostly just removes asserts that are redundant with sound null safety. - Moves 3 classes `ClassRelation`, `DataSink` and `DataSource` back into their original files.
- Removes StrongModeConstraintInterface which was only needed for migration.
- Adds a couple simple late finals.

Change-Id: I921ac84a22cebd509f629f88be6bbb19d3c0a9e3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289720
Reviewed-by: Mayank Patke <fishythefish@google.com>
Commit-Queue: Nate Biggs <natebiggs@google.com>
2023-03-20 19:14:27 +00:00
Nate Biggs af1c0fe099 [dart2js] Remove usages of FunctionSet from experimental inferrer.
FunctionSet is lazily initialized in the closed world. After this change it is never initialized during global inference. However, it is still used in SSA so we cannot fully remove it given these changes (even after linearized graph becomes the main algorithm).

Also remove unused methods/logic from FunctionSet itself. These are not called from anywhere in the compiler.

Change-Id: I59949499bf70164ff1f879c6ba04a585797067a2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/288680
Reviewed-by: Mayank Patke <fishythefish@google.com>
Commit-Queue: Nate Biggs <natebiggs@google.com>
2023-03-14 20:25:58 +00:00
Mayank Patke bff851ce7e [dart2wasm] Refactor ConstConditionalSimplifier and related classes
This will allow them to be used with other compiler backends, including
dart2wasm.

Change-Id: I42182545eeb035af8a3a6e2eba209ba2601a52d0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/281923
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Mayank Patke <fishythefish@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jackson Gardner <jacksongardner@google.com>
2023-02-23 18:54:29 +00:00
Nate Biggs 545ee13cd4 [dart2js] Clean up usages of 'new' keyword.
Change-Id: I193e19581d29a9c4b343ae0a681d1ff530cfce1d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/281309
Commit-Queue: Nate Biggs <natebiggs@google.com>
Reviewed-by: Mayank Patke <fishythefish@google.com>
2023-02-14 02:36:38 +00:00
Mayank Patke 397ed8673c [dart2js] Add phase 1 kernel transformer to simplify const conditionals.
Suppose we have code like

if (isDevMode) {
  // do foo
} else {
  // do bar
}

where isDevMode is const (or can be evaluated as const). In particular,
isDevMode can be controlled by compile-time options, like
bool.fromEnvironment.

We currently eliminate the dead branch during SSA, but that means we do
the work of compiling dead code in the previous phases. Instead, we can
recognize that the condition is const (or effectively const) and
eliminate the dead AST subtree directly.

Change-Id: Ia91da5ebc7fa496a1b963308c6e02d572cab936e
Bug: b/254543452
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/270281
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2023-02-07 20:07:57 +00:00
Nate Biggs 3257cc8f1d [dart2js] Migrate test/model for null safety migration. (2/2)
Change-Id: Ida98d003243a27368b5cb4ba961d4cf440883cb0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/280220
Reviewed-by: Mayank Patke <fishythefish@google.com>
Commit-Queue: Nate Biggs <natebiggs@google.com>
2023-02-02 04:21:58 +00:00
Nate Biggs f3927aa025 [dart2js] Migrate test/model for null safety migration. (1/2)
Change-Id: I558a5396f791c420856ce24c1571e9d69b2ac038
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279841
Reviewed-by: Mayank Patke <fishythefish@google.com>
2023-02-02 04:21:58 +00:00
Nate Biggs be69e03b95 [dart2js] Migrate test/helpers for null safety migration.
Change-Id: I4ba20f5774838f3b318f108f35df655bc259c42e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279240
Reviewed-by: Mayank Patke <fishythefish@google.com>
2023-01-23 06:02:51 +00:00
Johnni Winther 21cc667dca [Reland][cfe] Support external constructor with final fields
This adds support for having a final field and an external constructor
without error, assuming that the external constructor initializes the
final field. This supports the inline class with external members use
case.

Change-Id: I33b78275e967636ed0697d17f7921e9eee30401b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279095
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2023-01-17 17:29:28 +00:00
Johnni Winther deaf9ce16e Revert "[cfe] Support external constructor with final fields"
This reverts commit c70d266270.

Reason for revert: Crash detected

Original change's description:
> [cfe] Support external constructor with final fields
>
> This adds support for having a final field and an external constructor
> without error, assuming that the external constructor initializes the
> final field. This supports the inline class with external members use
> case.
>
> Change-Id: Ie297ccc39b0a0731c146f9ac0698bba3fd83bfeb
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/278502
> Reviewed-by: Srujan Gaddam <srujzs@google.com>
> Commit-Queue: Johnni Winther <johnniwinther@google.com>
> Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: I339d9008cb84cda8dc20f29d1e103289bb5596b0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/278820
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Ivan Inozemtsev <iinozemtsev@google.com>
Auto-Submit: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Commit-Queue: Srujan Gaddam <srujzs@google.com>
2023-01-10 17:20:01 +00:00
Johnni Winther c70d266270 [cfe] Support external constructor with final fields
This adds support for having a final field and an external constructor
without error, assuming that the external constructor initializes the
final field. This supports the inline class with external members use
case.

Change-Id: Ie297ccc39b0a0731c146f9ac0698bba3fd83bfeb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/278502
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
2023-01-06 12:25:21 +00:00
Josh Soref 419df9d3e5 Spelling pkg compiler
Closes https://github.com/dart-lang/sdk/pull/50774

GitOrigin-RevId: 41028b5de4e2e0719e08f180e32ccc1f2bef8dac
Change-Id: I5e6675d490a44feb0ea008582879266e421939f6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/276561
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
Commit-Queue: Erik Ernst <eernst@google.com>
2022-12-20 13:06:29 +00:00
Josh Soref f9806280de [dart2js] Correct comment
Closes https://github.com/dart-lang/sdk/pull/50752

GitOrigin-RevId: 3a3b147a51994827fdee293a42661bde02a35ec6
Change-Id: I2633abdb469ae666820447af21a1bbe78f7466ab
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275985
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Slava Egorov <vegorov@google.com>
2022-12-16 09:04:59 +00:00
Nate Biggs 975cb8a9cb [dart2js] Move memory compiler out of test folder.
Change-Id: I4fd3b1fa91582ce19fb16a61a81013d694e0cd59
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/270540
Commit-Queue: Nate Biggs <natebiggs@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2022-11-18 02:59:15 +00:00
Nate Biggs 271f72422e [dart2js] Add live abstract members into closed world.
Effects of this change are minimal on a large application:
- ~9100 new members being tracked.
- +500KB closed world serialized output (.3% increase)
- No discernible difference in closed world runtime
- Heap space in global inference after closed world deserialization increase is <1MB.
- No change in JS output

These abstract members will be used by the new hierarchy-based dynamic call type graph linearization.

Change-Id: I4ce56d12e039effe0a855fd23f2a5e69d0847025
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/264900
Reviewed-by: Mayank Patke <fishythefish@google.com>
Commit-Queue: Nate Biggs <natebiggs@google.com>
2022-11-15 04:52:01 +00:00
Nate Biggs 56225add77 [dart2js] Clean up js_backend/namer migration files.
Change-Id: I16f4797973d344868943b04f53d86973c163706a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/268404
Commit-Queue: Nate Biggs <natebiggs@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2022-11-08 00:59:20 +00:00
Nate Biggs 3ed70b013b [dart2js] Remove JClosedWorld interface and use only implementer, JsClosedWorld, everywhere.
Change-Id: I9641033aa3a93a28ee428ddc63aa7fc337e5468a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/267802
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2022-11-04 15:11:27 +00:00
Nate Biggs 902e5d030e [dart2js] Remove isConstructor from entity model in favor of type test.
Change-Id: Id082b573478e3d916bb450b12a9d57f3a852f158
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/267800
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Nate Biggs <natebiggs@google.com>
2022-11-03 20:48:12 +00:00
Nate Biggs 863ae7b60e [dart2js] Remove isField from entity model in favor of type test.
Change-Id: I94d854ea34f610f0212bc7b1abeedfa90c67968d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/267741
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2022-11-03 20:48:12 +00:00
Nate Biggs 8dea42e4e7 [dart2js] Clean up kernel/element_map and kernel/env migration files.
Change-Id: I8312642ba80176c7c298bebce82005be0a3a07b0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/267141
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Nate Biggs <natebiggs@google.com>
2022-11-01 21:11:12 +00:00
Sigmund Cherem 25b93827c5 [dart2js] use namer_interfaces.dart in more dependencies
Change-Id: Ifc0c24cc5ff22ef309379610c40dbe24a26590dc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/266726
Reviewed-by: Mayank Patke <fishythefish@google.com>
2022-11-01 17:51:18 +00:00
Ahmed Ashour 5fe480b788 Fix typos
Fix #49864

TEST=ci

Change-Id: I9a7e06d604cd0b4f56f2ac229ab3fc9f01cb9d76
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256824
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
Reviewed-by: Liam Appelbe <liama@google.com>
Reviewed-by: Mayank Patke <fishythefish@google.com>
2022-09-16 19:35:00 +00:00
Michael Thomsen 17972ddce5 Move swarm to a test folder to avoid confusion that this might
be a customer facing app sample.

Bug: None
Change-Id: I94944d4d5677b08eaf6c27ecf26e8503d8eae38f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255255
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Jonas Termansen <sortie@google.com>
Commit-Queue: Michael Thomsen <mit@google.com>
2022-09-07 14:08:18 +00:00
Lasse R.H. Nielsen 8a883fa54d Change : to = for default values in pkg.
Leaves some in parser test:
 pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart

TEST=Refactoring, covered by existing tests.

Change-Id: I7a83ef95df3cbd283878b3685b5c747bd89a1b16
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256125
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Lasse Nielsen <lrn@google.com>
2022-08-24 15:57:16 +00:00
Johnni Winther 50ac2500a1 [dart2js] Handle private names correctly in K/J-model
The library wasn't taken into account when handling computing class
members in the K/J-model and not handled correctly when computing
applicable selectors. This made dart2js unable to handle members with
a name private to a different library than the enclosing library.

Fixes #33732
Fixes #49226

Change-Id: I5ba143d87662bbd42e0ff02355054e4a937be8f8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/252665
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2022-08-11 06:56:32 +00:00
Nate Biggs c084ebb430 [dart2js] Prepare native_data.dart for nnbd migration
Change-Id: I9179dd5ac7feb6790c7d0fe3e3aab7213d489424
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/249960
Commit-Queue: Nate Biggs <natebiggs@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2022-06-30 23:11:03 +00:00
Jens Johansen 3c8a679b46 [CFE] Handle unevaluated constants differently in constant evaluator
This for instance avoids an exponential blowup that would previously
have occurred in certain cases.

Change-Id: I258d8153e75f7059bca346826b5dec62cc1bac84
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/249000
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Joshua Litt <joshualitt@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2022-06-22 08:51:04 +00:00
Johnni Winther 7900e9071a [cfe] Remove support for old super-mixins feature
This CL remove the support for mixing in classes that don't extend
Object. An error has been report by the analyzer for some time and
now also by the CFE.

This puts the breaking change https://github.com/dart-lang/sdk/issues/48167 into effect.

TEST=pkg/front_end/testcases/general/issue48167.dart

Change-Id: Ia7715a27dc1aa18a7c85b24ed86d19a91b6924d5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/247551
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2022-06-13 15:30:57 +00:00
Nate Biggs a5042374a0 [dart2js] Migrate more files to nnbd.
Change-Id: I9a7e3fc95659fee3bfd459f49de736f83bc48654
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/245922
Reviewed-by: Joshua Litt <joshualitt@google.com>
Commit-Queue: Nate Biggs <natebiggs@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2022-05-26 15:17:49 +00:00
Nate Biggs af589a8f6b [dart2js] Migrate abstract_value_domain to nnbd
Change-Id: Ic4258db7fcf29d23607d392e5ed2e6672221f6c7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/244700
Commit-Queue: Nate Biggs <natebiggs@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2022-05-17 03:04:25 +00:00
Stephen Adams b314f3f5ea [dart2js] Migrate selector.dart and call_structure.dart
Change-Id: Idd3e326fb974118d593b1737f898ac78567a054c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/242301
Reviewed-by: Joshua Litt <joshualitt@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2022-04-26 03:49:13 +00:00
Stephen Adams 35c78ac66b [dart2js] Migrate more of entities.dart
`entities.dart` is now a migrated library.
The definitions formerly moved to `entities_migrated.dart` have been
moved back.

There are a few methods of ParameterStructure that can't yet be
migrated.

The unmigrated methods of ParameterStructure have been moved to static
methods of ParameterStructureMethods and static extension methods in
`entities_parameter_structure_methods.dart`.

These methods will eventually be moved back into ParameterStructure.

The long file name is chosen to sort next to `entities.dart`.

Change-Id: Ie9e798315287b196db694fe66c323a92bc1a1f1b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/241701
Reviewed-by: Joshua Litt <joshualitt@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2022-04-20 04:46:57 +00:00
Joshua Litt 7516ec28b9 [dart2js] Remove CodeLocation.
Per offline discussion, this, and the hints it suppresses, aren't really
useful, so it makes sense to remove them.

This suppression logic today appears to only affect hints and warnings
that come from Dart2js. Today the logic seems to assume that all
non-spannable elements are in user code(i.e. CFE messages). Meaning
today this is only suppressing a very limited set of hints from Dart2js
that should all probably be lints, if they aren't already(Dart2js
doesn't seem to use warn as far as I can tell).

Change-Id: Idc663e48d7dc67c92ed26b007a75f002853ac827
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/238924
Reviewed-by: Mayank Patke <fishythefish@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
2022-03-31 01:16:40 +00:00
Joshua Litt c2a63d7cc8 [dart2js] Add a 'modular analysis' phase.
Change-Id: Idda666911a15e1726a15db65eb0cce2733851fdc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/237633
Reviewed-by: Mark Zhou <markzipan@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
2022-03-17 19:06:16 +00:00
Joshua Litt 9f8feed92a [dart2js] Inline enqueue creation into compiler.
Also removes a few minor dead methods, and cleans up EnqueueTask which
can now just be a GenericTask.

Change-Id: Ib1614774df740739762f943df0a7bf901f7fdfc4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/233721
Reviewed-by: Mark Zhou <markzipan@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
2022-02-23 01:51:04 +00:00
Joshua Litt f788ab8c89 [dart2js] Inline Native*Impl into Native*.
This CL inlines NativeBasicDataImpl, NativeDataImpl, and their
respective builder impls into their respective interfaces.

Change-Id: I40c02e0d4cbe1bc66f166db1b998726082be0606
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/233725
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
2022-02-22 23:34:12 +00:00
Joshua Litt 21b93bcf9f [dart2js] Cleanup some indirection in element_map_impl and friends.
1) KernelElementMapImpl is inlined into KernelElementMap.
2) KernelBehaviorBuilder is inlined into BehaviorBuilder.
3) KernelClassQueries / ClassQueries are removed.
4) NativeMemberResolver is inlined into KernelNativeMemberResolver.
5) NativeClassFinder is inlined into BaseNativeClassFinder.

Change-Id: I04d14a64155de54aafc2abe8579304c018ad9490
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/233658
Reviewed-by: Mayank Patke <fishythefish@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
2022-02-22 20:35:32 +00:00
Joshua Litt 934ad4753d [dart2js] Elide a number of interfaces.
Inlined KClosedWorldImpl into KClosedWorld
Inlined ResolutionWorldBuilderImpl into ResolutionWorldBuilder

Change-Id: Id88abac06f7cd279413ae56ea8b021b349009649
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/233655
Reviewed-by: Mark Zhou <markzipan@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
2022-02-19 02:49:52 +00:00
Joshua Litt 1e799e1580 [dart2js] Merge CompilerImpl into Compiler.
This indirection is no longer needed.

Change-Id: Ic917ec758dc8a8a648fea9f74ddf75f47b6b9d4d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/232485
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
2022-02-14 20:42:50 +00:00
Joshua Litt 663d682ab3 [dart2js] Remove pkg/compiler/lib/src/helpers.
Most of these tools have been replaced by better tools.

We may re-add some of these in the future, but if so then maybe they should live in pkg/compiler/tool.

Change-Id: I673dd27dafad59cc01b0be0705c2032c11fca713
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/231980
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
2022-02-09 17:21:46 +00:00
Nate Bosch 33e174084a Replace Uri.scheme == with Uri.isScheme
Use `hasScheme` in place of comparing against the empty string, and
`isScheme` to compare against all other schemes.

TEST=No behavior changes.

Change-Id: Ifc9fd13c6cf37933ebd4a754c4b500dedbcb291b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/231185
Reviewed-by: Kevin Moore <kevmoo@google.com>
Commit-Queue: Nate Bosch <nbosch@google.com>
2022-02-08 21:38:57 +00:00
Joshua Litt 85aed03894 [dart2js] Simplify NoSuchMethod* classes.
Change-Id: If41acd2a3835ef4d3db0999fb7b9340c64c98f13
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/231383
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
2022-02-07 17:20:35 +00:00
Joshua Litt 58e577da15 [dart2js] Move common_elements.dart to common/elements.dart.
Change-Id: Idaed02bb747670413f63e7f7b0797eb591e12f57
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/231523
Reviewed-by: Mark Zhou <markzipan@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
2022-02-03 21:21:39 +00:00
Johnni Winther 8510f27d37 [cfe] Change encoding of supported dart: libraries
This CL changes the way dart: libraries are considered supported when
used in conditional imports or bool.fromEnvironment constant using
the "dart.library.*" values.

Library nodes now has an isUnsupported flag which is set according to
the "supported" property in the libraries specification. Furthermore
the Target now supplies a DartLibrarySupport interface that allows
targets to override whether dart: libraries are unsupported.

This allows the JIT/AOT to use the same platform file but still
consider dart:mirrors unsupported in AOT mode, and dart2js to consider
the internal library `dart:_dart2js_runtime_metrics` supported.

Furthermore, the internal handling is changed so that condition imports
and bool.fromEnvironments constants are computed through the same logic
for "dart.library.*" values, avoiding the need for passing these values
through the environment.

TEST=pkg/front_end/testcases/general/supported_libraries/main

Closes https://github.com/dart-lang/sdk/issues/48057
Closes https://github.com/dart-lang/sdk/issues/47814
Closes https://github.com/dart-lang/sdk/issues/47243
Closes https://github.com/dart-lang/sdk/issues/32657
Closes https://github.com/dart-lang/sdk/issues/36460

Change-Id: Ie8f8dff99167de64ced51b71d89918bf0f3bbd13
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/227020
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
2022-01-11 14:52:38 +00:00
Johnni Winther 28e8f04f8e [cfe] Export tear-off lowering predicates in api_prototype
Change-Id: Iba3d68af13f866500015bf755dfca27add8c59cd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/221628
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
2021-12-01 14:21:38 +00:00
Stephen Adams 9fc16a788d [dart2js] Fix dart2js cfe_annotations_test
Change-Id: Ic19cccf08009f77d91771a3e8cb3caee71bb548b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/221021
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2021-11-23 18:47:41 +00:00
Joshua Litt 7e76dd6b28 [dart2js] Select main method manually when compiling from dill.
Change-Id: I45ddca41b9bff49606e49dfd9b6110b7fc7f2283
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215683
Commit-Queue: Joshua Litt <joshualitt@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2021-10-15 16:40:29 +00:00
Kevin Moore b85488cedd pkg:compiler - enable and fix null operator lints
Change-Id: I5aaef20fdd61fd6ac9dc69978111fb680c7f99e5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/211624
Auto-Submit: Kevin Moore <kevmoo@google.com>
Commit-Queue: Kevin Moore <kevmoo@google.com>
Reviewed-by: Joshua Litt <joshualitt@google.com>
2021-09-24 23:07:19 +00:00
Kevin Moore 70533ae7fa pkg:compiler - enable and fix prefer_final_fields lint
Change-Id: I042f6047c2c10490121398027489217c6291425d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/211622
Auto-Submit: Kevin Moore <kevmoo@google.com>
Commit-Queue: Kevin Moore <kevmoo@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2021-09-24 21:37:39 +00:00
Stephen Adams 763988d7f4 [dart2js] Rename Setlet/Maplet.from to .of for consistency with Set/Map
Modernize setlet and maplet unit tests.

Change-Id: I8508e9e48dc80e1a00b984c7ac82e1d57278ad6e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/212872
Reviewed-by: Mayank Patke <fishythefish@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2021-09-12 07:52:19 +00:00