Use outer-most identifier when resolving queued exports, fixes #248

This commit is contained in:
dcodeIO
2018-09-09 03:51:29 +02:00
parent c769f65bac
commit 4498b28442
17 changed files with 193 additions and 144 deletions

View File

@ -0,0 +1,39 @@
(module
(type $iii (func (param i32 i32) (result i32)))
(type $v (func))
(global $export/a i32 (i32.const 1))
(global $export/b i32 (i32.const 2))
(memory $0 0)
(export "memory" (memory $0))
(export "a" (global $export/a))
(export "renamed_a" (global $export/a))
(export "renamed_b" (global $export/b))
(export "renamed_renamed_b" (global $export/b))
(start $start)
(func $export/add (; 0 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.add
(get_local $0)
(get_local $1)
)
)
(func $export/mul (; 1 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.mul
(get_local $0)
(get_local $1)
)
)
(func $start (; 2 ;) (; has Stack IR ;) (type $v)
(drop
(i32.add
(call $export/add
(i32.const 1)
(i32.const 2)
)
(call $export/mul
(i32.const 3)
(i32.const 4)
)
)
)
)
)

View File

@ -0,0 +1,6 @@
export {
a,
a as renamed_a,
renamed_b,
renamed_b as renamed_renamed_b
} from "./reexport";

View File

@ -0,0 +1,41 @@
(module
(type $iii (func (param i32 i32) (result i32)))
(type $v (func))
(global $export/a i32 (i32.const 1))
(global $export/b i32 (i32.const 2))
(global $export/c i32 (i32.const 3))
(global $HEAP_BASE i32 (i32.const 8))
(memory $0 0)
(export "memory" (memory $0))
(export "a" (global $export/a))
(export "renamed_a" (global $export/a))
(export "renamed_b" (global $export/b))
(export "renamed_renamed_b" (global $export/b))
(start $start)
(func $export/add (; 0 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.add
(get_local $0)
(get_local $1)
)
)
(func $export/mul (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.mul
(get_local $0)
(get_local $1)
)
)
(func $start (; 2 ;) (type $v)
(drop
(i32.add
(call $export/add
(i32.const 1)
(i32.const 2)
)
(call $export/mul
(i32.const 3)
(i32.const 4)
)
)
)
)
)

View File

@ -136,7 +136,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 16)
(i32.const 241)
(i32.const 239)
(i32.const 4)
)
(unreachable)

View File

@ -221,7 +221,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 16)
(i32.const 241)
(i32.const 239)
(i32.const 4)
)
(unreachable)

View File

@ -7673,7 +7673,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 1296)
(i32.const 56)
(i32.const 54)
(i32.const 4)
)
(unreachable)
@ -7748,7 +7748,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 1296)
(i32.const 108)
(i32.const 106)
(i32.const 4)
)
(unreachable)

View File

@ -12195,7 +12195,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 1296)
(i32.const 56)
(i32.const 54)
(i32.const 4)
)
(unreachable)
@ -12289,7 +12289,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 1296)
(i32.const 108)
(i32.const 106)
(i32.const 4)
)
(unreachable)

View File

@ -25,8 +25,8 @@
(data (i32.const 8) "\10\00\00\00h\00i\00,\00 \00I\00\'\00m\00 \00a\00 \00s\00t\00r\00i\00n\00g")
(data (i32.const 48) "\0d\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s")
(data (i32.const 80) "\0e\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s")
(data (i32.const 112) "\01")
(data (i32.const 120) "\17\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s")
(data (i32.const 112) "\17\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s")
(data (i32.const 168) "\01")
(data (i32.const 176) "\01\00\00\006")
(data (i32.const 184) "\02\00\00\004\d8\06\df")
(data (i32.const 192) "\02\00\00\00h\00i")
@ -119,7 +119,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 73)
(i32.const 71)
(i32.const 4)
)
(unreachable)
@ -254,7 +254,7 @@
(block
(call $~lib/env/abort
(i32.const 0)
(i32.const 120)
(i32.const 112)
(i32.const 14)
(i32.const 2)
)
@ -279,14 +279,6 @@
)
(func $~lib/string/String.fromCharCode (; 4 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(if
(i32.eqz
(get_local $0)
)
(return
(i32.const 112)
)
)
(i32.store16 offset=4
(tee_local $1
(call $~lib/internal/string/allocateUnsafe
@ -430,20 +422,12 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 31)
(i32.const 30)
(i32.const 4)
)
(unreachable)
)
)
(if
(i32.eqz
(get_local $0)
)
(return
(i32.const 112)
)
)
(set_local $1
(call $~lib/internal/string/allocateUnsafe
(i32.add
@ -504,7 +488,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 241)
(i32.const 239)
(i32.const 4)
)
(unreachable)
@ -576,7 +560,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 122)
(i32.const 120)
(i32.const 4)
)
(unreachable)
@ -672,7 +656,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 210)
(i32.const 208)
(i32.const 4)
)
(unreachable)
@ -2787,7 +2771,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 347)
(i32.const 345)
(i32.const 4)
)
(unreachable)
@ -2931,7 +2915,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 367)
(i32.const 365)
(i32.const 4)
)
(unreachable)
@ -3077,7 +3061,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 226)
(i32.const 224)
(i32.const 4)
)
(unreachable)
@ -3732,7 +3716,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 515)
(i32.const 513)
(i32.const 10)
)
(unreachable)
@ -3830,7 +3814,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 108)
(i32.const 106)
(i32.const 4)
)
(unreachable)
@ -4226,7 +4210,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 387)
(i32.const 385)
(i32.const 4)
)
(unreachable)
@ -4262,7 +4246,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 392)
(i32.const 390)
(i32.const 6)
)
(unreachable)
@ -4975,7 +4959,7 @@
(call $~lib/string/String.fromCharCode
(i32.const 0)
)
(i32.const 112)
(i32.const 168)
)
)
(block
@ -5032,7 +5016,7 @@
(call $~lib/string/String.fromCodePoint
(i32.const 0)
)
(i32.const 112)
(i32.const 168)
)
)
(block

View File

@ -66,8 +66,8 @@
(data (i32.const 8) "\10\00\00\00h\00i\00,\00 \00I\00\'\00m\00 \00a\00 \00s\00t\00r\00i\00n\00g\00")
(data (i32.const 48) "\0d\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00")
(data (i32.const 80) "\0e\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00")
(data (i32.const 112) "\01\00\00\00\00\00")
(data (i32.const 120) "\17\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00")
(data (i32.const 112) "\17\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00")
(data (i32.const 168) "\01\00\00\00\00\00")
(data (i32.const 176) "\01\00\00\006\00")
(data (i32.const 184) "\02\00\00\004\d8\06\df")
(data (i32.const 192) "\02\00\00\00h\00i\00")
@ -164,7 +164,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 73)
(i32.const 71)
(i32.const 4)
)
(unreachable)
@ -324,7 +324,7 @@
(block
(call $~lib/env/abort
(i32.const 0)
(i32.const 120)
(i32.const 112)
(i32.const 14)
(i32.const 2)
)
@ -357,14 +357,6 @@
)
(func $~lib/string/String.fromCharCode (; 4 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(if
(i32.eqz
(get_local $0)
)
(return
(i32.const 112)
)
)
(set_local $1
(call $~lib/internal/string/allocateUnsafe
(i32.const 1)
@ -520,20 +512,12 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 31)
(i32.const 30)
(i32.const 4)
)
(unreachable)
)
)
(if
(i32.eqz
(get_local $0)
)
(return
(i32.const 112)
)
)
(set_local $1
(i32.gt_s
(get_local $0)
@ -613,7 +597,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 241)
(i32.const 239)
(i32.const 4)
)
(unreachable)
@ -705,7 +689,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 122)
(i32.const 120)
(i32.const 4)
)
(unreachable)
@ -817,7 +801,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 210)
(i32.const 208)
(i32.const 4)
)
(unreachable)
@ -3465,7 +3449,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 347)
(i32.const 345)
(i32.const 4)
)
(unreachable)
@ -3615,7 +3599,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 367)
(i32.const 365)
(i32.const 4)
)
(unreachable)
@ -3766,7 +3750,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 226)
(i32.const 224)
(i32.const 4)
)
(unreachable)
@ -4479,7 +4463,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 515)
(i32.const 513)
(i32.const 10)
)
(unreachable)
@ -4588,7 +4572,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 108)
(i32.const 106)
(i32.const 4)
)
(unreachable)
@ -5026,7 +5010,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 387)
(i32.const 385)
(i32.const 4)
)
(unreachable)
@ -5061,7 +5045,7 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 80)
(i32.const 392)
(i32.const 390)
(i32.const 6)
)
(unreachable)
@ -5969,7 +5953,7 @@
(call $~lib/string/String.fromCharCode
(i32.const 0)
)
(i32.const 112)
(i32.const 168)
)
)
(block
@ -6029,7 +6013,7 @@
(call $~lib/string/String.fromCodePoint
(i32.const 0)
)
(i32.const 112)
(i32.const 168)
)
)
(block