[ES6] "super" and "this" should be lexically bound inside an arrow function and shoul...
[WebKit-https.git] / Source / JavaScriptCore / bytecode / BytecodeList.json
1 [
2     {
3         "section" : "Bytecodes", "emitInHFile" : true, "emitInASMFile" : true, 
4         "macroNameComponent" : "BYTECODE", "asmPrefix" : "llint_", 
5         "bytecodes" : [
6             { "name" : "op_enter", "length" : 1 },
7             { "name" : "op_get_scope", "length" : 2 },
8             { "name" : "op_create_direct_arguments", "length" : 2 },
9             { "name" : "op_create_scoped_arguments", "length" : 3 },
10             { "name" : "op_create_out_of_band_arguments", "length" : 2 },
11             { "name" : "op_create_this", "length" : 5 },
12             { "name" : "op_to_this", "length" : 4 },
13             { "name" : "op_check_tdz", "length" : 2 },
14             { "name" : "op_new_object", "length" : 4 },
15             { "name" : "op_new_array", "length" : 5 },
16             { "name" : "op_new_array_with_size", "length" : 4 },
17             { "name" : "op_new_array_buffer", "length" : 5 },
18             { "name" : "op_new_regexp", "length" : 3 },
19             { "name" : "op_mov", "length" : 3 },
20             { "name" : "op_not", "length" : 3 },
21             { "name" : "op_eq", "length" : 4 },
22             { "name" : "op_eq_null", "length" : 3 },
23             { "name" : "op_neq", "length" : 4 },
24             { "name" : "op_neq_null", "length" : 3 },
25             { "name" : "op_stricteq", "length" : 4 },
26             { "name" : "op_nstricteq", "length" : 4 },
27             { "name" : "op_less", "length" : 4 },
28             { "name" : "op_lesseq", "length" : 4 },
29             { "name" : "op_greater", "length" : 4 },
30             { "name" : "op_greatereq", "length" : 4 },
31             { "name" : "op_inc", "length" : 2 },
32             { "name" : "op_dec", "length" : 2 },
33             { "name" : "op_to_number", "length" : 3 },
34             { "name" : "op_to_string", "length" : 3 },
35             { "name" : "op_negate", "length" : 3 },
36             { "name" : "op_add", "length" : 5 },
37             { "name" : "op_mul", "length" : 5 },
38             { "name" : "op_div", "length" : 5 },
39             { "name" : "op_mod", "length" : 4 },
40             { "name" : "op_sub", "length" : 5 },
41             { "name" : "op_lshift", "length" : 4 },
42             { "name" : "op_rshift", "length" : 4 },
43             { "name" : "op_urshift", "length" : 4 },
44             { "name" : "op_unsigned", "length" : 3 },
45             { "name" : "op_bitand", "length" : 5 },
46             { "name" : "op_bitxor", "length" : 5 },
47             { "name" : "op_bitor", "length" : 5 },
48             { "name" : "op_check_has_instance", "length" : 5 },
49             { "name" : "op_instanceof", "length" : 4 },
50             { "name" : "op_typeof", "length" : 3 },
51             { "name" : "op_is_undefined", "length" : 3 },
52             { "name" : "op_is_boolean", "length" : 3 },
53             { "name" : "op_is_number", "length" : 3 },
54             { "name" : "op_is_string", "length" : 3 },
55             { "name" : "op_is_object", "length" : 3 },
56             { "name" : "op_is_object_or_null", "length" : 3 },
57             { "name" : "op_is_function", "length" : 3 },
58             { "name" : "op_in", "length" : 4 },
59             { "name" : "op_get_by_id", "length" : 9  },
60             { "name" : "op_get_array_length", "length" : 9 },
61             { "name" : "op_put_by_id", "length" : 9 },
62             { "name" : "op_del_by_id", "length" : 4 },
63             { "name" : "op_get_by_val", "length" : 6 },
64             { "name" : "op_put_by_val", "length" : 5 },
65             { "name" : "op_put_by_val_direct", "length" : 5 },
66             { "name" : "op_del_by_val", "length" : 4 },
67             { "name" : "op_put_by_index", "length" : 4 },
68             { "name" : "op_put_getter_by_id", "length" : 5 },
69             { "name" : "op_put_setter_by_id", "length" : 5 },
70             { "name" : "op_put_getter_setter_by_id", "length" : 6 },
71             { "name" : "op_put_getter_by_val", "length" : 5 },
72             { "name" : "op_put_setter_by_val", "length" : 5 },
73             { "name" : "op_jmp", "length" : 2 },
74             { "name" : "op_jtrue", "length" : 3 },
75             { "name" : "op_jfalse", "length" : 3 },
76             { "name" : "op_jeq_null", "length" : 3 },
77             { "name" : "op_jneq_null", "length" : 3 },
78             { "name" : "op_jneq_ptr", "length" : 4 },
79             { "name" : "op_jless", "length" : 4 },
80             { "name" : "op_jlesseq", "length" : 4 },
81             { "name" : "op_jgreater", "length" : 4 },
82             { "name" : "op_jgreatereq", "length" : 4 },
83             { "name" : "op_jnless", "length" : 4 },
84             { "name" : "op_jnlesseq", "length" : 4 },
85             { "name" : "op_jngreater", "length" : 4 },
86             { "name" : "op_jngreatereq", "length" : 4 },
87             { "name" : "op_loop_hint", "length" : 1 },
88             { "name" : "op_switch_imm", "length" : 4 },
89             { "name" : "op_switch_char", "length" : 4 },
90             { "name" : "op_switch_string", "length" : 4 },
91             { "name" : "op_new_func", "length" : 4 },
92             { "name" : "op_new_func_exp", "length" : 4 },
93             { "name" : "op_new_generator_func", "length" : 4 },
94             { "name" : "op_new_generator_func_exp", "length" : 4 },
95             { "name" : "op_new_arrow_func_exp", "length" : 4 },
96             { "name" : "op_call", "length" : 9 },
97             { "name" : "op_tail_call", "length" : 9 },
98             { "name" : "op_call_eval", "length" : 9 },
99             { "name" : "op_call_varargs", "length" : 9 },
100             { "name" : "op_tail_call_varargs", "length" : 9 },
101             { "name" : "op_ret", "length" : 2 },
102             { "name" : "op_construct", "length" : 9 },
103             { "name" : "op_construct_varargs", "length" : 9 },
104             { "name" : "op_strcat", "length" : 4 },
105             { "name" : "op_to_primitive", "length" : 3 },
106             { "name" : "op_resolve_scope", "length" : 7 },
107             { "name" : "op_get_from_scope", "length" : 8 },
108             { "name" : "op_put_to_scope", "length" : 7 },
109             { "name" : "op_get_from_arguments", "length" : 5 },
110             { "name" : "op_put_to_arguments", "length" : 4 },
111             { "name" : "op_push_with_scope", "length" : 4 },
112             { "name" : "op_create_lexical_environment", "length" : 5 },
113             { "name" : "op_get_parent_scope", "length" : 3 },
114             { "name" : "op_catch", "length" : 3 },
115             { "name" : "op_throw", "length" : 2 },
116             { "name" : "op_throw_static_error", "length" : 3 },
117             { "name" : "op_debug", "length" : 3 },
118             { "name" : "op_profile_will_call", "length" : 2 },
119             { "name" : "op_profile_did_call", "length" : 2 },
120             { "name" : "op_end", "length" : 2 },
121             { "name" : "op_profile_type", "length" : 6 },
122             { "name" : "op_profile_control_flow", "length" : 2 },
123             { "name" : "op_get_enumerable_length", "length" : 3 },
124             { "name" : "op_has_indexed_property", "length" : 5 },
125             { "name" : "op_has_structure_property", "length" : 5 },
126             { "name" : "op_has_generic_property", "length" : 4 },
127             { "name" : "op_get_direct_pname", "length" : 7 },
128             { "name" : "op_get_property_enumerator", "length" : 3 },
129             { "name" : "op_enumerator_structure_pname", "length" : 4 },
130             { "name" : "op_enumerator_generic_pname", "length" : 4 },
131             { "name" : "op_to_index_string", "length" : 3 },
132             { "name" : "op_assert", "length" : 3 },
133             { "name" : "op_copy_rest", "length": 4 },
134             { "name" : "op_get_rest_length", "length": 3 },
135             { "name" : "op_save", "length" : 4 },
136             { "name" : "op_resume", "length" : 3 }
137         ]
138     },
139     {
140         "section" : "CLoopHelpers", "emitInHFile" : true, "emitInASMFile" : false, "defaultLength" : 1,
141         "macroNameComponent" : "CLOOP_BYTECODE_HELPER",
142         "bytecodes" : [
143             { "name" : "llint_entry" },
144             { "name" : "getHostCallReturnValue" },
145             { "name" : "llint_return_to_host" },
146             { "name" : "llint_vm_entry_to_javascript" },
147             { "name" : "llint_vm_entry_to_native" },
148             { "name" : "llint_cloop_did_return_from_js_1" },
149             { "name" : "llint_cloop_did_return_from_js_2" },
150             { "name" : "llint_cloop_did_return_from_js_3" },
151             { "name" : "llint_cloop_did_return_from_js_4" },
152             { "name" : "llint_cloop_did_return_from_js_5" },
153             { "name" : "llint_cloop_did_return_from_js_6" },
154             { "name" : "llint_cloop_did_return_from_js_7" },
155             { "name" : "llint_cloop_did_return_from_js_8" },
156             { "name" : "llint_cloop_did_return_from_js_9" },
157             { "name" : "llint_cloop_did_return_from_js_10" },
158             { "name" : "llint_cloop_did_return_from_js_11" }
159         ]
160     },
161     {
162         "section" : "NativeHelpers", "emitInHFile" : true, "emitInASMFile" : true, "defaultLength" : 1,
163         "macroNameComponent" : "BYTECODE_HELPER",
164         "bytecodes" : [
165             { "name" : "llint_program_prologue" },
166             { "name" : "llint_eval_prologue" },
167             { "name" : "llint_module_program_prologue" },
168             { "name" : "llint_function_for_call_prologue" },
169             { "name" : "llint_function_for_construct_prologue" },
170             { "name" : "llint_function_for_call_arity_check" },
171             { "name" : "llint_function_for_construct_arity_check" },
172             { "name" : "llint_generic_return_point" },
173             { "name" : "llint_throw_from_slow_path_trampoline" },
174             { "name" : "llint_throw_during_call_trampoline" },
175             { "name" : "llint_native_call_trampoline" },
176             { "name" : "llint_native_construct_trampoline" },
177             { "name" : "handleUncaughtException" }
178         ]
179     }
180 ]