refactor, indexof, map/set overloads

This commit is contained in:
dcode
2019-06-17 16:17:27 +02:00
parent 8571df939f
commit f8f2565f60
23 changed files with 1091 additions and 645 deletions

View File

@ -0,0 +1,9 @@
(module
(type $FUNCSIG$v (func))
(memory $0 1)
(data (i32.const 8) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00i\00n\00d\00e\00x\00o\00f\00-\00v\00a\00l\00u\00e\00o\00f\00.\00t\00s")
(export "memory" (memory $0))
(func $start (; 0 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -0,0 +1,61 @@
// simple indexes
assert(isInteger<indexof<i8[]>>());
assert(isSigned<indexof<i8[]>>());
assert(sizeof<indexof<i8[]>>() == 4); // i32
// simple values
assert(isInteger<valueof<i8[]>>());
assert(isSigned<valueof<i8[]>>());
assert(sizeof<valueof<i8[]>>() == 1);
// using an alias
type u32Array = u32[];
assert(isInteger<valueof<u32Array>>());
assert(!isSigned<valueof<u32Array>>());
assert(sizeof<valueof<u32Array>>() == 4);
// float values
assert(isFloat<valueof<f32[]>>());
assert(sizeof<valueof<f32[]>>() == 4);
// string values
assert(isString<valueof<string[]>>());
assert(isManaged<valueof<string[]>>());
// array indexes
assert(isInteger<indexof<string[][]>>());
assert(isSigned<indexof<string[][]>>());
assert(sizeof<indexof<string[][]>>() == 4); // i32
// array values
assert(isArray<valueof<string[][]>>());
// typed array indexes
assert(isInteger<indexof<Float32Array>>());
assert(isSigned<indexof<Float32Array>>());
assert(sizeof<indexof<Float32Array>>() == 4); // i32
// typed array values
assert(isInteger<valueof<Uint8ClampedArray>>());
assert(!isSigned<valueof<Uint8ClampedArray>>());
assert(sizeof<valueof<Uint8ClampedArray>>() == 1);
// map indexes
assert(isInteger<indexof<Map<i32,i32>>>());
assert(isFloat<indexof<Map<f32,i32>>>());
assert(isString<indexof<Map<string,i32>>>());
// map values
assert(isInteger<valueof<Map<i32,i8>>>());
assert(isFloat<valueof<Map<i32,f32>>>());
assert(isString<valueof<Map<i32,string>>>());
// set indexes
assert(isInteger<indexof<Set<i32>>>());
assert(isFloat<indexof<Set<f32>>>());
assert(isString<indexof<Set<string>>>());
// set values (always bool)
assert(isBoolean<valueof<Set<i32>>>());
assert(isBoolean<valueof<Set<f32>>>());
assert(isBoolean<valueof<Set<string>>>());

View File

@ -0,0 +1,384 @@
(module
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$v (func))
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00i\00n\00d\00e\00x\00o\00f\00-\00v\00a\00l\00u\00e\00o\00f\00.\00t\00s\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(export "memory" (memory $0))
(start $start)
(func $start:indexof-valueof (; 1 ;) (type $FUNCSIG$v)
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 2
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 3
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 4
i32.const 4
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 4
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 7
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 8
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 9
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 13
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 0
i32.eqz
i32.eqz
if
i32.const 0
i32.const 24
i32.const 14
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 4
i32.const 4
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 15
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 18
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 4
i32.const 4
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 19
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 22
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 23
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 26
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 27
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 4
i32.const 4
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 28
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 31
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 34
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 35
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 4
i32.const 4
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 36
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 39
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 0
i32.eqz
i32.eqz
if
i32.const 0
i32.const 24
i32.const 40
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 41
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 44
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 45
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 46
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 49
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 50
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 51
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 54
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 55
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 56
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 59
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 60
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 61
i32.const 0
call $~lib/builtins/abort
unreachable
end
)
(func $start (; 2 ;) (type $FUNCSIG$v)
call $start:indexof-valueof
)
(func $null (; 3 ;) (type $FUNCSIG$v)
)
)

View File

@ -35,7 +35,9 @@
(data (i32.const 264) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
(data (i32.const 320) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s")
(data (i32.const 360) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00s\00t\00d\00/\00m\00a\00p\00.\00t\00s")
(data (i32.const 400) "\0d\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\98D\08\00\00\00\00\00\98D\00\00\00\00\00\00\98\84\08\00\00\00\00\00\98\84\00\00\00\00\00\00\98\04\t\00\00\00\00\00\98\04\01\00\00\00\00\00\98\04\n\00\00\00\00\00\98\04\02\00\00\00\00\00\98\04\19\00\00\00\00\00\98\04\1a")
(data (i32.const 400) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t")
(data (i32.const 456) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s")
(data (i32.const 496) "\0d\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\98D\08\00\00\00\00\00\98D\00\00\00\00\00\00\98\84\08\00\00\00\00\00\98\84\00\00\00\00\00\00\98\04\t\00\00\00\00\00\98\04\01\00\00\00\00\00\98\04\n\00\00\00\00\00\98\04\02\00\00\00\00\00\98\04\19\00\00\00\00\00\98\04\1a")
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
(global $~lib/rt/pure/CUR (mut i32) (i32.const 0))
(global $~lib/rt/pure/END (mut i32) (i32.const 0))
@ -627,10 +629,10 @@
if
unreachable
end
i32.const 512
i32.const 608
i32.const 0
i32.store
i32.const 2080
i32.const 2176
i32.const 0
i32.store
i32.const 0
@ -644,7 +646,7 @@
local.get $0
i32.const 2
i32.shl
i32.const 512
i32.const 608
i32.add
i32.const 0
i32.store offset=4
@ -663,7 +665,7 @@
i32.add
i32.const 2
i32.shl
i32.const 512
i32.const 608
i32.add
i32.const 0
i32.store offset=96
@ -681,13 +683,13 @@
br $loop|0
end
end
i32.const 512
i32.const 2096
i32.const 608
i32.const 2192
memory.size
i32.const 16
i32.shl
call $~lib/rt/tlsf/addMemory
i32.const 512
i32.const 608
global.set $~lib/rt/tlsf/ROOT
)
(func $~lib/rt/tlsf/prepareSize (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
@ -1079,7 +1081,7 @@
)
(func $~lib/rt/pure/__retain (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 508
i32.const 604
i32.gt_u
if
local.get $0
@ -1348,7 +1350,7 @@
)
(func $~lib/rt/__typeinfo (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 400
i32.const 496
i32.load
i32.gt_u
if
@ -1362,7 +1364,7 @@
local.get $0
i32.const 3
i32.shl
i32.const 404
i32.const 500
i32.add
i32.load
)
@ -1734,7 +1736,7 @@
)
(func $~lib/rt/pure/__release (; 26 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.const 508
i32.const 604
i32.gt_u
if
local.get $0
@ -2107,12 +2109,17 @@
call $~lib/util/hash/hash8
call $~lib/map/Map<i8,i32>#find
local.tee $0
if (result i32)
local.get $0
i32.load offset=4
else
i32.eqz
if
i32.const 416
i32.const 472
i32.const 103
i32.const 16
call $~lib/builtins/abort
unreachable
end
local.get $0
i32.load offset=4
)
(func $~lib/map/Map<i8,i32>#delete (; 35 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
@ -2796,12 +2803,17 @@
call $~lib/util/hash/hash8
call $~lib/map/Map<i8,i32>#find
local.tee $0
if (result i32)
local.get $0
i32.load offset=4
else
i32.eqz
if
i32.const 416
i32.const 472
i32.const 103
i32.const 16
call $~lib/builtins/abort
unreachable
end
local.get $0
i32.load offset=4
)
(func $~lib/map/Map<u8,i32>#delete (; 42 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
@ -3535,12 +3547,17 @@
call $~lib/util/hash/hash16
call $~lib/map/Map<i16,i32>#find
local.tee $0
if (result i32)
local.get $0
i32.load offset=4
else
i32.eqz
if
i32.const 416
i32.const 472
i32.const 103
i32.const 16
call $~lib/builtins/abort
unreachable
end
local.get $0
i32.load offset=4
)
(func $~lib/map/Map<i16,i32>#delete (; 51 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
@ -4224,12 +4241,17 @@
call $~lib/util/hash/hash16
call $~lib/map/Map<i16,i32>#find
local.tee $0
if (result i32)
local.get $0
i32.load offset=4
else
i32.eqz
if
i32.const 416
i32.const 472
i32.const 103
i32.const 16
call $~lib/builtins/abort
unreachable
end
local.get $0
i32.load offset=4
)
(func $~lib/map/Map<u16,i32>#delete (; 58 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
@ -4965,12 +4987,17 @@
call $~lib/util/hash/hash32
call $~lib/map/Map<i32,i32>#find
local.tee $0
if (result i32)
local.get $0
i32.load offset=4
else
i32.eqz
if
i32.const 416
i32.const 472
i32.const 103
i32.const 16
call $~lib/builtins/abort
unreachable
end
local.get $0
i32.load offset=4
)
(func $~lib/map/Map<i32,i32>#delete (; 67 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
@ -6104,12 +6131,17 @@
call $~lib/util/hash/hash64
call $~lib/map/Map<i64,i32>#find
local.tee $0
if (result i32)
local.get $0
i32.load offset=8
else
i32.eqz
if
i32.const 416
i32.const 472
i32.const 103
i32.const 16
call $~lib/builtins/abort
unreachable
end
local.get $0
i32.load offset=8
)
(func $~lib/map/Map<i64,i32>#delete (; 79 ;) (type $FUNCSIG$vij) (param $0 i32) (param $1 i64)
(local $2 i32)
@ -7163,12 +7195,17 @@
call $~lib/util/hash/hash32
call $~lib/map/Map<f32,i32>#find
local.tee $0
if (result i32)
local.get $0
i32.load offset=4
else
i32.eqz
if
i32.const 416
i32.const 472
i32.const 103
i32.const 16
call $~lib/builtins/abort
unreachable
end
local.get $0
i32.load offset=4
)
(func $~lib/map/Map<f32,i32>#delete (; 89 ;) (type $FUNCSIG$vif) (param $0 i32) (param $1 f32)
(local $2 i32)
@ -7870,12 +7907,17 @@
call $~lib/util/hash/hash64
call $~lib/map/Map<f64,i32>#find
local.tee $0
if (result i32)
local.get $0
i32.load offset=8
else
i32.eqz
if
i32.const 416
i32.const 472
i32.const 103
i32.const 16
call $~lib/builtins/abort
unreachable
end
local.get $0
i32.load offset=8
)
(func $~lib/map/Map<f64,i32>#delete (; 97 ;) (type $FUNCSIG$vid) (param $0 i32) (param $1 f64)
(local $2 i32)
@ -8381,7 +8423,7 @@
)
(func $~lib/rt/pure/__visit (; 104 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
local.get $0
i32.const 508
i32.const 604
i32.lt_u
if
return

View File

@ -31,7 +31,9 @@
(data (i32.const 264) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00")
(data (i32.const 320) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00")
(data (i32.const 360) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00s\00t\00d\00/\00m\00a\00p\00.\00t\00s\00")
(data (i32.const 400) "\0d\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\98D\08\00\00\00\00\00\98D\00\00\00\00\00\00\98\84\08\00\00\00\00\00\98\84\00\00\00\00\00\00\98\04\t\00\00\00\00\00\98\04\01\00\00\00\00\00\98\04\n\00\00\00\00\00\98\04\02\00\00\00\00\00\98\04\19\00\00\00\00\00\98\04\1a\00\00\00\00\00")
(data (i32.const 400) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t\00")
(data (i32.const 456) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s\00")
(data (i32.const 496) "\0d\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\98D\08\00\00\00\00\00\98D\00\00\00\00\00\00\98\84\08\00\00\00\00\00\98\84\00\00\00\00\00\00\98\04\t\00\00\00\00\00\98\04\01\00\00\00\00\00\98\04\n\00\00\00\00\00\98\04\02\00\00\00\00\00\98\04\19\00\00\00\00\00\98\04\1a\00\00\00\00\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
@ -39,8 +41,8 @@
(global $~lib/rt/pure/CUR (mut i32) (i32.const 0))
(global $~lib/rt/pure/END (mut i32) (i32.const 0))
(global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0))
(global $~lib/rt/__rtti_base i32 (i32.const 400))
(global $~lib/heap/__heap_base i32 (i32.const 508))
(global $~lib/rt/__rtti_base i32 (i32.const 496))
(global $~lib/heap/__heap_base i32 (i32.const 604))
(export "memory" (memory $0))
(start $start)
(func $~lib/rt/tlsf/removeBlock (; 5 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
@ -3663,12 +3665,17 @@
call $~lib/map/Map<i8,i32>#find
local.set $3
local.get $3
if (result i32)
local.get $3
i32.load offset=4
else
i32.eqz
if
i32.const 416
i32.const 472
i32.const 103
i32.const 16
call $~lib/builtins/abort
unreachable
end
local.get $3
i32.load offset=4
)
(func $~lib/map/Map<i8,i32>#get:size (; 36 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
@ -4542,12 +4549,17 @@
call $~lib/map/Map<u8,i32>#find
local.set $3
local.get $3
if (result i32)
local.get $3
i32.load offset=4
else
i32.eqz
if
i32.const 416
i32.const 472
i32.const 103
i32.const 16
call $~lib/builtins/abort
unreachable
end
local.get $3
i32.load offset=4
)
(func $~lib/map/Map<u8,i32>#get:size (; 46 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
@ -5435,12 +5447,17 @@
call $~lib/map/Map<i16,i32>#find
local.set $3
local.get $3
if (result i32)
local.get $3
i32.load offset=4
else
i32.eqz
if
i32.const 416
i32.const 472
i32.const 103
i32.const 16
call $~lib/builtins/abort
unreachable
end
local.get $3
i32.load offset=4
)
(func $~lib/map/Map<i16,i32>#get:size (; 57 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
@ -6314,12 +6331,17 @@
call $~lib/map/Map<u16,i32>#find
local.set $3
local.get $3
if (result i32)
local.get $3
i32.load offset=4
else
i32.eqz
if
i32.const 416
i32.const 472
i32.const 103
i32.const 16
call $~lib/builtins/abort
unreachable
end
local.get $3
i32.load offset=4
)
(func $~lib/map/Map<u16,i32>#get:size (; 67 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
@ -7211,12 +7233,17 @@
call $~lib/map/Map<i32,i32>#find
local.set $3
local.get $3
if (result i32)
local.get $3
i32.load offset=4
else
i32.eqz
if
i32.const 416
i32.const 472
i32.const 103
i32.const 16
call $~lib/builtins/abort
unreachable
end
local.get $3
i32.load offset=4
)
(func $~lib/map/Map<i32,i32>#get:size (; 78 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
@ -8050,12 +8077,17 @@
call $~lib/map/Map<u32,i32>#find
local.set $3
local.get $3
if (result i32)
local.get $3
i32.load offset=4
else
i32.eqz
if
i32.const 416
i32.const 472
i32.const 103
i32.const 16
call $~lib/builtins/abort
unreachable
end
local.get $3
i32.load offset=4
)
(func $~lib/map/Map<u32,i32>#get:size (; 88 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
@ -8979,12 +9011,17 @@
call $~lib/map/Map<i64,i32>#find
local.set $3
local.get $3
if (result i32)
local.get $3
i32.load offset=8
else
i32.eqz
if
i32.const 416
i32.const 472
i32.const 103
i32.const 16
call $~lib/builtins/abort
unreachable
end
local.get $3
i32.load offset=8
)
(func $~lib/map/Map<i64,i32>#get:size (; 99 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
@ -9828,12 +9865,17 @@
call $~lib/map/Map<u64,i32>#find
local.set $3
local.get $3
if (result i32)
local.get $3
i32.load offset=8
else
i32.eqz
if
i32.const 416
i32.const 472
i32.const 103
i32.const 16
call $~lib/builtins/abort
unreachable
end
local.get $3
i32.load offset=8
)
(func $~lib/map/Map<u64,i32>#get:size (; 109 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
@ -10681,12 +10723,17 @@
call $~lib/map/Map<f32,i32>#find
local.set $3
local.get $3
if (result i32)
local.get $3
i32.load offset=4
else
i32.eqz
if
i32.const 416
i32.const 472
i32.const 103
i32.const 16
call $~lib/builtins/abort
unreachable
end
local.get $3
i32.load offset=4
)
(func $~lib/map/Map<f32,i32>#get:size (; 119 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
@ -11535,12 +11582,17 @@
call $~lib/map/Map<f64,i32>#find
local.set $3
local.get $3
if (result i32)
local.get $3
i32.load offset=8
else
i32.eqz
if
i32.const 416
i32.const 472
i32.const 103
i32.const 16
call $~lib/builtins/abort
unreachable
end
local.get $3
i32.load offset=8
)
(func $~lib/map/Map<f64,i32>#get:size (; 129 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0

View File

@ -14,25 +14,27 @@
(data (i32.const 32) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00s\00t\00d\00/\00s\00y\00m\00b\00o\00l\00.\00t\00s")
(data (i32.const 80) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h")
(data (i32.const 128) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s")
(data (i32.const 188) "\01\00\00\00\01")
(data (i32.const 200) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e")
(data (i32.const 240) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e")
(data (i32.const 296) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00i\00s\00R\00e\00g\00E\00x\00p")
(data (i32.const 328) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00m\00a\00t\00c\00h")
(data (i32.const 360) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00r\00e\00p\00l\00a\00c\00e")
(data (i32.const 392) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\00s\00e\00a\00r\00c\00h")
(data (i32.const 424) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00s\00p\00e\00c\00i\00e\00s")
(data (i32.const 456) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00s\00p\00l\00i\00t")
(data (i32.const 488) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00t\00o\00P\00r\00i\00m\00i\00t\00i\00v\00e")
(data (i32.const 528) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00T\00a\00g")
(data (i32.const 568) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00u\00n\00s\00c\00o\00p\00a\00b\00l\00e\00s")
(data (i32.const 608) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00S\00y\00m\00b\00o\00l\00(")
(data (i32.const 640) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00n\00u\00l\00l")
(data (i32.const 664) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00)")
(data (i32.const 688) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00S\00y\00m\00b\00o\00l\00(\00)")
(data (i32.const 720) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00S\00y\00m\00b\00o\00l\00(\001\002\003\00)")
(data (i32.const 760) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)")
(data (i32.const 816) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)")
(data (i32.const 184) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t")
(data (i32.const 240) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s")
(data (i32.const 284) "\01\00\00\00\01")
(data (i32.const 296) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e")
(data (i32.const 336) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e")
(data (i32.const 392) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00i\00s\00R\00e\00g\00E\00x\00p")
(data (i32.const 424) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00m\00a\00t\00c\00h")
(data (i32.const 456) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00r\00e\00p\00l\00a\00c\00e")
(data (i32.const 488) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\00s\00e\00a\00r\00c\00h")
(data (i32.const 520) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00s\00p\00e\00c\00i\00e\00s")
(data (i32.const 552) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00s\00p\00l\00i\00t")
(data (i32.const 584) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00t\00o\00P\00r\00i\00m\00i\00t\00i\00v\00e")
(data (i32.const 624) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00T\00a\00g")
(data (i32.const 664) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00u\00n\00s\00c\00o\00p\00a\00b\00l\00e\00s")
(data (i32.const 704) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00S\00y\00m\00b\00o\00l\00(")
(data (i32.const 736) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00n\00u\00l\00l")
(data (i32.const 760) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00)")
(data (i32.const 784) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00S\00y\00m\00b\00o\00l\00(\00)")
(data (i32.const 816) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00S\00y\00m\00b\00o\00l\00(\001\002\003\00)")
(data (i32.const 856) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)")
(data (i32.const 912) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)")
(global $~lib/symbol/nextId (mut i32) (i32.const 12))
(global $std/symbol/sym1 (mut i32) (i32.const 0))
(global $std/symbol/sym2 (mut i32) (i32.const 0))
@ -609,7 +611,25 @@
end
i32.const 0
)
(func $~lib/map/Map<~lib/string/String,usize>#rehash (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/map/Map<~lib/string/String,usize>#get (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 24
call $~lib/util/hash/hashStr
call $~lib/map/Map<~lib/string/String,usize>#find
local.tee $0
i32.eqz
if
i32.const 200
i32.const 256
i32.const 103
i32.const 16
call $~lib/builtins/abort
unreachable
end
local.get $0
i32.load offset=4
)
(func $~lib/map/Map<~lib/string/String,usize>#rehash (; 14 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -716,7 +736,7 @@
i32.load offset=20
i32.store offset=16
)
(func $~lib/map/Map<~lib/string/String,usize>#set (; 14 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/map/Map<~lib/string/String,usize>#set (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -805,7 +825,7 @@
i32.store
end
)
(func $~lib/util/hash/hash32 (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/hash/hash32 (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 255
i32.and
@ -836,7 +856,7 @@
i32.const 16777619
i32.mul
)
(func $~lib/map/Map<usize,~lib/string/String>#find (; 16 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/map/Map<usize,~lib/string/String>#find (; 17 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $0
i32.load
local.get $0
@ -879,7 +899,7 @@
end
i32.const 0
)
(func $~lib/map/Map<usize,~lib/string/String>#rehash (; 17 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/map/Map<usize,~lib/string/String>#rehash (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -986,7 +1006,7 @@
i32.load offset=20
i32.store offset=16
)
(func $~lib/map/Map<usize,~lib/string/String>#set (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/map/Map<usize,~lib/string/String>#set (; 19 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -1082,7 +1102,7 @@
i32.store
end
)
(func $~lib/symbol/_Symbol.for (; 19 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/symbol/_Symbol.for (; 20 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
global.get $~lib/symbol/stringToId
if
@ -1092,16 +1112,7 @@
call $~lib/map/Map<~lib/string/String,usize>#find
if
global.get $~lib/symbol/stringToId
i32.const 24
call $~lib/util/hash/hashStr
call $~lib/map/Map<~lib/string/String,usize>#find
local.tee $0
if (result i32)
local.get $0
i32.load offset=4
else
unreachable
end
call $~lib/map/Map<~lib/string/String,usize>#get
return
end
else
@ -1128,7 +1139,7 @@
call $~lib/map/Map<usize,~lib/string/String>#set
local.get $0
)
(func $~lib/map/Map<usize,~lib/string/String>#has (; 20 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/map/Map<usize,~lib/string/String>#has (; 21 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
local.get $1
@ -1137,21 +1148,26 @@
i32.const 0
i32.ne
)
(func $~lib/map/Map<usize,~lib/string/String>#get (; 21 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/map/Map<usize,~lib/string/String>#get (; 22 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
local.get $1
call $~lib/util/hash/hash32
call $~lib/map/Map<usize,~lib/string/String>#find
local.tee $0
if (result i32)
local.get $0
i32.load offset=4
else
i32.eqz
if
i32.const 200
i32.const 256
i32.const 103
i32.const 16
call $~lib/builtins/abort
unreachable
end
local.get $0
i32.load offset=4
)
(func $~lib/symbol/_Symbol.keyFor (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/symbol/_Symbol.keyFor (; 23 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
global.get $~lib/symbol/idToString
if (result i32)
global.get $~lib/symbol/idToString
@ -1168,7 +1184,7 @@
i32.const 0
end
)
(func $~lib/memory/memory.copy (; 23 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memory.copy (; 24 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
block $~lib/util/memory/memmove|inlined.0
@ -1343,7 +1359,7 @@
end
end
)
(func $~lib/string/String#concat (; 24 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String#concat (; 25 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -1353,7 +1369,7 @@
i32.shl
local.tee $3
local.get $1
i32.const 656
i32.const 752
local.get $1
select
local.tee $1
@ -1365,7 +1381,7 @@
local.tee $2
i32.eqz
if
i32.const 200
i32.const 296
return
end
local.get $2
@ -1383,16 +1399,16 @@
call $~lib/memory/memory.copy
local.get $2
)
(func $~lib/string/String.__concat (; 25 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__concat (; 26 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
i32.const 656
i32.const 752
local.get $0
select
local.get $1
call $~lib/string/String#concat
)
(func $~lib/symbol/_Symbol#toString (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 624
(func $~lib/symbol/_Symbol#toString (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 720
block $break|0 (result i32)
block $case11|0
block $case10|0
@ -1421,37 +1437,37 @@
end
br $case11|0
end
i32.const 216
i32.const 312
br $break|0
end
i32.const 256
i32.const 352
br $break|0
end
i32.const 312
i32.const 408
br $break|0
end
i32.const 344
i32.const 440
br $break|0
end
i32.const 376
i32.const 472
br $break|0
end
i32.const 408
i32.const 504
br $break|0
end
i32.const 440
i32.const 536
br $break|0
end
i32.const 472
i32.const 568
br $break|0
end
i32.const 504
i32.const 600
br $break|0
end
i32.const 544
i32.const 640
br $break|0
end
i32.const 584
i32.const 680
br $break|0
end
global.get $~lib/symbol/idToString
@ -1467,14 +1483,14 @@
local.get $0
call $~lib/map/Map<usize,~lib/string/String>#get
else
i32.const 200
i32.const 296
end
end
call $~lib/string/String.__concat
i32.const 680
i32.const 776
call $~lib/string/String.__concat
)
(func $start:std/symbol (; 27 ;) (type $FUNCSIG$v)
(func $start:std/symbol (; 28 ;) (type $FUNCSIG$v)
(local $0 i32)
i32.const 24
call $~lib/symbol/Symbol
@ -1493,7 +1509,7 @@
call $~lib/builtins/abort
unreachable
end
i32.const 896
i32.const 992
global.set $~lib/rt/stub/startOffset
global.get $~lib/rt/stub/startOffset
global.set $~lib/rt/stub/offset
@ -1581,7 +1597,7 @@
i32.const 0
call $~lib/symbol/Symbol
call $~lib/symbol/_Symbol#toString
i32.const 704
i32.const 800
call $~lib/string/String.__eq
i32.eqz
if
@ -1594,7 +1610,7 @@
end
global.get $std/symbol/sym3
call $~lib/symbol/_Symbol#toString
i32.const 736
i32.const 832
call $~lib/string/String.__eq
i32.eqz
if
@ -1611,7 +1627,7 @@
global.set $std/symbol/isConcatSpreadable
global.get $std/symbol/hasInstance
call $~lib/symbol/_Symbol#toString
i32.const 776
i32.const 872
call $~lib/string/String.__eq
i32.eqz
if
@ -1624,7 +1640,7 @@
end
global.get $std/symbol/isConcatSpreadable
call $~lib/symbol/_Symbol#toString
i32.const 832
i32.const 928
call $~lib/string/String.__eq
i32.eqz
if
@ -1636,10 +1652,10 @@
unreachable
end
)
(func $start (; 28 ;) (type $FUNCSIG$v)
(func $start (; 29 ;) (type $FUNCSIG$v)
call $start:std/symbol
)
(func $null (; 29 ;) (type $FUNCSIG$v)
(func $null (; 30 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -14,25 +14,27 @@
(data (i32.const 32) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00s\00t\00d\00/\00s\00y\00m\00b\00o\00l\00.\00t\00s\00")
(data (i32.const 80) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00")
(data (i32.const 128) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00")
(data (i32.const 184) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00")
(data (i32.const 200) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00")
(data (i32.const 240) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00")
(data (i32.const 296) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00i\00s\00R\00e\00g\00E\00x\00p\00")
(data (i32.const 328) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00m\00a\00t\00c\00h\00")
(data (i32.const 360) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00r\00e\00p\00l\00a\00c\00e\00")
(data (i32.const 392) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\00s\00e\00a\00r\00c\00h\00")
(data (i32.const 424) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00s\00p\00e\00c\00i\00e\00s\00")
(data (i32.const 456) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00s\00p\00l\00i\00t\00")
(data (i32.const 488) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00t\00o\00P\00r\00i\00m\00i\00t\00i\00v\00e\00")
(data (i32.const 528) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00T\00a\00g\00")
(data (i32.const 568) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00u\00n\00s\00c\00o\00p\00a\00b\00l\00e\00s\00")
(data (i32.const 608) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00S\00y\00m\00b\00o\00l\00(\00")
(data (i32.const 640) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00n\00u\00l\00l\00")
(data (i32.const 664) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00)\00")
(data (i32.const 688) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00S\00y\00m\00b\00o\00l\00(\00)\00")
(data (i32.const 720) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00S\00y\00m\00b\00o\00l\00(\001\002\003\00)\00")
(data (i32.const 760) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)\00")
(data (i32.const 816) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)\00")
(data (i32.const 184) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t\00")
(data (i32.const 240) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s\00")
(data (i32.const 280) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00")
(data (i32.const 296) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00")
(data (i32.const 336) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00")
(data (i32.const 392) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00i\00s\00R\00e\00g\00E\00x\00p\00")
(data (i32.const 424) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00m\00a\00t\00c\00h\00")
(data (i32.const 456) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00r\00e\00p\00l\00a\00c\00e\00")
(data (i32.const 488) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\00s\00e\00a\00r\00c\00h\00")
(data (i32.const 520) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00s\00p\00e\00c\00i\00e\00s\00")
(data (i32.const 552) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00s\00p\00l\00i\00t\00")
(data (i32.const 584) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00t\00o\00P\00r\00i\00m\00i\00t\00i\00v\00e\00")
(data (i32.const 624) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00T\00a\00g\00")
(data (i32.const 664) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00u\00n\00s\00c\00o\00p\00a\00b\00l\00e\00s\00")
(data (i32.const 704) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00S\00y\00m\00b\00o\00l\00(\00")
(data (i32.const 736) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00n\00u\00l\00l\00")
(data (i32.const 760) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00)\00")
(data (i32.const 784) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00S\00y\00m\00b\00o\00l\00(\00)\00")
(data (i32.const 816) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00S\00y\00m\00b\00o\00l\00(\001\002\003\00)\00")
(data (i32.const 856) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)\00")
(data (i32.const 912) "4\00\00\00\01\00\00\00\01\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/symbol/nextId (mut i32) (i32.const 12))
@ -53,7 +55,7 @@
(global $std/symbol/hasInstance (mut i32) (i32.const 0))
(global $~lib/symbol/_Symbol.isConcatSpreadable i32 (i32.const 2))
(global $std/symbol/isConcatSpreadable (mut i32) (i32.const 0))
(global $~lib/heap/__heap_base i32 (i32.const 884))
(global $~lib/heap/__heap_base i32 (i32.const 980))
(export "memory" (memory $0))
(start $start)
(func $~lib/rt/stub/__retain (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
@ -919,12 +921,19 @@
call $~lib/map/Map<~lib/string/String,usize>#find
local.set $4
local.get $4
if (result i32)
local.get $4
i32.load offset=4
else
i32.eqz
if
local.get $1
call $~lib/rt/stub/__release
i32.const 200
i32.const 256
i32.const 103
i32.const 16
call $~lib/builtins/abort
unreachable
end
local.get $4
i32.load offset=4
local.set $2
local.get $1
call $~lib/rt/stub/__release
@ -1655,7 +1664,6 @@
(func $~lib/map/Map<usize,~lib/string/String>#get (; 26 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
local.get $0
local.get $1
block $~lib/util/hash/HASH<usize>|inlined.3 (result i32)
@ -1668,14 +1676,17 @@
call $~lib/map/Map<usize,~lib/string/String>#find
local.set $3
local.get $3
if (result i32)
local.get $3
i32.load offset=4
call $~lib/rt/stub/__retain
local.tee $2
else
i32.eqz
if
i32.const 200
i32.const 256
i32.const 103
i32.const 16
call $~lib/builtins/abort
unreachable
end
local.get $3
i32.load offset=4
call $~lib/rt/stub/__retain
)
(func $~lib/symbol/_Symbol.keyFor (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
@ -2965,7 +2976,7 @@
i32.const 0
i32.eq
if
i32.const 656
i32.const 752
local.tee $2
local.get $1
local.tee $3
@ -2998,7 +3009,7 @@
i32.const 0
i32.eq
if
i32.const 200
i32.const 296
call $~lib/rt/stub/__retain
local.set $2
local.get $1
@ -3036,7 +3047,7 @@
call $~lib/rt/stub/__retain
drop
local.get $0
i32.const 656
i32.const 752
local.get $0
i32.const 0
i32.ne
@ -3058,7 +3069,7 @@
(local $5 i32)
local.get $0
local.set $1
i32.const 200
i32.const 296
call $~lib/rt/stub/__retain
local.set $2
block $break|0
@ -3122,7 +3133,7 @@
br_if $case10|0
br $case11|0
end
i32.const 216
i32.const 312
local.tee $3
local.get $2
local.tee $4
@ -3138,7 +3149,7 @@
local.set $2
br $break|0
end
i32.const 256
i32.const 352
local.tee $4
local.get $2
local.tee $3
@ -3154,7 +3165,7 @@
local.set $2
br $break|0
end
i32.const 312
i32.const 408
local.tee $3
local.get $2
local.tee $4
@ -3170,7 +3181,7 @@
local.set $2
br $break|0
end
i32.const 344
i32.const 440
local.tee $4
local.get $2
local.tee $3
@ -3186,7 +3197,7 @@
local.set $2
br $break|0
end
i32.const 376
i32.const 472
local.tee $3
local.get $2
local.tee $4
@ -3202,7 +3213,7 @@
local.set $2
br $break|0
end
i32.const 408
i32.const 504
local.tee $4
local.get $2
local.tee $3
@ -3218,7 +3229,7 @@
local.set $2
br $break|0
end
i32.const 440
i32.const 536
local.tee $3
local.get $2
local.tee $4
@ -3234,7 +3245,7 @@
local.set $2
br $break|0
end
i32.const 472
i32.const 568
local.tee $4
local.get $2
local.tee $3
@ -3250,7 +3261,7 @@
local.set $2
br $break|0
end
i32.const 504
i32.const 600
local.tee $3
local.get $2
local.tee $4
@ -3266,7 +3277,7 @@
local.set $2
br $break|0
end
i32.const 544
i32.const 640
local.tee $4
local.get $2
local.tee $3
@ -3282,7 +3293,7 @@
local.set $2
br $break|0
end
i32.const 584
i32.const 680
local.tee $3
local.get $2
local.tee $4
@ -3320,11 +3331,11 @@
end
br $break|0
end
i32.const 624
i32.const 720
local.get $2
call $~lib/string/String.__concat
local.tee $4
i32.const 680
i32.const 776
call $~lib/string/String.__concat
local.tee $3
call $~lib/rt/stub/__retain
@ -3466,7 +3477,7 @@
call $~lib/symbol/Symbol
call $~lib/symbol/_Symbol#toString
local.tee $0
i32.const 704
i32.const 800
call $~lib/string/String.__eq
i32.eqz
if
@ -3480,7 +3491,7 @@
global.get $std/symbol/sym3
call $~lib/symbol/_Symbol#toString
local.tee $1
i32.const 736
i32.const 832
call $~lib/string/String.__eq
i32.eqz
if
@ -3498,7 +3509,7 @@
global.get $std/symbol/hasInstance
call $~lib/symbol/_Symbol#toString
local.tee $2
i32.const 776
i32.const 872
call $~lib/string/String.__eq
i32.eqz
if
@ -3512,7 +3523,7 @@
global.get $std/symbol/isConcatSpreadable
call $~lib/symbol/_Symbol#toString
local.tee $3
i32.const 832
i32.const 928
call $~lib/string/String.__eq
i32.eqz
if

View File

@ -1,9 +0,0 @@
(module
(type $FUNCSIG$v (func))
(memory $0 1)
(data (i32.const 8) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00v\00a\00l\00u\00e\00o\00f\00.\00t\00s")
(export "memory" (memory $0))
(func $start (; 0 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -1,26 +0,0 @@
// simple
assert(isInteger<valueof<i8[]>>());
assert(isSigned<valueof<i8[]>>());
assert(sizeof<valueof<i8[]>>() == 1);
// alias
type u32Array = u32[];
assert(isInteger<valueof<u32Array>>());
assert(!isSigned<valueof<u32Array>>());
assert(sizeof<valueof<u32Array>>() == 4);
// float
assert(isFloat<valueof<f32[]>>());
assert(sizeof<valueof<f32[]>>() == 4);
// string
assert(isString<valueof<string[]>>());
assert(isManaged<valueof<string[]>>());
// array
assert(isArray<valueof<string[][]>>());
// typed array
assert(isInteger<valueof<Uint8ClampedArray>>());
assert(!isSigned<valueof<Uint8ClampedArray>>());
assert(sizeof<valueof<Uint8ClampedArray>>() == 1);

View File

@ -1,168 +0,0 @@
(module
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$v (func))
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00v\00a\00l\00u\00e\00o\00f\00.\00t\00s\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(export "memory" (memory $0))
(start $start)
(func $start:valueof (; 1 ;) (type $FUNCSIG$v)
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 2
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 3
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 4
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 8
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 0
i32.eqz
i32.eqz
if
i32.const 0
i32.const 24
i32.const 9
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 4
i32.const 4
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 10
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 13
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 4
i32.const 4
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 14
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 17
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 18
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 21
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.eqz
if
i32.const 0
i32.const 24
i32.const 24
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 0
i32.eqz
i32.eqz
if
i32.const 0
i32.const 24
i32.const 25
i32.const 0
call $~lib/builtins/abort
unreachable
end
i32.const 1
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 26
i32.const 0
call $~lib/builtins/abort
unreachable
end
)
(func $start (; 2 ;) (type $FUNCSIG$v)
call $start:valueof
)
(func $null (; 3 ;) (type $FUNCSIG$v)
)
)