8510f27d37
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>
The frontend_server package is used by both the flutter command line tool and the frontend_server_client package (used by webdev and package:test).
API Stability
Changes to the command line API or behavior should be tested against the follwing test suites (in addition to normal HHH testing):
- flutter_tools: https://github.com/flutter/flutter/tree/master/packages/flutter_tools
- frontend_server_client: https://github.com/dart-lang/webdev/tree/master/frontend_server_client
Otherwise these changes will need to be carefully coordinated with the flutter tooling and frontend_server_client teams.
This API stability does not cover any of the source code APIs.
Stable subset
- The frontend_server kernel compilation and expression evaluation for kernel should be considered "stable".
- The frontend_server JavaScript compilation is semi-stable, but clients should anticipate coordinated breaking changes in the future.
- The frontend_server JavaScript expression evaluation is experimental and is expected to change significantly from Dec 2020 through the end of 2021.
- Specific flags like the --flutter-widget-cache may be added for experimentation and should not be considered stable.