Chromium Code Reviews| Index: pkg/compiler/lib/src/common/backend_api.dart |
| diff --git a/pkg/compiler/lib/src/common/backend_api.dart b/pkg/compiler/lib/src/common/backend_api.dart |
| index 73e22cd4400660c604609e41221c05467268eefc..64fb9ba677d33dece22f4a00aa3675cf37a23386 100644 |
| --- a/pkg/compiler/lib/src/common/backend_api.dart |
| +++ b/pkg/compiler/lib/src/common/backend_api.dart |
| @@ -15,6 +15,7 @@ import '../compiler.dart' show Compiler; |
| import '../constants/constant_system.dart' show ConstantSystem; |
| import '../constants/expressions.dart' show ConstantExpression; |
| import '../constants/values.dart' show ConstantValue; |
| +import '../elements/types.dart'; |
| import '../elements/resolution_types.dart' |
| show ResolutionDartType, ResolutionInterfaceType; |
| import '../elements/elements.dart' |
| @@ -396,34 +397,122 @@ class BackendSerialization { |
| /// Interface providing access to core classes used by the backend. |
| abstract class BackendClasses { |
| - ClassElement get intImplementation; |
| - ClassElement get doubleImplementation; |
| - ClassElement get numImplementation; |
| - ClassElement get stringImplementation; |
| - ClassElement get listImplementation; |
| - ClassElement get mutableListImplementation; |
| - ClassElement get growableListImplementation; |
| - ClassElement get fixedListImplementation; |
| - ClassElement get constListImplementation; |
| - ClassElement get mapImplementation; |
| - ClassElement get constMapImplementation; |
| - ClassElement get functionImplementation; |
| - ClassElement get typeImplementation; |
| - ClassElement get boolImplementation; |
| - ClassElement get nullImplementation; |
| - ClassElement get uint32Implementation; |
| - ClassElement get uint31Implementation; |
| - ClassElement get positiveIntImplementation; |
| - ClassElement get syncStarIterableImplementation; |
| - ClassElement get asyncFutureImplementation; |
| - ClassElement get asyncStarStreamImplementation; |
| - ClassElement get indexableImplementation; |
| - ClassElement get mutableIndexableImplementation; |
| - ClassElement get indexingBehaviorImplementation; |
| - ClassElement get interceptorImplementation; |
| - |
| - bool isDefaultEqualityImplementation(MemberElement element); |
| - bool isInterceptorClass(ClassElement cls); |
| - bool isNativeClass(ClassElement element); |
| - bool isNativeMember(MemberElement element); |
| + /// Returns the backend implementation class for `int`. This is the `JSInt` |
| + /// class. |
| + ClassEntity get intClass; |
| + |
| + /// Returns the backend implementation class for `double`. This is the |
| + /// `JSDouble` class. |
| + ClassEntity get doubleClass; |
| + |
| + /// Returns the backend implementation class for `num`. This is the `JSNum` |
| + /// class. |
| + ClassEntity get numClass; |
| + |
| + /// Returns the backend implementation class for `String`. This is the |
| + /// `JSString` class. |
| + ClassEntity get stringClass; |
| + |
| + /// Returns the backend implementation class for `List`. This is the |
| + /// `JSArray` class. |
| + ClassEntity get listClass; |
| + |
| + /// Returns the backend dummy class used to track mutable implementations of |
| + /// `List` in type masks. This is the `JSMutableArray` class. |
| + ClassEntity get mutableListClass; |
| + |
| + /// Returns the backend dummy class used to track growable implementations of |
| + /// `List` in type masks. This is the `JSExtendableArray` class. |
| + ClassEntity get growableListClass; |
| + |
| + /// Returns the backend dummy class used to track fixed-sized implementations |
| + /// of `List` in type masks. This is the `JSFixedArray` class. |
| + ClassEntity get fixedListClass; |
| + |
| + /// Returns the backend dummy class used to track unmodifiable (constant) |
| + /// implementations of `List` in type masks. This is the `JSUnmodifiableArray` class. |
|
Siggi Cherem (dart-lang)
2017/01/27 16:49:06
long line
Johnni Winther
2017/01/30 10:00:12
Done.
|
| + ClassEntity get constListClass; |
| + |
| + /// Returns the backend implementation class for map literals. This is the |
| + /// `LinkedHashMap` class. |
| + ClassEntity get mapClass; |
| + |
| + /// Returns the backend superclass for implementations of constant map |
| + /// literals. This is the `ConstantMap` class. |
| + ClassEntity get constMapClass; |
| + |
| + /// Returns the backend implementation class for `Function`. This is the |
| + /// `Function` class from 'dart:core'. |
| + ClassEntity get functionClass; |
| + |
| + /// Returns the backend implementation class for `Type`. This is the |
| + /// `TypeImpl` class. |
| + ClassEntity get typeClass; |
| + |
| + /// Returns the type of the implementation class for `Type`. |
| + InterfaceType get typeType; |
| + |
| + /// Returns the backend implementation class for `bool`. This is the `JSBool` |
| + /// class. |
| + ClassEntity get boolClass; |
| + |
| + /// Returns the backend implementation class for `null`. This is the `JSNull` |
| + /// class. |
| + ClassEntity get nullClass; |
| + |
| + /// Returns the backend dummy class used to track unsigned 32-bit integer |
| + /// values in type masks. This is the `JSUint32` class. |
| + ClassEntity get uint32Class; |
| + |
| + /// Returns the backend dummy class used to track unsigned 31-bit integer |
| + /// values in type masks. This is the `JSUint31` class. |
| + ClassEntity get uint31Class; |
| + |
| + /// Returns the backend dummy class used to track position values in type |
| + /// masks. This is the `JSPositiveInt` class. |
| + ClassEntity get positiveIntClass; |
| + |
| + /// Returns the backend implementation class for the `Iterable` used in |
| + /// `sync*` methods. This is the `_SyncStarIterable` class in dart:async. |
| + ClassEntity get syncStarIterableClass; |
| + |
| + /// Returns the backend implementation class for the `Future` used in |
| + /// `async` methods. This is the `_Future` class in dart:async. |
| + ClassEntity get asyncFutureClass; |
| + |
| + /// Returns the backend implementation class for the `Stream` used in |
| + /// `async*` methods. This is the `_ControllerStream` class in dart:async. |
| + ClassEntity get asyncStarStreamClass; |
| + |
| + /// Returns the backend superclass directly indexable class, that is classes |
| + /// that natively support the `[]` operator. This is the `JSIndexable` class. |
| + ClassEntity get indexableClass; |
| + |
| + /// Returns the backend superclass directly indexable class, that is classes |
| + /// that natively support the `[]=` operator. This is the `JSMutableIndexable` |
| + /// class. |
| + ClassEntity get mutableIndexableClass; |
| + |
| + /// Returns the backend class used to mark native classes that support integer |
| + /// indexing, that is `[]` and `[]=` where the key is an integer. This is the |
| + /// `JavaScriptIndexingBehavior` class. |
| + ClassEntity get indexingBehaviorClass; |
| + |
| + /// Returns the backend superclass for all intercepted classes. This is the |
| + /// `Interceptor` class. |
| + ClassEntity get interceptorClass; |
| + |
| + /// Returns `true` if [element] is a default implementation of `Object.==`. |
| + /// This either `Object.==`, `Intercepter.==` or `Null.==`. |
| + bool isDefaultEqualityImplementation(MemberEntity element); |
| + |
| + /// Returns `true` if [cls] is an intercepted class. |
| + // TODO(johnniwinther): Rename this to `isInterceptedClass`. |
| + bool isInterceptorClass(ClassEntity cls); |
| + |
| + /// Returns `true` if [cls] is a native class. |
| + bool isNativeClass(ClassEntity element); |
| + |
| + /// Returns `true` if [element] is a native member of a native class. |
| + bool isNativeMember(MemberEntity element); |
| } |