22 lines
458 B
Kotlin
Vendored
22 lines
458 B
Kotlin
Vendored
// WITH_STDLIB
|
|
// TARGET_BACKEND: JS_IR
|
|
// FILE: main.js
|
|
Math.clz32 = function clz32(x) {
|
|
clz32.called = true;
|
|
var asUint = x >>> 0;
|
|
if (asUint === 0) {
|
|
return 32;
|
|
}
|
|
return 31 - (Math.log(asUint) / Math.LN2 | 0) | 0; // the "| 0" acts like math.floor
|
|
}
|
|
|
|
// FILE: main.kt
|
|
fun box(): String {
|
|
val result = 4.countLeadingZeroBits()
|
|
|
|
assertEquals(result, 29)
|
|
assertEquals(js("Math.clz32.called"), true)
|
|
|
|
return "OK"
|
|
}
|