fix infinite loop in shop
This commit is contained in:
File diff suppressed because it is too large
Load Diff
10734
boot/engine.cm.mcode
10734
boot/engine.cm.mcode
File diff suppressed because it is too large
Load Diff
@@ -3146,7 +3146,7 @@
|
||||
[
|
||||
"get",
|
||||
31,
|
||||
7,
|
||||
3,
|
||||
2,
|
||||
81,
|
||||
14
|
||||
@@ -3199,7 +3199,7 @@
|
||||
[
|
||||
"get",
|
||||
36,
|
||||
3,
|
||||
4,
|
||||
2,
|
||||
82,
|
||||
11
|
||||
@@ -3267,7 +3267,7 @@
|
||||
[
|
||||
"get",
|
||||
40,
|
||||
7,
|
||||
3,
|
||||
2,
|
||||
85,
|
||||
14
|
||||
@@ -3333,7 +3333,7 @@
|
||||
[
|
||||
"get",
|
||||
46,
|
||||
5,
|
||||
8,
|
||||
2,
|
||||
85,
|
||||
37
|
||||
@@ -3393,7 +3393,7 @@
|
||||
[
|
||||
"get",
|
||||
49,
|
||||
6,
|
||||
7,
|
||||
2,
|
||||
86,
|
||||
16
|
||||
@@ -3480,7 +3480,7 @@
|
||||
[
|
||||
"get",
|
||||
6,
|
||||
7,
|
||||
3,
|
||||
1,
|
||||
69,
|
||||
23
|
||||
@@ -3859,7 +3859,7 @@
|
||||
"instructions": [
|
||||
[
|
||||
"move",
|
||||
4,
|
||||
5,
|
||||
2,
|
||||
42,
|
||||
14
|
||||
@@ -3873,7 +3873,7 @@
|
||||
[
|
||||
"is_identical",
|
||||
10,
|
||||
4,
|
||||
5,
|
||||
9,
|
||||
43,
|
||||
15
|
||||
@@ -3888,7 +3888,7 @@
|
||||
[
|
||||
"is_int",
|
||||
11,
|
||||
4,
|
||||
5,
|
||||
43,
|
||||
15
|
||||
],
|
||||
@@ -3909,7 +3909,7 @@
|
||||
[
|
||||
"eq_int",
|
||||
10,
|
||||
4,
|
||||
5,
|
||||
9,
|
||||
43,
|
||||
15
|
||||
@@ -3924,7 +3924,7 @@
|
||||
[
|
||||
"is_num",
|
||||
11,
|
||||
4,
|
||||
5,
|
||||
43,
|
||||
15
|
||||
],
|
||||
@@ -3945,7 +3945,7 @@
|
||||
[
|
||||
"eq_float",
|
||||
10,
|
||||
4,
|
||||
5,
|
||||
9,
|
||||
43,
|
||||
15
|
||||
@@ -3960,7 +3960,7 @@
|
||||
[
|
||||
"is_text",
|
||||
11,
|
||||
4,
|
||||
5,
|
||||
43,
|
||||
15
|
||||
],
|
||||
@@ -3981,7 +3981,7 @@
|
||||
[
|
||||
"eq_text",
|
||||
10,
|
||||
4,
|
||||
5,
|
||||
9,
|
||||
43,
|
||||
15
|
||||
@@ -3996,7 +3996,7 @@
|
||||
[
|
||||
"is_null",
|
||||
11,
|
||||
4,
|
||||
5,
|
||||
43,
|
||||
15
|
||||
],
|
||||
@@ -4025,7 +4025,7 @@
|
||||
[
|
||||
"is_bool",
|
||||
11,
|
||||
4,
|
||||
5,
|
||||
43,
|
||||
15
|
||||
],
|
||||
@@ -4046,7 +4046,7 @@
|
||||
[
|
||||
"eq_bool",
|
||||
10,
|
||||
4,
|
||||
5,
|
||||
9,
|
||||
43,
|
||||
15
|
||||
@@ -4081,7 +4081,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
4,
|
||||
5,
|
||||
13,
|
||||
43,
|
||||
28
|
||||
@@ -4103,7 +4103,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
6,
|
||||
7,
|
||||
14,
|
||||
44,
|
||||
17
|
||||
@@ -4117,7 +4117,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
7,
|
||||
3,
|
||||
15,
|
||||
46,
|
||||
3
|
||||
@@ -4131,7 +4131,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
5,
|
||||
8,
|
||||
16,
|
||||
57,
|
||||
3
|
||||
@@ -4145,7 +4145,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
3,
|
||||
4,
|
||||
17,
|
||||
68,
|
||||
3
|
||||
@@ -4195,7 +4195,7 @@
|
||||
[
|
||||
"push",
|
||||
23,
|
||||
4,
|
||||
5,
|
||||
92,
|
||||
12
|
||||
],
|
||||
@@ -4273,7 +4273,7 @@
|
||||
"setarg",
|
||||
26,
|
||||
1,
|
||||
4,
|
||||
5,
|
||||
92,
|
||||
12
|
||||
],
|
||||
@@ -4287,7 +4287,7 @@
|
||||
"call_done_84",
|
||||
[
|
||||
"move",
|
||||
8,
|
||||
6,
|
||||
18,
|
||||
92,
|
||||
12
|
||||
@@ -4295,7 +4295,7 @@
|
||||
[
|
||||
"move",
|
||||
27,
|
||||
8,
|
||||
6,
|
||||
93,
|
||||
7
|
||||
],
|
||||
@@ -4309,7 +4309,7 @@
|
||||
[
|
||||
"load_field",
|
||||
28,
|
||||
8,
|
||||
6,
|
||||
"isDirectory",
|
||||
93,
|
||||
13
|
||||
@@ -4339,7 +4339,7 @@
|
||||
[
|
||||
"frame",
|
||||
31,
|
||||
3,
|
||||
4,
|
||||
2,
|
||||
94,
|
||||
5
|
||||
@@ -4362,7 +4362,7 @@
|
||||
"setarg",
|
||||
31,
|
||||
1,
|
||||
4,
|
||||
5,
|
||||
94,
|
||||
5
|
||||
],
|
||||
@@ -4391,7 +4391,7 @@
|
||||
"if_end_86",
|
||||
[
|
||||
"return",
|
||||
6,
|
||||
7,
|
||||
97,
|
||||
10
|
||||
],
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -9,7 +9,7 @@
|
||||
[
|
||||
"get",
|
||||
1,
|
||||
5,
|
||||
4,
|
||||
1,
|
||||
13,
|
||||
10
|
||||
@@ -115,7 +115,7 @@
|
||||
[
|
||||
"get",
|
||||
1,
|
||||
5,
|
||||
4,
|
||||
1,
|
||||
18,
|
||||
10
|
||||
@@ -574,7 +574,7 @@
|
||||
[
|
||||
"get",
|
||||
3,
|
||||
10,
|
||||
11,
|
||||
1,
|
||||
30,
|
||||
10
|
||||
@@ -691,7 +691,7 @@
|
||||
[
|
||||
"get",
|
||||
11,
|
||||
12,
|
||||
7,
|
||||
1,
|
||||
30,
|
||||
37
|
||||
@@ -2249,7 +2249,7 @@
|
||||
[
|
||||
"get",
|
||||
8,
|
||||
10,
|
||||
11,
|
||||
1,
|
||||
55,
|
||||
10
|
||||
@@ -2366,7 +2366,7 @@
|
||||
[
|
||||
"get",
|
||||
16,
|
||||
12,
|
||||
7,
|
||||
1,
|
||||
55,
|
||||
37
|
||||
@@ -2719,7 +2719,7 @@
|
||||
[
|
||||
"get",
|
||||
18,
|
||||
7,
|
||||
6,
|
||||
2,
|
||||
72,
|
||||
15
|
||||
@@ -3428,7 +3428,7 @@
|
||||
[
|
||||
"get",
|
||||
11,
|
||||
7,
|
||||
6,
|
||||
1,
|
||||
87,
|
||||
16
|
||||
@@ -3563,7 +3563,7 @@
|
||||
[
|
||||
"get",
|
||||
20,
|
||||
4,
|
||||
3,
|
||||
1,
|
||||
87,
|
||||
11
|
||||
@@ -3835,7 +3835,7 @@
|
||||
[
|
||||
"get",
|
||||
1,
|
||||
3,
|
||||
2,
|
||||
1,
|
||||
138,
|
||||
22
|
||||
@@ -3978,7 +3978,7 @@
|
||||
[
|
||||
"get",
|
||||
11,
|
||||
3,
|
||||
2,
|
||||
1,
|
||||
139,
|
||||
26
|
||||
@@ -4134,7 +4134,7 @@
|
||||
[
|
||||
"get",
|
||||
22,
|
||||
3,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
@@ -4312,7 +4312,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
3,
|
||||
2,
|
||||
6,
|
||||
130,
|
||||
46
|
||||
@@ -4361,7 +4361,7 @@
|
||||
"setarg",
|
||||
10,
|
||||
1,
|
||||
3,
|
||||
2,
|
||||
132,
|
||||
15
|
||||
],
|
||||
@@ -4439,7 +4439,7 @@
|
||||
[
|
||||
"push",
|
||||
18,
|
||||
3,
|
||||
2,
|
||||
132,
|
||||
49
|
||||
],
|
||||
@@ -4517,7 +4517,7 @@
|
||||
"setarg",
|
||||
21,
|
||||
1,
|
||||
3,
|
||||
2,
|
||||
132,
|
||||
49
|
||||
],
|
||||
@@ -4563,7 +4563,7 @@
|
||||
[
|
||||
"is_text",
|
||||
26,
|
||||
3,
|
||||
2,
|
||||
133,
|
||||
61
|
||||
],
|
||||
@@ -4578,7 +4578,7 @@
|
||||
"concat",
|
||||
24,
|
||||
23,
|
||||
3,
|
||||
2,
|
||||
133,
|
||||
61
|
||||
],
|
||||
@@ -4599,7 +4599,7 @@
|
||||
[
|
||||
"is_num",
|
||||
26,
|
||||
3,
|
||||
2,
|
||||
133,
|
||||
61
|
||||
],
|
||||
@@ -4614,7 +4614,7 @@
|
||||
"add",
|
||||
24,
|
||||
23,
|
||||
3,
|
||||
2,
|
||||
133,
|
||||
61
|
||||
],
|
||||
@@ -4783,7 +4783,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
2,
|
||||
3,
|
||||
36,
|
||||
137,
|
||||
26
|
||||
@@ -4791,7 +4791,7 @@
|
||||
[
|
||||
"frame",
|
||||
38,
|
||||
2,
|
||||
3,
|
||||
0,
|
||||
143,
|
||||
11
|
||||
@@ -5040,7 +5040,7 @@
|
||||
[
|
||||
"get",
|
||||
18,
|
||||
7,
|
||||
6,
|
||||
2,
|
||||
127,
|
||||
17
|
||||
@@ -5680,7 +5680,7 @@
|
||||
"call_done_78",
|
||||
[
|
||||
"move",
|
||||
7,
|
||||
6,
|
||||
9,
|
||||
94,
|
||||
14
|
||||
@@ -5688,7 +5688,7 @@
|
||||
[
|
||||
"load_dynamic",
|
||||
17,
|
||||
7,
|
||||
6,
|
||||
1,
|
||||
95,
|
||||
13
|
||||
@@ -6746,7 +6746,7 @@
|
||||
[
|
||||
"get",
|
||||
78,
|
||||
6,
|
||||
5,
|
||||
1,
|
||||
112,
|
||||
15
|
||||
@@ -6881,7 +6881,7 @@
|
||||
[
|
||||
"get",
|
||||
87,
|
||||
6,
|
||||
5,
|
||||
1,
|
||||
114,
|
||||
3
|
||||
@@ -7016,7 +7016,7 @@
|
||||
[
|
||||
"get",
|
||||
96,
|
||||
6,
|
||||
5,
|
||||
1,
|
||||
117,
|
||||
3
|
||||
@@ -7265,7 +7265,7 @@
|
||||
[
|
||||
"get",
|
||||
111,
|
||||
3,
|
||||
10,
|
||||
1,
|
||||
121,
|
||||
57
|
||||
@@ -7317,7 +7317,7 @@
|
||||
"tern_end_117",
|
||||
[
|
||||
"move",
|
||||
5,
|
||||
7,
|
||||
109,
|
||||
121,
|
||||
57
|
||||
@@ -7332,7 +7332,7 @@
|
||||
[
|
||||
"is_text",
|
||||
116,
|
||||
5,
|
||||
7,
|
||||
122,
|
||||
33
|
||||
],
|
||||
@@ -7348,7 +7348,7 @@
|
||||
[
|
||||
"concat",
|
||||
115,
|
||||
5,
|
||||
7,
|
||||
114,
|
||||
122,
|
||||
33
|
||||
@@ -7363,7 +7363,7 @@
|
||||
[
|
||||
"is_num",
|
||||
116,
|
||||
5,
|
||||
7,
|
||||
122,
|
||||
33
|
||||
],
|
||||
@@ -7384,7 +7384,7 @@
|
||||
[
|
||||
"add",
|
||||
115,
|
||||
5,
|
||||
7,
|
||||
114,
|
||||
122,
|
||||
33
|
||||
@@ -7411,7 +7411,7 @@
|
||||
],
|
||||
[
|
||||
"null",
|
||||
6,
|
||||
5,
|
||||
123,
|
||||
23
|
||||
],
|
||||
@@ -7566,7 +7566,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
6,
|
||||
5,
|
||||
127,
|
||||
125,
|
||||
21
|
||||
@@ -7574,7 +7574,7 @@
|
||||
[
|
||||
"frame",
|
||||
129,
|
||||
6,
|
||||
5,
|
||||
0,
|
||||
149,
|
||||
5
|
||||
@@ -8015,7 +8015,7 @@
|
||||
[
|
||||
"get",
|
||||
5,
|
||||
6,
|
||||
5,
|
||||
1,
|
||||
157,
|
||||
15
|
||||
@@ -8173,7 +8173,7 @@
|
||||
[
|
||||
"get",
|
||||
17,
|
||||
3,
|
||||
10,
|
||||
1,
|
||||
161,
|
||||
20
|
||||
@@ -8726,7 +8726,7 @@
|
||||
[
|
||||
"get",
|
||||
52,
|
||||
6,
|
||||
5,
|
||||
1,
|
||||
168,
|
||||
3
|
||||
@@ -9093,7 +9093,7 @@
|
||||
[
|
||||
"get",
|
||||
4,
|
||||
3,
|
||||
10,
|
||||
2,
|
||||
177,
|
||||
22
|
||||
@@ -9452,7 +9452,7 @@
|
||||
[
|
||||
"get",
|
||||
3,
|
||||
6,
|
||||
5,
|
||||
1,
|
||||
175,
|
||||
15
|
||||
@@ -9750,7 +9750,7 @@
|
||||
[
|
||||
"get",
|
||||
27,
|
||||
6,
|
||||
5,
|
||||
1,
|
||||
183,
|
||||
3
|
||||
@@ -9964,7 +9964,7 @@
|
||||
[
|
||||
"get",
|
||||
9,
|
||||
3,
|
||||
10,
|
||||
1,
|
||||
190,
|
||||
20
|
||||
@@ -12242,7 +12242,7 @@
|
||||
[
|
||||
"get",
|
||||
3,
|
||||
3,
|
||||
1,
|
||||
1,
|
||||
245,
|
||||
37
|
||||
@@ -12440,7 +12440,7 @@
|
||||
[
|
||||
"get",
|
||||
18,
|
||||
7,
|
||||
6,
|
||||
4,
|
||||
246,
|
||||
19
|
||||
@@ -12888,7 +12888,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
2,
|
||||
3,
|
||||
5,
|
||||
230,
|
||||
25
|
||||
@@ -12938,7 +12938,7 @@
|
||||
[
|
||||
"push",
|
||||
14,
|
||||
2,
|
||||
3,
|
||||
231,
|
||||
12
|
||||
],
|
||||
@@ -13016,7 +13016,7 @@
|
||||
"setarg",
|
||||
17,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
231,
|
||||
12
|
||||
],
|
||||
@@ -13149,7 +13149,7 @@
|
||||
[
|
||||
"is_text",
|
||||
27,
|
||||
2,
|
||||
3,
|
||||
232,
|
||||
48
|
||||
],
|
||||
@@ -13164,7 +13164,7 @@
|
||||
"concat",
|
||||
25,
|
||||
22,
|
||||
2,
|
||||
3,
|
||||
232,
|
||||
48
|
||||
],
|
||||
@@ -13192,7 +13192,7 @@
|
||||
[
|
||||
"is_num",
|
||||
27,
|
||||
2,
|
||||
3,
|
||||
232,
|
||||
48
|
||||
],
|
||||
@@ -13207,7 +13207,7 @@
|
||||
"add",
|
||||
25,
|
||||
22,
|
||||
2,
|
||||
3,
|
||||
232,
|
||||
48
|
||||
],
|
||||
@@ -13363,7 +13363,7 @@
|
||||
[
|
||||
"is_text",
|
||||
36,
|
||||
2,
|
||||
3,
|
||||
235,
|
||||
37
|
||||
],
|
||||
@@ -13379,7 +13379,7 @@
|
||||
[
|
||||
"concat",
|
||||
35,
|
||||
2,
|
||||
3,
|
||||
34,
|
||||
235,
|
||||
37
|
||||
@@ -13394,7 +13394,7 @@
|
||||
[
|
||||
"is_num",
|
||||
36,
|
||||
2,
|
||||
3,
|
||||
235,
|
||||
37
|
||||
],
|
||||
@@ -13415,7 +13415,7 @@
|
||||
[
|
||||
"add",
|
||||
35,
|
||||
2,
|
||||
3,
|
||||
34,
|
||||
235,
|
||||
37
|
||||
@@ -13689,7 +13689,7 @@
|
||||
[
|
||||
"is_text",
|
||||
56,
|
||||
2,
|
||||
3,
|
||||
236,
|
||||
48
|
||||
],
|
||||
@@ -13704,7 +13704,7 @@
|
||||
"concat",
|
||||
54,
|
||||
51,
|
||||
2,
|
||||
3,
|
||||
236,
|
||||
48
|
||||
],
|
||||
@@ -13732,7 +13732,7 @@
|
||||
[
|
||||
"is_num",
|
||||
56,
|
||||
2,
|
||||
3,
|
||||
236,
|
||||
48
|
||||
],
|
||||
@@ -13747,7 +13747,7 @@
|
||||
"add",
|
||||
54,
|
||||
51,
|
||||
2,
|
||||
3,
|
||||
236,
|
||||
48
|
||||
],
|
||||
@@ -13920,7 +13920,7 @@
|
||||
[
|
||||
"get",
|
||||
67,
|
||||
6,
|
||||
5,
|
||||
3,
|
||||
240,
|
||||
7
|
||||
@@ -14092,7 +14092,7 @@
|
||||
[
|
||||
"is_text",
|
||||
77,
|
||||
2,
|
||||
3,
|
||||
243,
|
||||
37
|
||||
],
|
||||
@@ -14108,7 +14108,7 @@
|
||||
[
|
||||
"concat",
|
||||
76,
|
||||
2,
|
||||
3,
|
||||
75,
|
||||
243,
|
||||
37
|
||||
@@ -14123,7 +14123,7 @@
|
||||
[
|
||||
"is_num",
|
||||
77,
|
||||
2,
|
||||
3,
|
||||
243,
|
||||
37
|
||||
],
|
||||
@@ -14144,7 +14144,7 @@
|
||||
[
|
||||
"add",
|
||||
76,
|
||||
2,
|
||||
3,
|
||||
75,
|
||||
243,
|
||||
37
|
||||
@@ -14164,7 +14164,7 @@
|
||||
"add_done_266",
|
||||
[
|
||||
"move",
|
||||
3,
|
||||
1,
|
||||
76,
|
||||
243,
|
||||
37
|
||||
@@ -14178,7 +14178,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
1,
|
||||
2,
|
||||
79,
|
||||
244,
|
||||
22
|
||||
@@ -14186,7 +14186,7 @@
|
||||
[
|
||||
"frame",
|
||||
81,
|
||||
1,
|
||||
2,
|
||||
0,
|
||||
267,
|
||||
7
|
||||
@@ -14564,7 +14564,7 @@
|
||||
[
|
||||
"get",
|
||||
6,
|
||||
6,
|
||||
5,
|
||||
1,
|
||||
222,
|
||||
15
|
||||
@@ -14917,7 +14917,7 @@
|
||||
[
|
||||
"get",
|
||||
4,
|
||||
6,
|
||||
5,
|
||||
1,
|
||||
281,
|
||||
15
|
||||
@@ -15291,7 +15291,7 @@
|
||||
[
|
||||
"get",
|
||||
4,
|
||||
6,
|
||||
5,
|
||||
1,
|
||||
287,
|
||||
15
|
||||
@@ -15776,7 +15776,7 @@
|
||||
[
|
||||
"get",
|
||||
5,
|
||||
6,
|
||||
5,
|
||||
1,
|
||||
294,
|
||||
15
|
||||
@@ -16113,7 +16113,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
10,
|
||||
11,
|
||||
15,
|
||||
0,
|
||||
0
|
||||
@@ -16127,7 +16127,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
12,
|
||||
7,
|
||||
16,
|
||||
0,
|
||||
0
|
||||
@@ -16141,7 +16141,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
3,
|
||||
10,
|
||||
17,
|
||||
0,
|
||||
0
|
||||
@@ -16231,7 +16231,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
7,
|
||||
6,
|
||||
21,
|
||||
4,
|
||||
12
|
||||
@@ -16355,7 +16355,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
4,
|
||||
3,
|
||||
31,
|
||||
6,
|
||||
12
|
||||
@@ -16417,7 +16417,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
11,
|
||||
12,
|
||||
36,
|
||||
7,
|
||||
10
|
||||
@@ -16425,14 +16425,14 @@
|
||||
[
|
||||
"load_field",
|
||||
40,
|
||||
11,
|
||||
12,
|
||||
"global_shop_path",
|
||||
9,
|
||||
24
|
||||
],
|
||||
[
|
||||
"move",
|
||||
5,
|
||||
4,
|
||||
40,
|
||||
9,
|
||||
24
|
||||
@@ -16444,7 +16444,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
6,
|
||||
5,
|
||||
41,
|
||||
58,
|
||||
12
|
||||
@@ -16464,7 +16464,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
6,
|
||||
5,
|
||||
42,
|
||||
"load",
|
||||
62,
|
||||
@@ -16479,7 +16479,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
6,
|
||||
5,
|
||||
43,
|
||||
"save",
|
||||
83,
|
||||
@@ -16494,7 +16494,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
6,
|
||||
5,
|
||||
44,
|
||||
"add",
|
||||
92,
|
||||
@@ -16509,7 +16509,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
6,
|
||||
5,
|
||||
45,
|
||||
"remove",
|
||||
156,
|
||||
@@ -16524,7 +16524,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
6,
|
||||
5,
|
||||
46,
|
||||
"clear",
|
||||
173,
|
||||
@@ -16539,7 +16539,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
6,
|
||||
5,
|
||||
47,
|
||||
"sync_one",
|
||||
189,
|
||||
@@ -16554,7 +16554,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
6,
|
||||
5,
|
||||
48,
|
||||
"sync_all",
|
||||
221,
|
||||
@@ -16569,7 +16569,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
6,
|
||||
5,
|
||||
49,
|
||||
"is_linked",
|
||||
280,
|
||||
@@ -16584,7 +16584,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
6,
|
||||
5,
|
||||
50,
|
||||
"get_target",
|
||||
286,
|
||||
@@ -16599,7 +16599,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
6,
|
||||
5,
|
||||
51,
|
||||
"get_origin",
|
||||
293,
|
||||
@@ -16607,7 +16607,7 @@
|
||||
],
|
||||
[
|
||||
"return",
|
||||
6,
|
||||
5,
|
||||
302,
|
||||
8
|
||||
],
|
||||
|
||||
@@ -1584,7 +1584,7 @@
|
||||
"add_done_28",
|
||||
[
|
||||
"move",
|
||||
4,
|
||||
2,
|
||||
10,
|
||||
47,
|
||||
38
|
||||
@@ -1601,7 +1601,7 @@
|
||||
"load_dynamic",
|
||||
14,
|
||||
13,
|
||||
4,
|
||||
2,
|
||||
50,
|
||||
20
|
||||
],
|
||||
@@ -1624,7 +1624,7 @@
|
||||
"load_dynamic",
|
||||
16,
|
||||
15,
|
||||
4,
|
||||
2,
|
||||
51,
|
||||
25
|
||||
],
|
||||
@@ -1682,7 +1682,7 @@
|
||||
[
|
||||
"push",
|
||||
22,
|
||||
4,
|
||||
2,
|
||||
53,
|
||||
8
|
||||
],
|
||||
@@ -1760,7 +1760,7 @@
|
||||
"setarg",
|
||||
25,
|
||||
1,
|
||||
4,
|
||||
2,
|
||||
53,
|
||||
8
|
||||
],
|
||||
@@ -1790,7 +1790,7 @@
|
||||
[
|
||||
"push",
|
||||
27,
|
||||
4,
|
||||
2,
|
||||
1,
|
||||
1
|
||||
],
|
||||
@@ -1963,7 +1963,7 @@
|
||||
[
|
||||
"push",
|
||||
42,
|
||||
4,
|
||||
2,
|
||||
57,
|
||||
22
|
||||
],
|
||||
@@ -2041,7 +2041,7 @@
|
||||
"setarg",
|
||||
45,
|
||||
1,
|
||||
4,
|
||||
2,
|
||||
57,
|
||||
22
|
||||
],
|
||||
@@ -2103,7 +2103,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
2,
|
||||
3,
|
||||
46,
|
||||
57,
|
||||
17
|
||||
@@ -2111,7 +2111,7 @@
|
||||
[
|
||||
"not",
|
||||
50,
|
||||
2,
|
||||
3,
|
||||
58,
|
||||
8
|
||||
],
|
||||
@@ -2166,7 +2166,7 @@
|
||||
"setarg",
|
||||
54,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
58,
|
||||
26
|
||||
],
|
||||
@@ -2410,7 +2410,7 @@
|
||||
[
|
||||
"push",
|
||||
67,
|
||||
2,
|
||||
3,
|
||||
61,
|
||||
16
|
||||
],
|
||||
@@ -2488,7 +2488,7 @@
|
||||
"setarg",
|
||||
70,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
61,
|
||||
16
|
||||
],
|
||||
@@ -2502,7 +2502,7 @@
|
||||
"call_done_49",
|
||||
[
|
||||
"move",
|
||||
3,
|
||||
4,
|
||||
62,
|
||||
61,
|
||||
16
|
||||
@@ -2510,7 +2510,7 @@
|
||||
"_nop_bl_2",
|
||||
[
|
||||
"jump_true",
|
||||
3,
|
||||
4,
|
||||
"if_else_50",
|
||||
62,
|
||||
8
|
||||
@@ -2574,7 +2574,7 @@
|
||||
[
|
||||
"push",
|
||||
78,
|
||||
3,
|
||||
4,
|
||||
67,
|
||||
24
|
||||
],
|
||||
@@ -2652,7 +2652,7 @@
|
||||
"setarg",
|
||||
81,
|
||||
1,
|
||||
3,
|
||||
4,
|
||||
67,
|
||||
24
|
||||
],
|
||||
@@ -2801,7 +2801,7 @@
|
||||
"call_done_55",
|
||||
[
|
||||
"move",
|
||||
3,
|
||||
4,
|
||||
82,
|
||||
67,
|
||||
12
|
||||
@@ -2817,14 +2817,14 @@
|
||||
[
|
||||
"store_dynamic",
|
||||
91,
|
||||
3,
|
||||
4,
|
||||
2,
|
||||
68,
|
||||
16
|
||||
],
|
||||
[
|
||||
"return",
|
||||
3,
|
||||
4,
|
||||
70,
|
||||
10
|
||||
],
|
||||
@@ -3420,7 +3420,7 @@
|
||||
[
|
||||
"get",
|
||||
3,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
81,
|
||||
10
|
||||
@@ -3893,7 +3893,7 @@
|
||||
[
|
||||
"get",
|
||||
6,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
86,
|
||||
16
|
||||
@@ -4264,7 +4264,7 @@
|
||||
[
|
||||
"get",
|
||||
5,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
98,
|
||||
16
|
||||
@@ -4708,7 +4708,7 @@
|
||||
[
|
||||
"get",
|
||||
12,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
107,
|
||||
16
|
||||
@@ -4903,7 +4903,7 @@
|
||||
[
|
||||
"get",
|
||||
25,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
110,
|
||||
3
|
||||
@@ -5075,7 +5075,7 @@
|
||||
[
|
||||
"get",
|
||||
6,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
116,
|
||||
16
|
||||
@@ -5300,7 +5300,7 @@
|
||||
[
|
||||
"get",
|
||||
22,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
123,
|
||||
13
|
||||
@@ -5489,7 +5489,7 @@
|
||||
[
|
||||
"get",
|
||||
33,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
127,
|
||||
3
|
||||
@@ -6644,7 +6644,7 @@
|
||||
[
|
||||
"get",
|
||||
7,
|
||||
2,
|
||||
1,
|
||||
2,
|
||||
165,
|
||||
18
|
||||
@@ -7681,7 +7681,7 @@
|
||||
[
|
||||
"get",
|
||||
9,
|
||||
2,
|
||||
1,
|
||||
2,
|
||||
192,
|
||||
16
|
||||
@@ -10121,7 +10121,7 @@
|
||||
[
|
||||
"get",
|
||||
6,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
248,
|
||||
15
|
||||
@@ -10743,7 +10743,7 @@
|
||||
[
|
||||
"get",
|
||||
6,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
260,
|
||||
15
|
||||
@@ -11575,7 +11575,7 @@
|
||||
[
|
||||
"get",
|
||||
9,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
276,
|
||||
16
|
||||
@@ -13195,7 +13195,7 @@
|
||||
[
|
||||
"get",
|
||||
38,
|
||||
14,
|
||||
6,
|
||||
1,
|
||||
377,
|
||||
12
|
||||
@@ -13376,7 +13376,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
21,
|
||||
16,
|
||||
27,
|
||||
301,
|
||||
23
|
||||
@@ -13384,7 +13384,7 @@
|
||||
[
|
||||
"get",
|
||||
32,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
302,
|
||||
15
|
||||
@@ -13562,31 +13562,31 @@
|
||||
],
|
||||
[
|
||||
"null",
|
||||
4,
|
||||
10,
|
||||
311,
|
||||
19
|
||||
],
|
||||
[
|
||||
"null",
|
||||
5,
|
||||
21,
|
||||
312,
|
||||
18
|
||||
],
|
||||
[
|
||||
"null",
|
||||
10,
|
||||
11,
|
||||
313,
|
||||
13
|
||||
],
|
||||
[
|
||||
"null",
|
||||
11,
|
||||
12,
|
||||
314,
|
||||
20
|
||||
],
|
||||
[
|
||||
"null",
|
||||
12,
|
||||
13,
|
||||
315,
|
||||
24
|
||||
],
|
||||
@@ -13598,20 +13598,20 @@
|
||||
],
|
||||
[
|
||||
"access",
|
||||
6,
|
||||
4,
|
||||
0,
|
||||
317,
|
||||
11
|
||||
],
|
||||
[
|
||||
"null",
|
||||
13,
|
||||
14,
|
||||
318,
|
||||
16
|
||||
],
|
||||
[
|
||||
"null",
|
||||
16,
|
||||
5,
|
||||
319,
|
||||
19
|
||||
],
|
||||
@@ -14303,7 +14303,7 @@
|
||||
"call_done_290",
|
||||
[
|
||||
"move",
|
||||
4,
|
||||
10,
|
||||
76,
|
||||
326,
|
||||
17
|
||||
@@ -14445,7 +14445,7 @@
|
||||
"call_done_292",
|
||||
[
|
||||
"move",
|
||||
5,
|
||||
21,
|
||||
85,
|
||||
327,
|
||||
16
|
||||
@@ -14453,7 +14453,7 @@
|
||||
[
|
||||
"move",
|
||||
94,
|
||||
5,
|
||||
21,
|
||||
328,
|
||||
12
|
||||
],
|
||||
@@ -14474,7 +14474,7 @@
|
||||
[
|
||||
"is_identical",
|
||||
96,
|
||||
5,
|
||||
21,
|
||||
95,
|
||||
328,
|
||||
36
|
||||
@@ -14509,7 +14509,7 @@
|
||||
[
|
||||
"is_int",
|
||||
97,
|
||||
5,
|
||||
21,
|
||||
328,
|
||||
36
|
||||
],
|
||||
@@ -14530,7 +14530,7 @@
|
||||
[
|
||||
"ne_int",
|
||||
96,
|
||||
5,
|
||||
21,
|
||||
95,
|
||||
328,
|
||||
36
|
||||
@@ -14545,7 +14545,7 @@
|
||||
[
|
||||
"is_num",
|
||||
97,
|
||||
5,
|
||||
21,
|
||||
328,
|
||||
36
|
||||
],
|
||||
@@ -14566,7 +14566,7 @@
|
||||
[
|
||||
"ne_float",
|
||||
96,
|
||||
5,
|
||||
21,
|
||||
95,
|
||||
328,
|
||||
36
|
||||
@@ -14581,7 +14581,7 @@
|
||||
[
|
||||
"is_text",
|
||||
97,
|
||||
5,
|
||||
21,
|
||||
328,
|
||||
36
|
||||
],
|
||||
@@ -14597,7 +14597,7 @@
|
||||
[
|
||||
"ne_text",
|
||||
96,
|
||||
5,
|
||||
21,
|
||||
95,
|
||||
328,
|
||||
36
|
||||
@@ -14612,7 +14612,7 @@
|
||||
[
|
||||
"is_null",
|
||||
97,
|
||||
5,
|
||||
21,
|
||||
328,
|
||||
36
|
||||
],
|
||||
@@ -14646,7 +14646,7 @@
|
||||
[
|
||||
"is_bool",
|
||||
97,
|
||||
5,
|
||||
21,
|
||||
328,
|
||||
36
|
||||
],
|
||||
@@ -14667,7 +14667,7 @@
|
||||
[
|
||||
"ne_bool",
|
||||
96,
|
||||
5,
|
||||
21,
|
||||
95,
|
||||
328,
|
||||
36
|
||||
@@ -14711,7 +14711,7 @@
|
||||
[
|
||||
"is_text",
|
||||
102,
|
||||
5,
|
||||
21,
|
||||
328,
|
||||
54
|
||||
],
|
||||
@@ -14727,7 +14727,7 @@
|
||||
[
|
||||
"concat",
|
||||
101,
|
||||
5,
|
||||
21,
|
||||
100,
|
||||
328,
|
||||
54
|
||||
@@ -14742,7 +14742,7 @@
|
||||
[
|
||||
"is_num",
|
||||
102,
|
||||
5,
|
||||
21,
|
||||
328,
|
||||
54
|
||||
],
|
||||
@@ -14763,7 +14763,7 @@
|
||||
[
|
||||
"add",
|
||||
101,
|
||||
5,
|
||||
21,
|
||||
100,
|
||||
328,
|
||||
54
|
||||
@@ -14812,7 +14812,7 @@
|
||||
"tern_end_294",
|
||||
[
|
||||
"move",
|
||||
10,
|
||||
11,
|
||||
99,
|
||||
328,
|
||||
60
|
||||
@@ -14825,7 +14825,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
11,
|
||||
12,
|
||||
105,
|
||||
331,
|
||||
18
|
||||
@@ -14838,7 +14838,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
12,
|
||||
13,
|
||||
106,
|
||||
332,
|
||||
22
|
||||
@@ -14846,7 +14846,7 @@
|
||||
[
|
||||
"move",
|
||||
17,
|
||||
4,
|
||||
10,
|
||||
333,
|
||||
20
|
||||
],
|
||||
@@ -14859,7 +14859,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
6,
|
||||
4,
|
||||
107,
|
||||
335,
|
||||
14
|
||||
@@ -14868,14 +14868,14 @@
|
||||
[
|
||||
"length",
|
||||
108,
|
||||
21,
|
||||
16,
|
||||
335,
|
||||
28
|
||||
],
|
||||
[
|
||||
"is_int",
|
||||
110,
|
||||
6,
|
||||
4,
|
||||
335,
|
||||
28
|
||||
],
|
||||
@@ -14891,7 +14891,7 @@
|
||||
[
|
||||
"lt_int",
|
||||
109,
|
||||
6,
|
||||
4,
|
||||
108,
|
||||
335,
|
||||
28
|
||||
@@ -14906,7 +14906,7 @@
|
||||
[
|
||||
"is_num",
|
||||
110,
|
||||
6,
|
||||
4,
|
||||
335,
|
||||
28
|
||||
],
|
||||
@@ -14922,7 +14922,7 @@
|
||||
[
|
||||
"lt_float",
|
||||
109,
|
||||
6,
|
||||
4,
|
||||
108,
|
||||
335,
|
||||
28
|
||||
@@ -14937,7 +14937,7 @@
|
||||
[
|
||||
"is_text",
|
||||
110,
|
||||
6,
|
||||
4,
|
||||
335,
|
||||
28
|
||||
],
|
||||
@@ -14958,7 +14958,7 @@
|
||||
[
|
||||
"lt_text",
|
||||
109,
|
||||
6,
|
||||
4,
|
||||
108,
|
||||
335,
|
||||
28
|
||||
@@ -14993,8 +14993,8 @@
|
||||
[
|
||||
"load_dynamic",
|
||||
113,
|
||||
21,
|
||||
6,
|
||||
16,
|
||||
4,
|
||||
336,
|
||||
36
|
||||
],
|
||||
@@ -15073,7 +15073,7 @@
|
||||
"add_done_314",
|
||||
[
|
||||
"move",
|
||||
13,
|
||||
14,
|
||||
114,
|
||||
336,
|
||||
36
|
||||
@@ -15115,7 +15115,7 @@
|
||||
"setarg",
|
||||
119,
|
||||
1,
|
||||
4,
|
||||
10,
|
||||
337,
|
||||
11
|
||||
],
|
||||
@@ -15123,7 +15123,7 @@
|
||||
"setarg",
|
||||
119,
|
||||
2,
|
||||
13,
|
||||
14,
|
||||
337,
|
||||
11
|
||||
],
|
||||
@@ -15149,7 +15149,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
11,
|
||||
12,
|
||||
121,
|
||||
338,
|
||||
22
|
||||
@@ -15157,14 +15157,14 @@
|
||||
[
|
||||
"load_dynamic",
|
||||
122,
|
||||
21,
|
||||
6,
|
||||
16,
|
||||
4,
|
||||
339,
|
||||
40
|
||||
],
|
||||
[
|
||||
"move",
|
||||
12,
|
||||
13,
|
||||
122,
|
||||
339,
|
||||
40
|
||||
@@ -15179,7 +15179,7 @@
|
||||
[
|
||||
"length",
|
||||
124,
|
||||
13,
|
||||
14,
|
||||
340,
|
||||
51
|
||||
],
|
||||
@@ -15242,7 +15242,7 @@
|
||||
"setarg",
|
||||
129,
|
||||
1,
|
||||
4,
|
||||
10,
|
||||
340,
|
||||
24
|
||||
],
|
||||
@@ -15301,7 +15301,7 @@
|
||||
[
|
||||
"move",
|
||||
132,
|
||||
6,
|
||||
4,
|
||||
335,
|
||||
45
|
||||
],
|
||||
@@ -15380,7 +15380,7 @@
|
||||
"add_done_321",
|
||||
[
|
||||
"move",
|
||||
6,
|
||||
4,
|
||||
133,
|
||||
335,
|
||||
45
|
||||
@@ -15395,7 +15395,7 @@
|
||||
[
|
||||
"is_text",
|
||||
137,
|
||||
10,
|
||||
11,
|
||||
345,
|
||||
23
|
||||
],
|
||||
@@ -15423,7 +15423,7 @@
|
||||
[
|
||||
"concat",
|
||||
136,
|
||||
10,
|
||||
11,
|
||||
17,
|
||||
345,
|
||||
23
|
||||
@@ -15438,7 +15438,7 @@
|
||||
[
|
||||
"is_num",
|
||||
137,
|
||||
10,
|
||||
11,
|
||||
345,
|
||||
23
|
||||
],
|
||||
@@ -15466,7 +15466,7 @@
|
||||
[
|
||||
"add",
|
||||
136,
|
||||
10,
|
||||
11,
|
||||
17,
|
||||
345,
|
||||
23
|
||||
@@ -15578,7 +15578,7 @@
|
||||
"add_done_327",
|
||||
[
|
||||
"move",
|
||||
16,
|
||||
5,
|
||||
139,
|
||||
345,
|
||||
38
|
||||
@@ -15587,7 +15587,7 @@
|
||||
"load_dynamic",
|
||||
142,
|
||||
8,
|
||||
16,
|
||||
5,
|
||||
346,
|
||||
17
|
||||
],
|
||||
@@ -15635,7 +15635,7 @@
|
||||
"store_dynamic",
|
||||
8,
|
||||
144,
|
||||
16,
|
||||
5,
|
||||
347,
|
||||
14
|
||||
],
|
||||
@@ -15649,7 +15649,7 @@
|
||||
"if_end_331",
|
||||
[
|
||||
"jump_false",
|
||||
11,
|
||||
12,
|
||||
"if_else_332",
|
||||
350,
|
||||
9
|
||||
@@ -15658,7 +15658,7 @@
|
||||
"load_dynamic",
|
||||
147,
|
||||
8,
|
||||
16,
|
||||
5,
|
||||
351,
|
||||
14
|
||||
],
|
||||
@@ -15674,7 +15674,7 @@
|
||||
"store_dynamic",
|
||||
148,
|
||||
9,
|
||||
12,
|
||||
13,
|
||||
351,
|
||||
34
|
||||
],
|
||||
@@ -15689,7 +15689,7 @@
|
||||
"load_dynamic",
|
||||
149,
|
||||
8,
|
||||
16,
|
||||
5,
|
||||
353,
|
||||
14
|
||||
],
|
||||
@@ -15813,7 +15813,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
14,
|
||||
6,
|
||||
155,
|
||||
358,
|
||||
16
|
||||
@@ -15986,7 +15986,7 @@
|
||||
],
|
||||
[
|
||||
"return",
|
||||
14,
|
||||
6,
|
||||
381,
|
||||
10
|
||||
],
|
||||
@@ -16074,7 +16074,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
1,
|
||||
2,
|
||||
10,
|
||||
0,
|
||||
0
|
||||
@@ -16100,7 +16100,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
2,
|
||||
1,
|
||||
12,
|
||||
1,
|
||||
15
|
||||
@@ -16436,7 +16436,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
2,
|
||||
1,
|
||||
39,
|
||||
"load_config",
|
||||
45,
|
||||
@@ -16451,7 +16451,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
2,
|
||||
1,
|
||||
40,
|
||||
"save_config",
|
||||
73,
|
||||
@@ -16466,7 +16466,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
2,
|
||||
1,
|
||||
41,
|
||||
"dependencies",
|
||||
79,
|
||||
@@ -16481,7 +16481,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
2,
|
||||
1,
|
||||
42,
|
||||
"find_alias",
|
||||
84,
|
||||
@@ -16496,7 +16496,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
2,
|
||||
1,
|
||||
43,
|
||||
"alias_to_package",
|
||||
96,
|
||||
@@ -16511,7 +16511,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
2,
|
||||
1,
|
||||
44,
|
||||
"add_dependency",
|
||||
104,
|
||||
@@ -16526,7 +16526,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
2,
|
||||
1,
|
||||
45,
|
||||
"remove_dependency",
|
||||
114,
|
||||
@@ -16541,7 +16541,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
2,
|
||||
1,
|
||||
46,
|
||||
"find_package_dir",
|
||||
130,
|
||||
@@ -16556,7 +16556,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
2,
|
||||
1,
|
||||
47,
|
||||
"split_alias",
|
||||
155,
|
||||
@@ -16571,7 +16571,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
2,
|
||||
1,
|
||||
48,
|
||||
"gather_dependencies",
|
||||
183,
|
||||
@@ -16586,7 +16586,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
2,
|
||||
1,
|
||||
49,
|
||||
"list_files",
|
||||
208,
|
||||
@@ -16601,7 +16601,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
2,
|
||||
1,
|
||||
50,
|
||||
"list_modules",
|
||||
247,
|
||||
@@ -16616,7 +16616,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
2,
|
||||
1,
|
||||
51,
|
||||
"list_programs",
|
||||
259,
|
||||
@@ -16631,7 +16631,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
2,
|
||||
1,
|
||||
52,
|
||||
"get_flags",
|
||||
275,
|
||||
@@ -16646,7 +16646,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
2,
|
||||
1,
|
||||
53,
|
||||
"get_c_files",
|
||||
299,
|
||||
@@ -16661,7 +16661,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
2,
|
||||
1,
|
||||
54,
|
||||
"get_dir",
|
||||
385,
|
||||
@@ -16669,7 +16669,7 @@
|
||||
],
|
||||
[
|
||||
"return",
|
||||
2,
|
||||
1,
|
||||
389,
|
||||
8
|
||||
],
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
32778
boot/qbe_emit.cm.mcode
32778
boot/qbe_emit.cm.mcode
File diff suppressed because it is too large
Load Diff
@@ -9,7 +9,7 @@
|
||||
[
|
||||
"get",
|
||||
3,
|
||||
3,
|
||||
13,
|
||||
1,
|
||||
16,
|
||||
7
|
||||
@@ -32,7 +32,7 @@
|
||||
[
|
||||
"get",
|
||||
5,
|
||||
3,
|
||||
13,
|
||||
1,
|
||||
17,
|
||||
12
|
||||
@@ -295,7 +295,7 @@
|
||||
[
|
||||
"get",
|
||||
22,
|
||||
19,
|
||||
8,
|
||||
1,
|
||||
18,
|
||||
16
|
||||
@@ -354,7 +354,7 @@
|
||||
[
|
||||
"get",
|
||||
25,
|
||||
3,
|
||||
13,
|
||||
1,
|
||||
20,
|
||||
5
|
||||
@@ -679,7 +679,7 @@
|
||||
[
|
||||
"get",
|
||||
17,
|
||||
2,
|
||||
3,
|
||||
1,
|
||||
30,
|
||||
8
|
||||
@@ -1043,7 +1043,7 @@
|
||||
[
|
||||
"get",
|
||||
39,
|
||||
2,
|
||||
3,
|
||||
1,
|
||||
34,
|
||||
21
|
||||
@@ -1238,7 +1238,7 @@
|
||||
[
|
||||
"get",
|
||||
52,
|
||||
13,
|
||||
2,
|
||||
1,
|
||||
35,
|
||||
50
|
||||
@@ -1412,7 +1412,7 @@
|
||||
[
|
||||
"get",
|
||||
15,
|
||||
12,
|
||||
19,
|
||||
1,
|
||||
52,
|
||||
13
|
||||
@@ -2831,7 +2831,7 @@
|
||||
[
|
||||
"get",
|
||||
8,
|
||||
14,
|
||||
18,
|
||||
1,
|
||||
72,
|
||||
18
|
||||
@@ -2927,7 +2927,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
6,
|
||||
5,
|
||||
11,
|
||||
73,
|
||||
19
|
||||
@@ -2980,7 +2980,7 @@
|
||||
[
|
||||
"push",
|
||||
20,
|
||||
6,
|
||||
5,
|
||||
74,
|
||||
20
|
||||
],
|
||||
@@ -3058,7 +3058,7 @@
|
||||
"setarg",
|
||||
23,
|
||||
1,
|
||||
6,
|
||||
5,
|
||||
74,
|
||||
20
|
||||
],
|
||||
@@ -3072,7 +3072,7 @@
|
||||
"call_done_66",
|
||||
[
|
||||
"move",
|
||||
5,
|
||||
6,
|
||||
15,
|
||||
74,
|
||||
20
|
||||
@@ -3122,7 +3122,7 @@
|
||||
"setarg",
|
||||
26,
|
||||
2,
|
||||
5,
|
||||
6,
|
||||
75,
|
||||
10
|
||||
],
|
||||
@@ -3161,25 +3161,25 @@
|
||||
"instructions": [
|
||||
[
|
||||
"null",
|
||||
2,
|
||||
3,
|
||||
79,
|
||||
16
|
||||
],
|
||||
[
|
||||
"null",
|
||||
5,
|
||||
2,
|
||||
80,
|
||||
19
|
||||
],
|
||||
[
|
||||
"null",
|
||||
3,
|
||||
4,
|
||||
81,
|
||||
16
|
||||
],
|
||||
[
|
||||
"null",
|
||||
4,
|
||||
5,
|
||||
82,
|
||||
13
|
||||
],
|
||||
@@ -3198,7 +3198,7 @@
|
||||
[
|
||||
"get",
|
||||
8,
|
||||
3,
|
||||
13,
|
||||
1,
|
||||
85,
|
||||
7
|
||||
@@ -3221,7 +3221,7 @@
|
||||
[
|
||||
"get",
|
||||
10,
|
||||
3,
|
||||
13,
|
||||
1,
|
||||
86,
|
||||
12
|
||||
@@ -3484,7 +3484,7 @@
|
||||
[
|
||||
"get",
|
||||
27,
|
||||
19,
|
||||
8,
|
||||
1,
|
||||
89,
|
||||
12
|
||||
@@ -3528,14 +3528,14 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
2,
|
||||
3,
|
||||
26,
|
||||
89,
|
||||
12
|
||||
],
|
||||
[
|
||||
"jump_false",
|
||||
2,
|
||||
3,
|
||||
"if_else_75",
|
||||
90,
|
||||
7
|
||||
@@ -3543,7 +3543,7 @@
|
||||
[
|
||||
"get",
|
||||
30,
|
||||
3,
|
||||
13,
|
||||
1,
|
||||
91,
|
||||
5
|
||||
@@ -3551,14 +3551,14 @@
|
||||
[
|
||||
"store_dynamic",
|
||||
30,
|
||||
2,
|
||||
3,
|
||||
1,
|
||||
91,
|
||||
15
|
||||
],
|
||||
[
|
||||
"return",
|
||||
2,
|
||||
3,
|
||||
92,
|
||||
12
|
||||
],
|
||||
@@ -3838,7 +3838,7 @@
|
||||
[
|
||||
"get",
|
||||
44,
|
||||
2,
|
||||
3,
|
||||
1,
|
||||
97,
|
||||
7
|
||||
@@ -3980,7 +3980,7 @@
|
||||
[
|
||||
"get",
|
||||
53,
|
||||
2,
|
||||
3,
|
||||
1,
|
||||
98,
|
||||
23
|
||||
@@ -4175,7 +4175,7 @@
|
||||
[
|
||||
"get",
|
||||
66,
|
||||
9,
|
||||
10,
|
||||
1,
|
||||
99,
|
||||
54
|
||||
@@ -4254,7 +4254,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
2,
|
||||
3,
|
||||
67,
|
||||
99,
|
||||
14
|
||||
@@ -4262,7 +4262,7 @@
|
||||
[
|
||||
"get",
|
||||
71,
|
||||
3,
|
||||
13,
|
||||
1,
|
||||
100,
|
||||
5
|
||||
@@ -4270,14 +4270,14 @@
|
||||
[
|
||||
"store_dynamic",
|
||||
71,
|
||||
2,
|
||||
3,
|
||||
1,
|
||||
100,
|
||||
15
|
||||
],
|
||||
[
|
||||
"return",
|
||||
2,
|
||||
3,
|
||||
101,
|
||||
12
|
||||
],
|
||||
@@ -4366,7 +4366,7 @@
|
||||
"add_done_92",
|
||||
[
|
||||
"move",
|
||||
5,
|
||||
2,
|
||||
73,
|
||||
105,
|
||||
22
|
||||
@@ -4374,7 +4374,7 @@
|
||||
[
|
||||
"get",
|
||||
77,
|
||||
2,
|
||||
3,
|
||||
1,
|
||||
106,
|
||||
8
|
||||
@@ -4416,7 +4416,7 @@
|
||||
[
|
||||
"push",
|
||||
81,
|
||||
5,
|
||||
2,
|
||||
106,
|
||||
8
|
||||
],
|
||||
@@ -4494,7 +4494,7 @@
|
||||
"setarg",
|
||||
84,
|
||||
1,
|
||||
5,
|
||||
2,
|
||||
106,
|
||||
8
|
||||
],
|
||||
@@ -4779,7 +4779,7 @@
|
||||
"add_done_105",
|
||||
[
|
||||
"move",
|
||||
5,
|
||||
2,
|
||||
95,
|
||||
107,
|
||||
42
|
||||
@@ -4795,7 +4795,7 @@
|
||||
[
|
||||
"get",
|
||||
99,
|
||||
2,
|
||||
3,
|
||||
1,
|
||||
108,
|
||||
7
|
||||
@@ -4837,7 +4837,7 @@
|
||||
[
|
||||
"push",
|
||||
103,
|
||||
5,
|
||||
2,
|
||||
108,
|
||||
7
|
||||
],
|
||||
@@ -4915,7 +4915,7 @@
|
||||
"setarg",
|
||||
106,
|
||||
1,
|
||||
5,
|
||||
2,
|
||||
108,
|
||||
7
|
||||
],
|
||||
@@ -4937,7 +4937,7 @@
|
||||
[
|
||||
"get",
|
||||
108,
|
||||
2,
|
||||
3,
|
||||
1,
|
||||
109,
|
||||
19
|
||||
@@ -4979,7 +4979,7 @@
|
||||
[
|
||||
"push",
|
||||
112,
|
||||
5,
|
||||
2,
|
||||
109,
|
||||
19
|
||||
],
|
||||
@@ -5057,7 +5057,7 @@
|
||||
"setarg",
|
||||
115,
|
||||
1,
|
||||
5,
|
||||
2,
|
||||
109,
|
||||
19
|
||||
],
|
||||
@@ -5119,7 +5119,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
3,
|
||||
4,
|
||||
116,
|
||||
109,
|
||||
14
|
||||
@@ -5127,7 +5127,7 @@
|
||||
[
|
||||
"get",
|
||||
121,
|
||||
8,
|
||||
9,
|
||||
1,
|
||||
110,
|
||||
11
|
||||
@@ -5158,7 +5158,7 @@
|
||||
"setarg",
|
||||
122,
|
||||
1,
|
||||
3,
|
||||
4,
|
||||
110,
|
||||
11
|
||||
],
|
||||
@@ -5166,7 +5166,7 @@
|
||||
"setarg",
|
||||
122,
|
||||
2,
|
||||
5,
|
||||
2,
|
||||
110,
|
||||
11
|
||||
],
|
||||
@@ -5179,7 +5179,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
4,
|
||||
5,
|
||||
120,
|
||||
110,
|
||||
11
|
||||
@@ -5192,7 +5192,7 @@
|
||||
[
|
||||
"get",
|
||||
125,
|
||||
9,
|
||||
10,
|
||||
1,
|
||||
111,
|
||||
39
|
||||
@@ -5208,7 +5208,7 @@
|
||||
[
|
||||
"get",
|
||||
127,
|
||||
11,
|
||||
12,
|
||||
1,
|
||||
111,
|
||||
14
|
||||
@@ -5247,7 +5247,7 @@
|
||||
"setarg",
|
||||
128,
|
||||
2,
|
||||
4,
|
||||
5,
|
||||
111,
|
||||
14
|
||||
],
|
||||
@@ -5268,7 +5268,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
2,
|
||||
3,
|
||||
126,
|
||||
111,
|
||||
14
|
||||
@@ -5276,7 +5276,7 @@
|
||||
[
|
||||
"get",
|
||||
130,
|
||||
3,
|
||||
13,
|
||||
1,
|
||||
112,
|
||||
5
|
||||
@@ -5284,14 +5284,14 @@
|
||||
[
|
||||
"store_dynamic",
|
||||
130,
|
||||
2,
|
||||
3,
|
||||
1,
|
||||
112,
|
||||
15
|
||||
],
|
||||
[
|
||||
"return",
|
||||
2,
|
||||
3,
|
||||
113,
|
||||
12
|
||||
],
|
||||
@@ -5542,7 +5542,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
13,
|
||||
2,
|
||||
20,
|
||||
0,
|
||||
0
|
||||
@@ -5556,7 +5556,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
17,
|
||||
14,
|
||||
21,
|
||||
0,
|
||||
0
|
||||
@@ -5570,7 +5570,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
8,
|
||||
9,
|
||||
22,
|
||||
0,
|
||||
0
|
||||
@@ -5584,7 +5584,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
11,
|
||||
12,
|
||||
23,
|
||||
0,
|
||||
0
|
||||
@@ -5598,7 +5598,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
9,
|
||||
10,
|
||||
24,
|
||||
0,
|
||||
0
|
||||
@@ -5624,7 +5624,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
19,
|
||||
8,
|
||||
26,
|
||||
7,
|
||||
21
|
||||
@@ -5639,7 +5639,7 @@
|
||||
[
|
||||
"frame",
|
||||
29,
|
||||
19,
|
||||
8,
|
||||
1,
|
||||
8,
|
||||
10
|
||||
@@ -5675,7 +5675,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
2,
|
||||
3,
|
||||
28,
|
||||
8,
|
||||
10
|
||||
@@ -5687,7 +5687,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
3,
|
||||
13,
|
||||
31,
|
||||
10,
|
||||
17
|
||||
@@ -5701,8 +5701,8 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
13,
|
||||
3,
|
||||
2,
|
||||
32,
|
||||
11,
|
||||
11
|
||||
@@ -5727,7 +5727,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
3,
|
||||
13,
|
||||
33,
|
||||
34,
|
||||
12,
|
||||
@@ -5753,7 +5753,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
3,
|
||||
13,
|
||||
35,
|
||||
36,
|
||||
13,
|
||||
@@ -5769,7 +5769,7 @@
|
||||
[
|
||||
"frame",
|
||||
39,
|
||||
17,
|
||||
14,
|
||||
1,
|
||||
38,
|
||||
20
|
||||
@@ -5820,7 +5820,7 @@
|
||||
[
|
||||
"frame",
|
||||
43,
|
||||
17,
|
||||
14,
|
||||
1,
|
||||
39,
|
||||
17
|
||||
@@ -5856,7 +5856,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
12,
|
||||
19,
|
||||
42,
|
||||
39,
|
||||
17
|
||||
@@ -5871,7 +5871,7 @@
|
||||
[
|
||||
"frame",
|
||||
47,
|
||||
17,
|
||||
14,
|
||||
1,
|
||||
40,
|
||||
16
|
||||
@@ -5922,7 +5922,7 @@
|
||||
[
|
||||
"frame",
|
||||
51,
|
||||
17,
|
||||
14,
|
||||
1,
|
||||
41,
|
||||
17
|
||||
@@ -5958,7 +5958,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
14,
|
||||
18,
|
||||
50,
|
||||
41,
|
||||
17
|
||||
@@ -5973,7 +5973,7 @@
|
||||
[
|
||||
"frame",
|
||||
55,
|
||||
17,
|
||||
14,
|
||||
1,
|
||||
42,
|
||||
22
|
||||
@@ -6023,7 +6023,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
3,
|
||||
13,
|
||||
6,
|
||||
57,
|
||||
44,
|
||||
@@ -6038,8 +6038,8 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
3,
|
||||
12,
|
||||
13,
|
||||
19,
|
||||
58,
|
||||
45,
|
||||
11
|
||||
@@ -6053,7 +6053,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
3,
|
||||
13,
|
||||
1,
|
||||
59,
|
||||
46,
|
||||
@@ -6068,8 +6068,8 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
3,
|
||||
14,
|
||||
13,
|
||||
18,
|
||||
60,
|
||||
47,
|
||||
11
|
||||
@@ -6083,7 +6083,7 @@
|
||||
],
|
||||
[
|
||||
"store_field",
|
||||
3,
|
||||
13,
|
||||
16,
|
||||
61,
|
||||
48,
|
||||
@@ -6131,7 +6131,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
10,
|
||||
11,
|
||||
65,
|
||||
122,
|
||||
17
|
||||
@@ -6157,7 +6157,7 @@
|
||||
],
|
||||
[
|
||||
"null",
|
||||
18,
|
||||
17,
|
||||
126,
|
||||
11
|
||||
],
|
||||
@@ -6389,7 +6389,7 @@
|
||||
[
|
||||
"is_array",
|
||||
79,
|
||||
10,
|
||||
11,
|
||||
134,
|
||||
24
|
||||
],
|
||||
@@ -6402,7 +6402,7 @@
|
||||
],
|
||||
[
|
||||
"push",
|
||||
10,
|
||||
11,
|
||||
78,
|
||||
134,
|
||||
24
|
||||
@@ -6604,7 +6604,7 @@
|
||||
[
|
||||
"is_proxy",
|
||||
89,
|
||||
2,
|
||||
3,
|
||||
139,
|
||||
6
|
||||
],
|
||||
@@ -6645,7 +6645,7 @@
|
||||
[
|
||||
"frame",
|
||||
93,
|
||||
2,
|
||||
3,
|
||||
2,
|
||||
139,
|
||||
6
|
||||
@@ -6691,7 +6691,7 @@
|
||||
[
|
||||
"load_field",
|
||||
94,
|
||||
2,
|
||||
3,
|
||||
"is_file",
|
||||
139,
|
||||
6
|
||||
@@ -6708,7 +6708,7 @@
|
||||
"setarg",
|
||||
95,
|
||||
0,
|
||||
2,
|
||||
3,
|
||||
139,
|
||||
6
|
||||
],
|
||||
@@ -7017,7 +7017,7 @@
|
||||
[
|
||||
"is_proxy",
|
||||
110,
|
||||
2,
|
||||
3,
|
||||
141,
|
||||
6
|
||||
],
|
||||
@@ -7058,7 +7058,7 @@
|
||||
[
|
||||
"frame",
|
||||
114,
|
||||
2,
|
||||
3,
|
||||
2,
|
||||
141,
|
||||
6
|
||||
@@ -7104,7 +7104,7 @@
|
||||
[
|
||||
"load_field",
|
||||
115,
|
||||
2,
|
||||
3,
|
||||
"is_file",
|
||||
141,
|
||||
6
|
||||
@@ -7121,7 +7121,7 @@
|
||||
"setarg",
|
||||
116,
|
||||
0,
|
||||
2,
|
||||
3,
|
||||
141,
|
||||
6
|
||||
],
|
||||
@@ -7239,7 +7239,7 @@
|
||||
[
|
||||
"is_proxy",
|
||||
123,
|
||||
2,
|
||||
3,
|
||||
143,
|
||||
8
|
||||
],
|
||||
@@ -7280,7 +7280,7 @@
|
||||
[
|
||||
"frame",
|
||||
127,
|
||||
2,
|
||||
3,
|
||||
2,
|
||||
143,
|
||||
8
|
||||
@@ -7326,7 +7326,7 @@
|
||||
[
|
||||
"load_field",
|
||||
128,
|
||||
2,
|
||||
3,
|
||||
"is_file",
|
||||
143,
|
||||
8
|
||||
@@ -7343,7 +7343,7 @@
|
||||
"setarg",
|
||||
129,
|
||||
0,
|
||||
2,
|
||||
3,
|
||||
143,
|
||||
8
|
||||
],
|
||||
@@ -7660,7 +7660,7 @@
|
||||
[
|
||||
"is_proxy",
|
||||
144,
|
||||
2,
|
||||
3,
|
||||
146,
|
||||
6
|
||||
],
|
||||
@@ -7701,7 +7701,7 @@
|
||||
[
|
||||
"frame",
|
||||
148,
|
||||
2,
|
||||
3,
|
||||
2,
|
||||
146,
|
||||
6
|
||||
@@ -7747,7 +7747,7 @@
|
||||
[
|
||||
"load_field",
|
||||
149,
|
||||
2,
|
||||
3,
|
||||
"is_file",
|
||||
146,
|
||||
6
|
||||
@@ -7764,7 +7764,7 @@
|
||||
"setarg",
|
||||
150,
|
||||
0,
|
||||
2,
|
||||
3,
|
||||
146,
|
||||
6
|
||||
],
|
||||
@@ -8016,7 +8016,7 @@
|
||||
[
|
||||
"is_proxy",
|
||||
165,
|
||||
2,
|
||||
3,
|
||||
151,
|
||||
15
|
||||
],
|
||||
@@ -8057,7 +8057,7 @@
|
||||
[
|
||||
"frame",
|
||||
169,
|
||||
2,
|
||||
3,
|
||||
2,
|
||||
151,
|
||||
15
|
||||
@@ -8103,7 +8103,7 @@
|
||||
[
|
||||
"load_field",
|
||||
170,
|
||||
2,
|
||||
3,
|
||||
"slurp",
|
||||
151,
|
||||
15
|
||||
@@ -8120,7 +8120,7 @@
|
||||
"setarg",
|
||||
171,
|
||||
0,
|
||||
2,
|
||||
3,
|
||||
151,
|
||||
15
|
||||
],
|
||||
@@ -8198,7 +8198,7 @@
|
||||
[
|
||||
"frame",
|
||||
177,
|
||||
8,
|
||||
9,
|
||||
2,
|
||||
152,
|
||||
7
|
||||
@@ -8242,7 +8242,7 @@
|
||||
],
|
||||
[
|
||||
"move",
|
||||
18,
|
||||
17,
|
||||
176,
|
||||
152,
|
||||
7
|
||||
@@ -8255,7 +8255,7 @@
|
||||
[
|
||||
"store_field",
|
||||
179,
|
||||
9,
|
||||
10,
|
||||
"use",
|
||||
153,
|
||||
29
|
||||
@@ -8263,7 +8263,7 @@
|
||||
[
|
||||
"store_field",
|
||||
179,
|
||||
10,
|
||||
11,
|
||||
"args",
|
||||
153,
|
||||
43
|
||||
@@ -8271,7 +8271,7 @@
|
||||
[
|
||||
"frame",
|
||||
181,
|
||||
11,
|
||||
12,
|
||||
3,
|
||||
153,
|
||||
1
|
||||
@@ -8302,7 +8302,7 @@
|
||||
"setarg",
|
||||
181,
|
||||
2,
|
||||
18,
|
||||
17,
|
||||
153,
|
||||
1
|
||||
],
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -26,7 +26,7 @@ Every heap-allocated object begins with a 64-bit header word (`objhdr_t`):
|
||||
|
||||
### Flags (bits 3-7)
|
||||
|
||||
- **Bit 3 (S)** — Stone flag. If set, the object is immutable and excluded from GC.
|
||||
- **Bit 3 (S)** — Stone flag. If set, the object is immutable. Stone text in the constant table (ct) is not copied by GC since it lives outside the heap; stone objects on the GC heap are copied normally.
|
||||
- **Bit 4 (P)** — Properties flag.
|
||||
- **Bit 5 (A)** — Array flag.
|
||||
- **Bit 7 (R)** — Reserved.
|
||||
@@ -69,7 +69,9 @@ struct JSText {
|
||||
};
|
||||
```
|
||||
|
||||
Text is stored as UTF-32, with two 32-bit codepoints packed per 64-bit word. When a text object is stoned, the length field is repurposed to cache the hash value (computed via `fash64`), since stoned text is immutable and the hash never changes.
|
||||
Text is stored as UTF-32, with two 32-bit codepoints packed per 64-bit word.
|
||||
|
||||
A mutable text (pretext) uses capacity for the allocated slot count and length for the current codepoint count. When a pretext is stoned, the capacity field is set to the actual length (codepoint count), and the length field is zeroed for use as a lazy hash cache (computed via `fash64` on first use as a key). Since stoned text is immutable, the hash never changes. Stoning is done in-place — no new allocation is needed.
|
||||
|
||||
## Record
|
||||
|
||||
@@ -111,7 +113,7 @@ struct JSFrame {
|
||||
objhdr_t header; // type=6, capacity=slot count
|
||||
JSValue function; // owning function
|
||||
JSValue caller; // parent frame
|
||||
uint32_t return_pc; // return address
|
||||
JSValue address; // return address
|
||||
JSValue slots[]; // [this][args][captured][locals][temps]
|
||||
};
|
||||
```
|
||||
@@ -138,4 +140,4 @@ All objects are aligned to 8 bytes. The total size in bytes for each type:
|
||||
| Record | `8 + 8 + 8 + (capacity + 1) * 16` |
|
||||
| Function | `sizeof(JSFunction)` (fixed) |
|
||||
| Code | `sizeof(JSFunctionBytecode)` (fixed) |
|
||||
| Frame | `8 + 8 + 8 + 4 + capacity * 8` |
|
||||
| Frame | `8 + 8 + 8 + 8 + capacity * 8` |
|
||||
|
||||
@@ -82,6 +82,7 @@ use_cache['fold'] = fold_mod
|
||||
// Always load mcode compiler module
|
||||
var mcode_mod = boot_load("mcode", boot_env)
|
||||
use_cache['mcode'] = mcode_mod
|
||||
use_cache['core/mcode'] = mcode_mod
|
||||
var streamline_mod = null
|
||||
|
||||
// Warn if any .cm source is newer than its compiled bytecode
|
||||
@@ -163,6 +164,7 @@ function analyze(src, filename) {
|
||||
// Load optimization pipeline modules (needs analyze to be defined)
|
||||
streamline_mod = boot_load("streamline", boot_env)
|
||||
use_cache['streamline'] = streamline_mod
|
||||
use_cache['core/streamline'] = streamline_mod
|
||||
|
||||
// Lazy-loaded verify_ir module (loaded on first use)
|
||||
var _verify_ir_mod = null
|
||||
|
||||
@@ -242,6 +242,9 @@ core_extras.shop_path = shop_path
|
||||
core_extras.analyze = analyze
|
||||
core_extras.run_ast_fn = run_ast_fn
|
||||
core_extras.run_ast_noopt_fn = run_ast_noopt_fn
|
||||
os.analyze = analyze
|
||||
os.run_ast_fn = run_ast_fn
|
||||
os.run_ast_noopt_fn = run_ast_noopt_fn
|
||||
core_extras.core_json = json
|
||||
core_extras.actor_api = $_
|
||||
core_extras.runtime_env = runtime_env
|
||||
|
||||
@@ -537,8 +537,14 @@ function resolve_mod_fn(path, pkg) {
|
||||
}
|
||||
|
||||
// Compile via full pipeline: analyze → mcode → streamline → serialize
|
||||
if (!_mcode_mod) _mcode_mod = Shop.use("mcode", null)
|
||||
if (!_streamline_mod) _streamline_mod = Shop.use("streamline", null)
|
||||
// Load compiler modules from use_cache directly (NOT via Shop.use, which
|
||||
// would re-enter resolve_locator → resolve_mod_fn → infinite recursion)
|
||||
if (!_mcode_mod) _mcode_mod = use_cache['core/mcode'] || use_cache['mcode']
|
||||
if (!_streamline_mod) _streamline_mod = use_cache['core/streamline'] || use_cache['streamline']
|
||||
if (!_mcode_mod || !_streamline_mod) {
|
||||
print(`error: compiler modules not loaded (mcode=${_mcode_mod != null}, streamline=${_streamline_mod != null})`)
|
||||
disrupt
|
||||
}
|
||||
ast = analyze(content, path)
|
||||
ir = _mcode_mod(ast)
|
||||
optimized = _streamline_mod(ir)
|
||||
|
||||
@@ -850,9 +850,14 @@ static inline objhdr_t *chase(JSValue v) {
|
||||
updated to follow the chain to the live copy. */
|
||||
static inline void mach_resolve_forward(JSValue *slot) {
|
||||
if (JS_IsPtr(*slot)) {
|
||||
objhdr_t h = *(objhdr_t *)JS_VALUE_GET_PTR(*slot);
|
||||
if (objhdr_type(h) == OBJ_FORWARD) {
|
||||
*slot = JS_MKPTR(objhdr_fwd_ptr(h));
|
||||
objhdr_t *oh = (objhdr_t *)JS_VALUE_GET_PTR(*slot);
|
||||
if (objhdr_type(*oh) == OBJ_FORWARD) {
|
||||
do {
|
||||
objhdr_t *next = (objhdr_t *)objhdr_fwd_ptr(*oh);
|
||||
if (!next) break;
|
||||
oh = next;
|
||||
} while (objhdr_type(*oh) == OBJ_FORWARD);
|
||||
*slot = JS_MKPTR(oh);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
104
source/runtime.c
104
source/runtime.c
@@ -595,6 +595,10 @@ int rec_resize (JSContext *ctx, JSValue *pobj, uint64_t new_mask) {
|
||||
/* Allocate new record with larger capacity - may trigger GC! */
|
||||
size_t slots_size = sizeof (slot) * (new_mask + 1);
|
||||
size_t total_size = sizeof (JSRecord) + slots_size;
|
||||
if (total_size >= 100000) {
|
||||
fprintf(stderr, "LARGE_REC_RESIZE: new_mask=%llu total=%zu old_mask=%llu\n",
|
||||
(unsigned long long)new_mask, total_size, (unsigned long long)old_mask);
|
||||
}
|
||||
|
||||
JSRecord *new_rec = js_malloc (ctx, total_size);
|
||||
if (!new_rec) {
|
||||
@@ -1327,9 +1331,6 @@ static inline int ptr_in_range (void *p, uint8_t *b, uint8_t *e) {
|
||||
return q >= b && q < e;
|
||||
}
|
||||
|
||||
static const char *gc_dbg_phase = "?";
|
||||
static void *gc_dbg_parent = NULL;
|
||||
|
||||
JSValue gc_copy_value (JSContext *ctx, JSValue v, uint8_t *from_base, uint8_t *from_end, uint8_t *to_base, uint8_t **to_free, uint8_t *to_end) {
|
||||
if (!JS_IsPtr (v)) return v;
|
||||
|
||||
@@ -1353,8 +1354,8 @@ JSValue gc_copy_value (JSContext *ctx, JSValue v, uint8_t *from_base, uint8_t *f
|
||||
}
|
||||
|
||||
if (type != OBJ_ARRAY && type != OBJ_TEXT && type != OBJ_RECORD && type != OBJ_FUNCTION && type != OBJ_FRAME) {
|
||||
fprintf (stderr, "gc_copy_value: invalid type %d at %p (hdr=0x%llx) phase=%s parent=%p\n",
|
||||
type, ptr, (unsigned long long)hdr, gc_dbg_phase, gc_dbg_parent);
|
||||
fprintf (stderr, "gc_copy_value: invalid type %d at %p (hdr=0x%llx)\n",
|
||||
type, ptr, (unsigned long long)hdr);
|
||||
fflush (stderr);
|
||||
abort ();
|
||||
}
|
||||
@@ -1375,6 +1376,18 @@ JSValue gc_copy_value (JSContext *ctx, JSValue v, uint8_t *from_base, uint8_t *f
|
||||
}
|
||||
}
|
||||
|
||||
/* Recursively scan a code tree's cpools to arbitrary nesting depth */
|
||||
static void gc_scan_code_tree (JSContext *ctx, JSCodeRegister *code,
|
||||
uint8_t *from_base, uint8_t *from_end,
|
||||
uint8_t *to_base, uint8_t **to_free, uint8_t *to_end) {
|
||||
for (uint32_t i = 0; i < code->cpool_count; i++)
|
||||
code->cpool[i] = gc_copy_value (ctx, code->cpool[i], from_base, from_end, to_base, to_free, to_end);
|
||||
code->name = gc_copy_value (ctx, code->name, from_base, from_end, to_base, to_free, to_end);
|
||||
for (uint32_t i = 0; i < code->func_count; i++)
|
||||
if (code->functions[i])
|
||||
gc_scan_code_tree (ctx, code->functions[i], from_base, from_end, to_base, to_free, to_end);
|
||||
}
|
||||
|
||||
/* Scan a copied object and update its internal references */
|
||||
void gc_scan_object (JSContext *ctx, void *ptr, uint8_t *from_base, uint8_t *from_end,
|
||||
uint8_t *to_base, uint8_t **to_free, uint8_t *to_end) {
|
||||
@@ -1398,8 +1411,9 @@ void gc_scan_object (JSContext *ctx, void *ptr, uint8_t *from_base, uint8_t *fro
|
||||
#endif
|
||||
/* Copy prototype */
|
||||
rec->proto = gc_copy_value (ctx, rec->proto, from_base, from_end, to_base, to_free, to_end);
|
||||
/* Copy table entries */
|
||||
for (uint32_t i = 0; i <= mask; i++) {
|
||||
/* Copy table entries — skip slot[0] which stores packed metadata
|
||||
(class_id | rec_id << 32), not JSValues */
|
||||
for (uint32_t i = 1; i <= mask; i++) {
|
||||
JSValue k = rec->slots[i].key;
|
||||
if (!rec_key_is_empty (k) && !rec_key_is_tomb (k)) {
|
||||
rec->slots[i].key = gc_copy_value (ctx, k, from_base, from_end, to_base, to_free, to_end);
|
||||
@@ -1413,26 +1427,11 @@ void gc_scan_object (JSContext *ctx, void *ptr, uint8_t *from_base, uint8_t *fro
|
||||
/* Scan the function name */
|
||||
fn->name = gc_copy_value (ctx, fn->name, from_base, from_end, to_base, to_free, to_end);
|
||||
if (fn->kind == JS_FUNC_KIND_REGISTER && fn->u.reg.code) {
|
||||
/* Register VM function - scan cpool (off-heap but contains JSValues) */
|
||||
JSCodeRegister *code = fn->u.reg.code;
|
||||
for (uint32_t i = 0; i < code->cpool_count; i++) {
|
||||
code->cpool[i] = gc_copy_value (ctx, code->cpool[i], from_base, from_end, to_base, to_free, to_end);
|
||||
}
|
||||
/* Scan function name */
|
||||
code->name = gc_copy_value (ctx, code->name, from_base, from_end, to_base, to_free, to_end);
|
||||
/* Scan code tree to arbitrary nesting depth */
|
||||
gc_scan_code_tree (ctx, fn->u.reg.code, from_base, from_end, to_base, to_free, to_end);
|
||||
/* Scan outer_frame and env_record */
|
||||
fn->u.reg.outer_frame = gc_copy_value (ctx, fn->u.reg.outer_frame, from_base, from_end, to_base, to_free, to_end);
|
||||
fn->u.reg.env_record = gc_copy_value (ctx, fn->u.reg.env_record, from_base, from_end, to_base, to_free, to_end);
|
||||
/* Recursively scan nested function cpools */
|
||||
for (uint32_t i = 0; i < code->func_count; i++) {
|
||||
if (code->functions[i]) {
|
||||
JSCodeRegister *nested = code->functions[i];
|
||||
for (uint32_t j = 0; j < nested->cpool_count; j++) {
|
||||
nested->cpool[j] = gc_copy_value (ctx, nested->cpool[j], from_base, from_end, to_base, to_free, to_end);
|
||||
}
|
||||
nested->name = gc_copy_value (ctx, nested->name, from_base, from_end, to_base, to_free, to_end);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -1532,9 +1531,6 @@ int ctx_gc (JSContext *ctx, int allow_grow, size_t alloc_size) {
|
||||
uint8_t *to_free = new_block;
|
||||
uint8_t *to_end = new_block + new_size;
|
||||
|
||||
gc_dbg_phase = "roots";
|
||||
gc_dbg_parent = NULL;
|
||||
|
||||
#ifdef VALIDATE_GC
|
||||
/* Pre-GC: walk live frame chain and check for bad slot values */
|
||||
if (JS_IsPtr (ctx->reg_current_frame)) {
|
||||
@@ -1665,7 +1661,6 @@ int ctx_gc (JSContext *ctx, int allow_grow, size_t alloc_size) {
|
||||
}
|
||||
|
||||
/* Cheney scan: scan copied objects to find more references */
|
||||
gc_dbg_phase = "scan";
|
||||
uint8_t *scan = to_base;
|
||||
#ifdef DUMP_GC_DETAIL
|
||||
printf(" scan: to_base=%p to_free=%p to_end=%p\n", (void*)to_base, (void*)to_free, (void*)to_end);
|
||||
@@ -1682,7 +1677,6 @@ int ctx_gc (JSContext *ctx, int allow_grow, size_t alloc_size) {
|
||||
printf(" size=%zu\n", obj_size);
|
||||
fflush(stdout);
|
||||
#endif
|
||||
gc_dbg_parent = scan;
|
||||
gc_scan_object (ctx, scan, from_base, from_end, to_base, &to_free, to_end);
|
||||
scan += obj_size;
|
||||
}
|
||||
@@ -1698,6 +1692,7 @@ int ctx_gc (JSContext *ctx, int allow_grow, size_t alloc_size) {
|
||||
ctx->gc_bytes_copied += new_used;
|
||||
size_t recovered = old_used > new_used ? old_used - new_used : 0;
|
||||
|
||||
|
||||
ctx->heap_base = to_base;
|
||||
ctx->heap_free = to_free;
|
||||
ctx->heap_end = to_end;
|
||||
@@ -2322,7 +2317,17 @@ JSText *pretext_concat_value (JSContext *ctx, JSText *s, JSValue v) {
|
||||
JSText *p = JS_VALUE_GET_STRING (v);
|
||||
return pretext_concat (ctx, s, p, 0, (uint32_t)JSText_len (p));
|
||||
}
|
||||
/* Slow path: v needs conversion — root s across JS_ToString which can
|
||||
allocate and trigger GC */
|
||||
JSGCRef s_ref;
|
||||
JS_PushGCRef (ctx, &s_ref);
|
||||
s_ref.val = JS_MKPTR (s);
|
||||
|
||||
JSValue v1 = JS_ToString (ctx, v);
|
||||
|
||||
s = (JSText *)chase (s_ref.val); /* re-fetch after possible GC */
|
||||
JS_PopGCRef (ctx, &s_ref);
|
||||
|
||||
if (JS_IsException (v1)) return NULL;
|
||||
|
||||
if (MIST_IsImmediateASCII (v1)) {
|
||||
@@ -3467,7 +3472,7 @@ int JS_SetPropertyKey (JSContext *ctx, JSValue this_obj, JSValue key, JSValue va
|
||||
JS_ThrowTypeError (ctx, "cannot modify frozen object");
|
||||
return -1;
|
||||
}
|
||||
return rec_set_own (ctx, rec, key, val);
|
||||
return rec_set_own (ctx, &this_obj, key, val);
|
||||
}
|
||||
|
||||
/* For string keys, use text directly as key */
|
||||
@@ -5211,16 +5216,31 @@ JSValue js_regexp_toString (JSContext *ctx, JSValue this_val, int argc, JSValue
|
||||
JSText *b = pretext_init (ctx, 0);
|
||||
if (!b) return JS_EXCEPTION;
|
||||
|
||||
/* Root b across allocating calls (JS_GetProperty can trigger GC) */
|
||||
JSGCRef b_ref;
|
||||
JS_PushGCRef (ctx, &b_ref);
|
||||
b_ref.val = JS_MKPTR (b);
|
||||
|
||||
b = pretext_putc (ctx, b, '/');
|
||||
if (!b) return JS_EXCEPTION;
|
||||
if (!b) { JS_PopGCRef (ctx, &b_ref); return JS_EXCEPTION; }
|
||||
b_ref.val = JS_MKPTR (b);
|
||||
|
||||
pattern = JS_GetProperty (ctx, this_val, JS_KEY_source);
|
||||
b = (JSText *)chase (b_ref.val);
|
||||
b = pretext_concat_value (ctx, b, pattern);
|
||||
if (!b) return JS_EXCEPTION;
|
||||
if (!b) { JS_PopGCRef (ctx, &b_ref); return JS_EXCEPTION; }
|
||||
b_ref.val = JS_MKPTR (b);
|
||||
|
||||
b = pretext_putc (ctx, b, '/');
|
||||
if (!b) return JS_EXCEPTION;
|
||||
if (!b) { JS_PopGCRef (ctx, &b_ref); return JS_EXCEPTION; }
|
||||
b_ref.val = JS_MKPTR (b);
|
||||
|
||||
flags = JS_GetProperty (ctx, this_val, JS_KEY_flags);
|
||||
b = (JSText *)chase (b_ref.val);
|
||||
b = pretext_concat_value (ctx, b, flags);
|
||||
if (!b) return JS_EXCEPTION;
|
||||
if (!b) { JS_PopGCRef (ctx, &b_ref); return JS_EXCEPTION; }
|
||||
|
||||
JS_PopGCRef (ctx, &b_ref);
|
||||
return pretext_end (ctx, b);
|
||||
}
|
||||
|
||||
@@ -7098,14 +7118,26 @@ JSValue js_cell_text_codepoint (JSContext *ctx, JSValue this_val, int argc, JSVa
|
||||
* file. */
|
||||
|
||||
static JSText *pt_concat_value_to_string_free (JSContext *ctx, JSText *b, JSValue v) {
|
||||
JSGCRef s_ref;
|
||||
/* Root b across JS_ToString which can allocate and trigger GC */
|
||||
JSGCRef b_ref, s_ref;
|
||||
JS_PushGCRef (ctx, &b_ref);
|
||||
b_ref.val = JS_MKPTR (b);
|
||||
|
||||
JSValue s = JS_ToString (ctx, v);
|
||||
if (JS_IsException (s)) return NULL;
|
||||
if (JS_IsException (s)) {
|
||||
JS_PopGCRef (ctx, &b_ref);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Root s — pretext_concat_value can trigger GC and move the heap string */
|
||||
JS_PushGCRef (ctx, &s_ref);
|
||||
s_ref.val = s;
|
||||
|
||||
b = (JSText *)chase (b_ref.val); /* re-fetch after possible GC */
|
||||
b = pretext_concat_value (ctx, b, s_ref.val);
|
||||
|
||||
JS_PopGCRef (ctx, &s_ref);
|
||||
JS_PopGCRef (ctx, &b_ref);
|
||||
return b;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user