| Index: lib/compiler/implementation/ssa/codegen.dart | 
| diff --git a/lib/compiler/implementation/ssa/codegen.dart b/lib/compiler/implementation/ssa/codegen.dart | 
| index f1bebc7d6573c6a3401121faf622f25e102da7f4..bd4ba4899d2cbe189bab0c22acce0f8b30152b56 100644 | 
| --- a/lib/compiler/implementation/ssa/codegen.dart | 
| +++ b/lib/compiler/implementation/ssa/codegen.dart | 
| @@ -1714,30 +1714,33 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor { | 
| } | 
|  | 
| void generateConstant(Constant constant) { | 
| -    Namer namer = backend.namer; | 
| -    if (!constant.isObject()) { | 
| +    ConstantHandler handler = compiler.constantHandler; | 
| +    String name = handler.getNameForConstant(constant); | 
| +    if (name === null) { | 
| +      assert(!constant.isObject()); | 
| if (constant.isBool()) { | 
| push(new js.LiteralBool((constant as BoolConstant).value)); | 
| } else if (constant.isNum()) { | 
| // TODO(floitsch): get rid of the code buffer. | 
| CodeBuffer buffer = new CodeBuffer(); | 
| -        backend.emitter.writeConstantToBuffer(constant, buffer); | 
| +        handler.writeConstant(buffer, constant); | 
| push(new js.LiteralNumber(buffer.toString())); | 
| } else if (constant.isNull()) { | 
| push(new js.LiteralNull()); | 
| } else if (constant.isString()) { | 
| // TODO(floitsch): get rid of the code buffer. | 
| CodeBuffer buffer = new CodeBuffer(); | 
| -        backend.emitter.writeConstantToBuffer(constant, buffer); | 
| +        handler.writeConstant(buffer, constant); | 
| push(new js.LiteralString(buffer.toString())); | 
| } else if (constant.isFunction()) { | 
| FunctionConstant function = constant; | 
| world.registerStaticUse(function.element); | 
| -        push(new js.VariableUse(namer.isolateAccess(function.element))); | 
| +        push(new js.VariableUse( | 
| +            backend.namer.isolateAccess(function.element))); | 
| } else if (constant.isSentinel()) { | 
| // TODO(floitsch): get rid of the code buffer. | 
| CodeBuffer buffer = new CodeBuffer(); | 
| -        backend.emitter.writeConstantToBuffer(constant, buffer); | 
| +        handler.writeConstant(buffer, constant); | 
| push(new js.VariableUse(buffer.toString())); | 
| } else { | 
| compiler.internalError( | 
| @@ -1745,7 +1748,6 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor { | 
| "constant $constant"); | 
| } | 
| } else { | 
| -      String name = namer.constantName(constant); | 
| js.VariableUse currentIsolateUse = | 
| new js.VariableUse(backend.namer.CURRENT_ISOLATE); | 
| push(new js.PropertyAccess.field(currentIsolateUse, name)); | 
|  |