Skip to content

Commit 9497c3d

Browse files
authored
fix: Move compilation of instanceof helpers post override discovery (#2661)
1 parent b745216 commit 9497c3d

File tree

4 files changed

+722
-520
lines changed

4 files changed

+722
-520
lines changed

src/compiler.ts

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -559,25 +559,6 @@ export class Compiler extends DiagnosticEmitter {
559559
}
560560
} while (lazyFunctions.size);
561561

562-
// compile pending instanceof helpers
563-
for (let _keys = Map_keys(this.pendingInstanceOf), i = 0, k = _keys.length; i < k; ++i) {
564-
let elem = _keys[i];
565-
let name = assert(this.pendingInstanceOf.get(elem));
566-
switch (elem.kind) {
567-
case ElementKind.Class:
568-
case ElementKind.Interface: {
569-
this.finalizeInstanceOf(<Class>elem, name);
570-
break;
571-
}
572-
case ElementKind.ClassPrototype:
573-
case ElementKind.InterfacePrototype: {
574-
this.finalizeAnyInstanceOf(<ClassPrototype>elem, name);
575-
break;
576-
}
577-
default: assert(false);
578-
}
579-
}
580-
581562
// set up override stubs
582563
let functionTable = this.functionTable;
583564
let overrideStubs = this.overrideStubs;
@@ -611,6 +592,25 @@ export class Compiler extends DiagnosticEmitter {
611592
this.finalizeOverrideStub(_values[i]);
612593
}
613594

595+
// compile pending instanceof helpers
596+
for (let _keys = Map_keys(this.pendingInstanceOf), i = 0, k = _keys.length; i < k; ++i) {
597+
let elem = _keys[i];
598+
let name = assert(this.pendingInstanceOf.get(elem));
599+
switch (elem.kind) {
600+
case ElementKind.Class:
601+
case ElementKind.Interface: {
602+
this.finalizeInstanceOf(<Class>elem, name);
603+
break;
604+
}
605+
case ElementKind.ClassPrototype:
606+
case ElementKind.InterfacePrototype: {
607+
this.finalizeAnyInstanceOf(<ClassPrototype>elem, name);
608+
break;
609+
}
610+
default: assert(false);
611+
}
612+
}
613+
614614
// finalize runtime features
615615
module.removeGlobal(BuiltinNames.rtti_base);
616616
if (this.runtimeFeatures & RuntimeFeatures.Rtti) compileRTTI(this);

0 commit comments

Comments
 (0)