Skip to content

Commit 65a4884

Browse files
committed
test: add testcase for #2282
1 parent 854d34b commit 65a4884

File tree

4 files changed

+143
-0
lines changed

4 files changed

+143
-0
lines changed

Diff for: tests/compiler/resolve-typeof.debug.wat

+85
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
(module
2+
(type $none_=>_none (func))
3+
(type $i32_=>_i32 (func (param i32) (result i32)))
4+
(type $i32_=>_none (func (param i32)))
5+
(type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32)))
6+
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
7+
(global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0))
8+
(global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1))
9+
(global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2))
10+
(global $~lib/memory/__data_end i32 (i32.const 124))
11+
(global $~lib/memory/__stack_pointer (mut i32) (i32.const 16508))
12+
(global $~lib/memory/__heap_base i32 (i32.const 16508))
13+
(memory $0 1)
14+
(data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00n\00u\00m\00b\00e\00r\00")
15+
(data (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00")
16+
(data (i32.const 76) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00\00\00\00\00\00\00\00\00\00\00\00\00")
17+
(table $0 2 2 funcref)
18+
(elem $0 (i32.const 1) $start:resolve-typeof~anonymous|0)
19+
(export "memory" (memory $0))
20+
(start $~start)
21+
(func $~lib/string/String#get:length (param $0 i32) (result i32)
22+
local.get $0
23+
i32.const 20
24+
i32.sub
25+
i32.load offset=16
26+
i32.const 1
27+
i32.shr_u
28+
)
29+
(func $start:resolve-typeof~anonymous|0
30+
nop
31+
)
32+
(func $resolve-typeof/generic<~lib/string/String> (param $0 i32)
33+
nop
34+
)
35+
(func $~start
36+
call $start:resolve-typeof
37+
)
38+
(func $~stack_check
39+
global.get $~lib/memory/__stack_pointer
40+
global.get $~lib/memory/__data_end
41+
i32.lt_s
42+
if
43+
i32.const 16528
44+
i32.const 16576
45+
i32.const 1
46+
i32.const 1
47+
call $~lib/builtins/abort
48+
unreachable
49+
end
50+
)
51+
(func $start:resolve-typeof
52+
(local $0 i32)
53+
global.get $~lib/memory/__stack_pointer
54+
i32.const 4
55+
i32.sub
56+
global.set $~lib/memory/__stack_pointer
57+
call $~stack_check
58+
global.get $~lib/memory/__stack_pointer
59+
i32.const 0
60+
i32.store
61+
i32.const 1
62+
drop
63+
i32.const 32
64+
local.set $0
65+
global.get $~lib/memory/__stack_pointer
66+
local.get $0
67+
i32.store
68+
local.get $0
69+
call $~lib/string/String#get:length
70+
drop
71+
i32.const 64
72+
drop
73+
i32.const 96
74+
local.set $0
75+
global.get $~lib/memory/__stack_pointer
76+
local.get $0
77+
i32.store
78+
local.get $0
79+
call $resolve-typeof/generic<~lib/string/String>
80+
global.get $~lib/memory/__stack_pointer
81+
i32.const 4
82+
i32.add
83+
global.set $~lib/memory/__stack_pointer
84+
)
85+
)

Diff for: tests/compiler/resolve-typeof.json

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"asc_flags": [
3+
]
4+
}

Diff for: tests/compiler/resolve-typeof.release.wat

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
(module
2+
(type $none_=>_none (func))
3+
(type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32)))
4+
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
5+
(global $~lib/memory/__stack_pointer (mut i32) (i32.const 17532))
6+
(memory $0 1)
7+
(data (i32.const 1036) "\1c")
8+
(data (i32.const 1048) "\01\00\00\00\0c\00\00\00n\00u\00m\00b\00e\00r")
9+
(data (i32.const 1068) "\1c")
10+
(data (i32.const 1080) "\03\00\00\00\08\00\00\00\01")
11+
(data (i32.const 1100) ",")
12+
(data (i32.const 1112) "\01\00\00\00\10\00\00\00f\00u\00n\00c\00t\00i\00o\00n")
13+
(export "memory" (memory $0))
14+
(start $~start)
15+
(func $~start
16+
(local $0 i32)
17+
global.get $~lib/memory/__stack_pointer
18+
i32.const 4
19+
i32.sub
20+
global.set $~lib/memory/__stack_pointer
21+
global.get $~lib/memory/__stack_pointer
22+
i32.const 1148
23+
i32.lt_s
24+
if
25+
i32.const 17552
26+
i32.const 17600
27+
i32.const 1
28+
i32.const 1
29+
call $~lib/builtins/abort
30+
unreachable
31+
end
32+
global.get $~lib/memory/__stack_pointer
33+
local.tee $0
34+
i32.const 0
35+
i32.store
36+
local.get $0
37+
i32.const 1056
38+
i32.store
39+
i32.const 1052
40+
i32.load
41+
drop
42+
local.get $0
43+
i32.const 1120
44+
i32.store
45+
local.get $0
46+
i32.const 4
47+
i32.add
48+
global.set $~lib/memory/__stack_pointer
49+
)
50+
)

Diff for: tests/compiler/resolve-typeof.ts

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
(typeof 1).length;
2+
3+
function generic<T>(v: T): void {}
4+
generic(typeof ((): void => {}));

0 commit comments

Comments
 (0)