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 f83b436d63041d4708604c8b67a82e952b685627..828839e037594522e9bef95769bd21afca8b51d1 100644 |
--- a/pkg/compiler/lib/src/ssa/builder.dart |
+++ b/pkg/compiler/lib/src/ssa/builder.dart |
@@ -26,7 +26,7 @@ class SsaFunctionCompiler implements FunctionCompiler { |
JavaScriptBackend backend = builder.backend; |
AsyncRewriterBase rewriter = null; |
- String name = backend.namer.methodPropertyName(element); |
+ js.Name name = backend.namer.methodPropertyName(element); |
if (element.asyncMarker == AsyncMarker.ASYNC) { |
rewriter = new AsyncRewriter( |
backend.compiler, |
@@ -35,8 +35,8 @@ class SsaFunctionCompiler implements FunctionCompiler { |
backend.emitter.staticFunctionAccess(backend.getAsyncHelper()), |
newCompleter: backend.emitter.staticFunctionAccess( |
backend.getCompleterConstructor()), |
- safeVariableName: backend.namer.safeVariableName, |
- bodyName: name); |
+ safeVariableName: backend.namer.safeVariablePrefixForAsyncRewrite, |
+ bodyName: backend.namer.deriveAsyncBodyName(name)); |
} else if (element.asyncMarker == AsyncMarker.SYNC_STAR) { |
rewriter = new SyncStarRewriter( |
backend.compiler, |
@@ -49,8 +49,8 @@ class SsaFunctionCompiler implements FunctionCompiler { |
backend.getYieldStar()), |
uncaughtErrorExpression: backend.emitter.staticFunctionAccess( |
backend.getSyncStarUncaughtError()), |
- safeVariableName: backend.namer.safeVariableName, |
- bodyName: name); |
+ safeVariableName: backend.namer.safeVariablePrefixForAsyncRewrite, |
+ bodyName: backend.namer.deriveAsyncBodyName(name)); |
} |
else if (element.asyncMarker == AsyncMarker.ASYNC_STAR) { |
rewriter = new AsyncStarRewriter( |
@@ -62,12 +62,12 @@ class SsaFunctionCompiler implements FunctionCompiler { |
backend.getStreamOfController()), |
newController: backend.emitter.staticFunctionAccess( |
backend.getASyncStarControllerConstructor()), |
- safeVariableName: backend.namer.safeVariableName, |
+ safeVariableName: backend.namer.safeVariablePrefixForAsyncRewrite, |
yieldExpression: backend.emitter.staticFunctionAccess( |
backend.getYieldSingle()), |
yieldStarExpression: backend.emitter.staticFunctionAccess( |
backend.getYieldStar()), |
- bodyName: name); |
+ bodyName: backend.namer.deriveAsyncBodyName(name)); |
} |
if (rewriter != null) { |
result = rewriter.rewrite(result); |
@@ -3673,10 +3673,10 @@ class SsaBuilder extends NewResolvedVisitor { |
HInstruction representations = |
buildTypeArgumentRepresentations(type); |
add(representations); |
- String operator = backend.namer.operatorIs(element); |
- HInstruction isFieldName = addConstantString(operator); |
+ js.Name operator = backend.namer.operatorIs(element); |
+ HInstruction isFieldName = addConstantStringFromName(operator); |
HInstruction asFieldName = compiler.world.hasAnyStrictSubtype(element) |
- ? addConstantString(backend.namer.substitutionName(element)) |
+ ? addConstantStringFromName(backend.namer.substitutionName(element)) |
: graph.addConstantNull(compiler); |
List<HInstruction> inputs = <HInstruction>[expression, |
isFieldName, |
@@ -4028,7 +4028,7 @@ class SsaBuilder extends NewResolvedVisitor { |
EnumClassElement enumClass = element.enclosingClass; |
int index = enumClass.enumValues.indexOf(element); |
stack.add( |
- addConstantString( |
+ addConstantStringFromName( |
backend.namer.getNameForJsGetName( |
argument, JsGetName.values[index]))); |
} |
@@ -4299,9 +4299,7 @@ class SsaBuilder extends NewResolvedVisitor { |
ConstantValue nameConstant = constantSystem.createString( |
new ast.DartString.literal(publicName)); |
- String internalName = backend.namer.invocationName(selector); |
- ConstantValue internalNameConstant = |
- constantSystem.createString(new ast.DartString.literal(internalName)); |
+ js.Name internalName = backend.namer.invocationName(selector); |
Element createInvocationMirror = backend.getCreateInvocationMirror(); |
var argumentsInstruction = buildLiteralList(arguments); |
@@ -4322,7 +4320,7 @@ class SsaBuilder extends NewResolvedVisitor { |
pushInvokeStatic(null, |
createInvocationMirror, |
[graph.addConstant(nameConstant, compiler), |
- graph.addConstant(internalNameConstant, compiler), |
+ graph.addConstantStringFromName(internalName, compiler), |
graph.addConstant(kindConstant, compiler), |
argumentsInstruction, |
argumentNamesInstruction], |
@@ -4588,12 +4586,12 @@ class SsaBuilder extends NewResolvedVisitor { |
// TODO(ahe): Creating a string here is unfortunate. It is slow (due to |
// string concatenation in the implementation), and may prevent |
// segmentation of '$'. |
- String substitutionNameString = backend.namer.runtimeTypeName(cls); |
- HInstruction substitutionName = graph.addConstantString( |
- new ast.LiteralDartString(substitutionNameString), compiler); |
+ js.Name substitutionName = backend.namer.runtimeTypeName(cls); |
+ HInstruction substitutionNameInstr = graph.addConstantStringFromName( |
+ substitutionName, compiler); |
pushInvokeStatic(null, |
backend.getGetRuntimeTypeArgument(), |
- [target, substitutionName, index], |
+ [target, substitutionNameInstr, index], |
typeMask: backend.dynamicType); |
} else { |
pushInvokeStatic(null, backend.getGetTypeArgumentByIndex(), |
@@ -5193,8 +5191,11 @@ class SsaBuilder extends NewResolvedVisitor { |
HConstant addConstantString(String string) { |
ast.DartString dartString = new ast.DartString.literal(string); |
- ConstantValue constant = constantSystem.createString(dartString); |
- return graph.addConstant(constant, compiler); |
+ return graph.addConstantString(dartString, compiler); |
+ } |
+ |
+ HConstant addConstantStringFromName(js.Name name) { |
+ return graph.addConstantStringFromName(name, compiler); |
} |
visitClassTypeLiteralGet( |