Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1042)

Unified Diff: sdk/lib/_internal/sdk_library_metadata/lib/libraries.dart

Issue 1395863002: Introduce the "Embedded" category. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Fix analyzer test Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/compiler/samples/jsonify/jsonify.dart ('k') | tests/compiler/dart2js/analyze_api_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sdk/lib/_internal/sdk_library_metadata/lib/libraries.dart
diff --git a/sdk/lib/_internal/sdk_library_metadata/lib/libraries.dart b/sdk/lib/_internal/sdk_library_metadata/lib/libraries.dart
index 9678dac540c2dd2f7a0b29fa6d8016f095d2cba4..e304873189f17a3b4f1c6d356fefded20eec47cc 100644
--- a/sdk/lib/_internal/sdk_library_metadata/lib/libraries.dart
+++ b/sdk/lib/_internal/sdk_library_metadata/lib/libraries.dart
@@ -14,60 +14,80 @@ const int DART2JS_PLATFORM = 1;
*/
const int VM_PLATFORM = 2;
-/**
- * Mapping of "dart:" library name (e.g. "core") to information about that library.
- * This information is structured such that Dart Editor can parse this file
- * and extract the necessary information without executing it
- * while other tools can access via execution.
- */
-const Map<String, LibraryInfo> LIBRARIES = const {
+/// The contexts that a library can be used from.
+enum Category {
+ /// Indicates that a library can be used in a browser context.
+ client,
+ /// Indicates that a library can be used in a command line context.
+ server,
+ /// Indicates that a library can be used from embedded devices.
+ embedded
+}
+
+Category parseCategory(String name) {
+ switch (name) {
+ case "Client": return Category.client;
+ case "Server": return Category.server;
+ case "Embedded": return Category.embedded;
+ }
+ return null;
+}
+
+/// Mapping of "dart:" library name (e.g. "core") to information about that
+/// library.
+const Map<String, LibraryInfo> libraries = const {
"async": const LibraryInfo(
"async/async.dart",
+ categories: "Client,Server",
maturity: Maturity.STABLE,
dart2jsPatchPath: "_internal/js_runtime/lib/async_patch.dart"),
"_blink": const LibraryInfo(
"_blink/dartium/_blink_dartium.dart",
- category: "Client",
+ categories: "Client",
implementation: true,
documented: false,
platforms: VM_PLATFORM),
"_chrome": const LibraryInfo(
"_chrome/dart2js/chrome_dart2js.dart",
- documented: false,
- category: "Client"),
+ categories: "Client",
+ documented: false),
"collection": const LibraryInfo(
"collection/collection.dart",
+ categories: "Client,Server,Embedded",
maturity: Maturity.STABLE,
dart2jsPatchPath: "_internal/js_runtime/lib/collection_patch.dart"),
"convert": const LibraryInfo(
"convert/convert.dart",
+ categories: "Client,Server",
maturity: Maturity.STABLE,
dart2jsPatchPath: "_internal/js_runtime/lib/convert_patch.dart"),
"core": const LibraryInfo(
"core/core.dart",
+ categories: "Client,Server,Embedded",
maturity: Maturity.STABLE,
dart2jsPatchPath: "_internal/js_runtime/lib/core_patch.dart"),
"developer": const LibraryInfo(
"developer/developer.dart",
+ categories: "Client,Server,Embedded",
maturity: Maturity.UNSTABLE,
dart2jsPatchPath: "_internal/js_runtime/lib/developer_patch.dart"),
"html": const LibraryInfo(
"html/dartium/html_dartium.dart",
- category: "Client",
+ categories: "Client",
maturity: Maturity.WEB_STABLE,
dart2jsPath: "html/dart2js/html_dart2js.dart"),
"html_common": const LibraryInfo(
"html/html_common/html_common.dart",
- category: "Client",
+ categories: "Client",
maturity: Maturity.WEB_STABLE,
dart2jsPath: "html/html_common/html_common_dart2js.dart",
documented: false,
@@ -75,126 +95,129 @@ const Map<String, LibraryInfo> LIBRARIES = const {
"indexed_db": const LibraryInfo(
"indexed_db/dartium/indexed_db_dartium.dart",
- category: "Client",
+ categories: "Client",
maturity: Maturity.WEB_STABLE,
dart2jsPath: "indexed_db/dart2js/indexed_db_dart2js.dart"),
"io": const LibraryInfo(
"io/io.dart",
- category: "Server",
- maturity: Maturity.STABLE,
+ categories: "Server",
dart2jsPatchPath: "_internal/js_runtime/lib/io_patch.dart"),
"isolate": const LibraryInfo(
"isolate/isolate.dart",
+ categories: "Client,Server",
maturity: Maturity.STABLE,
dart2jsPatchPath: "_internal/js_runtime/lib/isolate_patch.dart"),
"js": const LibraryInfo(
"js/dartium/js_dartium.dart",
- category: "Client",
+ categories: "Client",
maturity: Maturity.STABLE,
dart2jsPath: "js/dart2js/js_dart2js.dart"),
"math": const LibraryInfo(
"math/math.dart",
+ categories: "Client,Server,Embedded",
maturity: Maturity.STABLE,
dart2jsPatchPath: "_internal/js_runtime/lib/math_patch.dart"),
"mirrors": const LibraryInfo(
"mirrors/mirrors.dart",
+ categories: "Client,Server",
maturity: Maturity.UNSTABLE,
dart2jsPatchPath: "_internal/js_runtime/lib/mirrors_patch.dart"),
"nativewrappers": const LibraryInfo(
"html/dartium/nativewrappers.dart",
- category: "Client",
+ categories: "Client",
implementation: true,
documented: false,
platforms: VM_PLATFORM),
"typed_data": const LibraryInfo(
"typed_data/typed_data.dart",
+ categories: "Client,Server,Embedded",
maturity: Maturity.STABLE,
dart2jsPatchPath: "_internal/js_runtime/lib/typed_data_patch.dart"),
"_native_typed_data": const LibraryInfo(
"_internal/js_runtime/lib/native_typed_data.dart",
- category: "Internal",
+ categories: "",
implementation: true,
documented: false,
platforms: DART2JS_PLATFORM),
"svg": const LibraryInfo(
"svg/dartium/svg_dartium.dart",
- category: "Client",
+ categories: "Client",
maturity: Maturity.WEB_STABLE,
dart2jsPath: "svg/dart2js/svg_dart2js.dart"),
"web_audio": const LibraryInfo(
"web_audio/dartium/web_audio_dartium.dart",
- category: "Client",
+ categories: "Client",
maturity: Maturity.WEB_STABLE,
dart2jsPath: "web_audio/dart2js/web_audio_dart2js.dart"),
"web_gl": const LibraryInfo(
"web_gl/dartium/web_gl_dartium.dart",
- category: "Client",
+ categories: "Client",
maturity: Maturity.WEB_STABLE,
dart2jsPath: "web_gl/dart2js/web_gl_dart2js.dart"),
"web_sql": const LibraryInfo(
"web_sql/dartium/web_sql_dartium.dart",
- category: "Client",
+ categories: "Client",
maturity: Maturity.WEB_STABLE,
dart2jsPath: "web_sql/dart2js/web_sql_dart2js.dart"),
"_internal": const LibraryInfo(
"internal/internal.dart",
- category: "Internal",
+ categories: "",
documented: false,
dart2jsPatchPath:
"_internal/js_runtime/lib/internal_patch.dart"),
"_js_helper": const LibraryInfo(
"_internal/js_runtime/lib/js_helper.dart",
- category: "Internal",
+ categories: "",
documented: false,
platforms: DART2JS_PLATFORM),
"_interceptors": const LibraryInfo(
"_internal/js_runtime/lib/interceptors.dart",
- category: "Internal",
+ categories: "",
documented: false,
platforms: DART2JS_PLATFORM),
"_foreign_helper": const LibraryInfo(
"_internal/js_runtime/lib/foreign_helper.dart",
- category: "Internal",
+ categories: "",
documented: false,
platforms: DART2JS_PLATFORM),
"_isolate_helper": const LibraryInfo(
"_internal/js_runtime/lib/isolate_helper.dart",
- category: "Internal",
+ categories: "",
documented: false,
platforms: DART2JS_PLATFORM),
"_js_mirrors": const LibraryInfo(
"_internal/js_runtime/lib/js_mirrors.dart",
- category: "Internal",
+ categories: "",
documented: false,
platforms: DART2JS_PLATFORM),
"_js_names": const LibraryInfo(
"_internal/js_runtime/lib/js_names.dart",
- category: "Internal",
+ categories: "",
documented: false,
platforms: DART2JS_PLATFORM),
"_js_primitives": const LibraryInfo(
"_internal/js_runtime/lib/js_primitives.dart",
- category: "Internal",
+ categories: "",
documented: false,
platforms: DART2JS_PLATFORM),
@@ -202,25 +225,25 @@ const Map<String, LibraryInfo> LIBRARIES = const {
// different platform.
"_mirror_helper": const LibraryInfo(
"_internal/js_runtime/lib/mirror_helper.dart",
- category: "Internal",
+ categories: "",
documented: false,
platforms: DART2JS_PLATFORM),
"_js_embedded_names": const LibraryInfo(
"_internal/js_runtime/lib/shared/embedded_names.dart",
- category: "Internal",
+ categories: "",
documented: false,
platforms: DART2JS_PLATFORM),
"_async_await_error_codes": const LibraryInfo(
"_internal/js_runtime/lib/shared/async_await_error_codes.dart",
- category: "Internal",
+ categories: "",
documented: false,
platforms: DART2JS_PLATFORM),
"_metadata": const LibraryInfo(
"html/html_common/metadata.dart",
- category: "Internal",
+ categories: "",
documented: false,
platforms: DART2JS_PLATFORM),
};
@@ -236,11 +259,10 @@ class LibraryInfo {
final String path;
/**
- * The category in which the library should appear in the editor
- * (e.g. "Shared", "Client", "Server", ...).
- * If a category is not specified it defaults to "Shared".
+ * The categories in which the library can be used encoded as a
+ * comma-separated String.
*/
- final String category;
+ final String _categories;
/**
* Path to the dart2js library's *.dart file relative to this file
@@ -282,16 +304,38 @@ class LibraryInfo {
final Maturity maturity;
const LibraryInfo(this.path, {
- this.category: "Shared",
+ String categories: "",
this.dart2jsPath,
this.dart2jsPatchPath,
this.implementation: false,
this.documented: true,
this.maturity: Maturity.UNSPECIFIED,
- this.platforms: DART2JS_PLATFORM | VM_PLATFORM});
+ this.platforms: DART2JS_PLATFORM | VM_PLATFORM})
+ : _categories = categories;
bool get isDart2jsLibrary => (platforms & DART2JS_PLATFORM) != 0;
bool get isVmLibrary => (platforms & VM_PLATFORM) != 0;
+
+ /**
+ * The categories in which the library can be used.
+ *
+ * If no categories are specified, the library is internal and can not be
+ * loaded by user code.
+ */
+ List<Category> get categories {
+ // `"".split(,)` returns [""] not [], so we handle that case separately.
+ if (_categories == "") return const <Category>[];
+ return _categories.split(",").map(parseCategory).toList();
+ }
+
+ bool get isInternal => categories.isEmpty;
+
+ /// The original "categories" String that was passed to the constructor.
+ ///
+ /// Can be used to construct a slightly modified copy of this LibraryInfo.
+ String get categoriesString {
+ return _categories;
+ }
}
« no previous file with comments | « pkg/compiler/samples/jsonify/jsonify.dart ('k') | tests/compiler/dart2js/analyze_api_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698