mirror of https://github.com/dart-lang/sdk.git
Browse Source
Creates a new 'dart:_js_shared_embedded_names' library for the names accessed from the shared 'dart:_rti' library. Migrate all of the shared symbols and uses to the new location. Change-Id: Iaa72c4522888ad630782b921b0b70d7a2626d1b9 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/241507 Reviewed-by: Sigmund Cherem <sigmund@google.com> Reviewed-by: Mayank Patke <fishythefish@google.com> Commit-Queue: Nicholas Shahan <nshahan@google.com>pull/49158/head

committed by
Commit Bot

19 changed files with 277 additions and 266 deletions
@ -0,0 +1,116 @@ |
|||
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file |
|||
// for details. All rights reserved. Use of this source code is governed by a |
|||
// BSD-style license that can be found in the LICENSE file. |
|||
|
|||
// @dart=2.12 |
|||
|
|||
/// A 'Universe' object used by 'dart:_rti'. |
|||
const RTI_UNIVERSE = 'typeUniverse'; |
|||
|
|||
/// An embedded global that contains the property used to store type information |
|||
/// on JavaScript Array instances. This is a Symbol (except for IE11, where is |
|||
/// is a String). |
|||
const ARRAY_RTI_PROPERTY = 'arrayRti'; |
|||
|
|||
/// A list of types used in the program e.g. for reflection or encoding of |
|||
/// function types. |
|||
/// |
|||
/// Use [JsBuiltin.getType] instead of directly accessing this embedded global. |
|||
const TYPES = 'types'; |
|||
|
|||
/// Names that are supported by [JS_GET_NAME]. |
|||
// TODO(herhut): Make entries lower case (as in fields) and find a better name. |
|||
enum JsGetName { |
|||
GETTER_PREFIX, |
|||
SETTER_PREFIX, |
|||
CALL_PREFIX, |
|||
CALL_PREFIX0, |
|||
CALL_PREFIX1, |
|||
CALL_PREFIX2, |
|||
CALL_PREFIX3, |
|||
CALL_PREFIX4, |
|||
CALL_PREFIX5, |
|||
CALL_CATCH_ALL, |
|||
REQUIRED_PARAMETER_PROPERTY, |
|||
DEFAULT_VALUES_PROPERTY, |
|||
CALL_NAME_PROPERTY, |
|||
DEFERRED_ACTION_PROPERTY, |
|||
|
|||
/// Prefix used for generated type test property on classes. |
|||
OPERATOR_IS_PREFIX, |
|||
|
|||
/// Name used for generated function types on classes and methods. |
|||
SIGNATURE_NAME, |
|||
|
|||
/// Name of JavaScript property used to store runtime-type information on |
|||
/// instances of parameterized classes. |
|||
RTI_NAME, |
|||
|
|||
/// String representation of the type of the Future class. |
|||
FUTURE_CLASS_TYPE_NAME, |
|||
|
|||
/// Field name used for determining if an object or its interceptor has |
|||
/// JavaScript indexing behavior. |
|||
IS_INDEXABLE_FIELD_NAME, |
|||
|
|||
/// String representation of the type of the null class. |
|||
NULL_CLASS_TYPE_NAME, |
|||
|
|||
/// String representation of the type of the object class. |
|||
OBJECT_CLASS_TYPE_NAME, |
|||
|
|||
/// String representation of the type of the List class. |
|||
LIST_CLASS_TYPE_NAME, |
|||
|
|||
/// Property name for Rti._as field. |
|||
RTI_FIELD_AS, |
|||
|
|||
/// Property name for Rti._is field. |
|||
RTI_FIELD_IS, |
|||
} |
|||
|
|||
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.dartObjectConstructor); |
|||
/// if (JS('bool', '# instanceof #', obj, constructor)) |
|||
/// ... |
|||
dartObjectConstructor, |
|||
|
|||
/// Returns the JavaScript constructor function for the runtime's Closure |
|||
/// class, the base class of all closure objects. This can be used for type |
|||
/// tests, as in |
|||
/// |
|||
/// var constructor = JS_BUILTIN('', JsBuiltin.dartClosureConstructor); |
|||
/// if (JS('bool', '# instanceof #', obj, constructor)) |
|||
/// ... |
|||
dartClosureConstructor, |
|||
|
|||
/// Returns true if the given type is a type argument of a js-interop class |
|||
/// or a supertype of a js-interop class. |
|||
/// |
|||
/// JS_BUILTIN('bool', JsBuiltin.isJsInteropTypeArgument, o) |
|||
isJsInteropTypeArgument, |
|||
|
|||
/// Returns the metadata of the given [index]. |
|||
/// |
|||
/// JS_BUILTIN('returns:var;effects:none;depends:none', |
|||
/// JsBuiltin.getMetadata, index); |
|||
getMetadata, |
|||
|
|||
/// Returns the type of the given [index]. |
|||
/// |
|||
/// JS_BUILTIN('returns:var;effects:none;depends:none', |
|||
/// JsBuiltin.getType, index); |
|||
getType, |
|||
} |
|||
|
|||
/// Names of fields of the Rti Universe object. |
|||
class RtiUniverseFieldNames { |
|||
static String evalCache = 'eC'; |
|||
static String typeRules = 'tR'; |
|||
static String erasedTypes = 'eT'; |
|||
static String typeParameterVariances = 'tPV'; |
|||
static String sharedEmptyArray = 'sEA'; |
|||
} |
@ -0,0 +1,116 @@ |
|||
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file |
|||
// for details. All rights reserved. Use of this source code is governed by a |
|||
// BSD-style license that can be found in the LICENSE file. |
|||
|
|||
// @dart=2.12 |
|||
|
|||
/// A 'Universe' object used by 'dart:_rti'. |
|||
const RTI_UNIVERSE = 'typeUniverse'; |
|||
|
|||
/// An embedded global that contains the property used to store type information |
|||
/// on JavaScript Array instances. This is a Symbol (except for IE11, where is |
|||
/// is a String). |
|||
const ARRAY_RTI_PROPERTY = 'arrayRti'; |
|||
|
|||
/// A list of types used in the program e.g. for reflection or encoding of |
|||
/// function types. |
|||
/// |
|||
/// Use [JsBuiltin.getType] instead of directly accessing this embedded global. |
|||
const TYPES = 'types'; |
|||
|
|||
/// Names that are supported by [JS_GET_NAME]. |
|||
// TODO(herhut): Make entries lower case (as in fields) and find a better name. |
|||
enum JsGetName { |
|||
GETTER_PREFIX, |
|||
SETTER_PREFIX, |
|||
CALL_PREFIX, |
|||
CALL_PREFIX0, |
|||
CALL_PREFIX1, |
|||
CALL_PREFIX2, |
|||
CALL_PREFIX3, |
|||
CALL_PREFIX4, |
|||
CALL_PREFIX5, |
|||
CALL_CATCH_ALL, |
|||
REQUIRED_PARAMETER_PROPERTY, |
|||
DEFAULT_VALUES_PROPERTY, |
|||
CALL_NAME_PROPERTY, |
|||
DEFERRED_ACTION_PROPERTY, |
|||
|
|||
/// Prefix used for generated type test property on classes. |
|||
OPERATOR_IS_PREFIX, |
|||
|
|||
/// Name used for generated function types on classes and methods. |
|||
SIGNATURE_NAME, |
|||
|
|||
/// Name of JavaScript property used to store runtime-type information on |
|||
/// instances of parameterized classes. |
|||
RTI_NAME, |
|||
|
|||
/// String representation of the type of the Future class. |
|||
FUTURE_CLASS_TYPE_NAME, |
|||
|
|||
/// Field name used for determining if an object or its interceptor has |
|||
/// JavaScript indexing behavior. |
|||
IS_INDEXABLE_FIELD_NAME, |
|||
|
|||
/// String representation of the type of the null class. |
|||
NULL_CLASS_TYPE_NAME, |
|||
|
|||
/// String representation of the type of the object class. |
|||
OBJECT_CLASS_TYPE_NAME, |
|||
|
|||
/// String representation of the type of the List class. |
|||
LIST_CLASS_TYPE_NAME, |
|||
|
|||
/// Property name for Rti._as field. |
|||
RTI_FIELD_AS, |
|||
|
|||
/// Property name for Rti._is field. |
|||
RTI_FIELD_IS, |
|||
} |
|||
|
|||
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.dartObjectConstructor); |
|||
/// if (JS('bool', '# instanceof #', obj, constructor)) |
|||
/// ... |
|||
dartObjectConstructor, |
|||
|
|||
/// Returns the JavaScript constructor function for the runtime's Closure |
|||
/// class, the base class of all closure objects. This can be used for type |
|||
/// tests, as in |
|||
/// |
|||
/// var constructor = JS_BUILTIN('', JsBuiltin.dartClosureConstructor); |
|||
/// if (JS('bool', '# instanceof #', obj, constructor)) |
|||
/// ... |
|||
dartClosureConstructor, |
|||
|
|||
/// Returns true if the given type is a type argument of a js-interop class |
|||
/// or a supertype of a js-interop class. |
|||
/// |
|||
/// JS_BUILTIN('bool', JsBuiltin.isJsInteropTypeArgument, o) |
|||
isJsInteropTypeArgument, |
|||
|
|||
/// Returns the metadata of the given [index]. |
|||
/// |
|||
/// JS_BUILTIN('returns:var;effects:none;depends:none', |
|||
/// JsBuiltin.getMetadata, index); |
|||
getMetadata, |
|||
|
|||
/// Returns the type of the given [index]. |
|||
/// |
|||
/// JS_BUILTIN('returns:var;effects:none;depends:none', |
|||
/// JsBuiltin.getType, index); |
|||
getType, |
|||
} |
|||
|
|||
/// Names of fields of the Rti Universe object. |
|||
class RtiUniverseFieldNames { |
|||
static String evalCache = 'eC'; |
|||
static String typeRules = 'tR'; |
|||
static String erasedTypes = 'eT'; |
|||
static String typeParameterVariances = 'tPV'; |
|||
static String sharedEmptyArray = 'sEA'; |
|||
} |
Loading…
Reference in new issue