| 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 js_backend.backend; | 5 library js_backend.backend; |
| 6 | 6 |
| 7 import 'dart:async' show Future; | 7 import 'dart:async' show Future; |
| 8 | 8 |
| 9 import 'package:js_runtime/shared/embedded_names.dart' as embeddedNames; | 9 import 'package:js_runtime/shared/embedded_names.dart' as embeddedNames; |
| 10 | 10 |
| (...skipping 556 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 567 DiagnosticReporter get reporter => compiler.reporter; | 567 DiagnosticReporter get reporter => compiler.reporter; |
| 568 | 568 |
| 569 CommonElements get commonElements => compiler.commonElements; | 569 CommonElements get commonElements => compiler.commonElements; |
| 570 | 570 |
| 571 Resolution get resolution => compiler.resolution; | 571 Resolution get resolution => compiler.resolution; |
| 572 | 572 |
| 573 Target get target => _target; | 573 Target get target => _target; |
| 574 | 574 |
| 575 /// Resolution analysis for tracking reflective access to type variables. | 575 /// Resolution analysis for tracking reflective access to type variables. |
| 576 TypeVariableResolutionAnalysis get typeVariableResolutionAnalysis { | 576 TypeVariableResolutionAnalysis get typeVariableResolutionAnalysis { |
| 577 assert(invariant(NO_LOCATION_SPANNABLE, _typeVariableCodegenAnalysis == null
, | 577 assert(invariant( |
| 578 NO_LOCATION_SPANNABLE, _typeVariableCodegenAnalysis == null, |
| 578 message: "TypeVariableHandler has already been created.")); | 579 message: "TypeVariableHandler has already been created.")); |
| 579 return _typeVariableResolutionAnalysis; | 580 return _typeVariableResolutionAnalysis; |
| 580 } | 581 } |
| 581 | 582 |
| 582 /// Codegen handler for reflective access to type variables. | 583 /// Codegen handler for reflective access to type variables. |
| 583 TypeVariableCodegenAnalysis get typeVariableCodegenAnalysis { | 584 TypeVariableCodegenAnalysis get typeVariableCodegenAnalysis { |
| 584 assert(invariant(NO_LOCATION_SPANNABLE, _typeVariableCodegenAnalysis != null
, | 585 assert(invariant( |
| 586 NO_LOCATION_SPANNABLE, _typeVariableCodegenAnalysis != null, |
| 585 message: "TypeVariableHandler has not been created yet.")); | 587 message: "TypeVariableHandler has not been created yet.")); |
| 586 return _typeVariableCodegenAnalysis; | 588 return _typeVariableCodegenAnalysis; |
| 587 } | 589 } |
| 588 | 590 |
| 589 MirrorsData get mirrorsData => _mirrorsData; | 591 MirrorsData get mirrorsData => _mirrorsData; |
| 590 | 592 |
| 591 MirrorsDataBuilder get mirrorsDataBuilder => _mirrorsData; | 593 MirrorsDataBuilder get mirrorsDataBuilder => _mirrorsData; |
| 592 | 594 |
| 593 /// Codegen support for tree-shaking entries of `LookupMap`. | 595 /// Codegen support for tree-shaking entries of `LookupMap`. |
| 594 LookupMapAnalysis get lookupMapAnalysis { | 596 LookupMapAnalysis get lookupMapAnalysis { |
| (...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 899 typeVariableResolutionAnalysis, | 901 typeVariableResolutionAnalysis, |
| 900 _nativeResolutionEnqueuer), | 902 _nativeResolutionEnqueuer), |
| 901 new ElementResolutionWorldBuilder( | 903 new ElementResolutionWorldBuilder( |
| 902 this, compiler.resolution, const OpenWorldStrategy()), | 904 this, compiler.resolution, const OpenWorldStrategy()), |
| 903 new ResolutionWorkItemBuilder(compiler.resolution)); | 905 new ResolutionWorkItemBuilder(compiler.resolution)); |
| 904 } | 906 } |
| 905 | 907 |
| 906 /// Creates an [Enqueuer] for code generation specific to this backend. | 908 /// Creates an [Enqueuer] for code generation specific to this backend. |
| 907 CodegenEnqueuer createCodegenEnqueuer( | 909 CodegenEnqueuer createCodegenEnqueuer( |
| 908 CompilerTask task, Compiler compiler, ClosedWorld closedWorld) { | 910 CompilerTask task, Compiler compiler, ClosedWorld closedWorld) { |
| 909 _typeVariableCodegenAnalysis = new TypeVariableCodegenAnalysis(this, helpers
, mirrorsData); | 911 _typeVariableCodegenAnalysis = |
| 912 new TypeVariableCodegenAnalysis(this, helpers, mirrorsData); |
| 910 _lookupMapAnalysis = new LookupMapAnalysis( | 913 _lookupMapAnalysis = new LookupMapAnalysis( |
| 911 reporter, | 914 reporter, |
| 912 constantSystem, | 915 constantSystem, |
| 913 constants, | 916 constants, |
| 914 compiler.elementEnvironment, | 917 compiler.elementEnvironment, |
| 915 commonElements, | 918 commonElements, |
| 916 helpers, | 919 helpers, |
| 917 backendClasses, | 920 backendClasses, |
| 918 lookupMapResolutionAnalysis); | 921 lookupMapResolutionAnalysis); |
| 919 return new CodegenEnqueuer( | 922 return new CodegenEnqueuer( |
| (...skipping 680 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1600 return _backend.defaultSuperclass(element); | 1603 return _backend.defaultSuperclass(element); |
| 1601 } | 1604 } |
| 1602 | 1605 |
| 1603 @override | 1606 @override |
| 1604 bool isNativeClass(ClassEntity element) => | 1607 bool isNativeClass(ClassEntity element) => |
| 1605 _backend.nativeBaseData.isNativeClass(element); | 1608 _backend.nativeBaseData.isNativeClass(element); |
| 1606 | 1609 |
| 1607 @override | 1610 @override |
| 1608 bool isForeign(Element element) => _backend.isForeign(element); | 1611 bool isForeign(Element element) => _backend.isForeign(element); |
| 1609 } | 1612 } |
| OLD | NEW |