| 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.js.enqueue; | 5 library dart2js.js.enqueue; |
| 6 | 6 |
| 7 import 'dart:collection' show Queue; | 7 import 'dart:collection' show Queue; |
| 8 | 8 |
| 9 import '../common/codegen.dart' show CodegenWorkItem; | 9 import '../common/codegen.dart' show CodegenWorkItem; |
| 10 import '../common/tasks.dart' show CompilerTask; | 10 import '../common/tasks.dart' show CompilerTask; |
| 11 import '../common/work.dart' show WorkItem; | 11 import '../common/work.dart' show WorkItem; |
| 12 import '../common.dart'; | 12 import '../common.dart'; |
| 13 import '../common_elements.dart' show ElementEnvironment; |
| 13 import '../elements/resolution_types.dart' | 14 import '../elements/resolution_types.dart' |
| 14 show ResolutionDartType, ResolutionInterfaceType; | 15 show ResolutionDartType, ResolutionInterfaceType; |
| 15 import '../elements/elements.dart' show MemberElement; | 16 import '../elements/elements.dart' show MemberElement; |
| 16 import '../elements/entities.dart'; | 17 import '../elements/entities.dart'; |
| 17 import '../enqueue.dart'; | 18 import '../enqueue.dart'; |
| 18 import '../js_backend/backend.dart' show JavaScriptBackend; | 19 import '../js_backend/backend.dart' show JavaScriptBackend; |
| 19 import '../options.dart'; | 20 import '../options.dart'; |
| 20 import '../universe/world_builder.dart'; | 21 import '../universe/world_builder.dart'; |
| 21 import '../universe/use.dart' | 22 import '../universe/use.dart' |
| 22 show | 23 show |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 102 | 103 |
| 103 void _registerInstantiatedType(ResolutionInterfaceType type, | 104 void _registerInstantiatedType(ResolutionInterfaceType type, |
| 104 {bool mirrorUsage: false, bool nativeUsage: false}) { | 105 {bool mirrorUsage: false, bool nativeUsage: false}) { |
| 105 task.measure(() { | 106 task.measure(() { |
| 106 _worldBuilder.registerTypeInstantiation(type, _applyClassUse, | 107 _worldBuilder.registerTypeInstantiation(type, _applyClassUse, |
| 107 byMirrors: mirrorUsage); | 108 byMirrors: mirrorUsage); |
| 108 listener.registerInstantiatedType(type, nativeUsage: nativeUsage); | 109 listener.registerInstantiatedType(type, nativeUsage: nativeUsage); |
| 109 }); | 110 }); |
| 110 } | 111 } |
| 111 | 112 |
| 112 bool checkNoEnqueuedInvokedInstanceMethods() { | 113 bool checkNoEnqueuedInvokedInstanceMethods( |
| 113 return strategy.checkEnqueuerConsistency(this); | 114 ElementEnvironment elementEnvironment) { |
| 115 return strategy.checkEnqueuerConsistency(this, elementEnvironment); |
| 114 } | 116 } |
| 115 | 117 |
| 116 void checkClass(ClassEntity cls) { | 118 void checkClass(ClassEntity cls) { |
| 117 _worldBuilder.processClassMembers(cls, (MemberEntity member, useSet) { | 119 _worldBuilder.processClassMembers(cls, (MemberEntity member, useSet) { |
| 118 if (useSet.isNotEmpty) { | 120 if (useSet.isNotEmpty) { |
| 119 throw new SpannableAssertionFailure(member, | 121 throw new SpannableAssertionFailure(member, |
| 120 'Unenqueued use of $member: ${useSet.iterable(MemberUse.values)}'); | 122 'Unenqueued use of $member: ${useSet.iterable(MemberUse.values)}'); |
| 121 } | 123 } |
| 122 }); | 124 }); |
| 123 } | 125 } |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 // code for checked setters. | 286 // code for checked setters. |
| 285 if (element.isField && element.isInstanceMember) { | 287 if (element.isField && element.isInstanceMember) { |
| 286 if (!_options.enableTypeAssertions || | 288 if (!_options.enableTypeAssertions || |
| 287 element.enclosingElement.isClosure) { | 289 element.enclosingElement.isClosure) { |
| 288 return null; | 290 return null; |
| 289 } | 291 } |
| 290 } | 292 } |
| 291 return new CodegenWorkItem(_backend, element); | 293 return new CodegenWorkItem(_backend, element); |
| 292 } | 294 } |
| 293 } | 295 } |
| OLD | NEW |