| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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_emitter.program_builder; | 5 library dart2js.js_emitter.program_builder; |
| 6 | 6 |
| 7 import 'js_emitter.dart' show computeMixinClass; | 7 import 'js_emitter.dart' show computeMixinClass; |
| 8 import 'model.dart'; | 8 import 'model.dart'; |
| 9 | 9 |
| 10 import '../common.dart'; | 10 import '../common.dart'; |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 92 if (c is MixinApplication) { | 92 if (c is MixinApplication) { |
| 93 c.setMixinClass(_classes[computeMixinClass(element)]); | 93 c.setMixinClass(_classes[computeMixinClass(element)]); |
| 94 assert(c.mixinClass != null); | 94 assert(c.mixinClass != null); |
| 95 } | 95 } |
| 96 }); | 96 }); |
| 97 | 97 |
| 98 List<Class> nativeClasses = _task.nativeOrExtendsNativeClasses | 98 List<Class> nativeClasses = _task.nativeOrExtendsNativeClasses |
| 99 .map((ClassElement classElement) => _classes[classElement]) | 99 .map((ClassElement classElement) => _classes[classElement]) |
| 100 .toList(); | 100 .toList(); |
| 101 | 101 |
| 102 Map<Class, Map<String, js.Expression>> additionalProperties = | |
| 103 new Map<Class, Map<String, js.Expression>>(); | |
| 104 | |
| 105 _unneededNativeClasses = | 102 _unneededNativeClasses = |
| 106 _task.nativeEmitter.prepareNativeClasses( | 103 _task.nativeEmitter.prepareNativeClasses(nativeClasses); |
| 107 nativeClasses, | |
| 108 additionalProperties); | |
| 109 | 104 |
| 110 MainFragment mainOutput = _buildMainOutput(_registry.mainLibrariesMap); | 105 MainFragment mainOutput = _buildMainOutput(_registry.mainLibrariesMap); |
| 111 Iterable<Fragment> deferredOutputs = _registry.deferredLibrariesMap | 106 Iterable<Fragment> deferredOutputs = _registry.deferredLibrariesMap |
| 112 .map((librariesMap) => _buildDeferredOutput(mainOutput, librariesMap)); | 107 .map((librariesMap) => _buildDeferredOutput(mainOutput, librariesMap)); |
| 113 | 108 |
| 114 List<Fragment> outputs = new List<Fragment>(_registry.librariesMapCount); | 109 List<Fragment> outputs = new List<Fragment>(_registry.librariesMapCount); |
| 115 outputs[0] = mainOutput; | 110 outputs[0] = mainOutput; |
| 116 outputs.setAll(1, deferredOutputs); | 111 outputs.setAll(1, deferredOutputs); |
| 117 | 112 |
| 118 _markEagerClasses(); | 113 _markEagerClasses(); |
| 119 | 114 |
| 120 bool containsNativeClasses = | 115 bool containsNativeClasses = |
| 121 nativeClasses.length != _unneededNativeClasses.length; | 116 nativeClasses.length != _unneededNativeClasses.length; |
| 122 | 117 |
| 123 return new Program( | 118 return new Program( |
| 124 outputs, | 119 outputs, |
| 125 additionalProperties, | |
| 126 _buildLoadMap(), | 120 _buildLoadMap(), |
| 127 outputContainsNativeClasses: containsNativeClasses, | 121 outputContainsNativeClasses: containsNativeClasses, |
| 128 outputContainsConstantList: _task.outputContainsConstantList); | 122 outputContainsConstantList: _task.outputContainsConstantList); |
| 129 } | 123 } |
| 130 | 124 |
| 131 void _markEagerClasses() { | 125 void _markEagerClasses() { |
| 132 _markEagerInterceptorClasses(); | 126 _markEagerInterceptorClasses(); |
| 133 } | 127 } |
| 134 | 128 |
| 135 /// Builds a map from loadId to outputs-to-load. | 129 /// Builds a map from loadId to outputs-to-load. |
| (...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 517 _registry.registerConstant(outputUnit, constantValue); | 511 _registry.registerConstant(outputUnit, constantValue); |
| 518 assert(!_constants.containsKey(constantValue)); | 512 assert(!_constants.containsKey(constantValue)); |
| 519 String name = namer.constantName(constantValue); | 513 String name = namer.constantName(constantValue); |
| 520 String constantObject = namer.globalObjectForConstant(constantValue); | 514 String constantObject = namer.globalObjectForConstant(constantValue); |
| 521 Holder holder = _registry.registerHolder(constantObject); | 515 Holder holder = _registry.registerHolder(constantObject); |
| 522 Constant constant = new Constant(name, holder, constantValue); | 516 Constant constant = new Constant(name, holder, constantValue); |
| 523 _constants[constantValue] = constant; | 517 _constants[constantValue] = constant; |
| 524 } | 518 } |
| 525 } | 519 } |
| 526 } | 520 } |
| OLD | NEW |