| Index: pkg/compiler/lib/src/js_backend/codegen/task.dart
|
| diff --git a/pkg/compiler/lib/src/js_backend/codegen/task.dart b/pkg/compiler/lib/src/js_backend/codegen/task.dart
|
| index af833c28960e9347ac1868169e0ed2a25dcd15c9..d50f32a088e6d131a98310a8aa3b0acfb714d121 100644
|
| --- a/pkg/compiler/lib/src/js_backend/codegen/task.dart
|
| +++ b/pkg/compiler/lib/src/js_backend/codegen/task.dart
|
| @@ -61,8 +61,10 @@ class CspFunctionCompiler implements FunctionCompiler {
|
| js.Fun compile(CodegenWorkItem work) {
|
| types = new TypeMaskSystem(compiler);
|
| AstElement element = work.element;
|
| + JavaScriptBackend backend = compiler.backend;
|
| return compiler.withCurrentElement(element, () {
|
| - if (element.library.isPlatformLibrary) {
|
| + if (element.library.isPlatformLibrary ||
|
| + element.library == backend.interceptorsLibrary) {
|
| compiler.log('Using SSA compiler for platform element $element');
|
| return fallbackCompiler.compile(work);
|
| }
|
| @@ -104,6 +106,13 @@ class CspFunctionCompiler implements FunctionCompiler {
|
| if (cpsNode == null) {
|
| giveUp('unable to build cps definition of $element');
|
| }
|
| + if (element.isInstanceMember && !element.isGenerativeConstructorBody) {
|
| + Selector selector = new Selector.fromElement(cpsNode.element);
|
| + if (glue.isInterceptedSelector(selector)) {
|
| + giveUp('cannot compile methods that need interceptor calling '
|
| + 'convention.');
|
| + }
|
| + }
|
| traceGraph("IR Builder", cpsNode);
|
| new UnsugarVisitor(glue).rewrite(cpsNode);
|
| traceGraph("Unsugaring", cpsNode);
|
|
|