Index: pkg/compiler/lib/src/native/enqueue.dart |
diff --git a/pkg/compiler/lib/src/native/enqueue.dart b/pkg/compiler/lib/src/native/enqueue.dart |
index 131ba1844094e411b864e67fefe6ed604501ee8c..462b09e3fb46044a1086c07fbc97c98f1bce7394 100644 |
--- a/pkg/compiler/lib/src/native/enqueue.dart |
+++ b/pkg/compiler/lib/src/native/enqueue.dart |
@@ -54,6 +54,18 @@ class NativeEnqueuer { |
// TODO(sra): The entry from codegen will not have a resolver. |
void registerJsEmbeddedGlobalCall(Send node, ResolverVisitor resolver) {} |
+ /** |
+ * Handles JS-compiler macro calls, which can be an instantiation point for |
+ * types. |
+ * |
+ * For example, the following code instantiates and returns a String class |
+ * |
+ * JS_EMBEDDED_GLOBAL('String', 'int2stringMacro', 0) |
+ * |
+ */ |
+ // TODO(sra): The entry from codegen will not have a resolver. |
+ void registerJsCompilerMacroCall(Send node, ResolverVisitor resolver) {} |
+ |
/// Emits a summary information using the [log] function. |
void logSummary(log(message)) {} |
@@ -461,6 +473,14 @@ abstract class NativeEnqueuerBase implements NativeEnqueuer { |
flushQueue(); |
} |
+ void registerJsCompilerMacroCall(Send node, ResolverVisitor resolver) { |
+ NativeBehavior behavior = |
+ NativeBehavior.ofJsCompilerMacroCall(node, compiler, resolver); |
+ processNativeBehavior(behavior, node); |
+ nativeBehaviors[node] = behavior; |
+ flushQueue(); |
+ } |
+ |
NativeBehavior getNativeBehaviorOf(Send node) => nativeBehaviors[node]; |
processNativeBehavior(NativeBehavior behavior, cause) { |