Index: pkg/compiler/lib/src/ssa/builder.dart |
diff --git a/pkg/compiler/lib/src/ssa/builder.dart b/pkg/compiler/lib/src/ssa/builder.dart |
index 40d87d147970ad8e7a8aaaf8fd493c7e93319a76..32965f3b6fe8447ac7b47975da97284a059f740a 100644 |
--- a/pkg/compiler/lib/src/ssa/builder.dart |
+++ b/pkg/compiler/lib/src/ssa/builder.dart |
@@ -3738,16 +3738,20 @@ class SsaBuilder extends ResolvedVisitor { |
} |
return; |
} |
- ast.LiteralString string = argument.asLiteralString(); |
- if (string == null) { |
+ Element element = elements[argument]; |
+ if (element == null || |
+ element is! FieldElement || |
+ element.enclosingClass != backend.jsGetNameEnum) { |
compiler.reportError( |
argument, MessageKind.GENERIC, |
- {'text': 'Error: Expected a literal string.'}); |
+ {'text': 'Error: Expected a JsGetName enum value.'}); |
} |
+ EnumClassElement enumClass = element.enclosingClass; |
+ int index = enumClass.enumValues.indexOf(element); |
stack.add( |
addConstantString( |
backend.namer.getNameForJsGetName( |
- argument, string.dartString.slowToString()))); |
+ argument, JsGetName.values[index]))); |
} |
void handleForeignJsEmbeddedGlobal(ast.Send node) { |