Files
kotlin-fork/js/js.translator/testData/wasmBox/number/numberEquals.kt
T
Svyatoslav Kuzmich 6e6ffa12a6 [WASM] Initial infrastructure
- New module ":compiler:backend.wasm"
    - Initial compiler infra (driver, phaser, context)
    - Subset of Wasm AST
    - Skeleton of IR -> Wasm AST
    - Wasm AST -> WAT transformer

- Testing infra

- SpiderMonkey jsshell tool
2019-08-22 15:59:54 +03:00

56 lines
1.7 KiB
Kotlin
Vendored

// !LANGUAGE: +ProperIeee754Comparisons
package foo
//fun testNullable(): String {
// val undefined: Double? = js("undefined")
// val doubleNull: Double? = null
//
// val plusZero: Double? = +0.0
// val minusZero: Double? = -0.0
//
// if ((+0.0).equals(minusZero)) return "Total order fail"
// if (plusZero != minusZero) return "IEEE 754 equals fail"
//
// if (plusZero == doubleNull) return "+0.0 != null fail"
// if (plusZero == undefined) return "+0.0 != undefined fail"
//
// if (undefined != doubleNull) return "undefined == null fail"
// if (undefined != undefined) return "undefined = undefined fail"
// if (doubleNull != doubleNull) return "doubleNull = doubleNull fail"
//
// // Double == Float
// val plusZeroAny: Any? = +0.0
// val minusZeroAny: Any? = -0.0f
//
// if (plusZeroAny is Double && minusZeroAny is Float) {
// if (plusZeroAny != minusZeroAny) return "IEEE 754 quals fail 2"
// }
//
// return "OK"
//}
fun box(): String {
val plusZero: Double = +0.0
val minusZero: Double = -0.0
if (plusZero.equals(minusZero)) return "Total order fail"
if (plusZero != minusZero) return "IEEE 754 equals fail"
val plusZeroFloat: Float = +0.0f
val minusZeroFloat: Float = -0.0f
if (plusZeroFloat.equals(minusZeroFloat)) return "Total order fail 2"
if (plusZeroFloat != minusZeroFloat) return "IEEE 754 equals fail 2"
// if ((plusZero as Any) == (minusZero as Any)) return "Total order fail 4"
// if ((plusZeroFloat as Any) == (minusZeroFloat as Any)) return "Total order fail 5"
// if (plusZero == (minusZero as Any)) return "Total order fail 6"
// val nullableRes = testNullable()
// if (nullableRes != "OK")
// return "Nullable" + nullableRes
return "OK"
}