JS backend: added more tests for closures.

This commit is contained in:
Zalim Bashorov
2014-02-26 16:04:33 +04:00
parent ec71a90394
commit a48dc25c46
18 changed files with 518 additions and 5 deletions
@@ -0,0 +1,39 @@
package foo
fun Int.foo(a: Int): Int {
if (a == 0) {
return this.foo(4) + foo(7) + this
}
return a
}
fun assertEquals<T>(expected: T, actual: T) {
if (expected != actual) throw Exception("expected: $expected, actual, $actual")
}
fun box(): String {
assertEquals(34, 23.foo(0))
fun Int.bar(a: Int): Int {
if (a == 0) {
return this.bar(12) + bar(4) + this
}
return a
}
assertEquals(19, 3.bar(0))
fun f() = 11
val v = 3
fun Int.baz(a: Int): Int {
if (a == 0) {
return this.baz(v) + baz(f()) + this
}
return a
}
assertEquals(21, 7.baz(0))
return "OK"
}