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

Unified Diff: lib/compiler/implementation/js_backend/backend.dart

Issue 10917254: Move registering of interceptors to the JsBackend. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 3 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: lib/compiler/implementation/js_backend/backend.dart
diff --git a/lib/compiler/implementation/js_backend/backend.dart b/lib/compiler/implementation/js_backend/backend.dart
index 9006953008a06a8e154a994fd8e3534c36f98079..a7ec5790036a9ec7ad0ad7382945a830bad48e08 100644
--- a/lib/compiler/implementation/js_backend/backend.dart
+++ b/lib/compiler/implementation/js_backend/backend.dart
@@ -430,6 +430,8 @@ class JavaScriptBackend extends Backend {
final List<Element> invalidateAfterCodegen;
ArgumentTypesRegistry argumentTypes;
+ Interceptors interceptors;
kasperl 2012/09/14 09:04:41 final?
karlklose 2012/10/08 13:15:35 Done.
+
List<CompilerTask> get tasks {
return <CompilerTask>[builder, optimizer, generator, emitter];
}
@@ -441,6 +443,7 @@ class JavaScriptBackend extends Backend {
namer = new Namer(compiler),
returnInfo = new Map<Element, ReturnInfo>(),
invalidateAfterCodegen = new List<Element>(),
+ interceptors = new Interceptors(compiler),
super(compiler, constantSystem: JAVA_SCRIPT_CONSTANT_SYSTEM) {
emitter = new CodeEmitterTask(compiler, namer, generateSourceMap);
builder = new SsaBuilderTask(this);
@@ -457,6 +460,13 @@ class JavaScriptBackend extends Backend {
return new JavaScriptItemCompilationContext();
}
+ void onUseSelector(Selector selector, Enqueuer world) {
+ Element interceptor = interceptors.getStaticInterceptorBySelector(selector);
+ if (interceptor !== null) {
+ world.registerStaticUse(interceptor);
+ }
+ }
+
void enqueueHelpers(Enqueuer world) {
enqueueAllTopLevelFunctions(compiler.jsHelperLibrary, world);

Powered by Google App Engine
This is Rietveld 408576698