Refactor number and string utils out of builtins, fixes #608

This commit is contained in:
dcode
2019-06-06 16:19:10 +02:00
parent 0484a6b740
commit 4680b530fb
23 changed files with 988 additions and 979 deletions

View File

@ -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