Index: pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart |
diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart |
index e7353091daa31b8eabdef88e094c5435d6fad923..e30225bc1e6b381be89aaedb0984f4f54b15fa26 100644 |
--- a/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart |
+++ b/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart |
@@ -13,7 +13,8 @@ import '../elements/elements.dart'; |
import '../elements/modelx.dart' show SynthesizedConstructorElementX, |
ConstructorBodyElementX, FunctionSignatureX; |
import '../io/source_information.dart'; |
-import '../js_backend/js_backend.dart' show JavaScriptBackend; |
+import '../js_backend/js_backend.dart' show JavaScriptBackend, |
+ SyntheticConstantKind; |
import '../resolution/semantic_visitor.dart'; |
import '../resolution/operators.dart' as op; |
import '../tree/tree.dart' as ast; |
@@ -24,7 +25,7 @@ import 'cps_ir_builder.dart'; |
import '../native/native.dart' show NativeBehavior; |
// TODO(karlklose): remove. |
-import '../js/js.dart' as js show js, Template, Expression; |
+import '../js/js.dart' as js show js, Template, Expression, Name; |
import '../ssa/ssa.dart' show TypeMaskFactory; |
import '../types/types.dart' show TypeMask; |
import '../util/util.dart'; |
@@ -3021,8 +3022,8 @@ class JsIrBuilderVisitor extends IrBuilderVisitor { |
validateArgumentCount(minimum: 2); |
ast.Node builtin = argumentNodes.tail.head; |
- JsBuiltin value = getEnumValue(argumentNodes.tail.head, |
- backend.jsBuiltinEnum, JsBuiltin.values); |
+ JsBuiltin value = getEnumValue(builtin, backend.jsBuiltinEnum, |
+ JsBuiltin.values); |
js.Template template = backend.emitter.builtinTemplateFor(value); |
List<ir.Primitive> arguments = |
argumentNodes.skip(2).mapToList(visit, growable: false); |
@@ -3061,8 +3062,12 @@ class JsIrBuilderVisitor extends IrBuilderVisitor { |
ast.Node argument = argumentNodes.head; |
JsGetName id = getEnumValue(argument, backend.jsGetNameEnum, |
JsGetName.values); |
- String name = backend.namer.getNameForJsGetName(argument, id); |
- return irBuilder.buildStringConstant(name); |
+ js.Name name = backend.namer.getNameForJsGetName(argument, id); |
+ ConstantValue nameConstant = |
+ new SyntheticConstantValue(SyntheticConstantKind.NAME, |
+ js.js.quoteName(name)); |
+ |
+ return irBuilder.buildConstant(nameConstant); |
case 'JS_GET_FLAG': |
validateArgumentCount(exactly: 1); |