mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-04-25 15:12:12 +00:00
Refactor number and string utils out of builtins, fixes #608
This commit is contained in:
parent
0484a6b740
commit
4680b530fb
@ -83,7 +83,7 @@
|
||||
},
|
||||
"runtime": {
|
||||
"description": [
|
||||
"Specifies the runtime implementation to include in the program.",
|
||||
"Specifies the runtime variant to include in the program.",
|
||||
"",
|
||||
" full Default runtime based on TLSF and reference counting.",
|
||||
" half Same as 'full', but not exported to the host.",
|
||||
|
@ -1,5 +1,4 @@
|
||||
@assemblyscript/i64
|
||||
===================
|
||||
#  i64
|
||||
|
||||
Exposes WebAssembly's i64 operations to JavaScript using 32-bit integers (low and high bits).
|
||||
|
||||
|
@ -1,11 +1,3 @@
|
||||
// @ts-ignore: decorator
|
||||
@builtin @inline
|
||||
export const NaN: f64 = 0 / 0;
|
||||
|
||||
// @ts-ignore: decorator
|
||||
@builtin @inline
|
||||
export const Infinity: f64 = 1 / 0;
|
||||
|
||||
// @ts-ignore: decorator
|
||||
@builtin
|
||||
export declare function isInteger<T>(value?: T): bool;
|
||||
@ -58,20 +50,6 @@ export declare function isConstant(expression: void): bool;
|
||||
@builtin
|
||||
export declare function isManaged<T>(value?: T): bool;
|
||||
|
||||
export function isNaN<T extends number>(value: T): bool {
|
||||
if (!isFloat<T>()) {
|
||||
if (!isInteger<T>()) ERROR("numeric type expected");
|
||||
}
|
||||
return value != value;
|
||||
}
|
||||
|
||||
export function isFinite<T extends number>(value: T): bool {
|
||||
if (!isFloat<T>()) {
|
||||
if (!isInteger<T>()) ERROR("numeric type expected");
|
||||
}
|
||||
return value - value == 0;
|
||||
}
|
||||
|
||||
// @ts-ignore: decorator
|
||||
@builtin
|
||||
export declare function clz<T>(value: T): T;
|
||||
|
@ -1,5 +1,26 @@
|
||||
import { itoa, dtoa } from "./util/number";
|
||||
import { isNaN as builtin_isNaN, isFinite as builtin_isFinite } from "./builtins";
|
||||
|
||||
// @ts-ignore: decorator
|
||||
@builtin @inline
|
||||
export const NaN: f64 = 0 / 0;
|
||||
|
||||
// @ts-ignore: decorator
|
||||
@builtin @inline
|
||||
export const Infinity: f64 = 1 / 0;
|
||||
|
||||
export function isNaN<T extends number>(value: T): bool {
|
||||
if (!isFloat<T>()) {
|
||||
if (!isInteger<T>()) ERROR("numeric type expected");
|
||||
}
|
||||
return value != value;
|
||||
}
|
||||
|
||||
export function isFinite<T extends number>(value: T): bool {
|
||||
if (!isFloat<T>()) {
|
||||
if (!isInteger<T>()) ERROR("numeric type expected");
|
||||
}
|
||||
return value - value == 0;
|
||||
}
|
||||
|
||||
@sealed @unmanaged
|
||||
export abstract class I8 {
|
||||
@ -331,11 +352,11 @@ export abstract class F64 {
|
||||
static readonly NaN: f64 = NaN;
|
||||
|
||||
static isNaN(value: f64): bool {
|
||||
return builtin_isNaN<f64>(value);
|
||||
return isNaN<f64>(value);
|
||||
}
|
||||
|
||||
static isFinite(value: f64): bool {
|
||||
return builtin_isFinite<f64>(value);
|
||||
return isFinite<f64>(value);
|
||||
}
|
||||
|
||||
static isSafeInteger(value: f64): bool {
|
||||
@ -343,7 +364,7 @@ export abstract class F64 {
|
||||
}
|
||||
|
||||
static isInteger(value: f64): bool {
|
||||
return builtin_isFinite<f64>(value) && trunc<f64>(value) == value;
|
||||
return isFinite<f64>(value) && trunc<f64>(value) == value;
|
||||
}
|
||||
|
||||
static parseInt(value: string, radix: i32 = 0): f64 {
|
||||
@ -354,7 +375,7 @@ export abstract class F64 {
|
||||
return parseFloat(value);
|
||||
}
|
||||
|
||||
toString(this: f64): String {
|
||||
toString(this: f64, radix: i32 = 0): String {
|
||||
// TODO: radix
|
||||
return dtoa(this);
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
/// <reference path="./rt/index.d.ts" />
|
||||
|
||||
import { BLOCK, BLOCK_OVERHEAD, BLOCK_MAXSIZE } from "./rt/common";
|
||||
import { compareImpl, parse, CharCode, isWhiteSpaceOrLineTerminator } from "./util/string";
|
||||
import { compareImpl, strtol, strtod, isWhiteSpaceOrLineTerminator } from "./util/string";
|
||||
import { E_INVALIDLENGTH } from "./util/error";
|
||||
import { ArrayBufferView } from "./arraybuffer";
|
||||
import { idof } from "./builtins";
|
||||
@ -522,72 +522,10 @@ import { idof } from "./builtins";
|
||||
// @ts-ignore: nolib
|
||||
export type string = String;
|
||||
|
||||
export function parseInt(str: String, radix: i32 = 0): f64 {
|
||||
// @ts-ignore: string <-> String
|
||||
return parse<f64>(str, radix);
|
||||
export function parseInt(str: string, radix: i32 = 0): f64 {
|
||||
return strtol<f64>(str, radix);
|
||||
}
|
||||
|
||||
export function parseI32(str: String, radix: i32 = 0): i32 {
|
||||
// @ts-ignore: string <-> String
|
||||
return parse<i32>(str, radix);
|
||||
}
|
||||
|
||||
export function parseI64(str: String, radix: i32 = 0): i64 {
|
||||
// @ts-ignore: string <-> String
|
||||
return parse<i64>(str, radix);
|
||||
}
|
||||
|
||||
// FIXME: naive implementation
|
||||
export function parseFloat(str: String): f64 {
|
||||
var len: i32 = str.length;
|
||||
if (!len) return NaN;
|
||||
|
||||
var ptr = changetype<usize>(str);
|
||||
var code = <i32>load<u16>(ptr);
|
||||
|
||||
// determine sign
|
||||
var sign: f64;
|
||||
// trim white spaces
|
||||
while (isWhiteSpaceOrLineTerminator(code)) {
|
||||
code = <i32>load<u16>(ptr += 2);
|
||||
--len;
|
||||
}
|
||||
if (code == CharCode.MINUS) {
|
||||
if (!--len) return NaN;
|
||||
code = <i32>load<u16>(ptr += 2);
|
||||
sign = -1;
|
||||
} else if (code == CharCode.PLUS) {
|
||||
if (!--len) return NaN;
|
||||
code = <i32>load<u16>(ptr += 2);
|
||||
sign = 1;
|
||||
} else {
|
||||
sign = 1;
|
||||
}
|
||||
|
||||
// calculate value
|
||||
var num: f64 = 0;
|
||||
while (len--) {
|
||||
code = <i32>load<u16>(ptr);
|
||||
if (code == CharCode.DOT) {
|
||||
ptr += 2;
|
||||
let fac: f64 = 0.1; // precision :(
|
||||
while (len--) {
|
||||
code = <i32>load<u16>(ptr);
|
||||
if (code == CharCode.E || code == CharCode.e) {
|
||||
assert(false); // TODO
|
||||
}
|
||||
code -= CharCode._0;
|
||||
if (<u32>code > 9) break;
|
||||
num += <f64>code * fac;
|
||||
fac *= 0.1;
|
||||
ptr += 2;
|
||||
}
|
||||
break;
|
||||
}
|
||||
code -= CharCode._0;
|
||||
if (<u32>code >= 10) break;
|
||||
num = (num * 10) + code;
|
||||
ptr += 2;
|
||||
}
|
||||
return sign * num;
|
||||
export function parseFloat(str: string): f64 {
|
||||
return strtod(str);
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ export function isWhiteSpaceOrLineTerminator(c: i32): bool {
|
||||
}
|
||||
|
||||
/** Parses a string to an integer (usually), using the specified radix. */
|
||||
export function parse<T>(str: string, radix: i32 = 0): T {
|
||||
export function strtol<T>(str: string, radix: i32 = 0): T {
|
||||
var len: i32 = str.length;
|
||||
// @ts-ignore: cast
|
||||
if (!len) return <T>NaN;
|
||||
@ -139,3 +139,58 @@ export function parse<T>(str: string, radix: i32 = 0): T {
|
||||
// @ts-ignore: type
|
||||
return sign * num;
|
||||
}
|
||||
|
||||
// FIXME: naive implementation
|
||||
export function strtod(str: string): f64 {
|
||||
var len: i32 = str.length;
|
||||
if (!len) return NaN;
|
||||
|
||||
var ptr = changetype<usize>(str);
|
||||
var code = <i32>load<u16>(ptr);
|
||||
|
||||
// determine sign
|
||||
var sign: f64;
|
||||
// trim white spaces
|
||||
while (isWhiteSpaceOrLineTerminator(code)) {
|
||||
code = <i32>load<u16>(ptr += 2);
|
||||
--len;
|
||||
}
|
||||
if (code == CharCode.MINUS) {
|
||||
if (!--len) return NaN;
|
||||
code = <i32>load<u16>(ptr += 2);
|
||||
sign = -1;
|
||||
} else if (code == CharCode.PLUS) {
|
||||
if (!--len) return NaN;
|
||||
code = <i32>load<u16>(ptr += 2);
|
||||
sign = 1;
|
||||
} else {
|
||||
sign = 1;
|
||||
}
|
||||
|
||||
// calculate value
|
||||
var num: f64 = 0;
|
||||
while (len--) {
|
||||
code = <i32>load<u16>(ptr);
|
||||
if (code == CharCode.DOT) {
|
||||
ptr += 2;
|
||||
let fac: f64 = 0.1; // precision :(
|
||||
while (len--) {
|
||||
code = <i32>load<u16>(ptr);
|
||||
if (code == CharCode.E || code == CharCode.e) {
|
||||
assert(false); // TODO
|
||||
}
|
||||
code -= CharCode._0;
|
||||
if (<u32>code > 9) break;
|
||||
num += <f64>code * fac;
|
||||
fac *= 0.1;
|
||||
ptr += 2;
|
||||
}
|
||||
break;
|
||||
}
|
||||
code -= CharCode._0;
|
||||
if (<u32>code >= 10) break;
|
||||
num = (num * 10) + code;
|
||||
ptr += 2;
|
||||
}
|
||||
return sign * num;
|
||||
}
|
||||
|
@ -1188,7 +1188,7 @@
|
||||
local.get $16
|
||||
f64.mul
|
||||
)
|
||||
(func $~lib/builtins/isNaN<f32> (; 2 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
(func $~lib/number/isNaN<f32> (; 2 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f32.ne
|
||||
@ -1243,7 +1243,7 @@
|
||||
i32.const 1
|
||||
else
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
end
|
||||
if
|
||||
local.get $0
|
||||
@ -2464,7 +2464,7 @@
|
||||
local.get $11
|
||||
f32.mul
|
||||
)
|
||||
(func $~lib/builtins/isNaN<f64> (; 6 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isNaN<f64> (; 6 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.ne
|
||||
@ -2519,7 +2519,7 @@
|
||||
i32.const 1
|
||||
else
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
end
|
||||
if
|
||||
local.get $0
|
||||
|
@ -23,24 +23,24 @@
|
||||
(export "memory" (memory $0))
|
||||
(export "test" (func $builtins/test))
|
||||
(start $start)
|
||||
(func $~lib/builtins/isNaN<f32> (; 1 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
(func $~lib/number/isNaN<f32> (; 1 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f32.ne
|
||||
)
|
||||
(func $~lib/builtins/isFinite<f32> (; 2 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
(func $~lib/number/isFinite<f32> (; 2 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f32.sub
|
||||
f32.const 0
|
||||
f32.eq
|
||||
)
|
||||
(func $~lib/builtins/isNaN<f64> (; 3 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isNaN<f64> (; 3 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.ne
|
||||
)
|
||||
(func $~lib/builtins/isFinite<f64> (; 4 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isFinite<f64> (; 4 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.sub
|
||||
@ -150,7 +150,7 @@
|
||||
unreachable
|
||||
end
|
||||
f32.const 1.25
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
@ -160,7 +160,7 @@
|
||||
unreachable
|
||||
end
|
||||
f32.const nan:0x400000
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
i32.const 1
|
||||
i32.ne
|
||||
if
|
||||
@ -172,7 +172,7 @@
|
||||
unreachable
|
||||
end
|
||||
f32.const 1.25
|
||||
call $~lib/builtins/isFinite<f32>
|
||||
call $~lib/number/isFinite<f32>
|
||||
i32.const 1
|
||||
i32.ne
|
||||
if
|
||||
@ -184,7 +184,7 @@
|
||||
unreachable
|
||||
end
|
||||
f32.const inf
|
||||
call $~lib/builtins/isFinite<f32>
|
||||
call $~lib/number/isFinite<f32>
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
@ -194,7 +194,7 @@
|
||||
unreachable
|
||||
end
|
||||
f32.const -inf
|
||||
call $~lib/builtins/isFinite<f32>
|
||||
call $~lib/number/isFinite<f32>
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
@ -204,7 +204,7 @@
|
||||
unreachable
|
||||
end
|
||||
f32.const nan:0x400000
|
||||
call $~lib/builtins/isFinite<f32>
|
||||
call $~lib/number/isFinite<f32>
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
@ -236,13 +236,13 @@
|
||||
f32.const 1
|
||||
global.set $builtins/f
|
||||
f32.const 1.25
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
global.set $builtins/b
|
||||
f32.const 1.25
|
||||
call $~lib/builtins/isFinite<f32>
|
||||
call $~lib/number/isFinite<f32>
|
||||
global.set $builtins/b
|
||||
f64.const 1.25
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
@ -252,7 +252,7 @@
|
||||
unreachable
|
||||
end
|
||||
f64.const nan:0x8000000000000
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
i32.const 1
|
||||
i32.ne
|
||||
if
|
||||
@ -264,7 +264,7 @@
|
||||
unreachable
|
||||
end
|
||||
f64.const 1.25
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.const 1
|
||||
i32.ne
|
||||
if
|
||||
@ -276,7 +276,7 @@
|
||||
unreachable
|
||||
end
|
||||
f64.const inf
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
@ -286,7 +286,7 @@
|
||||
unreachable
|
||||
end
|
||||
f64.const -inf
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
@ -296,7 +296,7 @@
|
||||
unreachable
|
||||
end
|
||||
f64.const nan:0x8000000000000
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
@ -328,10 +328,10 @@
|
||||
f64.const 1
|
||||
global.set $builtins/F
|
||||
f64.const 1.25
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
global.set $builtins/b
|
||||
f64.const 1.25
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
global.set $builtins/b
|
||||
i32.const 8
|
||||
i32.load
|
||||
@ -533,7 +533,7 @@
|
||||
global.get $builtins/fn
|
||||
call_indirect (type $FUNCSIG$vii)
|
||||
f32.const nan:0x400000
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -544,7 +544,7 @@
|
||||
unreachable
|
||||
end
|
||||
f64.const nan:0x8000000000000
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -555,7 +555,7 @@
|
||||
unreachable
|
||||
end
|
||||
f32.const nan:0x400000
|
||||
call $~lib/builtins/isFinite<f32>
|
||||
call $~lib/number/isFinite<f32>
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
@ -565,7 +565,7 @@
|
||||
unreachable
|
||||
end
|
||||
f32.const inf
|
||||
call $~lib/builtins/isFinite<f32>
|
||||
call $~lib/number/isFinite<f32>
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
@ -575,7 +575,7 @@
|
||||
unreachable
|
||||
end
|
||||
f64.const nan:0x8000000000000
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
@ -585,7 +585,7 @@
|
||||
unreachable
|
||||
end
|
||||
f64.const inf
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
@ -595,7 +595,7 @@
|
||||
unreachable
|
||||
end
|
||||
f32.const 0
|
||||
call $~lib/builtins/isFinite<f32>
|
||||
call $~lib/number/isFinite<f32>
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -606,7 +606,7 @@
|
||||
unreachable
|
||||
end
|
||||
f64.const 0
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -685,9 +685,6 @@
|
||||
i32.const 8
|
||||
f64.const 1
|
||||
f64.store
|
||||
f64.const 1
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
drop
|
||||
)
|
||||
(func $builtins/test (; 7 ;) (type $FUNCSIG$v)
|
||||
nop
|
||||
|
@ -418,7 +418,3 @@ f64.store(8, 1.0);
|
||||
|
||||
f32.trunc(1.0);
|
||||
f64.trunc(1.0);
|
||||
|
||||
// should be importable
|
||||
import { isNaN as isItNaN } from "builtins";
|
||||
isItNaN<f64>(1);
|
||||
|
@ -54,24 +54,24 @@
|
||||
(export "memory" (memory $0))
|
||||
(export "test" (func $builtins/test))
|
||||
(start $start)
|
||||
(func $~lib/builtins/isNaN<f32> (; 1 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
(func $~lib/number/isNaN<f32> (; 1 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f32.ne
|
||||
)
|
||||
(func $~lib/builtins/isFinite<f32> (; 2 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
(func $~lib/number/isFinite<f32> (; 2 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f32.sub
|
||||
f32.const 0
|
||||
f32.eq
|
||||
)
|
||||
(func $~lib/builtins/isNaN<f64> (; 3 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isNaN<f64> (; 3 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.ne
|
||||
)
|
||||
(func $~lib/builtins/isFinite<f64> (; 4 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isFinite<f64> (; 4 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.sub
|
||||
@ -751,7 +751,7 @@
|
||||
f32.trunc
|
||||
drop
|
||||
f32.const 1.25
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
i32.const 0
|
||||
i32.eq
|
||||
i32.eqz
|
||||
@ -764,7 +764,7 @@
|
||||
unreachable
|
||||
end
|
||||
f32.const nan:0x400000
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
@ -777,7 +777,7 @@
|
||||
unreachable
|
||||
end
|
||||
f32.const 1.25
|
||||
call $~lib/builtins/isFinite<f32>
|
||||
call $~lib/number/isFinite<f32>
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
@ -790,7 +790,7 @@
|
||||
unreachable
|
||||
end
|
||||
f32.const inf
|
||||
call $~lib/builtins/isFinite<f32>
|
||||
call $~lib/number/isFinite<f32>
|
||||
i32.const 0
|
||||
i32.eq
|
||||
i32.eqz
|
||||
@ -804,7 +804,7 @@
|
||||
end
|
||||
f32.const inf
|
||||
f32.neg
|
||||
call $~lib/builtins/isFinite<f32>
|
||||
call $~lib/number/isFinite<f32>
|
||||
i32.const 0
|
||||
i32.eq
|
||||
i32.eqz
|
||||
@ -817,7 +817,7 @@
|
||||
unreachable
|
||||
end
|
||||
f32.const nan:0x400000
|
||||
call $~lib/builtins/isFinite<f32>
|
||||
call $~lib/number/isFinite<f32>
|
||||
i32.const 0
|
||||
i32.eq
|
||||
i32.eqz
|
||||
@ -864,10 +864,10 @@
|
||||
f32.trunc
|
||||
global.set $builtins/f
|
||||
f32.const 1.25
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
global.set $builtins/b
|
||||
f32.const 1.25
|
||||
call $~lib/builtins/isFinite<f32>
|
||||
call $~lib/number/isFinite<f32>
|
||||
global.set $builtins/b
|
||||
f64.const nan:0x8000000000000
|
||||
drop
|
||||
@ -908,7 +908,7 @@
|
||||
f64.trunc
|
||||
drop
|
||||
f64.const 1.25
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
i32.const 0
|
||||
i32.eq
|
||||
i32.eqz
|
||||
@ -921,7 +921,7 @@
|
||||
unreachable
|
||||
end
|
||||
f64.const nan:0x8000000000000
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
@ -934,7 +934,7 @@
|
||||
unreachable
|
||||
end
|
||||
f64.const 1.25
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
@ -947,7 +947,7 @@
|
||||
unreachable
|
||||
end
|
||||
f64.const inf
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.const 0
|
||||
i32.eq
|
||||
i32.eqz
|
||||
@ -961,7 +961,7 @@
|
||||
end
|
||||
f64.const inf
|
||||
f64.neg
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.const 0
|
||||
i32.eq
|
||||
i32.eqz
|
||||
@ -974,7 +974,7 @@
|
||||
unreachable
|
||||
end
|
||||
f64.const nan:0x8000000000000
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.const 0
|
||||
i32.eq
|
||||
i32.eqz
|
||||
@ -1021,10 +1021,10 @@
|
||||
f64.trunc
|
||||
global.set $builtins/F
|
||||
f64.const 1.25
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
global.set $builtins/b
|
||||
f64.const 1.25
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
global.set $builtins/b
|
||||
i32.const 8
|
||||
i32.load
|
||||
@ -1555,7 +1555,7 @@
|
||||
unreachable
|
||||
end
|
||||
f32.const nan:0x400000
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -1566,7 +1566,7 @@
|
||||
unreachable
|
||||
end
|
||||
f64.const nan:0x8000000000000
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -1577,7 +1577,7 @@
|
||||
unreachable
|
||||
end
|
||||
f32.const nan:0x400000
|
||||
call $~lib/builtins/isFinite<f32>
|
||||
call $~lib/number/isFinite<f32>
|
||||
i32.eqz
|
||||
i32.eqz
|
||||
if
|
||||
@ -1589,7 +1589,7 @@
|
||||
unreachable
|
||||
end
|
||||
f32.const inf
|
||||
call $~lib/builtins/isFinite<f32>
|
||||
call $~lib/number/isFinite<f32>
|
||||
i32.eqz
|
||||
i32.eqz
|
||||
if
|
||||
@ -1601,7 +1601,7 @@
|
||||
unreachable
|
||||
end
|
||||
f64.const nan:0x8000000000000
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.eqz
|
||||
i32.eqz
|
||||
if
|
||||
@ -1613,7 +1613,7 @@
|
||||
unreachable
|
||||
end
|
||||
f64.const inf
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.eqz
|
||||
i32.eqz
|
||||
if
|
||||
@ -1625,7 +1625,7 @@
|
||||
unreachable
|
||||
end
|
||||
f32.const 0
|
||||
call $~lib/builtins/isFinite<f32>
|
||||
call $~lib/number/isFinite<f32>
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -1636,7 +1636,7 @@
|
||||
unreachable
|
||||
end
|
||||
f64.const 0
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -2213,9 +2213,6 @@
|
||||
f64.const 1
|
||||
f64.trunc
|
||||
drop
|
||||
f64.const 1
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
drop
|
||||
)
|
||||
(func $builtins/test (; 7 ;) (type $FUNCSIG$v)
|
||||
nop
|
||||
|
@ -305,14 +305,14 @@
|
||||
end
|
||||
i32.const 0
|
||||
)
|
||||
(func $~lib/builtins/isFinite<f64> (; 8 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isFinite<f64> (; 8 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.sub
|
||||
f64.const 0
|
||||
f64.eq
|
||||
)
|
||||
(func $~lib/builtins/isNaN<f64> (; 9 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isNaN<f64> (; 9 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.ne
|
||||
@ -1407,11 +1407,11 @@
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
f64.const 2
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.eqz
|
||||
if
|
||||
f64.const 2
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if
|
||||
i32.const 136
|
||||
return
|
||||
@ -1479,7 +1479,7 @@
|
||||
)
|
||||
(func $~lib/number/F64.isInteger (; 20 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
if (result i32)
|
||||
local.get $0
|
||||
f64.trunc
|
||||
@ -1876,7 +1876,7 @@
|
||||
unreachable
|
||||
end
|
||||
f64.const nan:0x8000000000000
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
|
@ -5,6 +5,7 @@
|
||||
(type $FUNCSIG$vi (func (param i32)))
|
||||
(type $FUNCSIG$iiiiii (func (param i32 i32 i32 i32 i32) (result i32)))
|
||||
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
|
||||
(type $FUNCSIG$idi (func (param f64 i32) (result i32)))
|
||||
(type $FUNCSIG$id (func (param f64) (result i32)))
|
||||
(type $FUNCSIG$iid (func (param i32 f64) (result i32)))
|
||||
(type $FUNCSIG$jii (func (param i32 i32) (result i64)))
|
||||
@ -588,14 +589,14 @@
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/builtins/isFinite<f64> (; 12 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isFinite<f64> (; 12 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.sub
|
||||
f64.const 0
|
||||
f64.eq
|
||||
)
|
||||
(func $~lib/builtins/isNaN<f64> (; 13 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isNaN<f64> (; 13 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.ne
|
||||
@ -3495,11 +3496,11 @@
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.eqz
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if
|
||||
i32.const 584
|
||||
call $~lib/rt/stub/__retain
|
||||
@ -3541,7 +3542,7 @@
|
||||
call $~lib/rt/stub/__free
|
||||
local.get $3
|
||||
)
|
||||
(func $~lib/number/F64#toString (; 24 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/F64#toString (; 24 ;) (type $FUNCSIG$idi) (param $0 f64) (param $1 i32) (result i32)
|
||||
local.get $0
|
||||
call $~lib/util/number/dtoa
|
||||
)
|
||||
@ -3560,7 +3561,7 @@
|
||||
end
|
||||
call $~lib/rt/stub/__retain
|
||||
)
|
||||
(func $~lib/builtins/isNaN<f32> (; 26 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
(func $~lib/number/isNaN<f32> (; 26 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f32.ne
|
||||
@ -3579,7 +3580,7 @@
|
||||
i32.const 0
|
||||
end
|
||||
)
|
||||
(func $~lib/builtins/isFinite<f32> (; 28 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
(func $~lib/number/isFinite<f32> (; 28 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f32.sub
|
||||
@ -3588,7 +3589,7 @@
|
||||
)
|
||||
(func $~lib/number/F32.isInteger (; 29 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
local.get $0
|
||||
call $~lib/builtins/isFinite<f32>
|
||||
call $~lib/number/isFinite<f32>
|
||||
if (result i32)
|
||||
local.get $0
|
||||
f32.trunc
|
||||
@ -3614,7 +3615,7 @@
|
||||
)
|
||||
(func $~lib/number/F64.isInteger (; 31 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
if (result i32)
|
||||
local.get $0
|
||||
f64.trunc
|
||||
@ -3661,6 +3662,7 @@
|
||||
unreachable
|
||||
end
|
||||
f64.const 2
|
||||
i32.const 0
|
||||
call $~lib/number/F64#toString
|
||||
local.tee $1
|
||||
i32.const 1800
|
||||
@ -3829,7 +3831,7 @@
|
||||
unreachable
|
||||
end
|
||||
global.get $~lib/number/F32.NaN
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -4104,7 +4106,7 @@
|
||||
unreachable
|
||||
end
|
||||
global.get $~lib/number/F64.NaN
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
|
@ -4584,7 +4584,7 @@
|
||||
i32.lt_s
|
||||
i32.sub
|
||||
)
|
||||
(func $~lib/builtins/isNaN<f32> (; 102 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
(func $~lib/number/isNaN<f32> (; 102 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f32.ne
|
||||
@ -4619,11 +4619,11 @@
|
||||
local.get $0
|
||||
local.get $2
|
||||
call $~lib/array/Array<f32>#__get
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
local.get $1
|
||||
local.get $2
|
||||
call $~lib/array/Array<f32>#__get
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
i32.ne
|
||||
if
|
||||
local.get $0
|
||||
@ -5117,7 +5117,7 @@
|
||||
i32.add
|
||||
f64.load
|
||||
)
|
||||
(func $~lib/builtins/isNaN<f64> (; 109 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isNaN<f64> (; 109 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.ne
|
||||
@ -5152,11 +5152,11 @@
|
||||
local.get $0
|
||||
local.get $2
|
||||
call $~lib/array/Array<f64>#__get
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
local.get $1
|
||||
local.get $2
|
||||
call $~lib/array/Array<f64>#__get
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
i32.ne
|
||||
if
|
||||
local.get $0
|
||||
@ -7693,7 +7693,7 @@
|
||||
call $~lib/rt/pure/__release
|
||||
local.get $0
|
||||
)
|
||||
(func $~lib/builtins/isFinite<f64> (; 165 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isFinite<f64> (; 165 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.sub
|
||||
@ -8652,11 +8652,11 @@
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.eqz
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if
|
||||
i32.const 4944
|
||||
call $~lib/rt/pure/__retain
|
||||
@ -8718,11 +8718,11 @@
|
||||
return
|
||||
end
|
||||
local.get $2
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.eqz
|
||||
if
|
||||
local.get $2
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if
|
||||
local.get $0
|
||||
i32.const 78
|
||||
|
@ -7311,7 +7311,7 @@
|
||||
local.get $1
|
||||
call $~lib/array/Array<f32>#sort
|
||||
)
|
||||
(func $~lib/builtins/isNaN<f32> (; 135 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
(func $~lib/number/isNaN<f32> (; 135 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f32.ne
|
||||
@ -7372,11 +7372,11 @@
|
||||
local.get $0
|
||||
local.get $3
|
||||
call $~lib/array/Array<f32>#__get
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
local.get $1
|
||||
local.get $3
|
||||
call $~lib/array/Array<f32>#__get
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
i32.eq
|
||||
if
|
||||
br $continue|0
|
||||
@ -7966,7 +7966,7 @@
|
||||
local.get $1
|
||||
call $~lib/array/Array<f64>#__unchecked_get
|
||||
)
|
||||
(func $~lib/builtins/isNaN<f64> (; 145 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isNaN<f64> (; 145 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.ne
|
||||
@ -8027,11 +8027,11 @@
|
||||
local.get $0
|
||||
local.get $3
|
||||
call $~lib/array/Array<f64>#__get
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
local.get $1
|
||||
local.get $3
|
||||
call $~lib/array/Array<f64>#__get
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
i32.eq
|
||||
if
|
||||
br $continue|0
|
||||
@ -12880,7 +12880,7 @@
|
||||
local.get $2
|
||||
return
|
||||
)
|
||||
(func $~lib/builtins/isFinite<f64> (; 240 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isFinite<f64> (; 240 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.sub
|
||||
@ -14242,11 +14242,11 @@
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.eqz
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if
|
||||
i32.const 5392
|
||||
call $~lib/rt/pure/__retain
|
||||
@ -14314,11 +14314,11 @@
|
||||
return
|
||||
end
|
||||
local.get $2
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.eqz
|
||||
if
|
||||
local.get $2
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if
|
||||
local.get $0
|
||||
i32.const 78
|
||||
|
@ -936,7 +936,7 @@
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.asinh
|
||||
)
|
||||
(func $~lib/builtins/isNaN<f64> (; 15 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isNaN<f64> (; 15 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.ne
|
||||
@ -960,7 +960,7 @@
|
||||
i32.ge_u
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if
|
||||
local.get $0
|
||||
return
|
||||
@ -1239,12 +1239,12 @@
|
||||
(local $6 i32)
|
||||
(local $7 i32)
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if (result i32)
|
||||
i32.const 1
|
||||
else
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
end
|
||||
if
|
||||
local.get $1
|
||||
@ -1614,7 +1614,7 @@
|
||||
local.get $0
|
||||
f64.ceil
|
||||
)
|
||||
(func $~lib/builtins/isFinite<f64> (; 25 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isFinite<f64> (; 25 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.sub
|
||||
@ -1623,7 +1623,7 @@
|
||||
)
|
||||
(func $~lib/math/NativeMath.clz32 (; 26 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.eqz
|
||||
if
|
||||
f64.const 32
|
||||
@ -1677,7 +1677,7 @@
|
||||
i32.ge_u
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if
|
||||
local.get $0
|
||||
return
|
||||
@ -2024,7 +2024,7 @@
|
||||
i32.ge_u
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if
|
||||
local.get $0
|
||||
return
|
||||
@ -2418,7 +2418,7 @@
|
||||
local.get $0
|
||||
local.get $1
|
||||
f64.add
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.eqz
|
||||
if
|
||||
f64.const 0
|
||||
@ -4651,7 +4651,7 @@
|
||||
local.get $0
|
||||
call $~lib/math/NativeMathf.asinh
|
||||
)
|
||||
(func $~lib/builtins/isNaN<f32> (; 74 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
(func $~lib/number/isNaN<f32> (; 74 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f32.ne
|
||||
@ -4672,7 +4672,7 @@
|
||||
i32.ge_u
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
if
|
||||
local.get $0
|
||||
return
|
||||
@ -4917,12 +4917,12 @@
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
if (result i32)
|
||||
i32.const 1
|
||||
else
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
end
|
||||
if
|
||||
local.get $1
|
||||
@ -5248,7 +5248,7 @@
|
||||
local.get $0
|
||||
f32.ceil
|
||||
)
|
||||
(func $~lib/builtins/isFinite<f32> (; 84 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
(func $~lib/number/isFinite<f32> (; 84 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f32.sub
|
||||
@ -5257,7 +5257,7 @@
|
||||
)
|
||||
(func $~lib/math/NativeMathf.clz32 (; 85 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
|
||||
local.get $0
|
||||
call $~lib/builtins/isFinite<f32>
|
||||
call $~lib/number/isFinite<f32>
|
||||
i32.eqz
|
||||
if
|
||||
f32.const 32
|
||||
@ -6217,7 +6217,7 @@
|
||||
local.get $0
|
||||
local.get $1
|
||||
f32.add
|
||||
call $~lib/builtins/isFinite<f32>
|
||||
call $~lib/number/isFinite<f32>
|
||||
i32.eqz
|
||||
br_if $~lib/math/NativeMathf.imul|inlined.0
|
||||
drop
|
||||
|
@ -1108,7 +1108,7 @@
|
||||
local.get $0
|
||||
call $~lib/math/NativeMath.asinh
|
||||
)
|
||||
(func $~lib/builtins/isNaN<f64> (; 15 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isNaN<f64> (; 15 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.ne
|
||||
@ -1140,7 +1140,7 @@
|
||||
i32.ge_u
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if
|
||||
local.get $0
|
||||
return
|
||||
@ -1472,12 +1472,12 @@
|
||||
(local $8 i32)
|
||||
(local $9 f64)
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if (result i32)
|
||||
i32.const 1
|
||||
else
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
end
|
||||
if
|
||||
local.get $1
|
||||
@ -1962,7 +1962,7 @@
|
||||
local.get $1
|
||||
f64.ceil
|
||||
)
|
||||
(func $~lib/builtins/isFinite<f64> (; 25 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isFinite<f64> (; 25 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.sub
|
||||
@ -1971,7 +1971,7 @@
|
||||
)
|
||||
(func $~lib/math/NativeMath.clz32 (; 26 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.eqz
|
||||
if
|
||||
f64.const 32
|
||||
@ -2042,7 +2042,7 @@
|
||||
i32.ge_u
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if
|
||||
local.get $0
|
||||
return
|
||||
@ -2436,7 +2436,7 @@
|
||||
i32.ge_u
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if
|
||||
local.get $0
|
||||
return
|
||||
@ -2894,7 +2894,7 @@
|
||||
local.get $0
|
||||
local.get $1
|
||||
f64.add
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.eqz
|
||||
if
|
||||
f64.const 0
|
||||
@ -5611,7 +5611,7 @@
|
||||
local.get $0
|
||||
call $~lib/math/NativeMathf.asinh
|
||||
)
|
||||
(func $~lib/builtins/isNaN<f32> (; 77 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
(func $~lib/number/isNaN<f32> (; 77 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f32.ne
|
||||
@ -5640,7 +5640,7 @@
|
||||
i32.ge_u
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
if
|
||||
local.get $0
|
||||
return
|
||||
@ -5930,12 +5930,12 @@
|
||||
(local $5 i32)
|
||||
(local $6 f32)
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
if (result i32)
|
||||
i32.const 1
|
||||
else
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
end
|
||||
if
|
||||
local.get $1
|
||||
@ -6368,7 +6368,7 @@
|
||||
local.get $1
|
||||
f32.ceil
|
||||
)
|
||||
(func $~lib/builtins/isFinite<f32> (; 87 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
(func $~lib/number/isFinite<f32> (; 87 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f32.sub
|
||||
@ -6377,7 +6377,7 @@
|
||||
)
|
||||
(func $~lib/math/NativeMathf.clz32 (; 88 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32)
|
||||
local.get $0
|
||||
call $~lib/builtins/isFinite<f32>
|
||||
call $~lib/number/isFinite<f32>
|
||||
i32.eqz
|
||||
if
|
||||
f32.const 32
|
||||
@ -7812,7 +7812,7 @@
|
||||
local.get $3
|
||||
local.get $2
|
||||
f32.add
|
||||
call $~lib/builtins/isFinite<f32>
|
||||
call $~lib/number/isFinite<f32>
|
||||
i32.eqz
|
||||
if
|
||||
f32.const 0
|
||||
|
@ -77,12 +77,12 @@
|
||||
(global $~lib/math/random_state1_32 (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(start $start)
|
||||
(func $~lib/builtins/isNaN<f64> (; 30 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isNaN<f64> (; 30 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.ne
|
||||
)
|
||||
(func $~lib/builtins/isFinite<f64> (; 31 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isFinite<f64> (; 31 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.sub
|
||||
@ -169,10 +169,10 @@
|
||||
(func $std/math/ulperr (; 33 ;) (type $FUNCSIG$dddd) (param $0 f64) (param $1 f64) (param $2 f64) (result f64)
|
||||
(local $3 i32)
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if (result i32)
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
else
|
||||
i32.const 0
|
||||
end
|
||||
@ -215,7 +215,7 @@
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.eqz
|
||||
if
|
||||
local.get $1
|
||||
@ -265,10 +265,10 @@
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
@ -284,7 +284,7 @@
|
||||
end
|
||||
i32.const 1
|
||||
)
|
||||
(func $~lib/builtins/isNaN<f32> (; 35 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
(func $~lib/number/isNaN<f32> (; 35 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f32.ne
|
||||
@ -368,10 +368,10 @@
|
||||
(func $std/math/ulperrf (; 37 ;) (type $FUNCSIG$ffff) (param $0 f32) (param $1 f32) (param $2 f32) (result f32)
|
||||
(local $3 i32)
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
if (result i32)
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
else
|
||||
i32.const 0
|
||||
end
|
||||
@ -463,10 +463,10 @@
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
@ -2065,7 +2065,7 @@
|
||||
i32.ge_u
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if
|
||||
local.get $0
|
||||
return
|
||||
@ -2303,7 +2303,7 @@
|
||||
i32.ge_u
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
if
|
||||
local.get $0
|
||||
return
|
||||
@ -2630,12 +2630,12 @@
|
||||
(local $6 i32)
|
||||
(local $7 i32)
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if (result i32)
|
||||
i32.const 1
|
||||
else
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
end
|
||||
if
|
||||
local.get $1
|
||||
@ -2893,12 +2893,12 @@
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
if (result i32)
|
||||
i32.const 1
|
||||
else
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
end
|
||||
if
|
||||
local.get $1
|
||||
@ -3702,7 +3702,7 @@
|
||||
i32.ge_u
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if
|
||||
local.get $0
|
||||
return
|
||||
@ -3972,7 +3972,7 @@
|
||||
i32.ge_u
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if
|
||||
local.get $0
|
||||
return
|
||||
@ -5898,7 +5898,7 @@
|
||||
i32.const 1
|
||||
else
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
end
|
||||
if
|
||||
local.get $0
|
||||
@ -6117,7 +6117,7 @@
|
||||
i32.const 1
|
||||
else
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
end
|
||||
if
|
||||
local.get $0
|
||||
@ -8277,7 +8277,7 @@
|
||||
i32.const 1
|
||||
else
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
end
|
||||
if
|
||||
local.get $0
|
||||
@ -8539,7 +8539,7 @@
|
||||
i32.const 1
|
||||
else
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
end
|
||||
if
|
||||
local.get $0
|
||||
@ -9699,7 +9699,7 @@
|
||||
local.get $0
|
||||
local.get $1
|
||||
f64.add
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.eqz
|
||||
if
|
||||
f64.const 0
|
||||
@ -9730,7 +9730,7 @@
|
||||
)
|
||||
(func $~lib/math/NativeMath.clz32 (; 158 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.eqz
|
||||
if
|
||||
f64.const 32
|
||||
@ -39511,7 +39511,7 @@
|
||||
f32.const nan:0x400000
|
||||
i32.const 1
|
||||
call $~lib/math/ipow32f
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -39524,7 +39524,7 @@
|
||||
f32.const nan:0x400000
|
||||
i32.const -1
|
||||
call $~lib/math/ipow32f
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -39537,7 +39537,7 @@
|
||||
f32.const nan:0x400000
|
||||
i32.const 2
|
||||
call $~lib/math/ipow32f
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -39719,7 +39719,7 @@
|
||||
f64.const nan:0x8000000000000
|
||||
i32.const 1
|
||||
call $~lib/math/ipow64f
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -39732,7 +39732,7 @@
|
||||
f64.const nan:0x8000000000000
|
||||
i32.const -1
|
||||
call $~lib/math/ipow64f
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -39745,7 +39745,7 @@
|
||||
f64.const nan:0x8000000000000
|
||||
i32.const 2
|
||||
call $~lib/math/ipow64f
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
|
@ -105,12 +105,12 @@
|
||||
(global $~lib/builtins/f32.MIN_VALUE f32 (f32.const 1.401298464324817e-45))
|
||||
(export "memory" (memory $0))
|
||||
(start $start)
|
||||
(func $~lib/builtins/isNaN<f64> (; 30 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isNaN<f64> (; 30 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.ne
|
||||
)
|
||||
(func $~lib/builtins/isFinite<f64> (; 31 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isFinite<f64> (; 31 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.sub
|
||||
@ -238,10 +238,10 @@
|
||||
(func $std/math/ulperr (; 34 ;) (type $FUNCSIG$dddd) (param $0 f64) (param $1 f64) (param $2 f64) (result f64)
|
||||
(local $3 f64)
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if (result i32)
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
else
|
||||
i32.const 0
|
||||
end
|
||||
@ -292,7 +292,7 @@
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.eqz
|
||||
if
|
||||
f64.const 8988465674311579538646525e283
|
||||
@ -325,10 +325,10 @@
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
@ -346,12 +346,12 @@
|
||||
end
|
||||
i32.const 1
|
||||
)
|
||||
(func $~lib/builtins/isNaN<f32> (; 36 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
(func $~lib/number/isNaN<f32> (; 36 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f32.ne
|
||||
)
|
||||
(func $~lib/builtins/isFinite<f32> (; 37 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
(func $~lib/number/isFinite<f32> (; 37 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f32.sub
|
||||
@ -477,10 +477,10 @@
|
||||
(func $std/math/ulperrf (; 40 ;) (type $FUNCSIG$ffff) (param $0 f32) (param $1 f32) (param $2 f32) (result f32)
|
||||
(local $3 f32)
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
if (result i32)
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
else
|
||||
i32.const 0
|
||||
end
|
||||
@ -529,7 +529,7 @@
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
call $~lib/builtins/isFinite<f32>
|
||||
call $~lib/number/isFinite<f32>
|
||||
i32.eqz
|
||||
if
|
||||
f32.const 1701411834604692317316873e14
|
||||
@ -562,10 +562,10 @@
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
@ -2505,7 +2505,7 @@
|
||||
i32.ge_u
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if
|
||||
local.get $0
|
||||
return
|
||||
@ -2799,7 +2799,7 @@
|
||||
i32.ge_u
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
if
|
||||
local.get $0
|
||||
return
|
||||
@ -3192,12 +3192,12 @@
|
||||
(local $8 i32)
|
||||
(local $9 f64)
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if (result i32)
|
||||
i32.const 1
|
||||
else
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
end
|
||||
if
|
||||
local.get $1
|
||||
@ -3555,12 +3555,12 @@
|
||||
(local $5 i32)
|
||||
(local $6 f32)
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
if (result i32)
|
||||
i32.const 1
|
||||
else
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
end
|
||||
if
|
||||
local.get $1
|
||||
@ -4892,7 +4892,7 @@
|
||||
i32.ge_u
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if
|
||||
local.get $0
|
||||
return
|
||||
@ -5195,7 +5195,7 @@
|
||||
i32.ge_u
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if
|
||||
local.get $0
|
||||
return
|
||||
@ -7611,7 +7611,7 @@
|
||||
i32.const 1
|
||||
else
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
end
|
||||
if
|
||||
local.get $0
|
||||
@ -7885,7 +7885,7 @@
|
||||
i32.const 1
|
||||
else
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
end
|
||||
if
|
||||
local.get $0
|
||||
@ -10500,7 +10500,7 @@
|
||||
i32.const 1
|
||||
else
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
end
|
||||
if
|
||||
local.get $0
|
||||
@ -10823,7 +10823,7 @@
|
||||
i32.const 1
|
||||
else
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
end
|
||||
if
|
||||
local.get $0
|
||||
@ -12930,7 +12930,7 @@
|
||||
local.get $0
|
||||
local.get $1
|
||||
f64.add
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.eqz
|
||||
if
|
||||
f64.const 0
|
||||
@ -12961,7 +12961,7 @@
|
||||
)
|
||||
(func $~lib/math/NativeMath.clz32 (; 161 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64)
|
||||
local.get $0
|
||||
call $~lib/builtins/isFinite<f64>
|
||||
call $~lib/number/isFinite<f64>
|
||||
i32.eqz
|
||||
if
|
||||
f64.const 32
|
||||
@ -47130,7 +47130,7 @@
|
||||
f32.const nan:0x400000
|
||||
i32.const 1
|
||||
call $~lib/math/ipow32f
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -47143,7 +47143,7 @@
|
||||
f32.const nan:0x400000
|
||||
i32.const -1
|
||||
call $~lib/math/ipow32f
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -47156,7 +47156,7 @@
|
||||
f32.const nan:0x400000
|
||||
i32.const 2
|
||||
call $~lib/math/ipow32f
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -47355,7 +47355,7 @@
|
||||
f64.const nan:0x8000000000000
|
||||
i32.const 1
|
||||
call $~lib/math/ipow64f
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -47368,7 +47368,7 @@
|
||||
f64.const nan:0x8000000000000
|
||||
i32.const -1
|
||||
call $~lib/math/ipow64f
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -47381,7 +47381,7 @@
|
||||
f64.const nan:0x8000000000000
|
||||
i32.const 2
|
||||
call $~lib/math/ipow64f
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
|
@ -16,7 +16,7 @@
|
||||
(export "memory" (memory $0))
|
||||
(export "mod" (func $std/mod/mod))
|
||||
(start $start)
|
||||
(func $~lib/builtins/isNaN<f64> (; 2 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isNaN<f64> (; 2 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.ne
|
||||
@ -66,7 +66,7 @@
|
||||
i32.const 1
|
||||
else
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
end
|
||||
if
|
||||
local.get $0
|
||||
@ -226,10 +226,10 @@
|
||||
)
|
||||
(func $std/mod/check<f64> (; 4 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32)
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
@ -265,7 +265,7 @@
|
||||
i32.const 0
|
||||
end
|
||||
)
|
||||
(func $~lib/builtins/isNaN<f32> (; 6 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
(func $~lib/number/isNaN<f32> (; 6 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f32.ne
|
||||
@ -313,7 +313,7 @@
|
||||
i32.const 1
|
||||
else
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
end
|
||||
if
|
||||
local.get $0
|
||||
@ -463,10 +463,10 @@
|
||||
)
|
||||
(func $std/mod/check<f32> (; 8 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32)
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
|
@ -19,7 +19,7 @@
|
||||
(export "memory" (memory $0))
|
||||
(export "mod" (func $std/mod/mod))
|
||||
(start $start)
|
||||
(func $~lib/builtins/isNaN<f64> (; 2 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isNaN<f64> (; 2 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.ne
|
||||
@ -74,7 +74,7 @@
|
||||
i32.const 1
|
||||
else
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
end
|
||||
if
|
||||
local.get $0
|
||||
@ -274,10 +274,10 @@
|
||||
)
|
||||
(func $std/mod/check<f64> (; 4 ;) (type $FUNCSIG$idd) (param $0 f64) (param $1 f64) (result i32)
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
@ -320,7 +320,7 @@
|
||||
i32.const 0
|
||||
end
|
||||
)
|
||||
(func $~lib/builtins/isNaN<f32> (; 6 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
(func $~lib/number/isNaN<f32> (; 6 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f32.ne
|
||||
@ -375,7 +375,7 @@
|
||||
i32.const 1
|
||||
else
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
end
|
||||
if
|
||||
local.get $0
|
||||
@ -573,10 +573,10 @@
|
||||
)
|
||||
(func $std/mod/check<f32> (; 8 ;) (type $FUNCSIG$iff) (param $0 f32) (param $1 f32) (result i32)
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -15506,7 +15506,7 @@
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__release
|
||||
)
|
||||
(func $~lib/builtins/isNaN<f32> (; 317 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
(func $~lib/number/isNaN<f32> (; 317 ;) (type $FUNCSIG$if) (param $0 f32) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f32.ne
|
||||
@ -15561,7 +15561,7 @@
|
||||
i32.const 1
|
||||
else
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f32>
|
||||
call $~lib/number/isNaN<f32>
|
||||
end
|
||||
if
|
||||
local.get $0
|
||||
@ -15917,7 +15917,7 @@
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__release
|
||||
)
|
||||
(func $~lib/builtins/isNaN<f64> (; 323 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
(func $~lib/number/isNaN<f64> (; 323 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
f64.ne
|
||||
@ -15972,7 +15972,7 @@
|
||||
i32.const 1
|
||||
else
|
||||
local.get $1
|
||||
call $~lib/builtins/isNaN<f64>
|
||||
call $~lib/number/isNaN<f64>
|
||||
end
|
||||
if
|
||||
local.get $0
|
||||
|
Loading…
x
Reference in New Issue
Block a user