| 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 |