Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(220)

Unified Diff: pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart

Issue 880923003: dart2js: store typeToInterceptorMap in the model. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Rebase Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
« no previous file with comments | « pkg/compiler/lib/src/js_emitter/model.dart ('k') | pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698