Chromium Code Reviews| Index: pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart |
| diff --git a/pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart b/pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart |
| index a2b1c62fac1067953f7190305ed5066e56196c76..8ae0b2198845d6bbda7b1270317a60a29a625acc 100644 |
| --- a/pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart |
| +++ b/pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart |
| @@ -16,7 +16,8 @@ import 'package:_internal/compiler/js_lib/shared/embedded_names.dart' show |
| DEFERRED_LIBRARY_HASHES, |
| INITIALIZE_LOADED_HUNK, |
| IS_HUNK_INITIALIZED, |
| - IS_HUNK_LOADED; |
| + IS_HUNK_LOADED, |
| + TYPE_TO_INTERCEPTOR_MAP; |
| import '../js_emitter.dart' show NativeGenerator; |
| import '../model.dart'; |
| @@ -107,7 +108,7 @@ class ModelEmitter { |
| 'cyclicThrow': |
| backend.emitter.staticFunctionAccess(backend.getCyclicThrowHelper()), |
| 'outputContainsConstantList': program.outputContainsConstantList, |
| - 'embeddedGlobals': emitEmbeddedGlobals(program.loadMap), |
| + 'embeddedGlobals': emitEmbeddedGlobals(program), |
| 'constants': emitConstants(fragment.constants), |
| 'staticNonFinals': emitStaticNonFinalFields(fragment.staticNonFinalFields), |
|
floitsch
2015/01/27 13:13:06
I have a fix for this in a separate CL.
|
| 'nativeBoilerplate': nativeBoilerplate, |
| @@ -146,15 +147,20 @@ class ModelEmitter { |
| return js.js.uncachedExpressionTemplate('makeConstList(#)'); |
| } |
| - js.Block emitEmbeddedGlobals(Map<String, List<Fragment>> loadMap) { |
| + js.Block emitEmbeddedGlobals(Program program) { |
| List<js.Property> globals = <js.Property>[]; |
| - if (loadMap.isNotEmpty) { |
| - globals.addAll(emitLoadUrisAndHashes(loadMap)); |
| + if (program.loadMap.isNotEmpty) { |
| + globals.addAll(emitLoadUrisAndHashes(program.loadMap)); |
| globals.add(emitIsHunkLoadedFunction()); |
| globals.add(emitInitializeLoadedHunk()); |
| } |
| + if (program.typeToInterceptorMap != null) { |
| + globals.add(new js.Property(js.string(TYPE_TO_INTERCEPTOR_MAP), |
| + program.typeToInterceptorMap)); |
| + } |
| + |
| js.ObjectInitializer globalsObject = new js.ObjectInitializer(globals); |
| List<js.Statement> statements = |
| @@ -548,12 +554,12 @@ class ModelEmitter { |
| setupProgram(); |
| - // Initialize globals. |
| - #embeddedGlobals; |
| - |
| // Initialize constants. |
| #constants; |
| + // Initialize globals. |
| + #embeddedGlobals; |
| + |
| // Initialize static non-final fields. |
| #staticNonFinals; |