JS: optimize integer overflow emulation when possible

This commit is contained in:
Alexey Andreev
2016-12-07 17:00:52 +03:00
parent eb5c79c70d
commit 7d8df5c81c
3 changed files with 85 additions and 12 deletions
+10 -2
View File
@@ -4,6 +4,8 @@ fun bigValue() = 0x7FFFFFFC
fun mediumValue() = 0x12345
fun four() = 4
fun box(): String {
var v = bigValue() + 1
if (v != 0x7FFFFFFD) return "fail1: $v"
@@ -11,11 +13,17 @@ fun box(): String {
v = bigValue() + 8
if (v != -0x7FFFFFFC) return "fail2: $v"
v = bigValue() + four() + 4
if (v != -0x7FFFFFFC) return "fail3: $v"
v = (bigValue() + four() - 4) shr 1
if (v != 0x3FFFFFFE) return "fail3: $v"
v = mediumValue() * 0x23456
if (v != -2112496338) return "fail3: $v"
if (v != -2112496338) return "fail5: $v"
v = bigValue() * bigValue()
if (v != 16) return "fail4: $v"
if (v != 16) return "fail6: $v"
return "OK"
}