Always add a null function at table index zero

This allows function references (a table index internally) to be nullable
This commit is contained in:
dcodeIO
2018-09-17 01:48:35 +02:00
parent 9613d29d93
commit 16d1a833dd
170 changed files with 973 additions and 368 deletions

View File

@ -14,7 +14,7 @@
(global $builtins/u (mut i32) (i32.const 0))
(global $builtins/U (mut i64) (i64.const 0))
(global $builtins/s (mut i32) (i32.const 0))
(global $builtins/fn (mut i32) (i32.const 0))
(global $builtins/fn (mut i32) (i32.const 1))
(global $~lib/builtins/i8.MIN_VALUE i32 (i32.const -128))
(global $~lib/builtins/i8.MAX_VALUE i32 (i32.const 127))
(global $~lib/builtins/i16.MIN_VALUE i32 (i32.const -32768))
@ -44,8 +44,8 @@
(global $~lib/builtins/f64.MAX_SAFE_INTEGER f64 (f64.const 9007199254740991))
(global $~lib/builtins/f64.EPSILON f64 (f64.const 2.220446049250313e-16))
(global $HEAP_BASE i32 (i32.const 48))
(table 1 1 anyfunc)
(elem (i32.const 0) $start~anonymous|0)
(table 2 2 anyfunc)
(elem (i32.const 0) $null $start~anonymous|1)
(memory $0 1)
(data (i32.const 8) "\0b\00\00\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00")
(data (i32.const 40) "\01\00\00\001\00")
@ -53,7 +53,7 @@
(export "table" (table $0))
(export "test" (func $builtins/test))
(start $start)
(func $start~anonymous|0 (; 1 ;) (type $iiv) (param $0 i32) (param $1 i32)
(func $start~anonymous|1 (; 1 ;) (type $iiv) (param $0 i32) (param $1 i32)
(nop)
)
(func $builtins/test (; 2 ;) (type $v)
@ -3123,4 +3123,6 @@
)
)
)
(func $null (; 4 ;) (type $v)
)
)