Chromium Code Reviews| Index: pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart |
| diff --git a/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart b/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart |
| index 334b7462e8518239135b2a111047fc190f7cd8e4..6dc5f71edb8a078fa53aa280a36a6c8b16b71e9c 100644 |
| --- a/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart |
| +++ b/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart |
| @@ -277,7 +277,7 @@ class OldEmitter implements Emitter { |
| return backend.rti.representationGenerator.templateForIsFunctionType; |
| case JsBuiltin.rawRtiToJsConstructorName: |
| - return jsAst.js.expressionTemplateFor("#.$typeNameProperty"); |
| + return jsAst.js.expressionTemplateFor("#.name"); |
| case JsBuiltin.rawRuntimeType: |
| return jsAst.js.expressionTemplateFor("#.constructor"); |
| @@ -297,19 +297,19 @@ class OldEmitter implements Emitter { |
| String functionClassName = |
| backend.namer.runtimeTypeName(compiler.functionClass); |
| return jsAst.js.expressionTemplateFor( |
| - '#.$typeNameProperty === "$functionClassName"'); |
| + '#.name === "$functionClassName"'); |
| case JsBuiltin.isDartObjectTypeRti: |
| String objectClassName = |
| backend.namer.runtimeTypeName(compiler.objectClass); |
| return jsAst.js.expressionTemplateFor( |
| - '#.$typeNameProperty === "$objectClassName"'); |
| + '#.name === "$objectClassName"'); |
| case JsBuiltin.isNullTypeRti: |
| String nullClassName = |
| backend.namer.runtimeTypeName(compiler.nullClass); |
| return jsAst.js.expressionTemplateFor( |
| - '#.$typeNameProperty === "$nullClassName"'); |
| + '#.name === "$nullClassName"'); |
| case JsBuiltin.getMetadata: |
| String metadataAccess = |
| @@ -1038,10 +1038,10 @@ class OldEmitter implements Emitter { |
| cspPrecompiledFunctionFor(outputUnit).add(js.statement(r''' |
| { |
| - #constructorName.#typeNameProperty = #constructorNameString; |
| - // IE does not have a name property. |
| - if (!("name" in #constructorName)) |
| - #constructorName.name = #constructorNameString; |
| + if (typeof #constructorName.name != 'string') { |
|
sra1
2015/06/26 23:10:09
ditto double quotw
floitsch
2015/07/01 17:00:14
Done.
|
| + // IE does not store the name, but allows to modify the property. |
| + #constructorName.name = #constructorNameString; |
| + } |
| $desc = $collectedClasses$.#constructorName[1]; |
| #constructorName.prototype = $desc; |
| ''' /* next string is not a raw string */ ''' |
| @@ -1050,7 +1050,6 @@ class OldEmitter implements Emitter { |
| } |
| }''', |
| {"constructorName": constructorName, |
| - "typeNameProperty": typeNameProperty, |
| "constructorNameString": js.string(constructorName), |
| "hasIsolateSupport": hasIsolateSupport, |
| "fieldNamesArray": fieldNamesArray})); |