Skip to content

Commit 38189f4

Browse files
committed
wasmfx script runner did not initialize locals
1 parent 40e5790 commit 38189f4

File tree

3 files changed

+126
-122
lines changed

3 files changed

+126
-122
lines changed

benchmarks/wasm/spectest/loop.bin.wast

Lines changed: 118 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -4,122 +4,124 @@
44
"\7f\7c\7f\60\00\03\7f\7e\7f\60\02\7f\7f\01\7f\60"
55
"\01\7f\01\7f\60\00\02\7f\7f\60\00\02\7d\7d\60\00"
66
"\03\7f\7f\7e\60\03\7f\7f\7e\00\60\02\7f\7f\02\7f"
7-
"\7f\60\01\7e\01\7e\60\02\7d\7d\01\7d\03\a9\80\80"
8-
"\80\00\28\00\00\01\01\01\01\00\01\01\01\01\01\01"
9-
"\05\06\01\01\00\01\01\01\01\01\01\01\01\01\09\01"
10-
"\01\01\01\01\01\01\01\0c\0c\0d\00\05\83\80\80\80"
11-
"\00\01\00\01\07\95\84\80\80\00\25\05\65\6d\70\74"
12-
"\79\00\01\08\73\69\6e\67\75\6c\61\72\00\02\05\6d"
13-
"\75\6c\74\69\00\03\06\6e\65\73\74\65\64\00\04\04"
14-
"\64\65\65\70\00\05\0f\61\73\2d\69\66\2d\63\6f\6e"
15-
"\64\69\74\69\6f\6e\00\06\0a\61\73\2d\69\66\2d\74"
16-
"\68\65\6e\00\07\0a\61\73\2d\69\66\2d\65\6c\73\65"
17-
"\00\08\0e\61\73\2d\62\72\5f\69\66\2d\66\69\72\73"
18-
"\74\00\09\0d\61\73\2d\62\72\5f\69\66\2d\6c\61\73"
19-
"\74\00\0a\11\61\73\2d\62\72\5f\74\61\62\6c\65\2d"
20-
"\66\69\72\73\74\00\0b\10\61\73\2d\62\72\5f\74\61"
21-
"\62\6c\65\2d\6c\61\73\74\00\0c\0d\61\73\2d\63\61"
22-
"\6c\6c\2d\76\61\6c\75\65\00\0f\0f\61\73\2d\72\65"
23-
"\74\75\72\6e\2d\76\61\6c\75\65\00\10\0f\61\73\2d"
24-
"\64\72\6f\70\2d\6f\70\65\72\61\6e\64\00\11\0b\61"
25-
"\73\2d\62\72\2d\76\61\6c\75\65\00\12\11\61\73\2d"
26-
"\62\69\6e\61\72\79\2d\6f\70\65\72\61\6e\64\00\13"
27-
"\0f\61\73\2d\74\65\73\74\2d\6f\70\65\72\61\6e\64"
28-
"\00\14\12\61\73\2d\63\6f\6d\70\61\72\65\2d\6f\70"
29-
"\65\72\61\6e\64\00\15\12\61\73\2d\62\69\6e\61\72"
30-
"\79\2d\6f\70\65\72\61\6e\64\73\00\16\13\61\73\2d"
31-
"\63\6f\6d\70\61\72\65\2d\6f\70\65\72\61\6e\64\73"
32-
"\00\17\11\61\73\2d\6d\69\78\65\64\2d\6f\70\65\72"
33-
"\61\6e\64\73\00\18\0a\62\72\65\61\6b\2d\62\61\72"
34-
"\65\00\19\0b\62\72\65\61\6b\2d\76\61\6c\75\65\00"
35-
"\1a\11\62\72\65\61\6b\2d\6d\75\6c\74\69\2d\76\61"
36-
"\6c\75\65\00\1b\0e\62\72\65\61\6b\2d\72\65\70\65"
37-
"\61\74\65\64\00\1c\05\70\61\72\61\6d\00\1d\06\70"
38-
"\61\72\61\6d\73\00\1e\09\70\61\72\61\6d\73\2d\69"
39-
"\64\00\1f\0b\70\61\72\61\6d\2d\62\72\65\61\6b\00"
40-
"\20\0c\70\61\72\61\6d\73\2d\62\72\65\61\6b\00\21"
41-
"\0f\70\61\72\61\6d\73\2d\69\64\2d\62\72\65\61\6b"
42-
"\00\22\07\65\66\66\65\63\74\73\00\23\05\77\68\69"
43-
"\6c\65\00\24\03\66\6f\72\00\25\07\6e\65\73\74\69"
44-
"\6e\67\00\26\08\74\79\70\65\2d\75\73\65\00\27\0a"
45-
"\ce\89\80\80\00\28\82\80\80\80\00\00\0b\88\80\80"
46-
"\80\00\00\03\40\0b\03\40\0b\0b\8b\80\80\80\00\00"
47-
"\03\40\01\0b\03\7f\41\07\0b\0b\bc\80\80\80\00\00"
48-
"\03\40\10\00\10\00\10\00\10\00\0b\03\7f\10\00\10"
49-
"\00\41\08\10\00\0b\1a\03\04\10\00\10\00\10\00\41"
50-
"\08\10\00\10\00\10\00\10\00\42\07\10\00\10\00\10"
51-
"\00\10\00\41\09\10\00\0b\1a\1a\0b\95\80\80\80\00"
52-
"\00\03\7f\03\40\10\00\02\40\0b\01\0b\03\7f\10\00"
53-
"\41\09\0b\0b\0b\ff\80\80\80\00\00\03\7f\02\7f\03"
54-
"\7f\02\7f\03\7f\02\7f\03\7f\02\7f\03\7f\02\7f\03"
55-
"\7f\02\7f\03\7f\02\7f\03\7f\02\7f\03\7f\02\7f\03"
56-
"\7f\02\7f\03\7f\02\7f\03\7f\02\7f\03\7f\02\7f\03"
57-
"\7f\02\7f\03\7f\02\7f\03\7f\02\7f\03\7f\02\7f\03"
58-
"\7f\02\7f\03\7f\02\7f\03\7f\02\7f\10\00\41\96\01"
7+
"\7f\60\01\7e\01\7e\60\02\7d\7d\01\7d\03\aa\80\80"
8+
"\80\00\29\00\00\01\01\01\01\00\01\01\01\01\01\01"
9+
"\05\06\01\01\00\01\01\01\01\01\01\01\01\01\01\09"
10+
"\01\01\01\01\01\01\01\01\0c\0c\0d\00\05\83\80\80"
11+
"\80\00\01\00\01\07\aa\84\80\80\00\26\05\65\6d\70"
12+
"\74\79\00\01\08\73\69\6e\67\75\6c\61\72\00\02\05"
13+
"\6d\75\6c\74\69\00\03\06\6e\65\73\74\65\64\00\04"
14+
"\04\64\65\65\70\00\05\0f\61\73\2d\69\66\2d\63\6f"
15+
"\6e\64\69\74\69\6f\6e\00\06\0a\61\73\2d\69\66\2d"
16+
"\74\68\65\6e\00\07\0a\61\73\2d\69\66\2d\65\6c\73"
17+
"\65\00\08\0e\61\73\2d\62\72\5f\69\66\2d\66\69\72"
18+
"\73\74\00\09\0d\61\73\2d\62\72\5f\69\66\2d\6c\61"
19+
"\73\74\00\0a\11\61\73\2d\62\72\5f\74\61\62\6c\65"
20+
"\2d\66\69\72\73\74\00\0b\10\61\73\2d\62\72\5f\74"
21+
"\61\62\6c\65\2d\6c\61\73\74\00\0c\0d\61\73\2d\63"
22+
"\61\6c\6c\2d\76\61\6c\75\65\00\0f\0f\61\73\2d\72"
23+
"\65\74\75\72\6e\2d\76\61\6c\75\65\00\10\0f\61\73"
24+
"\2d\64\72\6f\70\2d\6f\70\65\72\61\6e\64\00\11\0b"
25+
"\61\73\2d\62\72\2d\76\61\6c\75\65\00\12\12\61\73"
26+
"\2d\6c\6f\63\61\6c\2e\73\65\74\2d\76\61\6c\75\65"
27+
"\00\13\11\61\73\2d\62\69\6e\61\72\79\2d\6f\70\65"
28+
"\72\61\6e\64\00\14\0f\61\73\2d\74\65\73\74\2d\6f"
29+
"\70\65\72\61\6e\64\00\15\12\61\73\2d\63\6f\6d\70"
30+
"\61\72\65\2d\6f\70\65\72\61\6e\64\00\16\12\61\73"
31+
"\2d\62\69\6e\61\72\79\2d\6f\70\65\72\61\6e\64\73"
32+
"\00\17\13\61\73\2d\63\6f\6d\70\61\72\65\2d\6f\70"
33+
"\65\72\61\6e\64\73\00\18\11\61\73\2d\6d\69\78\65"
34+
"\64\2d\6f\70\65\72\61\6e\64\73\00\19\0a\62\72\65"
35+
"\61\6b\2d\62\61\72\65\00\1a\0b\62\72\65\61\6b\2d"
36+
"\76\61\6c\75\65\00\1b\11\62\72\65\61\6b\2d\6d\75"
37+
"\6c\74\69\2d\76\61\6c\75\65\00\1c\0e\62\72\65\61"
38+
"\6b\2d\72\65\70\65\61\74\65\64\00\1d\05\70\61\72"
39+
"\61\6d\00\1e\06\70\61\72\61\6d\73\00\1f\09\70\61"
40+
"\72\61\6d\73\2d\69\64\00\20\0b\70\61\72\61\6d\2d"
41+
"\62\72\65\61\6b\00\21\0c\70\61\72\61\6d\73\2d\62"
42+
"\72\65\61\6b\00\22\0f\70\61\72\61\6d\73\2d\69\64"
43+
"\2d\62\72\65\61\6b\00\23\07\65\66\66\65\63\74\73"
44+
"\00\24\05\77\68\69\6c\65\00\25\03\66\6f\72\00\26"
45+
"\07\6e\65\73\74\69\6e\67\00\27\08\74\79\70\65\2d"
46+
"\75\73\65\00\28\0a\e0\89\80\80\00\29\82\80\80\80"
47+
"\00\00\0b\88\80\80\80\00\00\03\40\0b\03\40\0b\0b"
48+
"\8b\80\80\80\00\00\03\40\01\0b\03\7f\41\07\0b\0b"
49+
"\bc\80\80\80\00\00\03\40\10\00\10\00\10\00\10\00"
50+
"\0b\03\7f\10\00\10\00\41\08\10\00\0b\1a\03\04\10"
51+
"\00\10\00\10\00\41\08\10\00\10\00\10\00\10\00\42"
52+
"\07\10\00\10\00\10\00\10\00\41\09\10\00\0b\1a\1a"
53+
"\0b\95\80\80\80\00\00\03\7f\03\40\10\00\02\40\0b"
54+
"\01\0b\03\7f\10\00\41\09\0b\0b\0b\ff\80\80\80\00"
55+
"\00\03\7f\02\7f\03\7f\02\7f\03\7f\02\7f\03\7f\02"
56+
"\7f\03\7f\02\7f\03\7f\02\7f\03\7f\02\7f\03\7f\02"
57+
"\7f\03\7f\02\7f\03\7f\02\7f\03\7f\02\7f\03\7f\02"
58+
"\7f\03\7f\02\7f\03\7f\02\7f\03\7f\02\7f\03\7f\02"
59+
"\7f\03\7f\02\7f\03\7f\02\7f\03\7f\02\7f\03\7f\02"
60+
"\7f\10\00\41\96\01\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b"
5961
"\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b"
60-
"\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b"
61-
"\0b\0b\0b\0b\0b\0b\0b\0b\0b\8c\80\80\80\00\00\03"
62-
"\7f\41\01\0b\04\40\10\00\0b\0b\8f\80\80\80\00\00"
63-
"\41\01\04\7f\03\7f\41\01\0b\05\41\02\0b\0b\8f\80"
64-
"\80\80\00\00\41\01\04\7f\41\02\05\03\7f\41\01\0b"
65-
"\0b\0b\8e\80\80\80\00\00\02\7f\03\7f\41\01\0b\41"
66-
"\02\0d\00\0b\0b\8e\80\80\80\00\00\02\7f\41\02\03"
67-
"\7f\41\01\0b\0d\00\0b\0b\90\80\80\80\00\00\02\7f"
68-
"\03\7f\41\01\0b\41\02\0e\01\00\00\0b\0b\90\80\80"
69-
"\80\00\00\02\7f\41\02\03\7f\41\01\0b\0e\01\00\00"
70-
"\0b\0b\84\80\80\80\00\00\20\00\0b\84\80\80\80\00"
71-
"\00\20\00\0b\89\80\80\80\00\00\03\7f\41\01\0b\10"
72-
"\0e\0b\88\80\80\80\00\00\03\7f\41\01\0b\0f\0b\88"
73-
"\80\80\80\00\00\03\7f\41\01\0b\1a\0b\8c\80\80\80"
74-
"\00\00\02\7f\03\7f\41\01\0b\0c\00\0b\0b\91\80\80"
75-
"\80\00\00\03\7f\10\00\41\03\0b\03\7f\10\00\41\04"
76-
"\0b\6c\0b\8a\80\80\80\00\00\03\7f\10\00\41\0d\0b"
77-
"\45\0b\97\80\80\80\00\00\03\7d\10\00\43\00\00\40"
78-
"\40\0b\03\7d\10\00\43\00\00\40\40\0b\5e\0b\8e\80"
79-
"\80\80\00\00\03\07\10\00\41\03\10\00\41\04\0b\6c"
80-
"\0b\94\80\80\80\00\00\03\08\10\00\43\00\00\40\40"
81-
"\10\00\43\00\00\40\40\0b\5e\0b\91\80\80\80\00\00"
82-
"\03\07\10\00\41\03\10\00\41\04\0b\41\05\6a\6c\0b"
83-
"\b4\80\80\80\00\00\02\40\03\40\0c\01\0c\00\00\0b"
84-
"\0b\02\40\03\40\41\01\0d\01\00\0b\0b\02\40\03\40"
85-
"\41\00\0e\00\01\00\0b\0b\02\40\03\40\41\01\0e\02"
86-
"\01\01\01\00\0b\0b\41\13\0b\97\80\80\80\00\00\02"
87-
"\7f\41\00\03\02\02\40\41\12\0c\02\0b\41\14\0c\00"
88-
"\0b\41\13\0b\0b\a7\80\80\80\00\00\02\09\41\00\41"
89-
"\00\42\00\03\0a\02\40\41\12\41\6e\42\12\0c\02\0b"
90-
"\41\14\41\6c\42\14\0c\00\0b\41\13\41\6d\42\13\0b"
91-
"\0b\b4\80\80\80\00\00\02\7f\03\7f\41\12\0c\01\41"
92-
"\13\0c\01\41\14\41\00\0d\01\1a\41\14\41\01\0d\01"
93-
"\1a\41\15\0c\01\41\16\41\00\0e\00\01\41\17\41\01"
94-
"\0e\02\01\01\01\41\15\0b\0b\0b\8a\80\80\80\00\00"
95-
"\41\01\03\06\41\02\6a\0b\0b\8a\80\80\80\00\00\41"
96-
"\01\41\02\03\05\6a\0b\0b\8a\80\80\80\00\00\41\01"
97-
"\41\02\03\0b\0b\6a\0b\95\80\80\80\00\01\01\7f\41"
98-
"\01\03\06\41\04\6a\22\00\20\00\41\0a\49\0d\00\0b"
99-
"\0b\98\80\80\80\00\01\01\7f\41\01\41\02\03\05\6a"
100-
"\22\00\41\03\20\00\41\0a\49\0d\00\1a\0b\0b\9e\80"
101-
"\80\80\00\01\01\7f\41\00\21\00\41\01\41\02\03\0b"
102-
"\20\00\41\01\6a\21\00\20\00\41\0a\49\0d\00\0b\6a"
103-
"\0b\b2\80\80\80\00\01\01\7f\02\40\03\40\41\01\21"
104-
"\00\20\00\41\03\6c\21\00\20\00\41\05\6b\21\00\20"
105-
"\00\41\07\6c\21\00\0c\01\20\00\41\e4\00\6c\21\00"
106-
"\0b\0b\20\00\41\72\46\0b\a5\80\80\80\00\01\01\7e"
107-
"\42\01\21\01\02\40\03\40\20\00\50\0d\01\20\00\20"
108-
"\01\7e\21\01\20\00\42\01\7d\21\00\0c\00\0b\0b\20"
109-
"\01\0b\ab\80\80\80\00\01\02\7e\42\01\21\01\42\02"
110-
"\21\02\02\40\03\40\20\02\20\00\56\0d\01\20\01\20"
111-
"\02\7e\21\01\20\02\42\01\7c\21\02\0c\00\0b\0b\20"
112-
"\01\0b\da\80\80\80\00\01\02\7d\02\40\03\40\20\00"
113-
"\43\00\00\00\00\5b\0d\01\20\01\21\02\02\40\03\40"
114-
"\20\02\43\00\00\00\00\5b\0d\01\20\02\43\00\00\00"
115-
"\00\5d\0d\03\20\03\20\02\92\21\03\20\02\43\00\00"
116-
"\00\40\93\21\02\0c\00\0b\0b\20\03\20\00\95\21\03"
117-
"\20\00\43\00\00\80\3f\93\21\00\0c\00\0b\0b\20\03"
118-
"\0b\bd\80\80\80\00\00\03\00\0b\03\01\41\00\0b\03"
119-
"\02\1a\0b\41\00\44\00\00\00\00\00\00\00\00\41\00"
120-
"\03\03\0b\1a\1a\1a\03\01\41\00\0b\03\02\1a\0b\41"
121-
"\00\44\00\00\00\00\00\00\00\00\41\00\03\03\0b\1a"
122-
"\1a\1a\0b"
62+
"\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\0b\8c"
63+
"\80\80\80\00\00\03\7f\41\01\0b\04\40\10\00\0b\0b"
64+
"\8f\80\80\80\00\00\41\01\04\7f\03\7f\41\01\0b\05"
65+
"\41\02\0b\0b\8f\80\80\80\00\00\41\01\04\7f\41\02"
66+
"\05\03\7f\41\01\0b\0b\0b\8e\80\80\80\00\00\02\7f"
67+
"\03\7f\41\01\0b\41\02\0d\00\0b\0b\8e\80\80\80\00"
68+
"\00\02\7f\41\02\03\7f\41\01\0b\0d\00\0b\0b\90\80"
69+
"\80\80\00\00\02\7f\03\7f\41\01\0b\41\02\0e\01\00"
70+
"\00\0b\0b\90\80\80\80\00\00\02\7f\41\02\03\7f\41"
71+
"\01\0b\0e\01\00\00\0b\0b\84\80\80\80\00\00\20\00"
72+
"\0b\84\80\80\80\00\00\20\00\0b\89\80\80\80\00\00"
73+
"\03\7f\41\01\0b\10\0e\0b\88\80\80\80\00\00\03\7f"
74+
"\41\01\0b\0f\0b\88\80\80\80\00\00\03\7f\41\01\0b"
75+
"\1a\0b\8c\80\80\80\00\00\02\7f\03\7f\41\01\0b\0c"
76+
"\00\0b\0b\8d\80\80\80\00\01\01\7f\03\7f\41\01\0b"
77+
"\21\00\20\00\0b\91\80\80\80\00\00\03\7f\10\00\41"
78+
"\03\0b\03\7f\10\00\41\04\0b\6c\0b\8a\80\80\80\00"
79+
"\00\03\7f\10\00\41\0d\0b\45\0b\97\80\80\80\00\00"
80+
"\03\7d\10\00\43\00\00\40\40\0b\03\7d\10\00\43\00"
81+
"\00\40\40\0b\5e\0b\8e\80\80\80\00\00\03\07\10\00"
82+
"\41\03\10\00\41\04\0b\6c\0b\94\80\80\80\00\00\03"
83+
"\08\10\00\43\00\00\40\40\10\00\43\00\00\40\40\0b"
84+
"\5e\0b\91\80\80\80\00\00\03\07\10\00\41\03\10\00"
85+
"\41\04\0b\41\05\6a\6c\0b\b4\80\80\80\00\00\02\40"
86+
"\03\40\0c\01\0c\00\00\0b\0b\02\40\03\40\41\01\0d"
87+
"\01\00\0b\0b\02\40\03\40\41\00\0e\00\01\00\0b\0b"
88+
"\02\40\03\40\41\01\0e\02\01\01\01\00\0b\0b\41\13"
89+
"\0b\97\80\80\80\00\00\02\7f\41\00\03\02\02\40\41"
90+
"\12\0c\02\0b\41\14\0c\00\0b\41\13\0b\0b\a7\80\80"
91+
"\80\00\00\02\09\41\00\41\00\42\00\03\0a\02\40\41"
92+
"\12\41\6e\42\12\0c\02\0b\41\14\41\6c\42\14\0c\00"
93+
"\0b\41\13\41\6d\42\13\0b\0b\b4\80\80\80\00\00\02"
94+
"\7f\03\7f\41\12\0c\01\41\13\0c\01\41\14\41\00\0d"
95+
"\01\1a\41\14\41\01\0d\01\1a\41\15\0c\01\41\16\41"
96+
"\00\0e\00\01\41\17\41\01\0e\02\01\01\01\41\15\0b"
97+
"\0b\0b\8a\80\80\80\00\00\41\01\03\06\41\02\6a\0b"
98+
"\0b\8a\80\80\80\00\00\41\01\41\02\03\05\6a\0b\0b"
99+
"\8a\80\80\80\00\00\41\01\41\02\03\0b\0b\6a\0b\95"
100+
"\80\80\80\00\01\01\7f\41\01\03\06\41\04\6a\22\00"
101+
"\20\00\41\0a\49\0d\00\0b\0b\98\80\80\80\00\01\01"
102+
"\7f\41\01\41\02\03\05\6a\22\00\41\03\20\00\41\0a"
103+
"\49\0d\00\1a\0b\0b\9e\80\80\80\00\01\01\7f\41\00"
104+
"\21\00\41\01\41\02\03\0b\20\00\41\01\6a\21\00\20"
105+
"\00\41\0a\49\0d\00\0b\6a\0b\b2\80\80\80\00\01\01"
106+
"\7f\02\40\03\40\41\01\21\00\20\00\41\03\6c\21\00"
107+
"\20\00\41\05\6b\21\00\20\00\41\07\6c\21\00\0c\01"
108+
"\20\00\41\e4\00\6c\21\00\0b\0b\20\00\41\72\46\0b"
109+
"\a5\80\80\80\00\01\01\7e\42\01\21\01\02\40\03\40"
110+
"\20\00\50\0d\01\20\00\20\01\7e\21\01\20\00\42\01"
111+
"\7d\21\00\0c\00\0b\0b\20\01\0b\ab\80\80\80\00\01"
112+
"\02\7e\42\01\21\01\42\02\21\02\02\40\03\40\20\02"
113+
"\20\00\56\0d\01\20\01\20\02\7e\21\01\20\02\42\01"
114+
"\7c\21\02\0c\00\0b\0b\20\01\0b\da\80\80\80\00\01"
115+
"\02\7d\02\40\03\40\20\00\43\00\00\00\00\5b\0d\01"
116+
"\20\01\21\02\02\40\03\40\20\02\43\00\00\00\00\5b"
117+
"\0d\01\20\02\43\00\00\00\00\5d\0d\03\20\03\20\02"
118+
"\92\21\03\20\02\43\00\00\00\40\93\21\02\0c\00\0b"
119+
"\0b\20\03\20\00\95\21\03\20\00\43\00\00\80\3f\93"
120+
"\21\00\0c\00\0b\0b\20\03\0b\bd\80\80\80\00\00\03"
121+
"\00\0b\03\01\41\00\0b\03\02\1a\0b\41\00\44\00\00"
122+
"\00\00\00\00\00\00\41\00\03\03\0b\1a\1a\1a\03\01"
123+
"\41\00\0b\03\02\1a\0b\41\00\44\00\00\00\00\00\00"
124+
"\00\00\41\00\03\03\0b\1a\1a\1a\0b"
123125
)
124126
(module instance)
125127
(assert_return (invoke "empty"))
@@ -136,6 +138,7 @@
136138
(assert_return (invoke "as-return-value") (i32.const 0x1))
137139
(assert_return (invoke "as-drop-operand"))
138140
(assert_return (invoke "as-br-value") (i32.const 0x1))
141+
(assert_return (invoke "as-local.set-value") (i32.const 0x1))
139142
(assert_return (invoke "as-binary-operand") (i32.const 0xc))
140143
(assert_return (invoke "as-test-operand") (i32.const 0x0))
141144
(assert_return (invoke "as-binary-operands") (i32.const 0xc))

benchmarks/wasm/spectest/loop.wast

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,9 @@
162162
(func (export "as-br-value") (result i32)
163163
(block (result i32) (br 0 (loop (result i32) (i32.const 1))))
164164
)
165-
;; (func (export "as-local.set-value") (result i32)
166-
;; (local i32) (local.set 0 (loop (result i32) (i32.const 1))) (local.get 0)
167-
;; )
165+
(func (export "as-local.set-value") (result i32)
166+
(local i32) (local.set 0 (loop (result i32) (i32.const 1))) (local.get 0)
167+
)
168168
;; (func (export "as-local.tee-value") (result i32)
169169
;; (local i32) (local.tee 0 (loop (result i32) (i32.const 1)))
170170
;; )
@@ -459,7 +459,7 @@
459459
(assert_return (invoke "as-return-value") (i32.const 1))
460460
(assert_return (invoke "as-drop-operand"))
461461
(assert_return (invoke "as-br-value") (i32.const 1))
462-
;; (assert_return (invoke "as-local.set-value") (i32.const 1))
462+
(assert_return (invoke "as-local.set-value") (i32.const 1))
463463
;; (assert_return (invoke "as-local.tee-value") (i32.const 1))
464464
;; (assert_return (invoke "as-global.set-value") (i32.const 1))
465465
;; (assert_return (invoke "as-load-operand") (i32.const 1))

src/main/scala/MiniWasmScript.scala

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,18 @@ sealed class ScriptRunner {
3434
module.funcs(index)
3535
})
3636
.get
37-
val instrs = func match {
38-
case FuncDef(_, FuncBodyDef(ty, _, locals, body)) => body
37+
val (locals, instrs) = func match {
38+
case FuncDef(_, FuncBodyDef(ty, _, locals, body)) => (locals, body)
3939
}
40+
val frame = Frame(ArrayBuffer(args ++ locals.map(zero(_)): _*))
4041
val evaluator = EvaluatorFX(module)
4142
type Cont = evaluator.Cont[evaluator.Stack]
4243
type MCont = evaluator.MCont[evaluator.Stack]
4344
type Handler = evaluator.Handler[evaluator.Stack]
4445
val k: Cont = evaluator.initK
4546
val halt: Cont = (retStack, _, _) => retStack
4647
// Note: change this back to Evaluator if we are just testing original stuff
47-
evaluator.evalList(instrs, List(), Frame(ArrayBuffer(args: _*)), k, List((halt, List())), List(k), List())
48+
evaluator.evalList(instrs, List(), frame, k, List((halt, List())), List(k), List())
4849
}
4950

5051
def runCmd(cmd: Cmd): Unit = {

0 commit comments

Comments
 (0)