| // IGNORE_BACKEND: WASM_JS, WASM_WASI | |
| // IGNORE_BACKEND: JS_IR | |
| // IGNORE_BACKEND: JS_IR_ES6 | |
| // IGNORE_IR_DESERIALIZATION_TEST: JS_IR | |
| // ^^^ Assertions not supported for JS. | |
| // ASSERTIONS_MODE: always-enable | |
| // WITH_STDLIB | |
| // ExperimentalNativeApi is defined only in Native | |
| @file:Suppress("OPT_IN_USAGE_ERROR") | |
| fun checkTrue(): Boolean { | |
| var hit = false | |
| val l = { hit = true; true } | |
| assert(l()) | |
| return hit | |
| } | |
| fun checkTrueWithMessage(): Boolean { | |
| var hit = false | |
| val l = { hit = true; true } | |
| assert(l()) { "BOOYA!" } | |
| return hit | |
| } | |
| fun checkFalse(): Boolean { | |
| var hit = false | |
| val l = { hit = true; false } | |
| assert(l()) | |
| return hit | |
| } | |
| fun checkFalseWithMessage(): Boolean { | |
| var hit = false | |
| val l = { hit = true; false } | |
| assert(l()) { "BOOYA!" } | |
| return hit | |
| } | |
| fun box(): String { | |
| if (!checkTrue()) return "FAIL 0" | |
| if (!checkTrueWithMessage()) return "FAIL 1" | |
| try { | |
| checkFalse() | |
| return "FAIL 3" | |
| } catch (ignore: AssertionError) { | |
| } | |
| try { | |
| checkFalseWithMessage() | |
| return "FAIL 4" | |
| } catch (ignore: AssertionError) { | |
| } | |
| return "OK" | |
| } |