[K/JS] Add support of compilation with ES-classes
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1331
|
||||
|
||||
fun box(): String {
|
||||
val s = String()
|
||||
val ints = Array<Int>(2) { i -> (i + 2) * 2 }
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1344
|
||||
|
||||
open class A(var value: Int) {
|
||||
init {
|
||||
value *= 2
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1347
|
||||
|
||||
var sideEffect = ""
|
||||
|
||||
abstract class A {
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
//IGNORE_BACKEND: JS, JS_IR
|
||||
|
||||
var sideEffect = ""
|
||||
|
||||
open external class E()
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1355
|
||||
|
||||
var sideEffect = ""
|
||||
|
||||
open class Summator(x: Int, y: Int) {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1359
|
||||
|
||||
open class A(val x: Int) {
|
||||
constructor(): this(100)
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1340
|
||||
|
||||
open class A(val x: Int)
|
||||
|
||||
class B(val p: Int, val q: Int): A(p + q)
|
||||
|
||||
-2
@@ -1,5 +1,3 @@
|
||||
//IGNORE_BACKEND: JS, JS_IR
|
||||
|
||||
open external class E(x: Int, y: Int) {
|
||||
val t: Int = definedExternally
|
||||
}
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
//IGNORE_BACKEND: JS, JS_IR
|
||||
|
||||
open external class E(x: Int, y: Int) {
|
||||
val t: Int = definedExternally
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1345
|
||||
|
||||
var sideEffect = ""
|
||||
|
||||
open class A(var value: Int) {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1343
|
||||
|
||||
abstract class A {
|
||||
abstract fun foo(): String
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1341
|
||||
|
||||
open class A(val x: Int, val y: Int) {
|
||||
constructor(x: Int) : this(x, x)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
class JsFoo {
|
||||
static instances = new Set();
|
||||
constructor(value) {
|
||||
this.value = value;
|
||||
JsFoo.instances.add(this);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
@JsName("Set")
|
||||
external class JsSet<T> {
|
||||
fun has(value: T): Boolean
|
||||
}
|
||||
|
||||
external open class JsFoo(value: String) {
|
||||
val value: String
|
||||
companion object {
|
||||
val instances: JsSet<JsFoo>
|
||||
}
|
||||
}
|
||||
|
||||
class KotlinFoo(value: String) : JsFoo(value) {
|
||||
fun existsInJs(): Boolean = JsFoo.instances.has(this)
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val foo = KotlinFoo("TEST")
|
||||
|
||||
assertEquals("TEST", foo.value)
|
||||
assertEquals(true, foo.existsInJs())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1358
|
||||
|
||||
open class A(var value: Int)
|
||||
|
||||
open class B : A {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1371
|
||||
|
||||
inline class I1(val a: Int)
|
||||
inline class I2(val i: I1)
|
||||
inline class I3(val i: I2)
|
||||
|
||||
Reference in New Issue
Block a user