Chromium Code Reviews| Index: dart/sdk/lib/_internal/compiler/implementation/ssa/builder.dart |
| diff --git a/dart/sdk/lib/_internal/compiler/implementation/ssa/builder.dart b/dart/sdk/lib/_internal/compiler/implementation/ssa/builder.dart |
| index ba26fe23147674269a9ac7c65faf7bb47c34f09e..52b2d7bad548280a59d61e912ceb3c9913c5fe9c 100644 |
| --- a/dart/sdk/lib/_internal/compiler/implementation/ssa/builder.dart |
| +++ b/dart/sdk/lib/_internal/compiler/implementation/ssa/builder.dart |
| @@ -3650,6 +3650,7 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
| visitNewExpression(NewExpression node) { |
| Element element = elements[node.send]; |
| + final bool isSymbolConstructor = element == compiler.symbolConstructor; |
|
ngeoffray
2013/05/08 12:34:06
Remove final.
ahe
2013/05/08 21:47:53
Why?
ngeoffray
2013/05/13 10:31:40
Consistency? We never use "final" for local variab
|
| if (!Elements.isErroneousElement(element)) { |
| FunctionElement function = element; |
| element = function.redirectionTarget; |
| @@ -3669,6 +3670,12 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
| ConstantHandler handler = compiler.constantHandler; |
| Constant constant = handler.compileNodeWithDefinitions(node, elements); |
| stack.add(graph.addConstant(constant)); |
| + if (isSymbolConstructor) { |
| + ConstructedConstant symbol = constant; |
| + StringConstant stringConstant = symbol.fields.single; |
| + String nameString = stringConstant.toDartString().slowToString(); |
| + compiler.enqueuer.codegen.registerConstSymbol(nameString, elements); |
| + } |
| } else { |
| DartType type = elements.getType(node); |
| if (compiler.enableTypeAssertions && type.isMalformed) { |