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

Unified Diff: sdk/lib/_internal/js_runtime/lib/shared/embedded_names.dart

Issue 1249023002: dart2js: support isolates in the startup-emitter. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Fix typo. Created 5 years, 5 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 | « sdk/lib/_internal/js_runtime/lib/js_helper.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sdk/lib/_internal/js_runtime/lib/shared/embedded_names.dart
diff --git a/sdk/lib/_internal/js_runtime/lib/shared/embedded_names.dart b/sdk/lib/_internal/js_runtime/lib/shared/embedded_names.dart
index a42799688da32ec9f858d9a6ebd2c32ba2efec98..a71d7067f924b5539c6d573e1348acd20a1d5bd9 100644
--- a/sdk/lib/_internal/js_runtime/lib/shared/embedded_names.dart
+++ b/sdk/lib/_internal/js_runtime/lib/shared/embedded_names.dart
@@ -41,6 +41,12 @@ const TYPEDEF_TYPE_PROPERTY_NAME = r"$typedefType";
/// native class.
const NATIVE_SUPERCLASS_TAG_NAME = r"$nativeSuperclassTag";
+/// The name of the static-function property name.
+///
+/// This property is set for all tear-offs of static functions, and provides
+/// the static function's unique (potentially minified) name.
+const STATIC_FUNCTION_NAME_PROPERTY_NAME = r'$static_name';
+
/// The name of the embedded global for metadata.
///
@@ -54,10 +60,6 @@ const METADATA = 'metadata';
/// Use [JsBuiltin.getType] instead of directly accessing this embedded global.
const TYPES = 'types';
-/// An embedded global name that can be used to store a mapping from
-/// static function names to dart-closure getters.
-const GLOBAL_FUNCTIONS = 'globalFunctions';
-
/// Returns a function that maps a name of a class to its type.
///
/// This embedded global is used by the runtime when computing the internal
@@ -235,11 +237,30 @@ const DEFERRED_INITIALIZED = 'deferredInitialized';
const PRECOMPILED = 'precompiled';
/// An emitter-internal embedded global. This global is not used by the runtime.
+const FINISHED_CLASSES = 'finishedClasses';
+
+/// An emitter-internal embedded global. This global is not used by the runtime.
///
/// The constant remains in this file to make sure that other embedded globals
/// don't clash with it.
-const FINISHED_CLASSES = 'finishedClasses';
+///
+/// It can be used by the compiler to store a mapping from static function names
+/// to dart-closure getters (which can be useful for
+/// [JsBuiltin.createDartClosureFromNameOfStaticFunction].
+const GLOBAL_FUNCTIONS = 'globalFunctions';
+/// An emitter-internal embedded global. This global is not used by the runtime.
+///
+/// The constant remains in this file to make sure that other embedded globals
+/// don't clash with it.
+///
+/// This embedded global stores a function that returns a dart-closure getter
+/// for a given static function name.
+///
+/// This embedded global is used to implement
+/// [JsBuiltin.createDartClosureFromNameOfStaticFunction], and is only
+/// used with isolates.
+const STATIC_FUNCTION_NAME_TO_CLOSURE = 'staticFunctionNameToClosure';
/// A JavaScript object literal that maps the (minified) JavaScript constructor
/// name (as given by [JsBuiltin.rawRtiToJsConstructorName] to the
@@ -258,6 +279,7 @@ const TYPE_INFORMATION = 'typeInformation';
/// This embedded global is only used by reflection.
const STATICS = 'statics';
+
/// An array of library descriptors.
///
/// The descriptor contains information such as name, uri, classes, ...
@@ -391,4 +413,16 @@ enum JsBuiltin {
/// JS_BUILTIN('returns:var;effects:none;depends:none',
/// JsBuiltin.getType, index);
getType,
+
+ /// Returns a Dart closure for the global function with the given [name].
+ ///
+ /// The [name] is the globally unique (minified) JavaScript name of the
+ /// function (same as the one stored in [STATIC_FUNCTION_NAME_PROPERTY_NAME])
+ ///
+ /// This builtin is used when a static closure was sent to a different
+ /// isolate.
+ ///
+ /// JS_BUILTIN('returns:Function',
+ /// JsBuiltin.createDartClosureFromNameOfStaticFunction, name);
+ createDartClosureFromNameOfStaticFunction,
}
« no previous file with comments | « sdk/lib/_internal/js_runtime/lib/js_helper.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698