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.lazy_emitter.model_emitter; | 5 library dart2js.js_emitter.lazy_emitter.model_emitter; |
6 | 6 |
7 import 'package:js_runtime/shared/embedded_names.dart' | 7 import 'package:js_runtime/shared/embedded_names.dart' |
8 show | 8 show |
9 CREATE_NEW_ISOLATE, | 9 CREATE_NEW_ISOLATE, |
10 DEFERRED_LIBRARY_URIS, | 10 DEFERRED_LIBRARY_URIS, |
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
372 } | 372 } |
373 | 373 |
374 Iterable<js.Property> emitEmbeddedGlobalsForDeferredLoading( | 374 Iterable<js.Property> emitEmbeddedGlobalsForDeferredLoading( |
375 Map<String, List<Fragment>> loadMap) { | 375 Map<String, List<Fragment>> loadMap) { |
376 List<js.Property> globals = <js.Property>[]; | 376 List<js.Property> globals = <js.Property>[]; |
377 | 377 |
378 js.ArrayInitializer fragmentUris(List<Fragment> fragments) { | 378 js.ArrayInitializer fragmentUris(List<Fragment> fragments) { |
379 return js.stringArray(fragments.map((DeferredFragment fragment) => | 379 return js.stringArray(fragments.map((DeferredFragment fragment) => |
380 "${fragment.outputFileName}.$deferredExtension")); | 380 "${fragment.outputFileName}.$deferredExtension")); |
381 } | 381 } |
| 382 |
382 js.ArrayInitializer fragmentHashes(List<Fragment> fragments) { | 383 js.ArrayInitializer fragmentHashes(List<Fragment> fragments) { |
383 // TODO(floitsch): the hash must depend on the generated code. | 384 // TODO(floitsch): the hash must depend on the generated code. |
384 return js.numArray( | 385 return js.numArray( |
385 fragments.map((DeferredFragment fragment) => fragment.hashCode)); | 386 fragments.map((DeferredFragment fragment) => fragment.hashCode)); |
386 } | 387 } |
387 | 388 |
388 List<js.Property> uris = new List<js.Property>(loadMap.length); | 389 List<js.Property> uris = new List<js.Property>(loadMap.length); |
389 List<js.Property> hashes = new List<js.Property>(loadMap.length); | 390 List<js.Property> hashes = new List<js.Property>(loadMap.length); |
390 int count = 0; | 391 int count = 0; |
391 loadMap.forEach((String loadId, List<Fragment> fragmentList) { | 392 loadMap.forEach((String loadId, List<Fragment> fragmentList) { |
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
658 switch (flags) { | 659 switch (flags) { |
659 case 1: | 660 case 1: |
660 return "function(val) { return this[#] = val; }"; | 661 return "function(val) { return this[#] = val; }"; |
661 case 2: | 662 case 2: |
662 return "function(receiver, val) { return receiver[#] = val; }"; | 663 return "function(receiver, val) { return receiver[#] = val; }"; |
663 case 3: | 664 case 3: |
664 return "function(receiver, val) { return this[#] = val; }"; | 665 return "function(receiver, val) { return this[#] = val; }"; |
665 } | 666 } |
666 return null; | 667 return null; |
667 } | 668 } |
| 669 |
668 js.Expression fieldName = js.quoteName(field.name); | 670 js.Expression fieldName = js.quoteName(field.name); |
669 js.Expression code = js.js(setterTemplateFor(field.setterFlags), fieldName); | 671 js.Expression code = js.js(setterTemplateFor(field.setterFlags), fieldName); |
670 js.Name setterName = namer.deriveSetterName(field.accessorName); | 672 js.Name setterName = namer.deriveSetterName(field.accessorName); |
671 return new StubMethod(setterName, code); | 673 return new StubMethod(setterName, code); |
672 } | 674 } |
673 | 675 |
674 Iterable<Method> _generateGettersSetters(Class cls) { | 676 Iterable<Method> _generateGettersSetters(Class cls) { |
675 Iterable<Method> getters = cls.fields | 677 Iterable<Method> getters = cls.fields |
676 .where((Field field) => field.needsGetter) | 678 .where((Field field) => field.needsGetter) |
677 .map(_generateGetter); | 679 .map(_generateGetter); |
(...skipping 584 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1262 #eagerClasses; | 1264 #eagerClasses; |
1263 | 1265 |
1264 var end = Date.now(); | 1266 var end = Date.now(); |
1265 // print('Setup: ' + (end - start) + ' ms.'); | 1267 // print('Setup: ' + (end - start) + ' ms.'); |
1266 | 1268 |
1267 #invokeMain; // Start main. | 1269 #invokeMain; // Start main. |
1268 | 1270 |
1269 })(Date.now(), #code) | 1271 })(Date.now(), #code) |
1270 }"""; | 1272 }"""; |
1271 } | 1273 } |
OLD | NEW |