OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library dart2js.backend_api; | 5 library dart2js.backend_api; |
6 | 6 |
7 import 'dart:async' show Future; | 7 import 'dart:async' show Future; |
8 | 8 |
9 import '../common.dart'; | 9 import '../common.dart'; |
10 import '../common/codegen.dart' show CodegenImpact; | 10 import '../common/codegen.dart' show CodegenImpact; |
(...skipping 15 matching lines...) Expand all Loading... |
26 import '../js_backend/js_backend.dart' as js_backend; | 26 import '../js_backend/js_backend.dart' as js_backend; |
27 import '../library_loader.dart' show LibraryLoader, LoadedLibraries; | 27 import '../library_loader.dart' show LibraryLoader, LoadedLibraries; |
28 import '../native/native.dart' as native show NativeEnqueuer, maybeEnableNative; | 28 import '../native/native.dart' as native show NativeEnqueuer, maybeEnableNative; |
29 import '../patch_parser.dart' | 29 import '../patch_parser.dart' |
30 show checkNativeAnnotation, checkJsInteropAnnotation; | 30 show checkNativeAnnotation, checkJsInteropAnnotation; |
31 import '../serialization/serialization.dart' | 31 import '../serialization/serialization.dart' |
32 show DeserializerPlugin, SerializerPlugin; | 32 show DeserializerPlugin, SerializerPlugin; |
33 import '../tree/tree.dart' show Node; | 33 import '../tree/tree.dart' show Node; |
34 import '../universe/world_impact.dart' | 34 import '../universe/world_impact.dart' |
35 show ImpactStrategy, WorldImpact, WorldImpactBuilder; | 35 show ImpactStrategy, WorldImpact, WorldImpactBuilder; |
36 import '../world.dart' show ClosedWorldRefiner; | 36 import '../world.dart' show ClosedWorld, ClosedWorldRefiner; |
37 import 'codegen.dart' show CodegenWorkItem; | 37 import 'codegen.dart' show CodegenWorkItem; |
38 import 'tasks.dart' show CompilerTask; | 38 import 'tasks.dart' show CompilerTask; |
39 | 39 |
40 abstract class Backend extends Target { | 40 abstract class Backend extends Target { |
41 final Compiler compiler; | 41 final Compiler compiler; |
42 | 42 |
43 Backend(this.compiler); | 43 Backend(this.compiler); |
44 | 44 |
45 /// Returns true if the backend supports reflection. | 45 /// Returns true if the backend supports reflection. |
46 bool get supportsReflection; | 46 bool get supportsReflection; |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 | 100 |
101 native.NativeEnqueuer nativeCodegenEnqueuer() { | 101 native.NativeEnqueuer nativeCodegenEnqueuer() { |
102 return new native.NativeEnqueuer(); | 102 return new native.NativeEnqueuer(); |
103 } | 103 } |
104 | 104 |
105 /// Generates the output and returns the total size of the generated code. | 105 /// Generates the output and returns the total size of the generated code. |
106 int assembleProgram(); | 106 int assembleProgram(); |
107 | 107 |
108 List<CompilerTask> get tasks; | 108 List<CompilerTask> get tasks; |
109 | 109 |
110 void onResolutionComplete(ClosedWorldRefiner closedWorldRefiner) {} | 110 void onResolutionComplete( |
| 111 ClosedWorld closedWorld, ClosedWorldRefiner closedWorldRefiner) {} |
111 void onTypeInferenceComplete() {} | 112 void onTypeInferenceComplete() {} |
112 | 113 |
113 bool classNeedsRti(ClassElement cls); | 114 bool classNeedsRti(ClassElement cls); |
114 bool methodNeedsRti(FunctionElement function); | 115 bool methodNeedsRti(FunctionElement function); |
115 | 116 |
116 /// Enable compilation of code with compile time errors. Returns `true` if | 117 /// Enable compilation of code with compile time errors. Returns `true` if |
117 /// supported by the backend. | 118 /// supported by the backend. |
118 bool enableCodegenWithErrorsIfSupported(Spannable node); | 119 bool enableCodegenWithErrorsIfSupported(Spannable node); |
119 | 120 |
120 /// Enable deferred loading. Returns `true` if the backend supports deferred | 121 /// Enable deferred loading. Returns `true` if the backend supports deferred |
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
409 ClassElement get boolImplementation; | 410 ClassElement get boolImplementation; |
410 ClassElement get nullImplementation; | 411 ClassElement get nullImplementation; |
411 ClassElement get uint32Implementation; | 412 ClassElement get uint32Implementation; |
412 ClassElement get uint31Implementation; | 413 ClassElement get uint31Implementation; |
413 ClassElement get positiveIntImplementation; | 414 ClassElement get positiveIntImplementation; |
414 ClassElement get syncStarIterableImplementation; | 415 ClassElement get syncStarIterableImplementation; |
415 ClassElement get asyncFutureImplementation; | 416 ClassElement get asyncFutureImplementation; |
416 ClassElement get asyncStarStreamImplementation; | 417 ClassElement get asyncStarStreamImplementation; |
417 ClassElement get indexableImplementation; | 418 ClassElement get indexableImplementation; |
418 ClassElement get mutableIndexableImplementation; | 419 ClassElement get mutableIndexableImplementation; |
| 420 ClassElement get indexingBehaviorImplementation; |
419 | 421 |
420 bool isDefaultEqualityImplementation(Element element); | 422 bool isDefaultEqualityImplementation(Element element); |
| 423 bool isInterceptorClass(ClassElement cls); |
| 424 bool isNative(Element element); |
421 } | 425 } |
OLD | NEW |