Index: sdk/lib/_internal/compiler/js_lib/shared/embedded_names.dart |
diff --git a/sdk/lib/_internal/compiler/js_lib/shared/embedded_names.dart b/sdk/lib/_internal/compiler/js_lib/shared/embedded_names.dart |
index dff276d054e0b804629d243af8812a2e080daa7e..89768733d665fc4eea654dada17e79dbe33fbd93 100644 |
--- a/sdk/lib/_internal/compiler/js_lib/shared/embedded_names.dart |
+++ b/sdk/lib/_internal/compiler/js_lib/shared/embedded_names.dart |
@@ -87,3 +87,41 @@ enum JsGetName { |
CALL_NAME_PROPERTY, |
DEFERRED_ACTION_PROPERTY |
} |
+ |
+enum JsBuiltin { |
+ /// Returns the JavaScript constructor function for Dart's Object class. |
+ /// This can be used for type tests, as in |
+ /// |
+ /// var constructor = JS_BUILTIN('', JsBuiltin.dartObjectContructor); |
+ /// if (JS('bool', '# instanceof #', obj, constructor)) |
+ /// ... |
+ dartObjectConstructor, |
+ |
+ /// Returns true if the given type is a function type. Returns false for |
+ /// the one `Function` type singleton. (See [isFunctionTypeSingleton]). |
+ /// |
+ /// JS_BUILTIN('bool', JsBuiltin.isFunctionType, o) |
+ isFunctionType, |
+ |
+ /// Returns true if the given type is the `Function` type literal. |
+ /// |
+ /// JS_BUILTIN('returns:bool;effects:none;depends:none', |
+ /// JsBuiltin.isFunctionTypeLiteral, type); |
+ isFunctionTypeLiteral, |
+ |
+ /// Returns a new function type object. |
+ /// |
+ /// JS_BUILTIN('=Object', JsBuiltin.createFunctionType) |
+ createFunctionType, |
+ |
+ /// Returns the class name of the given type. |
+ /// |
+ /// JS_BUILTIN('String', JsBuiltin.typeName, type) |
+ typeName, |
+ |
+ /// Returns the raw runtime type of the given object. The given argument |
+ /// [o] should be the interceptor (for non-Dart objects). |
+ /// |
+ /// JS_BUILTIN('', JsBuiltin.rawRuntimeType, o) |
+ rawRuntimeType, |
+} |