| 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 2dca5031067a69d05063bccad4a974cf8654d439..2ee1fdbe22285054bd59b328483fbddafc0adc4a 100644
 | 
| --- a/pkg/compiler/lib/src/ssa/builder.dart
 | 
| +++ b/pkg/compiler/lib/src/ssa/builder.dart
 | 
| @@ -3556,17 +3556,17 @@ class SsaBuilder extends NewResolvedVisitor {
 | 
|        InterfaceType interface = type;
 | 
|        List<HInstruction> inputs = <HInstruction>[];
 | 
|        bool first = true;
 | 
| -      List<String> templates = <String>[];
 | 
| +      List<js.Expression> templates = <js.Expression>[];
 | 
|        for (DartType argument in interface.typeArguments) {
 | 
| -        templates.add(rti.getTypeRepresentationWithHashes(argument, (variable) {
 | 
| +        templates.add(rti.getTypeRepresentationWithPlaceholders(argument, (variable) {
 | 
|            HInstruction runtimeType = addTypeVariableReference(variable);
 | 
|            inputs.add(runtimeType);
 | 
|          }));
 | 
|        }
 | 
| -      String template = '[${templates.join(', ')}]';
 | 
|        // TODO(sra): This is a fresh template each time.  We can't let the
 | 
|        // template manager build them.
 | 
| -      js.Template code = js.js.uncachedExpressionTemplate(template);
 | 
| +      js.Template code = new js.Template(null,
 | 
| +                                         new js.ArrayInitializer(templates));
 | 
|        HInstruction representation =
 | 
|            new HForeignCode(code, backend.readableArrayType, inputs,
 | 
|                nativeBehavior: native.NativeBehavior.PURE_ALLOCATION);
 | 
| @@ -4623,11 +4623,12 @@ class SsaBuilder extends NewResolvedVisitor {
 | 
|  
 | 
|      List<HInstruction> inputs = <HInstruction>[];
 | 
|  
 | 
| -    String template = rti.getTypeRepresentationWithHashes(argument, (variable) {
 | 
| -      inputs.add(addTypeVariableReference(variable));
 | 
| -    });
 | 
| +    js.Expression template =
 | 
| +        rti.getTypeRepresentationWithPlaceholders(argument, (variable) {
 | 
| +            inputs.add(addTypeVariableReference(variable));
 | 
| +        });
 | 
|  
 | 
| -    js.Template code = js.js.uncachedExpressionTemplate(template);
 | 
| +    js.Template code = new js.Template(null, template);
 | 
|      HInstruction result = new HForeignCode(code, backend.stringType, inputs,
 | 
|          nativeBehavior: native.NativeBehavior.PURE);
 | 
|      add(result);
 | 
| 
 |