Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(544)

Unified Diff: pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart

Issue 1220793012: Revert "Fix runtimeType.toString for tear-offs." (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart
diff --git a/pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart b/pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart
index e2284be55f678abf78815a4c1b47b548ccc796a3..f34051c1445732921a6a866c33733d1c86869a7c 100644
--- a/pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart
+++ b/pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart
@@ -88,6 +88,8 @@ class ModelEmitter {
static const String deferredExtension = "part.js";
+ static const String typeNameProperty = r"builtin$cls";
+
ModelEmitter(Compiler compiler, Namer namer, this.nativeEmitter)
: this.compiler = compiler,
this.namer = namer {
@@ -476,7 +478,7 @@ class ModelEmitter {
// to use a type-test to determine if a type has already been compiled.
return js.js.statement('''function $readMetadataTypeName(index) {
var type = #typesAccess[index];
- if (typeof type == "string") {
+ if (typeof type == 'string') {
type = expressionCompile(type);
#typesAccess[index] = type;
}
@@ -499,7 +501,7 @@ class ModelEmitter {
// to use a type-test to determine if a type has already been compiled.
return js.js.statement('''function $readMetadataName(index) {
var lazyMetadata = #lazyMetadataAccess[index];
- if (typeof lazyMetadata == "string") {
+ if (typeof lazyMetadata == 'string') {
#metadataAccess[index] = expressionCompile(lazyMetadata);
#lazyMetadataAccess[index] = null;
}
@@ -1016,7 +1018,7 @@ function parseFunctionDescriptor(proto, name, descriptor, typesOffset) {
}
function setupStatic(name, holder, descriptor, typesOffset) {
- if (typeof descriptor == "string") {
+ if (typeof descriptor == 'string') {
holder[name] = function() {
if (descriptor == null) {
// Already compiled. This happens when we have calls to the static as
@@ -1183,10 +1185,7 @@ function parseFunctionDescriptor(proto, name, descriptor, typesOffset) {
typesOffset);
}
- if (typeof constructor.name != "string") {
- // IE does not store the name, but allows to modify the property.
- constructor.name = name;
- }
+ constructor.$typeNameProperty = name; // Needed for RTI.
constructor.prototype = prototype;
prototype[#operatorIsPrefix + name] = constructor;
prototype.constructor = constructor;
« no previous file with comments | « pkg/compiler/lib/src/js_emitter/new_emitter/emitter.dart ('k') | pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698