| // IGNORE_BACKEND: JS_IR |
| // IGNORE_BACKEND: JS_IR_ES6 |
| // IGNORE_BACKEND: JS |
| // IGNORE_BACKEND: WASM |
| // reason - no error from division by zero in JS |
| // in wasm we just trap |
| // WASM_MUTE_REASON: IGNORED_IN_JS |
| |
| fun expectArithmeticException(f: () -> Unit): Boolean { |
| try { |
| f() |
| } catch (e: ArithmeticException) { |
| return true |
| } |
| return false |
| } |
| |
| fun box(): String { |
| if (!expectArithmeticException { 1 / 0 }) |
| return "fail: 1 / 0 didn't throw exception" |
| |
| if (!expectArithmeticException { 1 * 2 / 0 }) |
| return "fail: 1 * 2 / 0 didn't throw exception" |
| |
| if (!expectArithmeticException { 1 * (2 / 0) }) |
| return "fail: 1 * (2 / 0) didn't throw exception" |
| |
| return "OK" |
| } |