Index: pkg/compiler/lib/src/js_emitter/program_builder.dart |
diff --git a/pkg/compiler/lib/src/js_emitter/program_builder.dart b/pkg/compiler/lib/src/js_emitter/program_builder.dart |
index 74295c876ef49184be50aab0b0b245534d21696e..8eb936ec3b2f15dcd223a063399e7f2f308daf01 100644 |
--- a/pkg/compiler/lib/src/js_emitter/program_builder.dart |
+++ b/pkg/compiler/lib/src/js_emitter/program_builder.dart |
@@ -214,7 +214,7 @@ class ProgramBuilder { |
// a static field. |
_registry.registerHolder(namer.globalObjectForConstant(initialValue)); |
js.Expression code = _task.emitter.constantReference(initialValue); |
- String name = namer.globalPropertyName(element); |
+ js.Name name = namer.globalPropertyName(element); |
bool isFinal = false; |
bool isLazy = false; |
@@ -250,7 +250,7 @@ class ProgramBuilder { |
// before code generation. |
if (code == null) return null; |
- String name = namer.globalPropertyName(element); |
+ js.Name name = namer.globalPropertyName(element); |
bool isFinal = element.isFinal; |
bool isLazy = true; |
// TODO(floitsch): we shouldn't update the registry in the middle of |
@@ -306,7 +306,7 @@ class ProgramBuilder { |
assert(_compiler.hasIncrementalSupport); |
List<Field> instanceFields = _buildFields(element, false); |
- String name = namer.className(element); |
+ js.Name name = namer.className(element); |
return new Class( |
element, name, null, [], instanceFields, [], [], [], [], [], null, |
@@ -340,9 +340,9 @@ class ProgramBuilder { |
_compiler.codegenWorld.invokedNames[member.name]; |
if (selectors != null && !selectors.isEmpty) { |
- Map<String, js.Expression> callStubsForMember = |
+ Map<js.Name, js.Expression> callStubsForMember = |
classStubGenerator.generateCallStubsForGetter(member, selectors); |
- callStubsForMember.forEach((String name, js.Expression code) { |
+ callStubsForMember.forEach((js.Name name, js.Expression code) { |
callStubs.add(_buildStubMethod(name, code, element: member)); |
}); |
} |
@@ -354,9 +354,9 @@ class ProgramBuilder { |
List<StubMethod> noSuchMethodStubs = <StubMethod>[]; |
if (backend.enabledNoSuchMethod && element == _compiler.objectClass) { |
- Map<String, Selector> selectors = |
+ Map<js.Name, Selector> selectors = |
classStubGenerator.computeSelectorsForNsmHandlers(); |
- selectors.forEach((String name, Selector selector) { |
+ selectors.forEach((js.Name name, Selector selector) { |
noSuchMethodStubs |
.add(classStubGenerator.generateStubForNoSuchMethod(name, |
selector)); |
@@ -366,7 +366,7 @@ class ProgramBuilder { |
if (element == backend.closureClass) { |
// We add a special getter here to allow for tearing off a closure from |
// itself. |
- String name = namer.getterForMember(Selector.CALL_NAME); |
+ js.Name name = namer.getterForMember(Selector.CALL_NAME); |
js.Fun function = js.js('function() { return this; }'); |
callStubs.add(_buildStubMethod(name, function)); |
} |
@@ -390,11 +390,11 @@ class ProgramBuilder { |
storeFunctionTypeInMetadata: _storeFunctionTypesInMetadata); |
List<StubMethod> isChecks = <StubMethod>[]; |
- typeTests.properties.forEach((String name, js.Node code) { |
+ typeTests.properties.forEach((js.Name name, js.Node code) { |
isChecks.add(_buildStubMethod(name, code)); |
}); |
- String name = namer.className(element); |
+ js.Name name = namer.className(element); |
String holderName = namer.globalObjectFor(element); |
// TODO(floitsch): we shouldn't update the registry in the middle of |
// building a class. |
@@ -481,21 +481,21 @@ class ProgramBuilder { |
} |
DartMethod _buildMethod(MethodElement element) { |
- String name = namer.methodPropertyName(element); |
+ js.Name name = namer.methodPropertyName(element); |
js.Expression code = backend.generatedCode[element]; |
// TODO(kasperl): Figure out under which conditions code is null. |
if (code == null) return null; |
bool canTearOff = false; |
- String tearOffName; |
+ js.Name tearOffName; |
bool isClosure = false; |
bool isNotApplyTarget = !element.isFunction || element.isAccessor; |
bool canBeReflected = _methodCanBeReflected(element); |
bool canBeApplied = _methodCanBeApplied(element); |
- String aliasName = backend.isAliasedSuperMember(element) |
+ js.Name aliasName = backend.isAliasedSuperMember(element) |
? namer.aliasedSuperMemberPropertyName(element) |
: null; |
@@ -521,7 +521,7 @@ class ProgramBuilder { |
assert(invariant(element, !element.isConstructor)); |
} |
- String callName = null; |
+ js.Name callName = null; |
if (canTearOff) { |
Selector callSelector = |
new Selector.fromElement(element).toCallSelector(); |
@@ -589,7 +589,7 @@ class ProgramBuilder { |
/// |
/// Stub methods may have an element that can be used for code-size |
/// attribution. |
- Method _buildStubMethod(String name, js.Expression code, |
+ Method _buildStubMethod(js.Name name, js.Expression code, |
{Element element}) { |
return new StubMethod(name, code, element: element); |
} |
@@ -598,7 +598,7 @@ class ProgramBuilder { |
// We must evaluate these classes eagerly so that the prototype is |
// accessible. |
void _markEagerInterceptorClasses() { |
- Map<String, Set<ClassElement>> specializedGetInterceptors = |
+ Map<js.Name, Set<ClassElement>> specializedGetInterceptors = |
backend.specializedGetInterceptors; |
for (Set<ClassElement> classes in specializedGetInterceptors.values) { |
for (ClassElement element in classes) { |
@@ -617,10 +617,10 @@ class ProgramBuilder { |
// generating the interceptor methods. |
Holder holder = _registry.registerHolder(holderName); |
- Map<String, Set<ClassElement>> specializedGetInterceptors = |
+ Map<js.Name, Set<ClassElement>> specializedGetInterceptors = |
backend.specializedGetInterceptors; |
- List<String> names = specializedGetInterceptors.keys.toList()..sort(); |
- return names.map((String name) { |
+ List<js.Name> names = specializedGetInterceptors.keys.toList()..sort(); |
+ return names.map((js.Name name) { |
Set<ClassElement> classes = specializedGetInterceptors[name]; |
js.Expression code = stubGenerator.generateGetInterceptorMethod(classes); |
return new StaticStubMethod(name, holder, code); |
@@ -631,8 +631,8 @@ class ProgramBuilder { |
List<Field> fields = <Field>[]; |
_task.oldEmitter.classEmitter.visitFields( |
holder, visitStatics, (VariableElement field, |
- String name, |
- String accessorName, |
+ js.Name name, |
+ js.Name accessorName, |
bool needsGetter, |
bool needsSetter, |
bool needsCheckedSetter) { |
@@ -682,15 +682,15 @@ class ProgramBuilder { |
// generating the interceptor methods. |
Holder holder = _registry.registerHolder(holderName); |
- List<String> names = backend.oneShotInterceptors.keys.toList()..sort(); |
- return names.map((String name) { |
+ List<js.Name> names = backend.oneShotInterceptors.keys.toList()..sort(); |
+ return names.map((js.Name name) { |
js.Expression code = stubGenerator.generateOneShotInterceptor(name); |
return new StaticStubMethod(name, holder, code); |
}); |
} |
StaticDartMethod _buildStaticMethod(FunctionElement element) { |
- String name = namer.methodPropertyName(element); |
+ js.Name name = namer.methodPropertyName(element); |
String holder = namer.globalObjectFor(element); |
js.Expression code = backend.generatedCode[element]; |
@@ -702,11 +702,11 @@ class ProgramBuilder { |
(canBeReflected || |
universe.staticFunctionsNeedingGetter.contains(element)); |
- String tearOffName = |
+ js.Name tearOffName = |
needsTearOff ? namer.staticClosureName(element) : null; |
- String callName = null; |
+ js.Name callName = null; |
if (needsTearOff) { |
Selector callSelector = |
new Selector.fromElement(element).toCallSelector(); |
@@ -752,7 +752,7 @@ class ProgramBuilder { |
for (ConstantValue constantValue in constantValues) { |
_registry.registerConstant(outputUnit, constantValue); |
assert(!_constants.containsKey(constantValue)); |
- String name = namer.constantName(constantValue); |
+ js.Name name = namer.constantName(constantValue); |
String constantObject = namer.globalObjectForConstant(constantValue); |
Holder holder = _registry.registerHolder(constantObject); |
Constant constant = new Constant(name, holder, constantValue); |