Files
kotlin-fork/js/js.translator/testData/box/propertyAccess/enumerable.kt
T

47 lines
840 B
Kotlin
Vendored

// FILE: enumerable.kt
package foo
external fun <T> _enumerate(o: T): T = noImpl
external fun <T> _findFirst(o: Any): T = noImpl
class Test() {
val a: Int = 100
val b: String = "s"
}
class P() {
@enumerable
val a: Int = 100
val b: String = "s"
}
fun box(): String {
val test = _enumerate(Test())
val p = _enumerate(P())
if (100 != test.a) return "fail1: ${test.a}"
if ("s" != test.b) return "fail2: ${test.b}"
if (p.a != 100) return "fail3: ${p.a}"
val result = _findFirst<Int>(object {
val test = 100
})
if (result != 100) return "fail4: $result"
return "OK"
}
// FILE: enumerate.js
function _enumerate(o) {
var r = {};
for (var p in o) {
r[p] = o[p];
}
return r;
}
function _findFirst(o) {
for (var p in o) {
return o[p];
}
}