Index: pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart |
diff --git a/pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart b/pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart |
index 020b81bfad39727fdcdaaf139e4eeae99c5de96d..3341474cb6f9e363e9b7de428b7ec8e71887a056 100644 |
--- a/pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart |
+++ b/pkg/compiler/lib/src/inferrer/simple_types_inferrer.dart |
@@ -1088,10 +1088,16 @@ class SimpleTypeInferrerVisitor<T> |
Selector selector = elements.getSelector(node); |
String name = selector.name; |
handleStaticSend(node, selector, elements[node], arguments); |
- if (name == 'JS' || name == 'JS_EMBEDDED_GLOBAL') { |
+ if (name == 'JS' || name == 'JS_EMBEDDED_GLOBAL' || |
+ name == 'JS_COMPILER_MACRO') { |
native.NativeBehavior nativeBehavior = |
compiler.enqueuer.resolution.nativeEnqueuer.getNativeBehaviorOf(node); |
- sideEffects.add(nativeBehavior.sideEffects); |
+ if (name == 'JS_COMPILER_MACRO') { |
+ // TODO(floitsch): this shouldn't be necessary. |
+ sideEffects.setAllSideEffects(); |
+ } else { |
+ sideEffects.add(nativeBehavior.sideEffects); |
+ } |
return inferrer.typeOfNativeBehavior(nativeBehavior); |
} else if (name == 'JS_GET_NAME' |
|| name == 'JS_NULL_CLASS_NAME' |