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

Unified Diff: pkg/compiler/lib/src/js_emitter/old_emitter/reflection_data_parser.dart

Issue 833623003: dart2js: Merge intercepted names map. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Refactored. 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/old_emitter/reflection_data_parser.dart
diff --git a/pkg/compiler/lib/src/js_emitter/old_emitter/reflection_data_parser.dart b/pkg/compiler/lib/src/js_emitter/old_emitter/reflection_data_parser.dart
index c20a68d91fe92fec7dc94bca531a47a05c80ce06..adedb27a90b186a6466dc6f0a1db54d72e828e58 100644
--- a/pkg/compiler/lib/src/js_emitter/old_emitter/reflection_data_parser.dart
+++ b/pkg/compiler/lib/src/js_emitter/old_emitter/reflection_data_parser.dart
@@ -250,7 +250,10 @@ jsAst.Expression getReflectionDataParser(OldEmitter oldEmitter,
if (getterStubName) functions.push(getterStubName);
f.\$stubName = getterStubName;
f.\$callName = null;
- if (isIntercepted) #interceptedNames[getterStubName] = true;
+ // Update the interceptedNames map (which only exists if `invokeOn` was
+ // enabled).
+ if (#enabledInvokeOn)
ahe 2015/01/07 15:31:32 Curly braces?
floitsch 2015/01/07 15:48:12 They would stay, when the if(#hole) is resolved.
+ if (isIntercepted) #interceptedNames[getterStubName] = 1;
}
if (#usesMangledNames) {
@@ -280,7 +283,8 @@ jsAst.Expression getReflectionDataParser(OldEmitter oldEmitter,
}
}
}
-''', {'globalFunctions' : globalFunctionsAccess,
+''', {'globalFunctions': globalFunctionsAccess,
+ 'enabledInvokeOn': compiler.enabledInvokeOn,
'interceptedNames': interceptedNamesAccess,
'usesMangledNames':
compiler.mirrorsLibrary != null || compiler.enabledFunctionApply,
@@ -289,6 +293,9 @@ jsAst.Expression getReflectionDataParser(OldEmitter oldEmitter,
List<jsAst.Statement> tearOffCode = buildTearOffCode(backend);
+ jsAst.ObjectInitializer interceptedNamesSet =
+ oldEmitter.interceptorEmitter.generateInterceptedNamesSet();
+
jsAst.Statement init = js.statement('''{
var functionCounter = 0;
if (!#libraries) #libraries = [];
@@ -297,7 +304,8 @@ jsAst.Expression getReflectionDataParser(OldEmitter oldEmitter,
if (!#statics) #statics = map();
if (!#typeInformation) #typeInformation = map();
if (!#globalFunctions) #globalFunctions = map();
- if (!#interceptedNames) #interceptedNames = map();
+ if (#enabledInvokeOn)
+ if (!#interceptedNames) #interceptedNames = #interceptedNamesSet;
var libraries = #libraries;
var mangledNames = #mangledNames;
var mangledGlobalNames = #mangledGlobalNames;
@@ -349,7 +357,9 @@ jsAst.Expression getReflectionDataParser(OldEmitter oldEmitter,
'statics': staticsAccess,
'typeInformation': typeInformationAccess,
'globalFunctions': globalFunctionsAccess,
+ 'enabledInvokeOn': compiler.enabledInvokeOn,
'interceptedNames': interceptedNamesAccess,
+ 'interceptedNamesSet': interceptedNamesSet,
'notInCspMode': !compiler.useContentSecurityPolicy,
'needsClassSupport': oldEmitter.needsClassSupport});

Powered by Google App Engine
This is Rietveld 408576698