Files
kotlin-fork/js/js.translator/testData/box/native/nestedElements.kt
T
2019-02-28 20:13:55 +03:00

129 lines
3.8 KiB
Kotlin
Vendored

// EXPECTED_REACHABLE_NODES: 1310
package foo
fun box(): String {
// in object
assertEquals("MyObject.Object.a", MyObject.Object.a)
assertEquals("MyObject.Object.b", MyObject.Object.b)
assertEquals(123, MyObject.Object.test())
assertEquals("MyObject.Object.Class().a", MyObject.Object.Class("MyObject.Object.Class().a").a)
assertEquals("MyObject.Object.Class().b", MyObject.Object.Class("something").b)
assertEquals(42, MyObject.Object.Class("something").test())
assertEquals("MyObject.Object.Class.a", MyObject.Object.Class.a)
assertEquals("MyObject.Object.Class.b", MyObject.Object.Class.b)
assertEquals(142, MyObject.Object.Class.test())
assertEquals("MyObject.Class().a", MyObject.Class("MyObject.Class().a").a)
assertEquals("MyObject.Class().b", MyObject.Class("something").b)
assertEquals(42, MyObject.Class("something").test())
assertEquals("MyObject.Class.a", MyObject.Class.a)
assertEquals("MyObject.Class.b", MyObject.Class.b)
assertEquals(142, MyObject.Class.test())
assertEquals("MyObject.a.a", MyObject.a.a)
assertEquals("MyObject.a.b", MyObject.a.b)
assertEquals(34, MyObject.a.test())
assertEquals("MyObject.b", MyObject.b)
assertEquals(23, MyObject.test())
// in class
assertEquals("Class.Object.a", Class.Object.a)
assertEquals("Class.Object.b", Class.Object.b)
assertEquals(55, Class.Object.test())
assertEquals("Class.Class().a", Class.Class("Class.Class().a").a)
assertEquals("Class.Class().b", Class.Class("something").b)
assertEquals(66, Class.Class("something").test())
assertEquals("Class.Class.a", Class.Class.a)
assertEquals("Class.Class.b", Class.Class.b)
assertEquals(88, Class.Class.test())
assertEquals("Class.a.a", Class.a.a)
assertEquals("Class.a.b", Class.a.b)
assertEquals(22, Class.a.test())
assertEquals("Class.b", Class.b)
assertEquals(77, Class.test())
return "OK";
}
external object MyObject {
object Object {
val a: String = definedExternally
var b: String = definedExternally
fun test(): Int = definedExternally
@JsName("AnotherClass")
class Class(a: String) {
val a: String
var b: String = definedExternally
fun test(): Int = definedExternally
companion object {
val a: String = definedExternally
var b: String = definedExternally
fun test(): Int = definedExternally
}
}
}
class Class(a: String) {
val a: String
var b: String = definedExternally
fun test(): Int = definedExternally
companion object {
val a: String = definedExternally
var b: String = definedExternally
fun test(): Int = definedExternally
}
}
interface Trait {
val a: String
var b: String
fun test(): Int
}
val a: Trait = definedExternally
var b: String = definedExternally
fun test(): Int = definedExternally
}
@JsName("SomeClass")
external class Class {
object Object {
val a: String = definedExternally
var b: String = definedExternally
fun test(): Int = definedExternally
}
class Class(a: String) {
val a: String
var b: String = definedExternally
fun test(): Int = definedExternally
companion object {
val a: String = definedExternally
var b: String = definedExternally
fun test(): Int = definedExternally
}
}
interface Trait {
val a: String
var b: String
fun test(): Int
}
companion object {
@JsName("aaa")
val a: Trait = definedExternally
var b: String = definedExternally
fun test(): Int = definedExternally
}
}