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.full_emitter; | 5 library dart2js.js_emitter.full_emitter; |
6 | 6 |
7 import 'dart:collection' show HashMap; | 7 import 'dart:collection' show HashMap; |
8 import 'dart:convert'; | 8 import 'dart:convert'; |
9 | 9 |
10 import 'package:js_runtime/shared/embedded_names.dart' as embeddedNames; | 10 import 'package:js_runtime/shared/embedded_names.dart' as embeddedNames; |
(...skipping 865 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
876 jsAst.Expression leafTagsAccess = | 876 jsAst.Expression leafTagsAccess = |
877 generateEmbeddedGlobalAccess(embeddedNames.LEAF_TAGS); | 877 generateEmbeddedGlobalAccess(embeddedNames.LEAF_TAGS); |
878 jsAst.Expression finishedClassesAccess = | 878 jsAst.Expression finishedClassesAccess = |
879 generateEmbeddedGlobalAccess(embeddedNames.FINISHED_CLASSES); | 879 generateEmbeddedGlobalAccess(embeddedNames.FINISHED_CLASSES); |
880 jsAst.Expression cyclicThrow = | 880 jsAst.Expression cyclicThrow = |
881 staticFunctionAccess(backend.helpers.cyclicThrowHelper); | 881 staticFunctionAccess(backend.helpers.cyclicThrowHelper); |
882 jsAst.Expression laziesAccess = | 882 jsAst.Expression laziesAccess = |
883 generateEmbeddedGlobalAccess(embeddedNames.LAZIES); | 883 generateEmbeddedGlobalAccess(embeddedNames.LAZIES); |
884 | 884 |
885 return js.statement( | 885 return js.statement( |
886 ''' | 886 """ |
887 function init() { | 887 function init() { |
888 $isolatePropertiesName = Object.create(null); | 888 $isolatePropertiesName = Object.create(null); |
889 #allClasses = map(); | 889 #allClasses = map(); |
890 #getTypeFromName = function(name) {return #allClasses[name];}; | 890 #getTypeFromName = function(name) {return #allClasses[name];}; |
891 #interceptorsByTag = map(); | 891 #interceptorsByTag = map(); |
892 #leafTags = map(); | 892 #leafTags = map(); |
893 #finishedClasses = map(); | 893 #finishedClasses = map(); |
894 | 894 |
895 if (#needsLazyInitializer) { | 895 if (#needsLazyInitializer) { |
896 // [staticName] is only provided in non-minified mode. If missing, we | 896 // [staticName] is only provided in non-minified mode. If missing, we |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
986 } | 986 } |
987 Isolate.#functionThatReturnsNullProperty = | 987 Isolate.#functionThatReturnsNullProperty = |
988 oldIsolate.#functionThatReturnsNullProperty; | 988 oldIsolate.#functionThatReturnsNullProperty; |
989 if (#hasIncrementalSupport) { | 989 if (#hasIncrementalSupport) { |
990 Isolate.#lazyInitializerProperty = | 990 Isolate.#lazyInitializerProperty = |
991 oldIsolate.#lazyInitializerProperty; | 991 oldIsolate.#lazyInitializerProperty; |
992 } | 992 } |
993 return Isolate; | 993 return Isolate; |
994 } | 994 } |
995 | 995 |
996 }''', | 996 }""", |
997 { | 997 { |
998 'allClasses': allClassesAccess, | 998 'allClasses': allClassesAccess, |
999 'getTypeFromName': getTypeFromNameAccess, | 999 'getTypeFromName': getTypeFromNameAccess, |
1000 'interceptorsByTag': interceptorsByTagAccess, | 1000 'interceptorsByTag': interceptorsByTagAccess, |
1001 'leafTags': leafTagsAccess, | 1001 'leafTags': leafTagsAccess, |
1002 'finishedClasses': finishedClassesAccess, | 1002 'finishedClasses': finishedClassesAccess, |
1003 'needsLazyInitializer': needsLazyInitializer, | 1003 'needsLazyInitializer': needsLazyInitializer, |
1004 'lazies': laziesAccess, | 1004 'lazies': laziesAccess, |
1005 'cyclicThrow': cyclicThrow, | 1005 'cyclicThrow': cyclicThrow, |
1006 'isolatePropertiesName': namer.isolatePropertiesName, | 1006 'isolatePropertiesName': namer.isolatePropertiesName, |
(...skipping 1143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2150 if (cachedElements.isEmpty) return; | 2150 if (cachedElements.isEmpty) return; |
2151 for (Element element in compiler.enqueuer.codegen.newlyEnqueuedElements) { | 2151 for (Element element in compiler.enqueuer.codegen.newlyEnqueuedElements) { |
2152 if (element.isInstanceMember) { | 2152 if (element.isInstanceMember) { |
2153 cachedClassBuilders.remove(element.enclosingClass); | 2153 cachedClassBuilders.remove(element.enclosingClass); |
2154 | 2154 |
2155 nativeEmitter.cachedBuilders.remove(element.enclosingClass); | 2155 nativeEmitter.cachedBuilders.remove(element.enclosingClass); |
2156 } | 2156 } |
2157 } | 2157 } |
2158 } | 2158 } |
2159 } | 2159 } |
OLD | NEW |