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 'codegen.dart' show CodegenWorkItem; | 37 import 'codegen.dart' show CodegenWorkItem; |
37 import 'tasks.dart' show CompilerTask; | 38 import 'tasks.dart' show CompilerTask; |
38 | 39 |
39 abstract class Backend extends Target { | 40 abstract class Backend extends Target { |
40 final Compiler compiler; | 41 final Compiler compiler; |
41 | 42 |
42 Backend(this.compiler); | 43 Backend(this.compiler); |
43 | 44 |
44 /// Returns true if the backend supports reflection. | 45 /// Returns true if the backend supports reflection. |
45 bool get supportsReflection; | 46 bool get supportsReflection; |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 | 100 |
100 native.NativeEnqueuer nativeCodegenEnqueuer() { | 101 native.NativeEnqueuer nativeCodegenEnqueuer() { |
101 return new native.NativeEnqueuer(); | 102 return new native.NativeEnqueuer(); |
102 } | 103 } |
103 | 104 |
104 /// 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. |
105 int assembleProgram(); | 106 int assembleProgram(); |
106 | 107 |
107 List<CompilerTask> get tasks; | 108 List<CompilerTask> get tasks; |
108 | 109 |
109 void onResolutionComplete() {} | 110 void onResolutionComplete(ClosedWorldRefiner closedWorldRefiner) {} |
110 void onTypeInferenceComplete() {} | 111 void onTypeInferenceComplete() {} |
111 | 112 |
112 bool classNeedsRti(ClassElement cls); | 113 bool classNeedsRti(ClassElement cls); |
113 bool methodNeedsRti(FunctionElement function); | 114 bool methodNeedsRti(FunctionElement function); |
114 | 115 |
115 /// Enable compilation of code with compile time errors. Returns `true` if | 116 /// Enable compilation of code with compile time errors. Returns `true` if |
116 /// supported by the backend. | 117 /// supported by the backend. |
117 bool enableCodegenWithErrorsIfSupported(Spannable node); | 118 bool enableCodegenWithErrorsIfSupported(Spannable node); |
118 | 119 |
119 /// Enable deferred loading. Returns `true` if the backend supports deferred | 120 /// Enable deferred loading. Returns `true` if the backend supports deferred |
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
411 ClassElement get uint31Implementation; | 412 ClassElement get uint31Implementation; |
412 ClassElement get positiveIntImplementation; | 413 ClassElement get positiveIntImplementation; |
413 ClassElement get syncStarIterableImplementation; | 414 ClassElement get syncStarIterableImplementation; |
414 ClassElement get asyncFutureImplementation; | 415 ClassElement get asyncFutureImplementation; |
415 ClassElement get asyncStarStreamImplementation; | 416 ClassElement get asyncStarStreamImplementation; |
416 ClassElement get indexableImplementation; | 417 ClassElement get indexableImplementation; |
417 ClassElement get mutableIndexableImplementation; | 418 ClassElement get mutableIndexableImplementation; |
418 | 419 |
419 bool isDefaultEqualityImplementation(Element element); | 420 bool isDefaultEqualityImplementation(Element element); |
420 } | 421 } |
OLD | NEW |