Fix initialization order
* put inheritance code in the beginning * put top-level initializer after any declaration
This commit is contained in:
committed by
Roman Artemev
parent
cff066f702
commit
0c6256d003
@@ -18,5 +18,6 @@ package org.jetbrains.kotlin.js.backend.ast
|
||||
|
||||
class JsClassModel(val name: JsName, val superName: JsName?) {
|
||||
val interfaces: MutableSet<JsName> = mutableSetOf()
|
||||
val preDeclarationBlock = JsGlobalBlock()
|
||||
val postDeclarationBlock = JsGlobalBlock()
|
||||
}
|
||||
|
||||
+5
@@ -3616,6 +3616,11 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest {
|
||||
runTest("js/js.translator/testData/box/inheritance/overrideAnyMethods.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("prototypeOrder.kt")
|
||||
public void testPrototypeOrder() throws Exception {
|
||||
runTest("js/js.translator/testData/box/inheritance/prototypeOrder.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("valOverride.kt")
|
||||
public void testValOverride() throws Exception {
|
||||
runTest("js/js.translator/testData/box/inheritance/valOverride.kt");
|
||||
|
||||
+5
@@ -3616,6 +3616,11 @@ public class IrBoxJsTestGenerated extends AbstractIrBoxJsTest {
|
||||
runTest("js/js.translator/testData/box/inheritance/overrideAnyMethods.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("prototypeOrder.kt")
|
||||
public void testPrototypeOrder() throws Exception {
|
||||
runTest("js/js.translator/testData/box/inheritance/prototypeOrder.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("valOverride.kt")
|
||||
public void testValOverride() throws Exception {
|
||||
runTest("js/js.translator/testData/box/inheritance/valOverride.kt");
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1117
|
||||
package foo
|
||||
|
||||
class C: B()
|
||||
open class B: A()
|
||||
open class A
|
||||
|
||||
fun box(): String {
|
||||
val c = C()
|
||||
|
||||
if (c !is A) return "FAIL"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user