jseption 0.0.0-stage → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/LICENSE +26 -0
  2. package/README.md +191 -2
  3. package/dist/atoms.d.ts +255 -0
  4. package/dist/atoms.js +445 -0
  5. package/dist/atoms.js.map +1 -0
  6. package/dist/builtins/array.d.ts +3 -0
  7. package/dist/builtins/array.js +116 -0
  8. package/dist/builtins/array.js.map +1 -0
  9. package/dist/builtins/bigint.d.ts +3 -0
  10. package/dist/builtins/bigint.js +122 -0
  11. package/dist/builtins/bigint.js.map +1 -0
  12. package/dist/builtins/boolean.d.ts +2 -0
  13. package/dist/builtins/boolean.js +26 -0
  14. package/dist/builtins/boolean.js.map +1 -0
  15. package/dist/builtins/date.d.ts +3 -0
  16. package/dist/builtins/date.js +1046 -0
  17. package/dist/builtins/date.js.map +1 -0
  18. package/dist/builtins/error.d.ts +2 -0
  19. package/dist/builtins/error.js +154 -0
  20. package/dist/builtins/error.js.map +1 -0
  21. package/dist/builtins/function.d.ts +5 -0
  22. package/dist/builtins/function.js +164 -0
  23. package/dist/builtins/function.js.map +1 -0
  24. package/dist/builtins/global.d.ts +2 -0
  25. package/dist/builtins/global.js +29 -0
  26. package/dist/builtins/global.js.map +1 -0
  27. package/dist/builtins/index.d.ts +3 -0
  28. package/dist/builtins/index.js +139 -0
  29. package/dist/builtins/index.js.map +1 -0
  30. package/dist/builtins/json.d.ts +6 -0
  31. package/dist/builtins/json.js +984 -0
  32. package/dist/builtins/json.js.map +1 -0
  33. package/dist/builtins/mapset.d.ts +4 -0
  34. package/dist/builtins/mapset.js +234 -0
  35. package/dist/builtins/mapset.js.map +1 -0
  36. package/dist/builtins/math.d.ts +2 -0
  37. package/dist/builtins/math.js +62 -0
  38. package/dist/builtins/math.js.map +1 -0
  39. package/dist/builtins/native.d.ts +22 -0
  40. package/dist/builtins/native.js +250 -0
  41. package/dist/builtins/native.js.map +1 -0
  42. package/dist/builtins/number.d.ts +4 -0
  43. package/dist/builtins/number.js +76 -0
  44. package/dist/builtins/number.js.map +1 -0
  45. package/dist/builtins/object.d.ts +12 -0
  46. package/dist/builtins/object.js +575 -0
  47. package/dist/builtins/object.js.map +1 -0
  48. package/dist/builtins/promise.d.ts +13 -0
  49. package/dist/builtins/promise.js +582 -0
  50. package/dist/builtins/promise.js.map +1 -0
  51. package/dist/builtins/proxy.d.ts +3 -0
  52. package/dist/builtins/proxy.js +226 -0
  53. package/dist/builtins/proxy.js.map +1 -0
  54. package/dist/builtins/reflect.d.ts +2 -0
  55. package/dist/builtins/reflect.js +109 -0
  56. package/dist/builtins/reflect.js.map +1 -0
  57. package/dist/builtins/regexp.d.ts +2 -0
  58. package/dist/builtins/regexp.js +203 -0
  59. package/dist/builtins/regexp.js.map +1 -0
  60. package/dist/builtins/string.d.ts +4 -0
  61. package/dist/builtins/string.js +135 -0
  62. package/dist/builtins/string.js.map +1 -0
  63. package/dist/builtins/symbol.d.ts +3 -0
  64. package/dist/builtins/symbol.js +98 -0
  65. package/dist/builtins/symbol.js.map +1 -0
  66. package/dist/builtins/typedarray.d.ts +15 -0
  67. package/dist/builtins/typedarray.js +1838 -0
  68. package/dist/builtins/typedarray.js.map +1 -0
  69. package/dist/builtins/weakref.d.ts +18 -0
  70. package/dist/builtins/weakref.js +130 -0
  71. package/dist/builtins/weakref.js.map +1 -0
  72. package/dist/dump.d.ts +2 -0
  73. package/dist/dump.js +124 -0
  74. package/dist/dump.js.map +1 -0
  75. package/dist/embed.d.ts +18 -0
  76. package/dist/embed.js +286 -0
  77. package/dist/embed.js.map +1 -0
  78. package/dist/interpreter.d.ts +81 -0
  79. package/dist/interpreter.js +3768 -0
  80. package/dist/interpreter.js.map +1 -0
  81. package/dist/jit.d.ts +59 -0
  82. package/dist/jit.js +3440 -0
  83. package/dist/jit.js.map +1 -0
  84. package/dist/jit_hook.d.ts +21 -0
  85. package/dist/jit_hook.js +4 -0
  86. package/dist/jit_hook.js.map +1 -0
  87. package/dist/jit_runtime.d.ts +104 -0
  88. package/dist/jit_runtime.js +721 -0
  89. package/dist/jit_runtime.js.map +1 -0
  90. package/dist/jit_stack.d.ts +24 -0
  91. package/dist/jit_stack.js +227 -0
  92. package/dist/jit_stack.js.map +1 -0
  93. package/dist/jseption.d.ts +15 -0
  94. package/dist/jseption.js +61 -0
  95. package/dist/jseption.js.map +1 -0
  96. package/dist/opcodes.d.ts +347 -0
  97. package/dist/opcodes.js +322 -0
  98. package/dist/opcodes.js.map +1 -0
  99. package/dist/parser.d.ts +283 -0
  100. package/dist/parser.js +9752 -0
  101. package/dist/parser.js.map +1 -0
  102. package/dist/qjs.d.ts +2 -0
  103. package/dist/qjs.js +122 -0
  104. package/dist/qjs.js.map +1 -0
  105. package/dist/quickjs.d.ts +460 -0
  106. package/dist/quickjs.js +3408 -0
  107. package/dist/quickjs.js.map +1 -0
  108. package/dist/std.d.ts +4 -0
  109. package/dist/std.js +273 -0
  110. package/dist/std.js.map +1 -0
  111. package/dist/values.d.ts +447 -0
  112. package/dist/values.js +461 -0
  113. package/dist/values.js.map +1 -0
  114. package/package.json +59 -4
@@ -0,0 +1,347 @@
1
+ export declare const enum OpFmt {
2
+ none = 0,
3
+ none_int = 1,
4
+ none_loc = 2,
5
+ none_arg = 3,
6
+ none_var_ref = 4,
7
+ u8 = 5,
8
+ i8 = 6,
9
+ loc8 = 7,
10
+ const8 = 8,
11
+ label8 = 9,
12
+ u16 = 10,
13
+ i16 = 11,
14
+ label16 = 12,
15
+ npop = 13,
16
+ npopx = 14,
17
+ npop_u16 = 15,
18
+ loc = 16,
19
+ arg = 17,
20
+ var_ref = 18,
21
+ u32 = 19,
22
+ i32 = 20,
23
+ const = 21,
24
+ label = 22,
25
+ atom = 23,
26
+ atom_u8 = 24,
27
+ atom_u16 = 25,
28
+ atom_label_u8 = 26,
29
+ atom_label_u16 = 27,
30
+ label_u16 = 28
31
+ }
32
+ export declare const enum OP {
33
+ invalid = 0,
34
+ push_i32 = 1,
35
+ push_const = 2,
36
+ fclosure = 3,
37
+ push_atom_value = 4,
38
+ private_symbol = 5,
39
+ undefined = 6,
40
+ null = 7,
41
+ push_this = 8,
42
+ push_false = 9,
43
+ push_true = 10,
44
+ object = 11,
45
+ special_object = 12,
46
+ rest = 13,
47
+ drop = 14,
48
+ nip = 15,
49
+ nip1 = 16,
50
+ dup = 17,
51
+ dup1 = 18,
52
+ dup2 = 19,
53
+ dup3 = 20,
54
+ insert2 = 21,
55
+ insert3 = 22,
56
+ insert4 = 23,
57
+ perm3 = 24,
58
+ perm4 = 25,
59
+ perm5 = 26,
60
+ swap = 27,
61
+ swap2 = 28,
62
+ rot3l = 29,
63
+ rot3r = 30,
64
+ rot4l = 31,
65
+ rot5l = 32,
66
+ call_constructor = 33,
67
+ call = 34,
68
+ tail_call = 35,
69
+ call_method = 36,
70
+ tail_call_method = 37,
71
+ array_from = 38,
72
+ apply = 39,
73
+ return = 40,
74
+ return_undef = 41,
75
+ check_ctor_return = 42,
76
+ check_ctor = 43,
77
+ init_ctor = 44,
78
+ check_brand = 45,
79
+ add_brand = 46,
80
+ return_async = 47,
81
+ throw = 48,
82
+ throw_error = 49,
83
+ eval = 50,
84
+ apply_eval = 51,
85
+ regexp = 52,
86
+ get_super = 53,
87
+ import = 54,
88
+ check_var = 55,
89
+ get_var_undef = 56,
90
+ get_var = 57,
91
+ put_var = 58,
92
+ put_var_init = 59,
93
+ put_var_strict = 60,
94
+ get_ref_value = 61,
95
+ put_ref_value = 62,
96
+ define_var = 63,
97
+ check_define_var = 64,
98
+ define_func = 65,
99
+ get_field = 66,
100
+ get_field2 = 67,
101
+ put_field = 68,
102
+ get_private_field = 69,
103
+ put_private_field = 70,
104
+ define_private_field = 71,
105
+ get_array_el = 72,
106
+ get_array_el2 = 73,
107
+ put_array_el = 74,
108
+ get_super_value = 75,
109
+ put_super_value = 76,
110
+ define_field = 77,
111
+ set_name = 78,
112
+ set_name_computed = 79,
113
+ set_proto = 80,
114
+ set_home_object = 81,
115
+ define_array_el = 82,
116
+ append = 83,
117
+ copy_data_properties = 84,
118
+ define_method = 85,
119
+ define_method_computed = 86,
120
+ define_class = 87,
121
+ define_class_computed = 88,
122
+ get_loc = 89,
123
+ put_loc = 90,
124
+ set_loc = 91,
125
+ get_arg = 92,
126
+ put_arg = 93,
127
+ set_arg = 94,
128
+ get_var_ref = 95,
129
+ put_var_ref = 96,
130
+ set_var_ref = 97,
131
+ set_loc_uninitialized = 98,
132
+ get_loc_check = 99,
133
+ put_loc_check = 100,
134
+ put_loc_check_init = 101,
135
+ get_loc_checkthis = 102,
136
+ get_var_ref_check = 103,
137
+ put_var_ref_check = 104,
138
+ put_var_ref_check_init = 105,
139
+ close_loc = 106,
140
+ if_false = 107,
141
+ if_true = 108,
142
+ goto = 109,
143
+ catch = 110,
144
+ gosub = 111,
145
+ ret = 112,
146
+ nip_catch = 113,
147
+ to_object = 114,
148
+ to_propkey = 115,
149
+ to_propkey2 = 116,
150
+ with_get_var = 117,
151
+ with_put_var = 118,
152
+ with_delete_var = 119,
153
+ with_make_ref = 120,
154
+ with_get_ref = 121,
155
+ make_loc_ref = 122,
156
+ make_arg_ref = 123,
157
+ make_var_ref_ref = 124,
158
+ make_var_ref = 125,
159
+ for_in_start = 126,
160
+ for_of_start = 127,
161
+ for_await_of_start = 128,
162
+ for_in_next = 129,
163
+ for_of_next = 130,
164
+ for_await_of_next = 131,
165
+ iterator_check_object = 132,
166
+ iterator_get_value_done = 133,
167
+ iterator_close = 134,
168
+ iterator_next = 135,
169
+ iterator_call = 136,
170
+ initial_yield = 137,
171
+ yield = 138,
172
+ yield_star = 139,
173
+ async_yield_star = 140,
174
+ await = 141,
175
+ neg = 142,
176
+ plus = 143,
177
+ dec = 144,
178
+ inc = 145,
179
+ post_dec = 146,
180
+ post_inc = 147,
181
+ dec_loc = 148,
182
+ inc_loc = 149,
183
+ add_loc = 150,
184
+ not = 151,
185
+ lnot = 152,
186
+ typeof = 153,
187
+ delete = 154,
188
+ delete_var = 155,
189
+ mul = 156,
190
+ div = 157,
191
+ mod = 158,
192
+ add = 159,
193
+ sub = 160,
194
+ pow = 161,
195
+ shl = 162,
196
+ sar = 163,
197
+ shr = 164,
198
+ lt = 165,
199
+ lte = 166,
200
+ gt = 167,
201
+ gte = 168,
202
+ instanceof = 169,
203
+ in = 170,
204
+ eq = 171,
205
+ neq = 172,
206
+ strict_eq = 173,
207
+ strict_neq = 174,
208
+ and = 175,
209
+ xor = 176,
210
+ or = 177,
211
+ is_undefined_or_null = 178,
212
+ private_in = 179,
213
+ push_bigint_i32 = 180,
214
+ nop = 181,
215
+ enter_scope = 182,
216
+ leave_scope = 183,
217
+ label = 184,
218
+ scope_get_var_undef = 185,
219
+ scope_get_var = 186,
220
+ scope_put_var = 187,
221
+ scope_delete_var = 188,
222
+ scope_make_ref = 189,
223
+ scope_get_ref = 190,
224
+ scope_put_var_init = 191,
225
+ scope_get_var_checkthis = 192,
226
+ scope_get_private_field = 193,
227
+ scope_get_private_field2 = 194,
228
+ scope_put_private_field = 195,
229
+ scope_in_private_field = 196,
230
+ get_field_opt_chain = 197,
231
+ get_array_el_opt_chain = 198,
232
+ set_class_name = 199,
233
+ line_num = 200,
234
+ push_minus1 = 182,
235
+ push_0 = 183,
236
+ push_1 = 184,
237
+ push_2 = 185,
238
+ push_3 = 186,
239
+ push_4 = 187,
240
+ push_5 = 188,
241
+ push_6 = 189,
242
+ push_7 = 190,
243
+ push_i8 = 191,
244
+ push_i16 = 192,
245
+ push_const8 = 193,
246
+ fclosure8 = 194,
247
+ push_empty_string = 195,
248
+ get_loc8 = 196,
249
+ put_loc8 = 197,
250
+ set_loc8 = 198,
251
+ get_loc0 = 199,
252
+ get_loc1 = 200,
253
+ get_loc2 = 201,
254
+ get_loc3 = 202,
255
+ put_loc0 = 203,
256
+ put_loc1 = 204,
257
+ put_loc2 = 205,
258
+ put_loc3 = 206,
259
+ set_loc0 = 207,
260
+ set_loc1 = 208,
261
+ set_loc2 = 209,
262
+ set_loc3 = 210,
263
+ get_arg0 = 211,
264
+ get_arg1 = 212,
265
+ get_arg2 = 213,
266
+ get_arg3 = 214,
267
+ put_arg0 = 215,
268
+ put_arg1 = 216,
269
+ put_arg2 = 217,
270
+ put_arg3 = 218,
271
+ set_arg0 = 219,
272
+ set_arg1 = 220,
273
+ set_arg2 = 221,
274
+ set_arg3 = 222,
275
+ get_var_ref0 = 223,
276
+ get_var_ref1 = 224,
277
+ get_var_ref2 = 225,
278
+ get_var_ref3 = 226,
279
+ put_var_ref0 = 227,
280
+ put_var_ref1 = 228,
281
+ put_var_ref2 = 229,
282
+ put_var_ref3 = 230,
283
+ set_var_ref0 = 231,
284
+ set_var_ref1 = 232,
285
+ set_var_ref2 = 233,
286
+ set_var_ref3 = 234,
287
+ get_length = 235,
288
+ if_false8 = 236,
289
+ if_true8 = 237,
290
+ goto8 = 238,
291
+ goto16 = 239,
292
+ call0 = 240,
293
+ call1 = 241,
294
+ call2 = 242,
295
+ call3 = 243,
296
+ is_undefined = 244,
297
+ is_null = 245,
298
+ typeof_is_undefined = 246,
299
+ typeof_is_function = 247,
300
+ COUNT = 248
301
+ }
302
+ export declare const OP_TEMP_START = 182;
303
+ export declare const OP_TEMP_END = 201;
304
+ export interface JSOpCode {
305
+ name: string;
306
+ size: number;
307
+ n_pop: number;
308
+ n_push: number;
309
+ fmt: OpFmt;
310
+ }
311
+ export declare const opcode_info: JSOpCode[];
312
+ export declare function short_opcode_info(op: number): JSOpCode;
313
+ export declare const enum OPSpecialObject {
314
+ ARGUMENTS = 0,
315
+ MAPPED_ARGUMENTS = 1,
316
+ THIS_FUNC = 2,
317
+ NEW_TARGET = 3,
318
+ HOME_OBJECT = 4,
319
+ VAR_OBJECT = 5,
320
+ IMPORT_META = 6
321
+ }
322
+ export declare const OP_DEFINE_METHOD_METHOD = 0;
323
+ export declare const OP_DEFINE_METHOD_GETTER = 1;
324
+ export declare const OP_DEFINE_METHOD_SETTER = 2;
325
+ export declare const OP_DEFINE_METHOD_ENUMERABLE = 4;
326
+ export declare const JS_DEFINE_CLASS_HAS_HERITAGE: number;
327
+ export declare const JS_THROW_VAR_RO = 0;
328
+ export declare const JS_THROW_VAR_REDECL = 1;
329
+ export declare const JS_THROW_VAR_UNINITIALIZED = 2;
330
+ export declare const JS_THROW_ERROR_DELETE_SUPER = 3;
331
+ export declare const JS_THROW_ERROR_ITERATOR_THROW = 4;
332
+ export declare const FUNC_RET_AWAIT = 0;
333
+ export declare const FUNC_RET_YIELD = 1;
334
+ export declare const FUNC_RET_YIELD_STAR = 2;
335
+ export declare const FUNC_RET_INITIAL_YIELD = 3;
336
+ export declare const DEFINE_GLOBAL_LEX_VAR: number;
337
+ export declare const DEFINE_GLOBAL_FUNC_VAR: number;
338
+ export declare const OP_COPY_DATA_PROPERTIES_EXCLUDED_MASK = 0;
339
+ export declare function get_u8(buf: Uint8Array, pos: number): number;
340
+ export declare function get_i8(buf: Uint8Array, pos: number): number;
341
+ export declare function get_u16(buf: Uint8Array, pos: number): number;
342
+ export declare function get_i16(buf: Uint8Array, pos: number): number;
343
+ export declare function get_u32(buf: Uint8Array, pos: number): number;
344
+ export declare function get_i32(buf: Uint8Array, pos: number): number;
345
+ export declare function put_u8(buf: Uint8Array, pos: number, v: number): void;
346
+ export declare function put_u16(buf: Uint8Array, pos: number, v: number): void;
347
+ export declare function put_u32(buf: Uint8Array, pos: number, v: number): void;
@@ -0,0 +1,322 @@
1
+ /* Generated from quickjs-opcode.h (QuickJS 2025-04-26). Do not edit by hand.
2
+ Numbering follows quickjs.c: the temporary opcodes (only present in the
3
+ compiler phases 1 and 2) overlap with the short opcodes. */
4
+ export const OP_TEMP_START = 182;
5
+ export const OP_TEMP_END = 201;
6
+ /* indexed in header order: [regular opcodes..nop][temporary opcodes][short opcodes] */
7
+ export const opcode_info = [
8
+ { name: 'invalid', size: 1, n_pop: 0, n_push: 0, fmt: 0 /* OpFmt.none */ },
9
+ { name: 'push_i32', size: 5, n_pop: 0, n_push: 1, fmt: 20 /* OpFmt.i32 */ },
10
+ { name: 'push_const', size: 5, n_pop: 0, n_push: 1, fmt: 21 /* OpFmt.const */ },
11
+ { name: 'fclosure', size: 5, n_pop: 0, n_push: 1, fmt: 21 /* OpFmt.const */ },
12
+ { name: 'push_atom_value', size: 5, n_pop: 0, n_push: 1, fmt: 23 /* OpFmt.atom */ },
13
+ { name: 'private_symbol', size: 5, n_pop: 0, n_push: 1, fmt: 23 /* OpFmt.atom */ },
14
+ { name: 'undefined', size: 1, n_pop: 0, n_push: 1, fmt: 0 /* OpFmt.none */ },
15
+ { name: 'null', size: 1, n_pop: 0, n_push: 1, fmt: 0 /* OpFmt.none */ },
16
+ { name: 'push_this', size: 1, n_pop: 0, n_push: 1, fmt: 0 /* OpFmt.none */ },
17
+ { name: 'push_false', size: 1, n_pop: 0, n_push: 1, fmt: 0 /* OpFmt.none */ },
18
+ { name: 'push_true', size: 1, n_pop: 0, n_push: 1, fmt: 0 /* OpFmt.none */ },
19
+ { name: 'object', size: 1, n_pop: 0, n_push: 1, fmt: 0 /* OpFmt.none */ },
20
+ { name: 'special_object', size: 2, n_pop: 0, n_push: 1, fmt: 5 /* OpFmt.u8 */ },
21
+ { name: 'rest', size: 3, n_pop: 0, n_push: 1, fmt: 10 /* OpFmt.u16 */ },
22
+ { name: 'drop', size: 1, n_pop: 1, n_push: 0, fmt: 0 /* OpFmt.none */ },
23
+ { name: 'nip', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
24
+ { name: 'nip1', size: 1, n_pop: 3, n_push: 2, fmt: 0 /* OpFmt.none */ },
25
+ { name: 'dup', size: 1, n_pop: 1, n_push: 2, fmt: 0 /* OpFmt.none */ },
26
+ { name: 'dup1', size: 1, n_pop: 2, n_push: 3, fmt: 0 /* OpFmt.none */ },
27
+ { name: 'dup2', size: 1, n_pop: 2, n_push: 4, fmt: 0 /* OpFmt.none */ },
28
+ { name: 'dup3', size: 1, n_pop: 3, n_push: 6, fmt: 0 /* OpFmt.none */ },
29
+ { name: 'insert2', size: 1, n_pop: 2, n_push: 3, fmt: 0 /* OpFmt.none */ },
30
+ { name: 'insert3', size: 1, n_pop: 3, n_push: 4, fmt: 0 /* OpFmt.none */ },
31
+ { name: 'insert4', size: 1, n_pop: 4, n_push: 5, fmt: 0 /* OpFmt.none */ },
32
+ { name: 'perm3', size: 1, n_pop: 3, n_push: 3, fmt: 0 /* OpFmt.none */ },
33
+ { name: 'perm4', size: 1, n_pop: 4, n_push: 4, fmt: 0 /* OpFmt.none */ },
34
+ { name: 'perm5', size: 1, n_pop: 5, n_push: 5, fmt: 0 /* OpFmt.none */ },
35
+ { name: 'swap', size: 1, n_pop: 2, n_push: 2, fmt: 0 /* OpFmt.none */ },
36
+ { name: 'swap2', size: 1, n_pop: 4, n_push: 4, fmt: 0 /* OpFmt.none */ },
37
+ { name: 'rot3l', size: 1, n_pop: 3, n_push: 3, fmt: 0 /* OpFmt.none */ },
38
+ { name: 'rot3r', size: 1, n_pop: 3, n_push: 3, fmt: 0 /* OpFmt.none */ },
39
+ { name: 'rot4l', size: 1, n_pop: 4, n_push: 4, fmt: 0 /* OpFmt.none */ },
40
+ { name: 'rot5l', size: 1, n_pop: 5, n_push: 5, fmt: 0 /* OpFmt.none */ },
41
+ { name: 'call_constructor', size: 3, n_pop: 2, n_push: 1, fmt: 13 /* OpFmt.npop */ },
42
+ { name: 'call', size: 3, n_pop: 1, n_push: 1, fmt: 13 /* OpFmt.npop */ },
43
+ { name: 'tail_call', size: 3, n_pop: 1, n_push: 0, fmt: 13 /* OpFmt.npop */ },
44
+ { name: 'call_method', size: 3, n_pop: 2, n_push: 1, fmt: 13 /* OpFmt.npop */ },
45
+ { name: 'tail_call_method', size: 3, n_pop: 2, n_push: 0, fmt: 13 /* OpFmt.npop */ },
46
+ { name: 'array_from', size: 3, n_pop: 0, n_push: 1, fmt: 13 /* OpFmt.npop */ },
47
+ { name: 'apply', size: 3, n_pop: 3, n_push: 1, fmt: 10 /* OpFmt.u16 */ },
48
+ { name: 'return', size: 1, n_pop: 1, n_push: 0, fmt: 0 /* OpFmt.none */ },
49
+ { name: 'return_undef', size: 1, n_pop: 0, n_push: 0, fmt: 0 /* OpFmt.none */ },
50
+ { name: 'check_ctor_return', size: 1, n_pop: 1, n_push: 2, fmt: 0 /* OpFmt.none */ },
51
+ { name: 'check_ctor', size: 1, n_pop: 0, n_push: 0, fmt: 0 /* OpFmt.none */ },
52
+ { name: 'init_ctor', size: 1, n_pop: 0, n_push: 1, fmt: 0 /* OpFmt.none */ },
53
+ { name: 'check_brand', size: 1, n_pop: 2, n_push: 2, fmt: 0 /* OpFmt.none */ },
54
+ { name: 'add_brand', size: 1, n_pop: 2, n_push: 0, fmt: 0 /* OpFmt.none */ },
55
+ { name: 'return_async', size: 1, n_pop: 1, n_push: 0, fmt: 0 /* OpFmt.none */ },
56
+ { name: 'throw', size: 1, n_pop: 1, n_push: 0, fmt: 0 /* OpFmt.none */ },
57
+ { name: 'throw_error', size: 6, n_pop: 0, n_push: 0, fmt: 24 /* OpFmt.atom_u8 */ },
58
+ { name: 'eval', size: 5, n_pop: 1, n_push: 1, fmt: 15 /* OpFmt.npop_u16 */ },
59
+ { name: 'apply_eval', size: 3, n_pop: 2, n_push: 1, fmt: 10 /* OpFmt.u16 */ },
60
+ { name: 'regexp', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
61
+ { name: 'get_super', size: 1, n_pop: 1, n_push: 1, fmt: 0 /* OpFmt.none */ },
62
+ { name: 'import', size: 1, n_pop: 1, n_push: 1, fmt: 0 /* OpFmt.none */ },
63
+ { name: 'check_var', size: 5, n_pop: 0, n_push: 1, fmt: 23 /* OpFmt.atom */ },
64
+ { name: 'get_var_undef', size: 5, n_pop: 0, n_push: 1, fmt: 23 /* OpFmt.atom */ },
65
+ { name: 'get_var', size: 5, n_pop: 0, n_push: 1, fmt: 23 /* OpFmt.atom */ },
66
+ { name: 'put_var', size: 5, n_pop: 1, n_push: 0, fmt: 23 /* OpFmt.atom */ },
67
+ { name: 'put_var_init', size: 5, n_pop: 1, n_push: 0, fmt: 23 /* OpFmt.atom */ },
68
+ { name: 'put_var_strict', size: 5, n_pop: 2, n_push: 0, fmt: 23 /* OpFmt.atom */ },
69
+ { name: 'get_ref_value', size: 1, n_pop: 2, n_push: 3, fmt: 0 /* OpFmt.none */ },
70
+ { name: 'put_ref_value', size: 1, n_pop: 3, n_push: 0, fmt: 0 /* OpFmt.none */ },
71
+ { name: 'define_var', size: 6, n_pop: 0, n_push: 0, fmt: 24 /* OpFmt.atom_u8 */ },
72
+ { name: 'check_define_var', size: 6, n_pop: 0, n_push: 0, fmt: 24 /* OpFmt.atom_u8 */ },
73
+ { name: 'define_func', size: 6, n_pop: 1, n_push: 0, fmt: 24 /* OpFmt.atom_u8 */ },
74
+ { name: 'get_field', size: 5, n_pop: 1, n_push: 1, fmt: 23 /* OpFmt.atom */ },
75
+ { name: 'get_field2', size: 5, n_pop: 1, n_push: 2, fmt: 23 /* OpFmt.atom */ },
76
+ { name: 'put_field', size: 5, n_pop: 2, n_push: 0, fmt: 23 /* OpFmt.atom */ },
77
+ { name: 'get_private_field', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
78
+ { name: 'put_private_field', size: 1, n_pop: 3, n_push: 0, fmt: 0 /* OpFmt.none */ },
79
+ { name: 'define_private_field', size: 1, n_pop: 3, n_push: 1, fmt: 0 /* OpFmt.none */ },
80
+ { name: 'get_array_el', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
81
+ { name: 'get_array_el2', size: 1, n_pop: 2, n_push: 2, fmt: 0 /* OpFmt.none */ },
82
+ { name: 'put_array_el', size: 1, n_pop: 3, n_push: 0, fmt: 0 /* OpFmt.none */ },
83
+ { name: 'get_super_value', size: 1, n_pop: 3, n_push: 1, fmt: 0 /* OpFmt.none */ },
84
+ { name: 'put_super_value', size: 1, n_pop: 4, n_push: 0, fmt: 0 /* OpFmt.none */ },
85
+ { name: 'define_field', size: 5, n_pop: 2, n_push: 1, fmt: 23 /* OpFmt.atom */ },
86
+ { name: 'set_name', size: 5, n_pop: 1, n_push: 1, fmt: 23 /* OpFmt.atom */ },
87
+ { name: 'set_name_computed', size: 1, n_pop: 2, n_push: 2, fmt: 0 /* OpFmt.none */ },
88
+ { name: 'set_proto', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
89
+ { name: 'set_home_object', size: 1, n_pop: 2, n_push: 2, fmt: 0 /* OpFmt.none */ },
90
+ { name: 'define_array_el', size: 1, n_pop: 3, n_push: 2, fmt: 0 /* OpFmt.none */ },
91
+ { name: 'append', size: 1, n_pop: 3, n_push: 2, fmt: 0 /* OpFmt.none */ },
92
+ { name: 'copy_data_properties', size: 2, n_pop: 3, n_push: 3, fmt: 5 /* OpFmt.u8 */ },
93
+ { name: 'define_method', size: 6, n_pop: 2, n_push: 1, fmt: 24 /* OpFmt.atom_u8 */ },
94
+ { name: 'define_method_computed', size: 2, n_pop: 3, n_push: 1, fmt: 5 /* OpFmt.u8 */ },
95
+ { name: 'define_class', size: 6, n_pop: 2, n_push: 2, fmt: 24 /* OpFmt.atom_u8 */ },
96
+ { name: 'define_class_computed', size: 6, n_pop: 3, n_push: 3, fmt: 24 /* OpFmt.atom_u8 */ },
97
+ { name: 'get_loc', size: 3, n_pop: 0, n_push: 1, fmt: 16 /* OpFmt.loc */ },
98
+ { name: 'put_loc', size: 3, n_pop: 1, n_push: 0, fmt: 16 /* OpFmt.loc */ },
99
+ { name: 'set_loc', size: 3, n_pop: 1, n_push: 1, fmt: 16 /* OpFmt.loc */ },
100
+ { name: 'get_arg', size: 3, n_pop: 0, n_push: 1, fmt: 17 /* OpFmt.arg */ },
101
+ { name: 'put_arg', size: 3, n_pop: 1, n_push: 0, fmt: 17 /* OpFmt.arg */ },
102
+ { name: 'set_arg', size: 3, n_pop: 1, n_push: 1, fmt: 17 /* OpFmt.arg */ },
103
+ { name: 'get_var_ref', size: 3, n_pop: 0, n_push: 1, fmt: 18 /* OpFmt.var_ref */ },
104
+ { name: 'put_var_ref', size: 3, n_pop: 1, n_push: 0, fmt: 18 /* OpFmt.var_ref */ },
105
+ { name: 'set_var_ref', size: 3, n_pop: 1, n_push: 1, fmt: 18 /* OpFmt.var_ref */ },
106
+ { name: 'set_loc_uninitialized', size: 3, n_pop: 0, n_push: 0, fmt: 16 /* OpFmt.loc */ },
107
+ { name: 'get_loc_check', size: 3, n_pop: 0, n_push: 1, fmt: 16 /* OpFmt.loc */ },
108
+ { name: 'put_loc_check', size: 3, n_pop: 1, n_push: 0, fmt: 16 /* OpFmt.loc */ },
109
+ { name: 'put_loc_check_init', size: 3, n_pop: 1, n_push: 0, fmt: 16 /* OpFmt.loc */ },
110
+ { name: 'get_loc_checkthis', size: 3, n_pop: 0, n_push: 1, fmt: 16 /* OpFmt.loc */ },
111
+ { name: 'get_var_ref_check', size: 3, n_pop: 0, n_push: 1, fmt: 18 /* OpFmt.var_ref */ },
112
+ { name: 'put_var_ref_check', size: 3, n_pop: 1, n_push: 0, fmt: 18 /* OpFmt.var_ref */ },
113
+ { name: 'put_var_ref_check_init', size: 3, n_pop: 1, n_push: 0, fmt: 18 /* OpFmt.var_ref */ },
114
+ { name: 'close_loc', size: 3, n_pop: 0, n_push: 0, fmt: 16 /* OpFmt.loc */ },
115
+ { name: 'if_false', size: 5, n_pop: 1, n_push: 0, fmt: 22 /* OpFmt.label */ },
116
+ { name: 'if_true', size: 5, n_pop: 1, n_push: 0, fmt: 22 /* OpFmt.label */ },
117
+ { name: 'goto', size: 5, n_pop: 0, n_push: 0, fmt: 22 /* OpFmt.label */ },
118
+ { name: 'catch', size: 5, n_pop: 0, n_push: 1, fmt: 22 /* OpFmt.label */ },
119
+ { name: 'gosub', size: 5, n_pop: 0, n_push: 0, fmt: 22 /* OpFmt.label */ },
120
+ { name: 'ret', size: 1, n_pop: 1, n_push: 0, fmt: 0 /* OpFmt.none */ },
121
+ { name: 'nip_catch', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
122
+ { name: 'to_object', size: 1, n_pop: 1, n_push: 1, fmt: 0 /* OpFmt.none */ },
123
+ { name: 'to_propkey', size: 1, n_pop: 1, n_push: 1, fmt: 0 /* OpFmt.none */ },
124
+ { name: 'to_propkey2', size: 1, n_pop: 2, n_push: 2, fmt: 0 /* OpFmt.none */ },
125
+ { name: 'with_get_var', size: 10, n_pop: 1, n_push: 0, fmt: 26 /* OpFmt.atom_label_u8 */ },
126
+ { name: 'with_put_var', size: 10, n_pop: 2, n_push: 1, fmt: 26 /* OpFmt.atom_label_u8 */ },
127
+ { name: 'with_delete_var', size: 10, n_pop: 1, n_push: 0, fmt: 26 /* OpFmt.atom_label_u8 */ },
128
+ { name: 'with_make_ref', size: 10, n_pop: 1, n_push: 0, fmt: 26 /* OpFmt.atom_label_u8 */ },
129
+ { name: 'with_get_ref', size: 10, n_pop: 1, n_push: 0, fmt: 26 /* OpFmt.atom_label_u8 */ },
130
+ { name: 'make_loc_ref', size: 7, n_pop: 0, n_push: 2, fmt: 25 /* OpFmt.atom_u16 */ },
131
+ { name: 'make_arg_ref', size: 7, n_pop: 0, n_push: 2, fmt: 25 /* OpFmt.atom_u16 */ },
132
+ { name: 'make_var_ref_ref', size: 7, n_pop: 0, n_push: 2, fmt: 25 /* OpFmt.atom_u16 */ },
133
+ { name: 'make_var_ref', size: 5, n_pop: 0, n_push: 2, fmt: 23 /* OpFmt.atom */ },
134
+ { name: 'for_in_start', size: 1, n_pop: 1, n_push: 1, fmt: 0 /* OpFmt.none */ },
135
+ { name: 'for_of_start', size: 1, n_pop: 1, n_push: 3, fmt: 0 /* OpFmt.none */ },
136
+ { name: 'for_await_of_start', size: 1, n_pop: 1, n_push: 3, fmt: 0 /* OpFmt.none */ },
137
+ { name: 'for_in_next', size: 1, n_pop: 1, n_push: 3, fmt: 0 /* OpFmt.none */ },
138
+ { name: 'for_of_next', size: 2, n_pop: 3, n_push: 5, fmt: 5 /* OpFmt.u8 */ },
139
+ { name: 'for_await_of_next', size: 1, n_pop: 3, n_push: 4, fmt: 0 /* OpFmt.none */ },
140
+ { name: 'iterator_check_object', size: 1, n_pop: 1, n_push: 1, fmt: 0 /* OpFmt.none */ },
141
+ { name: 'iterator_get_value_done', size: 1, n_pop: 2, n_push: 3, fmt: 0 /* OpFmt.none */ },
142
+ { name: 'iterator_close', size: 1, n_pop: 3, n_push: 0, fmt: 0 /* OpFmt.none */ },
143
+ { name: 'iterator_next', size: 1, n_pop: 4, n_push: 4, fmt: 0 /* OpFmt.none */ },
144
+ { name: 'iterator_call', size: 2, n_pop: 4, n_push: 5, fmt: 5 /* OpFmt.u8 */ },
145
+ { name: 'initial_yield', size: 1, n_pop: 0, n_push: 0, fmt: 0 /* OpFmt.none */ },
146
+ { name: 'yield', size: 1, n_pop: 1, n_push: 2, fmt: 0 /* OpFmt.none */ },
147
+ { name: 'yield_star', size: 1, n_pop: 1, n_push: 2, fmt: 0 /* OpFmt.none */ },
148
+ { name: 'async_yield_star', size: 1, n_pop: 1, n_push: 2, fmt: 0 /* OpFmt.none */ },
149
+ { name: 'await', size: 1, n_pop: 1, n_push: 1, fmt: 0 /* OpFmt.none */ },
150
+ { name: 'neg', size: 1, n_pop: 1, n_push: 1, fmt: 0 /* OpFmt.none */ },
151
+ { name: 'plus', size: 1, n_pop: 1, n_push: 1, fmt: 0 /* OpFmt.none */ },
152
+ { name: 'dec', size: 1, n_pop: 1, n_push: 1, fmt: 0 /* OpFmt.none */ },
153
+ { name: 'inc', size: 1, n_pop: 1, n_push: 1, fmt: 0 /* OpFmt.none */ },
154
+ { name: 'post_dec', size: 1, n_pop: 1, n_push: 2, fmt: 0 /* OpFmt.none */ },
155
+ { name: 'post_inc', size: 1, n_pop: 1, n_push: 2, fmt: 0 /* OpFmt.none */ },
156
+ { name: 'dec_loc', size: 2, n_pop: 0, n_push: 0, fmt: 7 /* OpFmt.loc8 */ },
157
+ { name: 'inc_loc', size: 2, n_pop: 0, n_push: 0, fmt: 7 /* OpFmt.loc8 */ },
158
+ { name: 'add_loc', size: 2, n_pop: 1, n_push: 0, fmt: 7 /* OpFmt.loc8 */ },
159
+ { name: 'not', size: 1, n_pop: 1, n_push: 1, fmt: 0 /* OpFmt.none */ },
160
+ { name: 'lnot', size: 1, n_pop: 1, n_push: 1, fmt: 0 /* OpFmt.none */ },
161
+ { name: 'typeof', size: 1, n_pop: 1, n_push: 1, fmt: 0 /* OpFmt.none */ },
162
+ { name: 'delete', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
163
+ { name: 'delete_var', size: 5, n_pop: 0, n_push: 1, fmt: 23 /* OpFmt.atom */ },
164
+ { name: 'mul', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
165
+ { name: 'div', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
166
+ { name: 'mod', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
167
+ { name: 'add', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
168
+ { name: 'sub', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
169
+ { name: 'pow', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
170
+ { name: 'shl', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
171
+ { name: 'sar', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
172
+ { name: 'shr', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
173
+ { name: 'lt', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
174
+ { name: 'lte', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
175
+ { name: 'gt', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
176
+ { name: 'gte', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
177
+ { name: 'instanceof', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
178
+ { name: 'in', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
179
+ { name: 'eq', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
180
+ { name: 'neq', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
181
+ { name: 'strict_eq', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
182
+ { name: 'strict_neq', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
183
+ { name: 'and', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
184
+ { name: 'xor', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
185
+ { name: 'or', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
186
+ { name: 'is_undefined_or_null', size: 1, n_pop: 1, n_push: 1, fmt: 0 /* OpFmt.none */ },
187
+ { name: 'private_in', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
188
+ { name: 'push_bigint_i32', size: 5, n_pop: 0, n_push: 1, fmt: 20 /* OpFmt.i32 */ },
189
+ { name: 'nop', size: 1, n_pop: 0, n_push: 0, fmt: 0 /* OpFmt.none */ },
190
+ { name: 'enter_scope', size: 3, n_pop: 0, n_push: 0, fmt: 10 /* OpFmt.u16 */ },
191
+ { name: 'leave_scope', size: 3, n_pop: 0, n_push: 0, fmt: 10 /* OpFmt.u16 */ },
192
+ { name: 'label', size: 5, n_pop: 0, n_push: 0, fmt: 22 /* OpFmt.label */ },
193
+ { name: 'scope_get_var_undef', size: 7, n_pop: 0, n_push: 1, fmt: 25 /* OpFmt.atom_u16 */ },
194
+ { name: 'scope_get_var', size: 7, n_pop: 0, n_push: 1, fmt: 25 /* OpFmt.atom_u16 */ },
195
+ { name: 'scope_put_var', size: 7, n_pop: 1, n_push: 0, fmt: 25 /* OpFmt.atom_u16 */ },
196
+ { name: 'scope_delete_var', size: 7, n_pop: 0, n_push: 1, fmt: 25 /* OpFmt.atom_u16 */ },
197
+ { name: 'scope_make_ref', size: 11, n_pop: 0, n_push: 2, fmt: 27 /* OpFmt.atom_label_u16 */ },
198
+ { name: 'scope_get_ref', size: 7, n_pop: 0, n_push: 2, fmt: 25 /* OpFmt.atom_u16 */ },
199
+ { name: 'scope_put_var_init', size: 7, n_pop: 0, n_push: 2, fmt: 25 /* OpFmt.atom_u16 */ },
200
+ { name: 'scope_get_var_checkthis', size: 7, n_pop: 0, n_push: 1, fmt: 25 /* OpFmt.atom_u16 */ },
201
+ { name: 'scope_get_private_field', size: 7, n_pop: 1, n_push: 1, fmt: 25 /* OpFmt.atom_u16 */ },
202
+ { name: 'scope_get_private_field2', size: 7, n_pop: 1, n_push: 2, fmt: 25 /* OpFmt.atom_u16 */ },
203
+ { name: 'scope_put_private_field', size: 7, n_pop: 2, n_push: 0, fmt: 25 /* OpFmt.atom_u16 */ },
204
+ { name: 'scope_in_private_field', size: 7, n_pop: 1, n_push: 1, fmt: 25 /* OpFmt.atom_u16 */ },
205
+ { name: 'get_field_opt_chain', size: 5, n_pop: 1, n_push: 1, fmt: 23 /* OpFmt.atom */ },
206
+ { name: 'get_array_el_opt_chain', size: 1, n_pop: 2, n_push: 1, fmt: 0 /* OpFmt.none */ },
207
+ { name: 'set_class_name', size: 5, n_pop: 1, n_push: 1, fmt: 19 /* OpFmt.u32 */ },
208
+ { name: 'line_num', size: 5, n_pop: 0, n_push: 0, fmt: 19 /* OpFmt.u32 */ },
209
+ { name: 'push_minus1', size: 1, n_pop: 0, n_push: 1, fmt: 1 /* OpFmt.none_int */ },
210
+ { name: 'push_0', size: 1, n_pop: 0, n_push: 1, fmt: 1 /* OpFmt.none_int */ },
211
+ { name: 'push_1', size: 1, n_pop: 0, n_push: 1, fmt: 1 /* OpFmt.none_int */ },
212
+ { name: 'push_2', size: 1, n_pop: 0, n_push: 1, fmt: 1 /* OpFmt.none_int */ },
213
+ { name: 'push_3', size: 1, n_pop: 0, n_push: 1, fmt: 1 /* OpFmt.none_int */ },
214
+ { name: 'push_4', size: 1, n_pop: 0, n_push: 1, fmt: 1 /* OpFmt.none_int */ },
215
+ { name: 'push_5', size: 1, n_pop: 0, n_push: 1, fmt: 1 /* OpFmt.none_int */ },
216
+ { name: 'push_6', size: 1, n_pop: 0, n_push: 1, fmt: 1 /* OpFmt.none_int */ },
217
+ { name: 'push_7', size: 1, n_pop: 0, n_push: 1, fmt: 1 /* OpFmt.none_int */ },
218
+ { name: 'push_i8', size: 2, n_pop: 0, n_push: 1, fmt: 6 /* OpFmt.i8 */ },
219
+ { name: 'push_i16', size: 3, n_pop: 0, n_push: 1, fmt: 11 /* OpFmt.i16 */ },
220
+ { name: 'push_const8', size: 2, n_pop: 0, n_push: 1, fmt: 8 /* OpFmt.const8 */ },
221
+ { name: 'fclosure8', size: 2, n_pop: 0, n_push: 1, fmt: 8 /* OpFmt.const8 */ },
222
+ { name: 'push_empty_string', size: 1, n_pop: 0, n_push: 1, fmt: 0 /* OpFmt.none */ },
223
+ { name: 'get_loc8', size: 2, n_pop: 0, n_push: 1, fmt: 7 /* OpFmt.loc8 */ },
224
+ { name: 'put_loc8', size: 2, n_pop: 1, n_push: 0, fmt: 7 /* OpFmt.loc8 */ },
225
+ { name: 'set_loc8', size: 2, n_pop: 1, n_push: 1, fmt: 7 /* OpFmt.loc8 */ },
226
+ { name: 'get_loc0', size: 1, n_pop: 0, n_push: 1, fmt: 2 /* OpFmt.none_loc */ },
227
+ { name: 'get_loc1', size: 1, n_pop: 0, n_push: 1, fmt: 2 /* OpFmt.none_loc */ },
228
+ { name: 'get_loc2', size: 1, n_pop: 0, n_push: 1, fmt: 2 /* OpFmt.none_loc */ },
229
+ { name: 'get_loc3', size: 1, n_pop: 0, n_push: 1, fmt: 2 /* OpFmt.none_loc */ },
230
+ { name: 'put_loc0', size: 1, n_pop: 1, n_push: 0, fmt: 2 /* OpFmt.none_loc */ },
231
+ { name: 'put_loc1', size: 1, n_pop: 1, n_push: 0, fmt: 2 /* OpFmt.none_loc */ },
232
+ { name: 'put_loc2', size: 1, n_pop: 1, n_push: 0, fmt: 2 /* OpFmt.none_loc */ },
233
+ { name: 'put_loc3', size: 1, n_pop: 1, n_push: 0, fmt: 2 /* OpFmt.none_loc */ },
234
+ { name: 'set_loc0', size: 1, n_pop: 1, n_push: 1, fmt: 2 /* OpFmt.none_loc */ },
235
+ { name: 'set_loc1', size: 1, n_pop: 1, n_push: 1, fmt: 2 /* OpFmt.none_loc */ },
236
+ { name: 'set_loc2', size: 1, n_pop: 1, n_push: 1, fmt: 2 /* OpFmt.none_loc */ },
237
+ { name: 'set_loc3', size: 1, n_pop: 1, n_push: 1, fmt: 2 /* OpFmt.none_loc */ },
238
+ { name: 'get_arg0', size: 1, n_pop: 0, n_push: 1, fmt: 3 /* OpFmt.none_arg */ },
239
+ { name: 'get_arg1', size: 1, n_pop: 0, n_push: 1, fmt: 3 /* OpFmt.none_arg */ },
240
+ { name: 'get_arg2', size: 1, n_pop: 0, n_push: 1, fmt: 3 /* OpFmt.none_arg */ },
241
+ { name: 'get_arg3', size: 1, n_pop: 0, n_push: 1, fmt: 3 /* OpFmt.none_arg */ },
242
+ { name: 'put_arg0', size: 1, n_pop: 1, n_push: 0, fmt: 3 /* OpFmt.none_arg */ },
243
+ { name: 'put_arg1', size: 1, n_pop: 1, n_push: 0, fmt: 3 /* OpFmt.none_arg */ },
244
+ { name: 'put_arg2', size: 1, n_pop: 1, n_push: 0, fmt: 3 /* OpFmt.none_arg */ },
245
+ { name: 'put_arg3', size: 1, n_pop: 1, n_push: 0, fmt: 3 /* OpFmt.none_arg */ },
246
+ { name: 'set_arg0', size: 1, n_pop: 1, n_push: 1, fmt: 3 /* OpFmt.none_arg */ },
247
+ { name: 'set_arg1', size: 1, n_pop: 1, n_push: 1, fmt: 3 /* OpFmt.none_arg */ },
248
+ { name: 'set_arg2', size: 1, n_pop: 1, n_push: 1, fmt: 3 /* OpFmt.none_arg */ },
249
+ { name: 'set_arg3', size: 1, n_pop: 1, n_push: 1, fmt: 3 /* OpFmt.none_arg */ },
250
+ { name: 'get_var_ref0', size: 1, n_pop: 0, n_push: 1, fmt: 4 /* OpFmt.none_var_ref */ },
251
+ { name: 'get_var_ref1', size: 1, n_pop: 0, n_push: 1, fmt: 4 /* OpFmt.none_var_ref */ },
252
+ { name: 'get_var_ref2', size: 1, n_pop: 0, n_push: 1, fmt: 4 /* OpFmt.none_var_ref */ },
253
+ { name: 'get_var_ref3', size: 1, n_pop: 0, n_push: 1, fmt: 4 /* OpFmt.none_var_ref */ },
254
+ { name: 'put_var_ref0', size: 1, n_pop: 1, n_push: 0, fmt: 4 /* OpFmt.none_var_ref */ },
255
+ { name: 'put_var_ref1', size: 1, n_pop: 1, n_push: 0, fmt: 4 /* OpFmt.none_var_ref */ },
256
+ { name: 'put_var_ref2', size: 1, n_pop: 1, n_push: 0, fmt: 4 /* OpFmt.none_var_ref */ },
257
+ { name: 'put_var_ref3', size: 1, n_pop: 1, n_push: 0, fmt: 4 /* OpFmt.none_var_ref */ },
258
+ { name: 'set_var_ref0', size: 1, n_pop: 1, n_push: 1, fmt: 4 /* OpFmt.none_var_ref */ },
259
+ { name: 'set_var_ref1', size: 1, n_pop: 1, n_push: 1, fmt: 4 /* OpFmt.none_var_ref */ },
260
+ { name: 'set_var_ref2', size: 1, n_pop: 1, n_push: 1, fmt: 4 /* OpFmt.none_var_ref */ },
261
+ { name: 'set_var_ref3', size: 1, n_pop: 1, n_push: 1, fmt: 4 /* OpFmt.none_var_ref */ },
262
+ { name: 'get_length', size: 1, n_pop: 1, n_push: 1, fmt: 0 /* OpFmt.none */ },
263
+ { name: 'if_false8', size: 2, n_pop: 1, n_push: 0, fmt: 9 /* OpFmt.label8 */ },
264
+ { name: 'if_true8', size: 2, n_pop: 1, n_push: 0, fmt: 9 /* OpFmt.label8 */ },
265
+ { name: 'goto8', size: 2, n_pop: 0, n_push: 0, fmt: 9 /* OpFmt.label8 */ },
266
+ { name: 'goto16', size: 3, n_pop: 0, n_push: 0, fmt: 12 /* OpFmt.label16 */ },
267
+ { name: 'call0', size: 1, n_pop: 1, n_push: 1, fmt: 14 /* OpFmt.npopx */ },
268
+ { name: 'call1', size: 1, n_pop: 1, n_push: 1, fmt: 14 /* OpFmt.npopx */ },
269
+ { name: 'call2', size: 1, n_pop: 1, n_push: 1, fmt: 14 /* OpFmt.npopx */ },
270
+ { name: 'call3', size: 1, n_pop: 1, n_push: 1, fmt: 14 /* OpFmt.npopx */ },
271
+ { name: 'is_undefined', size: 1, n_pop: 1, n_push: 1, fmt: 0 /* OpFmt.none */ },
272
+ { name: 'is_null', size: 1, n_pop: 1, n_push: 1, fmt: 0 /* OpFmt.none */ },
273
+ { name: 'typeof_is_undefined', size: 1, n_pop: 1, n_push: 1, fmt: 0 /* OpFmt.none */ },
274
+ { name: 'typeof_is_function', size: 1, n_pop: 1, n_push: 1, fmt: 0 /* OpFmt.none */ },
275
+ ];
276
+ /* opcode info for final bytecode (short opcodes, no temporary opcodes) */
277
+ export function short_opcode_info(op) {
278
+ return opcode_info[op >= OP_TEMP_START ? op + (OP_TEMP_END - OP_TEMP_START) : op];
279
+ }
280
+ /* flags operand of OP_define_method / OP_define_method_computed */
281
+ export const OP_DEFINE_METHOD_METHOD = 0;
282
+ export const OP_DEFINE_METHOD_GETTER = 1;
283
+ export const OP_DEFINE_METHOD_SETTER = 2;
284
+ export const OP_DEFINE_METHOD_ENUMERABLE = 4;
285
+ /* flags operand of OP_define_class */
286
+ export const JS_DEFINE_CLASS_HAS_HERITAGE = 1 << 0;
287
+ /* operand of OP_throw_error */
288
+ export const JS_THROW_VAR_RO = 0;
289
+ export const JS_THROW_VAR_REDECL = 1;
290
+ export const JS_THROW_VAR_UNINITIALIZED = 2;
291
+ export const JS_THROW_ERROR_DELETE_SUPER = 3;
292
+ export const JS_THROW_ERROR_ITERATOR_THROW = 4;
293
+ /* return values of JS_CallInternal for generators (JS_CALL_FLAG_GENERATOR) */
294
+ export const FUNC_RET_AWAIT = 0;
295
+ export const FUNC_RET_YIELD = 1;
296
+ export const FUNC_RET_YIELD_STAR = 2;
297
+ export const FUNC_RET_INITIAL_YIELD = 3;
298
+ /* flags operand of OP_define_var / OP_check_define_var */
299
+ export const DEFINE_GLOBAL_LEX_VAR = 1 << 7;
300
+ export const DEFINE_GLOBAL_FUNC_VAR = 1 << 6;
301
+ /* flags of OP_copy_data_properties: mask of stack positions */
302
+ export const OP_COPY_DATA_PROPERTIES_EXCLUDED_MASK = 0;
303
+ /* bytecode read helpers (little endian) */
304
+ export function get_u8(buf, pos) { return buf[pos]; }
305
+ export function get_i8(buf, pos) { return (buf[pos] << 24) >> 24; }
306
+ export function get_u16(buf, pos) { return buf[pos] | (buf[pos + 1] << 8); }
307
+ export function get_i16(buf, pos) { return ((buf[pos] | (buf[pos + 1] << 8)) << 16) >> 16; }
308
+ export function get_u32(buf, pos) {
309
+ return (buf[pos] | (buf[pos + 1] << 8) | (buf[pos + 2] << 16)) + buf[pos + 3] * 0x1000000;
310
+ }
311
+ export function get_i32(buf, pos) {
312
+ return buf[pos] | (buf[pos + 1] << 8) | (buf[pos + 2] << 16) | (buf[pos + 3] << 24);
313
+ }
314
+ export function put_u8(buf, pos, v) { buf[pos] = v & 0xff; }
315
+ export function put_u16(buf, pos, v) { buf[pos] = v & 0xff; buf[pos + 1] = (v >> 8) & 0xff; }
316
+ export function put_u32(buf, pos, v) {
317
+ buf[pos] = v & 0xff;
318
+ buf[pos + 1] = (v >>> 8) & 0xff;
319
+ buf[pos + 2] = (v >>> 16) & 0xff;
320
+ buf[pos + 3] = (v >>> 24) & 0xff;
321
+ }
322
+ //# sourceMappingURL=opcodes.js.map