Support increment and '+=' on local delegated properties in JS backend

This commit is contained in:
Mikhael Bogdanov
2016-05-06 16:16:44 +03:00
parent ec632c37ab
commit e207b56009
6 changed files with 61 additions and 8 deletions
@@ -0,0 +1,19 @@
package foo
import kotlin.reflect.KProperty
class Delegate {
var inner = 1
operator fun getValue(t: Any?, p: KProperty<*>): Int = inner
operator fun setValue(t: Any?, p: KProperty<*>, i: Int) {
inner = i
}
}
fun box(): String {
var prop: Int by Delegate()
var result = prop++
if (result != 1) return "fail increment result: $prop"
if (prop != 2) return "fail increment: $prop"
return "OK"
}
@@ -0,0 +1,20 @@
//TODO: reuse same tests from JVM backend
package foo
import kotlin.reflect.KProperty
class Delegate {
var inner = 1
operator fun getValue(t: Any?, p: KProperty<*>): Int = inner
operator fun setValue(t: Any?, p: KProperty<*>, i: Int) {
inner = i
}
}
fun box(): String {
var prop: Int by Delegate()
prop += 1
if (prop != 2) return "fail : $prop"
return "OK"
}