JS: add test to prove that KT-13523 is no more reproducible

This commit is contained in:
Alexey Andreev
2016-12-27 15:33:01 +03:00
parent 27c2a4f6a8
commit 175d37fdc8
6 changed files with 78 additions and 0 deletions
@@ -0,0 +1,33 @@
var log = ""
fun foo(): Int {
log += "foo;"
return 1
}
fun bar(): Int {
log += "bar;"
return 42
}
data class A(val x: Int) {
operator fun plus(other: A) = A(x + other.x)
}
fun box(): String {
val array = arrayOf(0, 1)
array[foo()] += bar()
if (array[0] != 0) return "fail1a: ${array[0]}"
if (array[1] != 43) return "fail1b: ${array[0]}"
log += "!;"
val objArray = arrayOf(A(0), A(1))
objArray[foo()] += A(bar())
if (objArray[0] != A(0)) return "fail2a: ${array[0]}"
if (objArray[1] != A(43)) return "fail2b: ${array[0]}"
if (log != "foo;bar;!;foo;bar;") return "fail3: $log"
return "OK"
}