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.new_js_emitter.model_emitter; | 5 library dart2js.new_js_emitter.model_emitter; |
6 | 6 |
7 import '../../constants/values.dart' show ConstantValue, FunctionConstantValue; | 7 import '../../constants/values.dart' show ConstantValue, FunctionConstantValue; |
8 import '../../dart2jslib.dart' show Compiler; | 8 import '../../dart2jslib.dart' show Compiler; |
9 import '../../dart_types.dart' show DartType; | 9 import '../../dart_types.dart' show DartType; |
10 import '../../elements/elements.dart' show ClassElement, FunctionElement; | 10 import '../../elements/elements.dart' show ClassElement, FunctionElement; |
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
439 List<Holder> holders) { | 439 List<Holder> holders) { |
440 // TODO(floitsch): initialize eager classes. | 440 // TODO(floitsch): initialize eager classes. |
441 // TODO(floitsch): the hash must depend on the output. | 441 // TODO(floitsch): the hash must depend on the output. |
442 int hash = fragment.hashCode; | 442 int hash = fragment.hashCode; |
443 | 443 |
444 List<js.Expression> deferredCode = | 444 List<js.Expression> deferredCode = |
445 fragment.libraries.map(emitLibrary).toList(); | 445 fragment.libraries.map(emitLibrary).toList(); |
446 | 446 |
447 deferredCode.add( | 447 deferredCode.add( |
448 emitLazilyInitializedStatics(fragment.staticLazilyInitializedFields)); | 448 emitLazilyInitializedStatics(fragment.staticLazilyInitializedFields)); |
449 | |
450 deferredCode.add(emitConstants(fragment.constants)); | 449 deferredCode.add(emitConstants(fragment.constants)); |
451 | 450 |
452 js.ArrayInitializer deferredArray = new js.ArrayInitializer(deferredCode); | 451 js.ArrayInitializer deferredArray = new js.ArrayInitializer(deferredCode); |
453 | 452 |
454 // This is the code that must be evaluated after all deferred classes have | 453 // This is the code that must be evaluated after all deferred classes have |
455 // been setup. | 454 // been setup. |
456 js.Statement immediateCode = | 455 js.Statement immediateCode = new js.Block([ |
457 emitEagerClassInitializations(fragment.libraries); | 456 emitStaticNonFinalFields(fragment.staticNonFinalFields), |
457 emitEagerClassInitializations(fragment.libraries)]); | |
458 | |
sra1
2015/05/12 23:20:02
FYI you could interpolate this with
js.statement(
floitsch
2015/05/12 23:34:11
Blocks are flattened by the JS pretty printer too.
| |
458 | 459 |
459 js.LiteralString immediateString = unparse(compiler, immediateCode); | 460 js.LiteralString immediateString = unparse(compiler, immediateCode); |
460 | 461 |
461 js.Expression deferredTypes = types == null | 462 js.Expression deferredTypes = types == null |
462 ? js.string("[]") | 463 ? js.string("[]") |
463 : unparse(compiler, new js.ArrayInitializer(types)); | 464 : unparse(compiler, new js.ArrayInitializer(types)); |
464 | 465 |
465 js.ArrayInitializer hunk = | 466 js.ArrayInitializer hunk = |
466 new js.ArrayInitializer([deferredArray, immediateString, | 467 new js.ArrayInitializer([deferredArray, immediateString, |
467 deferredTypes]); | 468 deferredTypes]); |
(...skipping 706 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1174 | 1175 |
1175 var end = Date.now(); | 1176 var end = Date.now(); |
1176 // print('Setup: ' + (end - start) + ' ms.'); | 1177 // print('Setup: ' + (end - start) + ' ms.'); |
1177 | 1178 |
1178 #invokeMain; // Start main. | 1179 #invokeMain; // Start main. |
1179 | 1180 |
1180 }(Date.now(), #code) | 1181 }(Date.now(), #code) |
1181 }"""; | 1182 }"""; |
1182 | 1183 |
1183 } | 1184 } |
OLD | NEW |