Chromium Code Reviews| 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); |