mirror of
https://github.com/radareorg/r2hermes.git
synced 2026-11-10 17:41:32 -10:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
31e519fa8b | ||
|
|
c19977865d | ||
|
|
425db85466 | ||
|
|
2e1f02925a | ||
|
|
e84815d33f | ||
|
|
d37e414a9d | ||
|
|
c43e6fcbc4 | ||
|
|
aadc3ff6e4 | ||
|
|
0d08d8d4ac | ||
|
|
d5f65c9958 | ||
|
|
1d7c158b37 | ||
|
|
bb45831548 | ||
|
|
68e650aea4 | ||
|
|
d5b1adeac0 |
No files matched your search
@@ -69,11 +69,13 @@ jobs:
|
||||
TAG="${{ needs.build.outputs.tag }}"
|
||||
echo "Creating archive for $TAG"
|
||||
git archive --format=tar.gz --prefix=libhbc-$TAG/ $TAG -o libhbc-$TAG.tgz
|
||||
ls -l libhbc*
|
||||
|
||||
- name: Create GitHub Release
|
||||
uses: softprops/action-gh-release@v2
|
||||
uses: softprops/action-gh-release@v2.6.1
|
||||
with:
|
||||
tag_name: ${{ needs.build.outputs.tag }}
|
||||
files: ./libhbc-${{ needs.build.outputs.tag }}.tgz
|
||||
make_latest: true
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -48,7 +48,7 @@ jobs:
|
||||
meson install -C builddir
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v6
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: build-windows
|
||||
path: builddir\install\**\*
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
Copyright 2025 pancake <pancake@nopcode.org>
|
||||
Copyright 2025-2026 pancake <pancake@nopcode.org>
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ Meta's React Native Hermes bytecode assembler, disassembler, decompiler, and com
|
||||
|
||||
## Features
|
||||
|
||||
- Disassemble Hermes bytecode (v51 .. v96)
|
||||
- Disassemble Hermes bytecode (v51 .. v99)
|
||||
- Decompile to JavaScript pseudocode
|
||||
- Assemble instructions
|
||||
- Parse binary headers
|
||||
@@ -29,23 +29,13 @@ r2pm -ci r2hermes
|
||||
|
||||
### From source
|
||||
|
||||
```bash
|
||||
git clone https://github.com/radareorg/r2hermes
|
||||
cd r2hermes
|
||||
make
|
||||
make user-install
|
||||
```
|
||||
|
||||
## Building
|
||||
|
||||
### Make (default)
|
||||
Build the `libhbctool` cli tool and install the `radare2` plugin:
|
||||
|
||||
```bash
|
||||
make # Build library and CLI
|
||||
make user-install # Install r2 plugins to ~/.local/share/radare2/plugins
|
||||
make && make user-install
|
||||
```
|
||||
|
||||
### Meson
|
||||
The same oneliner can be done with meson (to please Windows and anti-make users)
|
||||
|
||||
```bash
|
||||
meson setup build
|
||||
@@ -53,15 +43,13 @@ ninja -C build
|
||||
ninja -C build install
|
||||
```
|
||||
|
||||
### Debug build
|
||||
### Debugging
|
||||
|
||||
You can do a build with symbols and address sanitizer to help you debugging crashes
|
||||
|
||||
```bash
|
||||
make debug
|
||||
```
|
||||
|
||||
### AddressSanitizer build
|
||||
|
||||
```bash
|
||||
# or
|
||||
make asan
|
||||
```
|
||||
|
||||
|
||||
+339
@@ -0,0 +1,339 @@
|
||||
add=binary add of two registers (numeric or string concatenation)
|
||||
add_empty_string=convert a value to string by concatenating with the empty string
|
||||
add_n=numeric add (operands known to be numeric)
|
||||
add_own_private_by_sym=add a private own property using a symbol key
|
||||
add_s=string add (operands known to be strings)
|
||||
add32=32-bit integer add
|
||||
async_break_check=check if execution should break asynchronously
|
||||
bit_and=bitwise AND of two registers
|
||||
bit_not=bitwise NOT of a register
|
||||
bit_or=bitwise OR of two registers
|
||||
bit_xor=bitwise XOR of two registers
|
||||
call=call a function with a given number of arguments
|
||||
call_builtin=call a builtin function by id
|
||||
call_builtin_long=call a builtin function by id (long form)
|
||||
call_direct=call a function whose code address is statically known
|
||||
call_direct_long_index=call a function with a long function index
|
||||
call_long=call a function with a long argument count
|
||||
call_require=call the require builtin to import a module
|
||||
call_with_new_target=call a function passing an explicit new.target
|
||||
call_with_new_target_long=call with new.target (long form)
|
||||
call1=call a function with 1 argument
|
||||
call2=call a function with 2 arguments
|
||||
call3=call a function with 3 arguments
|
||||
call4=call a function with 4 arguments
|
||||
catch=mark catch handler entry, receives the thrown exception
|
||||
coerce_this_n_s=coerce 'this' to an object in non-strict mode
|
||||
coerce_this_ns=coerce 'this' to an object in non-strict mode
|
||||
complete_generator=mark generator as completed
|
||||
construct=invoke a constructor with a given number of arguments
|
||||
construct_long=invoke a constructor (long form)
|
||||
create_async_closure=create an async closure
|
||||
create_async_closure_long_index=create an async closure (long function index)
|
||||
create_base_class=create a class with no superclass
|
||||
create_base_class_long_index=create a base class (long function index)
|
||||
create_closure=create a closure from a function
|
||||
create_closure_long_index=create a closure (long function index)
|
||||
create_derived_class=create a class that extends a superclass
|
||||
create_derived_class_long_index=create a derived class (long function index)
|
||||
create_environment=create a new lexical environment for the current function
|
||||
create_function_environment=create the function's lexical environment
|
||||
create_generator=create a generator function instance
|
||||
create_generator_closure=create a generator closure
|
||||
create_generator_closure_long_index=create a generator closure (long function index)
|
||||
create_generator_long_index=create a generator (long function index)
|
||||
create_inner_environment=create an inner (nested) lexical environment
|
||||
create_private_name=create a unique private name symbol
|
||||
create_reg_exp=create a RegExp object from a pattern and flags
|
||||
create_this=create the 'this' object for a constructor call
|
||||
create_this_for_new=allocate 'this' for a 'new' expression
|
||||
create_this_for_super=allocate 'this' for a super constructor call
|
||||
create_top_level_environment=create the top-level lexical environment
|
||||
debugger=trigger the JavaScript debugger statement
|
||||
debugger_check=check if a debugger break is requested
|
||||
debugger_check_break=check and yield to debugger if breakpoint is set
|
||||
dec=decrement a register by 1
|
||||
declare_global_var=declare a variable on the global object
|
||||
define_own_by_id=define an own property by string id
|
||||
define_own_by_id_long=define an own property by string id (long form)
|
||||
define_own_by_index=define an own indexed property
|
||||
define_own_by_index_l=define an own indexed property (long form)
|
||||
define_own_by_val=define an own property by computed value
|
||||
define_own_getter_setter_by_val=define accessor (getter/setter) property
|
||||
define_own_in_dense_array=define an element in a dense array literal
|
||||
define_own_in_dense_array_l=define an element in a dense array literal (long)
|
||||
del_by_id=delete a property by string id
|
||||
del_by_id_long=delete a property by string id (long form)
|
||||
del_by_id_loose=delete a property by id (loose mode)
|
||||
del_by_id_loose_long=delete a property by id (loose, long form)
|
||||
del_by_id_strict=delete a property by id (strict mode)
|
||||
del_by_id_strict_long=delete a property by id (strict, long form)
|
||||
del_by_val=delete a property by computed value
|
||||
del_by_val_loose=delete a property by computed value (loose mode)
|
||||
del_by_val_strict=delete a property by computed value (strict mode)
|
||||
direct_eval=invoke direct eval()
|
||||
div=divide two registers
|
||||
div_n=numeric divide (operands known to be numeric)
|
||||
divi32=signed 32-bit integer divide
|
||||
divu32=unsigned 32-bit integer divide
|
||||
eq=loose equality comparison (==)
|
||||
fast_array_append=append all elements of a fast array to another
|
||||
fast_array_length=read the length of a fast array
|
||||
fast_array_load=load element from a fast array by index
|
||||
fast_array_push=push a value into a fast array
|
||||
fast_array_store=store value into a fast array at index
|
||||
get_arguments_length=read 'arguments.length' lazily
|
||||
get_arguments_prop_by_val=read an element from 'arguments' lazily
|
||||
get_arguments_prop_by_val_loose=read 'arguments' element (loose mode)
|
||||
get_arguments_prop_by_val_strict=read 'arguments' element (strict mode)
|
||||
get_builtin_closure=get a closure for a builtin function
|
||||
get_by_id=load a property by string id
|
||||
get_by_id_long=load a property by string id (long form)
|
||||
get_by_id_short=load a property by string id (short cache)
|
||||
get_by_id_with_receiver_long=load a property with explicit receiver (long form)
|
||||
get_by_index=load an element by integer index
|
||||
get_by_val=load a property by computed value
|
||||
get_by_val_with_receiver=load a property by computed value with receiver
|
||||
get_closure_environment=get the environment of an enclosing closure
|
||||
get_environment=get the lexical environment at a given depth
|
||||
get_global_object=get the global object
|
||||
get_new_target=read the new.target meta-property
|
||||
get_next_p_name=advance a for-in property iterator
|
||||
get_next_pname=advance a for-in property iterator
|
||||
get_own_by_slot_idx=load own property by inline cache slot index
|
||||
get_own_by_slot_idx_long=load own property by slot index (long form)
|
||||
get_own_private_by_sym=load an own private property by symbol
|
||||
get_p_name_list=initialize a for-in property name list
|
||||
get_parent_environment=get the parent of a lexical environment
|
||||
get_pname_list=initialize a for-in property name list
|
||||
greater=greater than comparison (>)
|
||||
greater_eq=greater than or equal comparison (>=)
|
||||
inc=increment a register by 1
|
||||
instance_of=instanceof operator
|
||||
is_in='in' operator (property exists in object)
|
||||
iterator_begin=start iteration over an iterable
|
||||
iterator_close=close (cleanup) an iterator
|
||||
iterator_next=advance an iterator and read the next value
|
||||
j_equal=branch if loose equal
|
||||
j_equal_long=branch if loose equal (long offset)
|
||||
j_greater=branch if greater than
|
||||
j_greater_equal=branch if greater than or equal
|
||||
j_greater_equal_long=branch if greater than or equal (long offset)
|
||||
j_greater_equal_n=branch if greater or equal (numeric)
|
||||
j_greater_equal_n_long=branch if greater or equal (numeric, long offset)
|
||||
j_greater_long=branch if greater than (long offset)
|
||||
j_greater_n=branch if greater than (numeric)
|
||||
j_greater_n_long=branch if greater than (numeric, long offset)
|
||||
j_less=branch if less than
|
||||
j_less_equal=branch if less than or equal
|
||||
j_less_equal_long=branch if less than or equal (long offset)
|
||||
j_less_equal_n=branch if less than or equal (numeric)
|
||||
j_less_equal_n_long=branch if less than or equal (numeric, long offset)
|
||||
j_less_long=branch if less than (long offset)
|
||||
j_less_n=branch if less than (numeric)
|
||||
j_less_n_long=branch if less than (numeric, long offset)
|
||||
j_not_equal=branch if loose not equal
|
||||
j_not_equal_long=branch if loose not equal (long offset)
|
||||
j_not_greater=branch if not greater than
|
||||
j_not_greater_equal=branch if not greater than or equal
|
||||
j_not_greater_equal_long=branch if not greater than or equal (long offset)
|
||||
j_not_greater_equal_n=branch if not greater than or equal (numeric)
|
||||
j_not_greater_equal_n_long=branch if not greater than or equal (numeric, long offset)
|
||||
j_not_greater_long=branch if not greater than (long offset)
|
||||
j_not_greater_n=branch if not greater than (numeric)
|
||||
j_not_greater_n_long=branch if not greater than (numeric, long offset)
|
||||
j_not_less=branch if not less than
|
||||
j_not_less_equal=branch if not less than or equal
|
||||
j_not_less_equal_long=branch if not less than or equal (long offset)
|
||||
j_not_less_equal_n=branch if not less than or equal (numeric)
|
||||
j_not_less_equal_n_long=branch if not less than or equal (numeric, long offset)
|
||||
j_not_less_long=branch if not less than (long offset)
|
||||
j_not_less_n=branch if not less than (numeric)
|
||||
j_not_less_n_long=branch if not less than (numeric, long offset)
|
||||
j_strict_equal=branch if strict equal (===)
|
||||
j_strict_equal_long=branch if strict equal (long offset)
|
||||
j_strict_not_equal=branch if strict not equal (!==)
|
||||
j_strict_not_equal_long=branch if strict not equal (long offset)
|
||||
jequal=branch if loose equal
|
||||
jequal_long=branch if loose equal (long offset)
|
||||
jgreater=branch if greater than
|
||||
jgreater_equal=branch if greater than or equal
|
||||
jgreater_equal_long=branch if greater than or equal (long offset)
|
||||
jgreater_equal_n=branch if greater or equal (numeric)
|
||||
jgreater_equal_nlong=branch if greater or equal (numeric, long offset)
|
||||
jgreater_long=branch if greater than (long offset)
|
||||
jgreater_n=branch if greater than (numeric)
|
||||
jgreater_nlong=branch if greater than (numeric, long offset)
|
||||
jless=branch if less than
|
||||
jless_equal=branch if less than or equal
|
||||
jless_equal_long=branch if less than or equal (long offset)
|
||||
jless_equal_n=branch if less than or equal (numeric)
|
||||
jless_equal_nlong=branch if less than or equal (numeric, long offset)
|
||||
jless_long=branch if less than (long offset)
|
||||
jless_n=branch if less than (numeric)
|
||||
jless_nlong=branch if less than (numeric, long offset)
|
||||
jmp=unconditional branch
|
||||
jmp_builtin_is=branch if value is a specific builtin
|
||||
jmp_builtin_is_long=branch if value is a specific builtin (long offset)
|
||||
jmp_builtin_is_not=branch if value is not a specific builtin
|
||||
jmp_builtin_is_not_long=branch if value is not a specific builtin (long offset)
|
||||
jmp_false=branch if value is falsy
|
||||
jmp_false_long=branch if value is falsy (long offset)
|
||||
jmp_long=unconditional branch (long offset)
|
||||
jmp_true=branch if value is truthy
|
||||
jmp_true_long=branch if value is truthy (long offset)
|
||||
jmp_type_of_is=branch if typeof value matches a tag
|
||||
jmp_undefined=branch if value is undefined
|
||||
jmp_undefined_long=branch if value is undefined (long offset)
|
||||
jnot_equal=branch if loose not equal
|
||||
jnot_equal_long=branch if loose not equal (long offset)
|
||||
jnot_greater=branch if not greater than
|
||||
jnot_greater_equal=branch if not greater than or equal
|
||||
jnot_greater_equal_long=branch if not greater than or equal (long offset)
|
||||
jnot_greater_equal_n=branch if not greater than or equal (numeric)
|
||||
jnot_greater_equal_nlong=branch if not greater than or equal (numeric, long offset)
|
||||
jnot_greater_long=branch if not greater than (long offset)
|
||||
jnot_greater_n=branch if not greater than (numeric)
|
||||
jnot_greater_nlong=branch if not greater than (numeric, long offset)
|
||||
jnot_less=branch if not less than
|
||||
jnot_less_equal=branch if not less than or equal
|
||||
jnot_less_equal_long=branch if not less than or equal (long offset)
|
||||
jnot_less_equal_n=branch if not less than or equal (numeric)
|
||||
jnot_less_equal_nlong=branch if not less than or equal (numeric, long offset)
|
||||
jnot_less_long=branch if not less than (long offset)
|
||||
jnot_less_n=branch if not less than (numeric)
|
||||
jnot_less_nlong=branch if not less than (numeric, long offset)
|
||||
jstrict_equal=branch if strict equal (===)
|
||||
jstrict_equal_long=branch if strict equal (long offset)
|
||||
jstrict_not_equal=branch if strict not equal (!==)
|
||||
jstrict_not_equal_long=branch if strict not equal (long offset)
|
||||
l_shift=left shift (<<)
|
||||
less=less than comparison (<)
|
||||
less_eq=less than or equal comparison (<=)
|
||||
load_const_big_int=load a BigInt constant
|
||||
load_const_big_int_long_index=load a BigInt constant (long index)
|
||||
load_const_double=load a double-precision float constant
|
||||
load_const_empty=load the 'empty' sentinel value
|
||||
load_const_false=load the boolean false constant
|
||||
load_const_int=load an integer constant
|
||||
load_const_null=load the null constant
|
||||
load_const_string=load a string constant by id
|
||||
load_const_string_long_index=load a string constant by id (long index)
|
||||
load_const_true=load the boolean true constant
|
||||
load_const_u_int8=load an 8-bit unsigned integer constant
|
||||
load_const_uint8=load an 8-bit unsigned integer constant
|
||||
load_const_undefined=load the undefined constant
|
||||
load_const_zero=load the integer zero constant
|
||||
load_from_environment=read a variable from a lexical environment slot
|
||||
load_from_environment_l=read from environment slot (long index)
|
||||
load_param=read a function parameter into a register
|
||||
load_param_long=read a function parameter (long index)
|
||||
load_parent_no_traps=load object's prototype skipping proxy traps
|
||||
load_this_n_s=load 'this' in non-strict mode
|
||||
load_this_ns=load 'this' in non-strict mode
|
||||
loadi16=load a signed 16-bit integer
|
||||
loadi32=load a signed 32-bit integer
|
||||
loadi8=load a signed 8-bit integer
|
||||
loadu16=load an unsigned 16-bit integer
|
||||
loadu32=load an unsigned 32-bit integer
|
||||
loadu8=load an unsigned 8-bit integer
|
||||
lshift=left shift (<<)
|
||||
mod=modulo (%) operation
|
||||
mov=copy a register into another register
|
||||
mov_long=copy a register (long form)
|
||||
mul=multiply two registers
|
||||
mul_n=numeric multiply (operands known to be numeric)
|
||||
mul32=32-bit integer multiply
|
||||
name=get the name (string id) of an object
|
||||
negate=arithmetic negation (unary minus)
|
||||
neq=loose inequality comparison (!=)
|
||||
new_array=create an empty array of given size
|
||||
new_array_with_buffer=create an array initialized from a literal buffer
|
||||
new_array_with_buffer_long=create an array from a literal buffer (long form)
|
||||
new_fast_array=create a new fast (dense, integer-indexed) array
|
||||
new_object=create an empty object
|
||||
new_object_with_buffer=create an object initialized from a literal buffer
|
||||
new_object_with_buffer_and_parent=create an object from a buffer with a given prototype
|
||||
new_object_with_buffer_long=create an object from a literal buffer (long form)
|
||||
new_object_with_parent=create an empty object with a given prototype
|
||||
new_typed_object_with_buffer=create a typed object from a literal buffer
|
||||
not=logical NOT (!)
|
||||
private_is_in=test if a private name is present in an object
|
||||
profile_point=marker used by the profiler to record execution
|
||||
put_by_id=store a property by string id
|
||||
put_by_id_long=store a property by string id (long form)
|
||||
put_by_id_loose=store a property by id (loose mode)
|
||||
put_by_id_loose_long=store a property by id (loose, long form)
|
||||
put_by_id_strict=store a property by id (strict mode)
|
||||
put_by_id_strict_long=store a property by id (strict, long form)
|
||||
put_by_val=store a property by computed value
|
||||
put_by_val_loose=store a property by computed value (loose mode)
|
||||
put_by_val_strict=store a property by computed value (strict mode)
|
||||
put_by_val_with_receiver=store a property by computed value with receiver
|
||||
put_new_own_by_id=define a new own property by id
|
||||
put_new_own_by_id_long=define a new own property by id (long form)
|
||||
put_new_own_by_id_short=define a new own property by id (short form)
|
||||
put_new_own_n_eby_id=define a new own non-enumerable property by id
|
||||
put_new_own_n_eby_id_long=define a new own non-enumerable property by id (long form)
|
||||
put_new_own_ne_by_id=define a new own non-enumerable property by id
|
||||
put_new_own_ne_by_id_long=define a new own non-enumerable property by id (long form)
|
||||
put_own_by_index=define an own property by integer index
|
||||
put_own_by_index_l=define an own property by integer index (long form)
|
||||
put_own_by_slot_idx=store an own property by inline cache slot
|
||||
put_own_by_slot_idx_long=store an own property by slot index (long form)
|
||||
put_own_by_val=define an own property by computed value
|
||||
put_own_getter_setter_by_val=define an own accessor (getter/setter) property
|
||||
put_own_private_by_sym=store an own private property by symbol
|
||||
r_shift=signed right shift (>>)
|
||||
reify_arguments=create the actual 'arguments' object lazily
|
||||
reify_arguments_loose=reify 'arguments' object in loose mode
|
||||
reify_arguments_strict=reify 'arguments' object in strict mode
|
||||
resume_generator=resume a suspended generator
|
||||
ret=return from the current function
|
||||
rshift=signed right shift (>>)
|
||||
save_generator=suspend the current generator and yield
|
||||
save_generator_long=suspend the current generator (long offset)
|
||||
select_object=pick the object operand among two values
|
||||
start_generator=initialize execution of a generator body
|
||||
store_n_pto_environment=store non-pointer value to environment slot
|
||||
store_n_pto_environment_l=store non-pointer value to environment slot (long index)
|
||||
store_np_to_environment=store non-pointer value to environment slot
|
||||
store_np_to_environment_l=store non-pointer value to environment slot (long index)
|
||||
store_to_environment=store a variable into a lexical environment slot
|
||||
store_to_environment_l=store into environment slot (long index)
|
||||
store16=store a 16-bit value to memory
|
||||
store32=store a 32-bit value to memory
|
||||
store8=store an 8-bit value to memory
|
||||
strict_eq=strict equality comparison (===)
|
||||
strict_neq=strict inequality comparison (!==)
|
||||
string_switch_imm=switch on a string with an inline jump table
|
||||
sub=subtract two registers
|
||||
sub_n=numeric subtract (operands known to be numeric)
|
||||
sub32=32-bit integer subtract
|
||||
switch_imm=switch on an integer with an inline jump table
|
||||
throw=throw an exception
|
||||
throw_if_empty=throw a ReferenceError if value is the empty sentinel (TDZ)
|
||||
throw_if_has_restricted_global_property=throw if a restricted global property already exists
|
||||
throw_if_this_initialized=throw if 'this' has already been initialized in a derived ctor
|
||||
throw_if_undefined=throw a TypeError if the value is undefined
|
||||
throw_if_undefined_inst=throw TypeError if the value is undefined (instance form)
|
||||
to_int32=convert a value to a signed 32-bit integer (ToInt32)
|
||||
to_number=convert a value to a number (ToNumber)
|
||||
to_numeric=convert a value to numeric (ToNumeric, supports BigInt)
|
||||
to_property_key=convert a value to a property key (ToPropertyKey)
|
||||
to_uint32=convert a value to an unsigned 32-bit integer (ToUint32)
|
||||
try_get_by_id=load a property by id, throwing if missing
|
||||
try_get_by_id_long=load a property by id, throwing if missing (long form)
|
||||
try_put_by_id=store a property by id, throwing if missing
|
||||
try_put_by_id_long=store a property by id, throwing if missing (long form)
|
||||
try_put_by_id_loose=store a property by id, throwing if missing (loose)
|
||||
try_put_by_id_loose_long=store a property by id, throwing if missing (loose, long form)
|
||||
try_put_by_id_strict=store a property by id, throwing if missing (strict)
|
||||
try_put_by_id_strict_long=store a property by id, throwing if missing (strict, long form)
|
||||
type_of=typeof operator
|
||||
type_of_is=test if typeof value equals a specific tag
|
||||
typed_load_parent=load the prototype of a typed object
|
||||
u_int_switch_imm=switch on an unsigned integer with an inline jump table
|
||||
u_rshift=unsigned right shift (>>>)
|
||||
unreachable=trap; this point should never be reached
|
||||
urshift=unsigned right shift (>>>)
|
||||
@@ -22,6 +22,7 @@ typedef struct HBCHeader {
|
||||
u32 stringCount;
|
||||
u32 overflowStringCount;
|
||||
u32 stringStorageSize;
|
||||
u32 literalValueBufferSize;
|
||||
u32 bigIntCount;
|
||||
u32 bigIntStorageSize;
|
||||
u32 regExpCount;
|
||||
@@ -29,6 +30,8 @@ typedef struct HBCHeader {
|
||||
u32 arrayBufferSize;
|
||||
u32 objKeyBufferSize;
|
||||
u32 objValueBufferSize;
|
||||
u32 objShapeTableCount;
|
||||
u32 numStringSwitchImms;
|
||||
u32 segmentID;
|
||||
u32 cjsModuleCount;
|
||||
u32 functionSourceCount;
|
||||
@@ -246,6 +249,8 @@ typedef struct {
|
||||
char *text; // Caller must free with free ()
|
||||
u32 size;
|
||||
u8 opcode;
|
||||
u8 canonical_opcode;
|
||||
const char *mnemonic;
|
||||
bool is_jump;
|
||||
bool is_call;
|
||||
u64 jump_target;
|
||||
|
||||
@@ -259,7 +259,10 @@ typedef struct {
|
||||
const Instruction *instructions;
|
||||
} HBCISA;
|
||||
|
||||
#define HBC_CANONICAL_OPCODE_UNKNOWN 0xffu
|
||||
|
||||
/* Public API for getting instruction set by version */
|
||||
HBCISA hbc_isa_getv(int version);
|
||||
u8 hbc_canonical_opcode_from_name(const char *name);
|
||||
|
||||
#endif /* LIBHBC_HERMES_OPCODES_H */
|
||||
@@ -41,6 +41,7 @@ typedef struct HBCHeader {
|
||||
u32 stringCount;
|
||||
u32 overflowStringCount;
|
||||
u32 stringStorageSize;
|
||||
u32 literalValueBufferSize; /* >=97 */
|
||||
/* Optional fields based on version */
|
||||
u32 bigIntCount; /* >=87 */
|
||||
u32 bigIntStorageSize; /* >=87 */
|
||||
@@ -49,6 +50,8 @@ typedef struct HBCHeader {
|
||||
u32 arrayBufferSize;
|
||||
u32 objKeyBufferSize;
|
||||
u32 objValueBufferSize;
|
||||
u32 objShapeTableCount; /* >=97 */
|
||||
u32 numStringSwitchImms; /* >=99 */
|
||||
u32 segmentID; /* cjsModuleOffset before v78 */
|
||||
u32 cjsModuleCount;
|
||||
u32 functionSourceCount; /* >=84 */
|
||||
@@ -168,6 +171,11 @@ typedef struct {
|
||||
u32 string_id;
|
||||
} FunctionSourceEntry;
|
||||
|
||||
typedef struct {
|
||||
u32 key_buffer_offset;
|
||||
u32 prop_count;
|
||||
} ShapeTableEntry;
|
||||
|
||||
/* Debug info header (version dependent) */
|
||||
typedef struct {
|
||||
u32 filename_count;
|
||||
@@ -224,9 +232,12 @@ struct HBCReader {
|
||||
u32 string_storage_file_offset;
|
||||
|
||||
/* Array and object data */
|
||||
u8 *literal_values;
|
||||
u8 *arrays;
|
||||
u8 *object_keys;
|
||||
u8 *object_values;
|
||||
ShapeTableEntry *object_shapes;
|
||||
size_t object_shape_count;
|
||||
|
||||
/* BigInt data */
|
||||
i64 *bigint_values;
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
project(
|
||||
'r2hermes',
|
||||
'c',
|
||||
version: '1.2.0',
|
||||
version: '1.2.2',
|
||||
license: 'MIT',
|
||||
default_options: [
|
||||
'c_std=c11',
|
||||
|
||||
@@ -231,6 +231,22 @@ static Result slp_append_value_js(HBCReader *r, const SLPValue *v, bool for_key,
|
||||
}
|
||||
|
||||
Result _hbc_format_object_literal(HBCReader *r, u32 key_count, u32 value_count, u32 keys_id, u32 values_id, StringBuffer *out, LiteralsPrettyPolicy policy, bool suppress_comments) {
|
||||
if (r && r->header.version >= 97 && r->object_shapes && r->object_shape_count > 0) {
|
||||
u32 value_offset = value_count;
|
||||
if (key_count >= r->object_shape_count || !r->object_keys || !r->object_values) {
|
||||
if (suppress_comments) {
|
||||
return _hbc_string_buffer_append (out, "}");
|
||||
}
|
||||
char tmp[96];
|
||||
snprintf (tmp, sizeof (tmp), " /*shape:%u vals:%u*/ }", key_count, value_count);
|
||||
return _hbc_string_buffer_append (out, tmp);
|
||||
}
|
||||
const ShapeTableEntry *shape = &r->object_shapes[key_count];
|
||||
key_count = shape->prop_count;
|
||||
value_count = shape->prop_count;
|
||||
keys_id = shape->key_buffer_offset;
|
||||
values_id = value_offset;
|
||||
}
|
||||
/* Apply policy */
|
||||
bool pretty = (policy == LITERALS_PRETTY_ALWAYS) || (policy == LITERALS_PRETTY_AUTO && (key_count > 0));
|
||||
bool multiline = pretty && (key_count > 0);
|
||||
@@ -257,6 +273,9 @@ Result _hbc_format_object_literal(HBCReader *r, u32 key_count, u32 value_count,
|
||||
|
||||
bool ok1 = slp_parse_values (r->object_keys, r->header.objKeyBufferSize, keys_id, n, key_vals);
|
||||
bool ok2 = slp_parse_values (r->object_values, r->header.objValueBufferSize, values_id, n, val_vals);
|
||||
if (!ok2 && r->header.version >= 97) {
|
||||
ok2 = slp_parse_values (r->object_values, r->header.objValueBufferSize, value_count, n, val_vals);
|
||||
}
|
||||
if (!ok1 || !ok2) {
|
||||
free (key_vals);
|
||||
free (val_vals);
|
||||
|
||||
@@ -973,7 +973,7 @@ Result _hbc_translate_instruction_to_tokens(const ParsedInstruction *insn_c, Tok
|
||||
/* Jump instructions */
|
||||
case OP_Jmp:
|
||||
case OP_JmpLong:
|
||||
return emit_simple_jump (out, insn_c, get_operand_value (insn_c, 0) <= 0);
|
||||
return emit_simple_jump (out, insn_c, (i32)get_operand_value (insn_c, 0) <= 0);
|
||||
case OP_JmpTrue:
|
||||
case OP_JmpTrueLong:
|
||||
{
|
||||
|
||||
+9
-5
@@ -355,8 +355,8 @@ void hbc_free_funcs(HBCFuncArray *arr) {
|
||||
|
||||
/* Single-instruction decode functions */
|
||||
|
||||
static char *build_literal_comment(HBCReader *reader, u8 opcode, const u32 *ovs, const char *base_text) {
|
||||
const bool is_obj = (opcode == OP_NewObjectWithBuffer || opcode == OP_NewObjectWithBufferLong);
|
||||
static char *build_literal_comment(HBCReader *reader, const char *mnemonic, const u32 *ovs, const char *base_text) {
|
||||
const bool is_obj = mnemonic && !strncmp (mnemonic, "new_object_with_buffer", strlen ("new_object_with_buffer"));
|
||||
StringBuffer sb;
|
||||
if (_hbc_string_buffer_init (&sb, 256).code != RESULT_SUCCESS) {
|
||||
return NULL;
|
||||
@@ -417,6 +417,8 @@ Result hbc_dec(const HBCDecodeCtx *ctx, HBCInsnInfo *out) {
|
||||
out->text = strdup ("unk");
|
||||
out->size = 1;
|
||||
out->opcode = opcode;
|
||||
out->canonical_opcode = HBC_CANONICAL_OPCODE_UNKNOWN;
|
||||
out->mnemonic = NULL;
|
||||
out->is_jump = false;
|
||||
out->is_call = false;
|
||||
out->jump_target = 0;
|
||||
@@ -555,10 +557,10 @@ Result hbc_dec(const HBCDecodeCtx *ctx, HBCInsnInfo *out) {
|
||||
}
|
||||
|
||||
if (ctx->build_objects && ctx->hbc) {
|
||||
const bool is_literal_op = (opcode == OP_NewObjectWithBuffer || opcode == OP_NewObjectWithBufferLong ||
|
||||
opcode == OP_NewArrayWithBuffer || opcode == OP_NewArrayWithBufferLong);
|
||||
const bool is_literal_op = !strncmp (mnemonic, "new_object_with_buffer", strlen ("new_object_with_buffer")) ||
|
||||
!strncmp (mnemonic, "new_array_with_buffer", strlen ("new_array_with_buffer"));
|
||||
if (is_literal_op) {
|
||||
char *with_comment = build_literal_comment (&ctx->hbc->reader, opcode, operand_values, buf);
|
||||
char *with_comment = build_literal_comment (&ctx->hbc->reader, mnemonic, operand_values, buf);
|
||||
out->text = with_comment ? with_comment : strdup (buf);
|
||||
} else {
|
||||
out->text = strdup (buf);
|
||||
@@ -568,6 +570,8 @@ Result hbc_dec(const HBCDecodeCtx *ctx, HBCInsnInfo *out) {
|
||||
}
|
||||
out->size = (u32)pos;
|
||||
out->opcode = opcode;
|
||||
out->canonical_opcode = hbc_canonical_opcode_from_name (mnemonic);
|
||||
out->mnemonic = inst->name;
|
||||
|
||||
/* Detect jumps and calls (using snake_case mnemonic) */
|
||||
out->is_jump = (strncmp (mnemonic, "jmp", 3) == 0) || (strncmp (mnemonic, "j", 1) == 0 && mnemonic[1] >= 'a' && mnemonic[1] <= 'z');
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include <hbc/opcodes.h>
|
||||
#include <string.h>
|
||||
|
||||
/* Include per-version instruction set implementations (static functions) */
|
||||
#include "v51.inc.c"
|
||||
@@ -27,6 +28,8 @@
|
||||
#include "v94.inc.c"
|
||||
#include "v95.inc.c"
|
||||
#include "v96.inc.c"
|
||||
#include "v97.inc.c"
|
||||
#include "v99.inc.c"
|
||||
|
||||
#define ISA_COUNT(v) (sizeof (k_instructions_v ## v) / sizeof (k_instructions_v ## v[0]))
|
||||
#define ISA_ENTRY(v, count_expr) static const HBCISA k_isa_v ## v = { .count = count_expr, .instructions = k_instructions_v ## v };
|
||||
@@ -57,6 +60,8 @@ ISA_ENTRY(93, 256)
|
||||
ISA_ENTRY(94, 256)
|
||||
ISA_ENTRY(95, 256)
|
||||
ISA_ENTRY(96, 208)
|
||||
ISA_ENTRY(97, ISA_COUNT(97))
|
||||
ISA_ENTRY(99, ISA_COUNT(99))
|
||||
|
||||
typedef struct {
|
||||
int version;
|
||||
@@ -90,8 +95,23 @@ static const IsaVersion k_isa_versions[] = {
|
||||
{ 94, &k_isa_v94 },
|
||||
{ 95, &k_isa_v95 },
|
||||
{ 96, &k_isa_v96 },
|
||||
{ 97, &k_isa_v97 },
|
||||
{ 99, &k_isa_v99 },
|
||||
};
|
||||
|
||||
u8 hbc_canonical_opcode_from_name(const char *name) {
|
||||
if (!name) {
|
||||
return HBC_CANONICAL_OPCODE_UNKNOWN;
|
||||
}
|
||||
for (u32 i = 0; i < k_isa_v96.count; i++) {
|
||||
const Instruction *inst = &k_isa_v96.instructions[i];
|
||||
if (inst->name && !strcmp (inst->name, name)) {
|
||||
return (u8)i;
|
||||
}
|
||||
}
|
||||
return HBC_CANONICAL_OPCODE_UNKNOWN;
|
||||
}
|
||||
|
||||
/* Public API for getting instruction set by version */
|
||||
HBCISA hbc_isa_getv(int version) {
|
||||
const IsaVersion *selected = &k_isa_versions[0];
|
||||
|
||||
@@ -0,0 +1,204 @@
|
||||
#include <hbc/opcodes.h>
|
||||
|
||||
static const Instruction k_instructions_v97[200] = {
|
||||
[0] = { "unreachable", { { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 1 },
|
||||
[1] = { "new_object_with_buffer", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[2] = { "new_object_with_buffer_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 10 },
|
||||
[3] = { "new_object", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[4] = { "new_object_with_parent", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[5] = { "new_array_with_buffer", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 8 },
|
||||
[6] = { "new_array_with_buffer_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 10 },
|
||||
[7] = { "new_array", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[8] = { "mov", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[9] = { "mov_long", { { OPERAND_TYPE_REG32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 9 },
|
||||
[10] = { "negate", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[11] = { "not", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[12] = { "bit_not", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[13] = { "type_of", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[14] = { "eq", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[15] = { "strict_eq", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[16] = { "neq", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[17] = { "strict_neq", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[18] = { "less", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[19] = { "less_eq", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[20] = { "greater", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[21] = { "greater_eq", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[22] = { "add", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[23] = { "add_n", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[24] = { "add_s", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[25] = { "mul", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[26] = { "mul_n", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[27] = { "div", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[28] = { "div_n", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[29] = { "mod", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[30] = { "sub", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[31] = { "sub_n", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[32] = { "l_shift", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[33] = { "r_shift", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[34] = { "u_rshift", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[35] = { "bit_and", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[36] = { "bit_xor", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[37] = { "bit_or", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[38] = { "inc", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[39] = { "dec", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[40] = { "instance_of", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[41] = { "is_in", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[42] = { "get_parent_environment", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[43] = { "get_environment", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[44] = { "get_closure_environment", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[45] = { "store_to_environment", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[46] = { "store_to_environment_l", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[47] = { "store_np_to_environment", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[48] = { "store_np_to_environment_l", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[49] = { "load_from_environment", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[50] = { "load_from_environment_l", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[51] = { "get_global_object", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[52] = { "get_new_target", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[53] = { "create_function_environment", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[54] = { "create_top_level_environment", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[55] = { "create_environment", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[56] = { "declare_global_var", { { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[57] = { "get_by_id_short", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[58] = { "get_by_id", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[59] = { "get_by_id_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 8 },
|
||||
[60] = { "try_get_by_id", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[61] = { "try_get_by_id_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 8 },
|
||||
[62] = { "put_by_id_loose", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[63] = { "put_by_id_strict", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[64] = { "put_by_id_loose_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 8 },
|
||||
[65] = { "put_by_id_strict_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 8 },
|
||||
[66] = { "try_put_by_id_loose", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[67] = { "try_put_by_id_strict", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[68] = { "try_put_by_id_loose_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 8 },
|
||||
[69] = { "try_put_by_id_strict_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 8 },
|
||||
[70] = { "put_new_own_by_id_short", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[71] = { "put_new_own_by_id", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[72] = { "put_new_own_by_id_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[73] = { "put_own_by_slot_idx", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[74] = { "put_own_by_slot_idx_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[75] = { "put_new_own_ne_by_id", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[76] = { "put_new_own_ne_by_id_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[77] = { "put_own_by_index", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[78] = { "put_own_by_index_l", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[79] = { "put_own_by_val", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[80] = { "del_by_id_loose", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[81] = { "del_by_id_strict", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[82] = { "del_by_id_loose_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[83] = { "del_by_id_strict_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[84] = { "get_by_val", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[85] = { "get_by_index", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[86] = { "put_by_val_loose", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[87] = { "put_by_val_strict", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[88] = { "del_by_val_loose", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[89] = { "del_by_val_strict", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[90] = { "put_own_getter_setter_by_val", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[91] = { "get_p_name_list", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[92] = { "get_next_p_name", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[93] = { "call", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[94] = { "construct", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[95] = { "call1", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[96] = { "call_with_new_target", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[97] = { "call2", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[98] = { "call3", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[99] = { "call4", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE } }, 7 },
|
||||
[100] = { "call_with_new_target_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[101] = { "call_builtin", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[102] = { "call_builtin_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[103] = { "get_builtin_closure", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[104] = { "ret", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[105] = { "catch", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[106] = { "direct_eval", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[107] = { "throw", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[108] = { "throw_if_empty", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[109] = { "debugger", { { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 1 },
|
||||
[110] = { "async_break_check", { { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 1 },
|
||||
[111] = { "profile_point", { { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[112] = { "create_closure", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_FUNCTION_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[113] = { "create_closure_long_index", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_FUNCTION_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[114] = { "create_this", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[115] = { "select_object", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[116] = { "load_param", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[117] = { "load_param_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[118] = { "load_const_u_int8", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[119] = { "load_const_int", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_IMM32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[120] = { "load_const_double", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_DOUBLE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 10 },
|
||||
[121] = { "load_const_big_int", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_BIGINT_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[122] = { "load_const_big_int_long_index", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_BIGINT_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[123] = { "load_const_string", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[124] = { "load_const_string_long_index", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[125] = { "load_const_empty", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[126] = { "load_const_undefined", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[127] = { "load_const_null", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[128] = { "load_const_true", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[129] = { "load_const_false", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[130] = { "load_const_zero", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[131] = { "coerce_this_ns", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[132] = { "load_this_ns", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[133] = { "to_number", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[134] = { "to_numeric", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[135] = { "to_int32", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[136] = { "add_empty_string", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[137] = { "get_arguments_prop_by_val_loose", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[138] = { "get_arguments_prop_by_val_strict", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[139] = { "get_arguments_length", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[140] = { "reify_arguments_strict", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[141] = { "reify_arguments_loose", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[142] = { "create_reg_exp", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 14 },
|
||||
[143] = { "switch_imm", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 18 },
|
||||
[144] = { "create_generator", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_FUNCTION_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[145] = { "create_generator_long_index", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_FUNCTION_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[146] = { "iterator_begin", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[147] = { "iterator_next", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[148] = { "iterator_close", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[149] = { "name", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[150] = { "name", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[151] = { "name", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[152] = { "jmp", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[153] = { "jmp_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[154] = { "jmp_true", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[155] = { "jmp_true_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[156] = { "jmp_false", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[157] = { "jmp_false_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[158] = { "jmp_undefined", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[159] = { "jmp_undefined_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[160] = { "j_less", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[161] = { "j_less_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[162] = { "j_not_less", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[163] = { "j_not_less_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[164] = { "j_less_n", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[165] = { "j_less_n_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[166] = { "j_not_less_n", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[167] = { "j_not_less_n_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[168] = { "j_less_equal", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[169] = { "j_less_equal_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[170] = { "j_not_less_equal", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[171] = { "j_not_less_equal_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[172] = { "j_less_equal_n", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[173] = { "j_less_equal_n_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[174] = { "j_not_less_equal_n", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[175] = { "j_not_less_equal_n_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[176] = { "j_greater", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[177] = { "j_greater_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[178] = { "j_not_greater", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[179] = { "j_not_greater_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[180] = { "j_greater_n", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[181] = { "j_greater_n_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[182] = { "j_not_greater_n", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[183] = { "j_not_greater_n_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[184] = { "j_greater_equal", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[185] = { "j_greater_equal_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[186] = { "j_not_greater_equal", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[187] = { "j_not_greater_equal_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[188] = { "j_greater_equal_n", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[189] = { "j_greater_equal_n_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[190] = { "j_not_greater_equal_n", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[191] = { "j_not_greater_equal_n_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[192] = { "j_equal", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[193] = { "j_equal_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[194] = { "j_not_equal", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[195] = { "j_not_equal_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[196] = { "j_strict_equal", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[197] = { "j_strict_equal_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[198] = { "j_strict_not_equal", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[199] = { "j_strict_not_equal_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
};
|
||||
@@ -0,0 +1,227 @@
|
||||
#include <hbc/opcodes.h>
|
||||
|
||||
static const Instruction k_instructions_v99[223] = {
|
||||
[0] = { "unreachable", { { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 1 },
|
||||
[1] = { "new_object_with_buffer", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[2] = { "new_object_with_buffer_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 10 },
|
||||
[3] = { "new_object_with_buffer_and_parent", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 11 },
|
||||
[4] = { "new_typed_object_with_buffer", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 12 },
|
||||
[5] = { "new_object", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[6] = { "new_object_with_parent", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[7] = { "new_array_with_buffer", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 8 },
|
||||
[8] = { "new_array_with_buffer_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 10 },
|
||||
[9] = { "new_array", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[10] = { "new_fast_array", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[11] = { "fast_array_length", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[12] = { "fast_array_load", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[13] = { "fast_array_store", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[14] = { "fast_array_push", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[15] = { "fast_array_append", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[16] = { "mov", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[17] = { "mov_long", { { OPERAND_TYPE_REG32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 9 },
|
||||
[18] = { "negate", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[19] = { "not", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[20] = { "bit_not", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[21] = { "type_of", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[22] = { "eq", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[23] = { "strict_eq", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[24] = { "neq", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[25] = { "strict_neq", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[26] = { "less", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[27] = { "less_eq", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[28] = { "greater", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[29] = { "greater_eq", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[30] = { "add", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[31] = { "add_n", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[32] = { "add_s", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[33] = { "mul", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[34] = { "mul_n", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[35] = { "div", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[36] = { "div_n", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[37] = { "mod", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[38] = { "sub", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[39] = { "sub_n", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[40] = { "l_shift", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[41] = { "r_shift", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[42] = { "u_rshift", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[43] = { "bit_and", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[44] = { "bit_xor", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[45] = { "bit_or", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[46] = { "inc", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[47] = { "dec", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[48] = { "instance_of", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[49] = { "is_in", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[50] = { "private_is_in", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[51] = { "type_of_is", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[52] = { "get_parent_environment", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[53] = { "get_environment", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[54] = { "get_closure_environment", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[55] = { "store_to_environment", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[56] = { "store_to_environment_l", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[57] = { "store_np_to_environment", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[58] = { "store_np_to_environment_l", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[59] = { "load_from_environment", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[60] = { "load_from_environment_l", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[61] = { "get_global_object", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[62] = { "get_new_target", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[63] = { "load_parent_no_traps", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[64] = { "create_function_environment", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[65] = { "create_top_level_environment", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[66] = { "create_environment", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[67] = { "declare_global_var", { { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[68] = { "get_by_id_short", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[69] = { "get_by_id", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[70] = { "get_by_id_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 8 },
|
||||
[71] = { "get_by_id_with_receiver_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 9 },
|
||||
[72] = { "try_get_by_id", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[73] = { "try_get_by_id_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 8 },
|
||||
[74] = { "put_by_id_loose", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[75] = { "put_by_id_strict", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[76] = { "put_by_id_loose_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 8 },
|
||||
[77] = { "put_by_id_strict_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 8 },
|
||||
[78] = { "try_put_by_id_loose", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[79] = { "try_put_by_id_strict", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[80] = { "try_put_by_id_loose_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 8 },
|
||||
[81] = { "try_put_by_id_strict_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 8 },
|
||||
[82] = { "put_own_by_slot_idx", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[83] = { "put_own_by_slot_idx_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[84] = { "get_own_by_slot_idx", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[85] = { "get_own_by_slot_idx_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[86] = { "define_own_by_id", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[87] = { "define_own_by_id_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 8 },
|
||||
[88] = { "define_own_by_index", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[89] = { "define_own_by_index_l", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[90] = { "define_own_in_dense_array", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[91] = { "define_own_in_dense_array_l", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[92] = { "define_own_by_val", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[93] = { "get_by_val", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[94] = { "get_by_index", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[95] = { "get_by_val_with_receiver", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[96] = { "put_by_val_loose", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[97] = { "put_by_val_strict", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[98] = { "put_by_val_with_receiver", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[99] = { "del_by_val", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[100] = { "add_own_private_by_sym", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[101] = { "get_own_private_by_sym", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[102] = { "put_own_private_by_sym", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[103] = { "define_own_getter_setter_by_val", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[104] = { "get_p_name_list", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[105] = { "get_next_p_name", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[106] = { "call", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[107] = { "construct", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[108] = { "call1", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[109] = { "call_with_new_target", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[110] = { "call2", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[111] = { "call3", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[112] = { "call4", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE } }, 7 },
|
||||
[113] = { "call_with_new_target_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[114] = { "call_require", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[115] = { "call_builtin", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[116] = { "call_builtin_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[117] = { "get_builtin_closure", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[118] = { "ret", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[119] = { "catch", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[120] = { "direct_eval", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[121] = { "throw", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[122] = { "throw_if_empty", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[123] = { "throw_if_undefined", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[124] = { "throw_if_this_initialized", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[125] = { "debugger", { { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 1 },
|
||||
[126] = { "async_break_check", { { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 1 },
|
||||
[127] = { "profile_point", { { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[128] = { "create_base_class", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[129] = { "create_base_class_long_index", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 8 },
|
||||
[130] = { "create_derived_class", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[131] = { "create_derived_class_long_index", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 9 },
|
||||
[132] = { "create_closure", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_FUNCTION_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[133] = { "create_closure_long_index", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_FUNCTION_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[134] = { "create_this_for_new", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[135] = { "create_this_for_super", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[136] = { "select_object", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[137] = { "load_param", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[138] = { "load_param_long", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[139] = { "load_const_u_int8", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[140] = { "load_const_int", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_IMM32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[141] = { "load_const_double", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_DOUBLE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 10 },
|
||||
[142] = { "load_const_big_int", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_BIGINT_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[143] = { "load_const_big_int_long_index", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_BIGINT_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[144] = { "load_const_string", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[145] = { "load_const_string_long_index", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[146] = { "load_const_empty", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[147] = { "load_const_undefined", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[148] = { "load_const_null", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[149] = { "load_const_true", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[150] = { "load_const_false", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[151] = { "load_const_zero", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[152] = { "coerce_this_ns", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[153] = { "load_this_ns", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[154] = { "to_number", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[155] = { "to_numeric", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[156] = { "to_int32", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[157] = { "to_uint32", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[158] = { "add_empty_string", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[159] = { "create_private_name", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[160] = { "get_arguments_prop_by_val_loose", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[161] = { "get_arguments_prop_by_val_strict", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[162] = { "get_arguments_length", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[163] = { "reify_arguments_strict", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[164] = { "reify_arguments_loose", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[165] = { "to_property_key", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[166] = { "create_reg_exp", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_STRING_ID }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 14 },
|
||||
[167] = { "u_int_switch_imm", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 18 },
|
||||
[168] = { "string_switch_imm", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 18 },
|
||||
[169] = { "create_generator", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_FUNCTION_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[170] = { "create_generator_long_index", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT32, OPERAND_MEANING_FUNCTION_ID }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[171] = { "iterator_begin", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[172] = { "iterator_next", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[173] = { "iterator_close", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[174] = { "typed_load_parent", { { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[175] = { "name", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[176] = { "name", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[177] = { "name", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[178] = { "jmp", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 2 },
|
||||
[179] = { "jmp_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 5 },
|
||||
[180] = { "jmp_true", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[181] = { "jmp_true_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[182] = { "jmp_false", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[183] = { "jmp_false_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[184] = { "jmp_undefined", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 3 },
|
||||
[185] = { "jmp_undefined_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 6 },
|
||||
[186] = { "jmp_type_of_is", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT16, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 8 },
|
||||
[187] = { "j_less", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[188] = { "j_less_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[189] = { "j_not_less", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[190] = { "j_not_less_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[191] = { "j_less_n", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[192] = { "j_less_n_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[193] = { "j_not_less_n", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[194] = { "j_not_less_n_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[195] = { "j_less_equal", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[196] = { "j_less_equal_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[197] = { "j_not_less_equal", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[198] = { "j_not_less_equal_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[199] = { "j_less_equal_n", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[200] = { "j_less_equal_n_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[201] = { "j_not_less_equal_n", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[202] = { "j_not_less_equal_n_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[203] = { "j_greater", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[204] = { "j_greater_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[205] = { "j_not_greater", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[206] = { "j_not_greater_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[207] = { "j_greater_equal", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[208] = { "j_greater_equal_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[209] = { "j_not_greater_equal", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[210] = { "j_not_greater_equal_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[211] = { "j_equal", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[212] = { "j_equal_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[213] = { "j_not_equal", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[214] = { "j_not_equal_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[215] = { "j_strict_equal", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[216] = { "j_strict_equal_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[217] = { "j_strict_not_equal", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[218] = { "j_strict_not_equal_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[219] = { "jmp_builtin_is", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[220] = { "jmp_builtin_is_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
[221] = { "jmp_builtin_is_not", { { OPERAND_TYPE_ADDR8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 4 },
|
||||
[222] = { "jmp_builtin_is_not_long", { { OPERAND_TYPE_ADDR32, OPERAND_MEANING_NONE }, { OPERAND_TYPE_UINT8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_REG8, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE }, { OPERAND_TYPE_NONE, OPERAND_MEANING_NONE } }, 7 },
|
||||
};
|
||||
@@ -169,7 +169,7 @@ Result _hbc_parse_function_bytecode(HBCReader *reader, u32 function_id, ParsedIn
|
||||
ParsedInstruction instruction;
|
||||
memset (&instruction, 0, sizeof (ParsedInstruction));
|
||||
instruction.inst = &k_unknown_instruction;
|
||||
instruction.opcode = opcode;
|
||||
instruction.opcode = HBC_CANONICAL_OPCODE_UNKNOWN;
|
||||
instruction.arg1 = remaining > UINT32_MAX? UINT32_MAX: (u32)remaining; /* store skipped size */
|
||||
instruction.original_pos = original_pos;
|
||||
instruction.next_pos = original_pos + (u32) (remaining > UINT32_MAX? UINT32_MAX: remaining);
|
||||
@@ -189,7 +189,7 @@ Result _hbc_parse_function_bytecode(HBCReader *reader, u32 function_id, ParsedIn
|
||||
memset (&instruction, 0, sizeof (ParsedInstruction));
|
||||
|
||||
instruction.inst = inst;
|
||||
instruction.opcode = opcode;
|
||||
instruction.opcode = hbc_canonical_opcode_from_name (inst->name);
|
||||
instruction.original_pos = original_pos;
|
||||
instruction.function_offset = function_header->offset;
|
||||
instruction.hbc_reader = reader;
|
||||
@@ -200,6 +200,8 @@ Result _hbc_parse_function_bytecode(HBCReader *reader, u32 function_id, ParsedIn
|
||||
/* Parse operands from the buffer */
|
||||
u32 operand_values[6] = { 0 };
|
||||
bool parsing_failed = false;
|
||||
bool has_double_arg2 = false;
|
||||
double double_arg2_value = 0;
|
||||
|
||||
for (int i = 0; i < 6 && inst->operands[i].operand_type != OPERAND_TYPE_NONE; i++) {
|
||||
OperandType operand_type = inst->operands[i].operand_type;
|
||||
@@ -295,7 +297,8 @@ Result _hbc_parse_function_bytecode(HBCReader *reader, u32 function_id, ParsedIn
|
||||
parsing_failed = true;
|
||||
break;
|
||||
}
|
||||
instruction.double_arg2 = value;
|
||||
has_double_arg2 = true;
|
||||
double_arg2_value = value;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -316,6 +319,9 @@ Result _hbc_parse_function_bytecode(HBCReader *reader, u32 function_id, ParsedIn
|
||||
/* Store operand values */
|
||||
instruction.arg1 = operand_values[0];
|
||||
instruction.arg2 = operand_values[1];
|
||||
if (has_double_arg2) {
|
||||
instruction.double_arg2 = double_arg2_value;
|
||||
}
|
||||
instruction.arg3 = operand_values[2];
|
||||
instruction.arg4 = operand_values[3];
|
||||
instruction.arg5 = operand_values[4];
|
||||
|
||||
@@ -51,9 +51,15 @@ Result _hbc_reader_cleanup(HBCReader *reader) {
|
||||
}
|
||||
|
||||
/* Clean up array and object data */
|
||||
free (reader->arrays);
|
||||
free (reader->literal_values);
|
||||
if (reader->arrays != reader->literal_values) {
|
||||
free (reader->arrays);
|
||||
}
|
||||
free (reader->object_keys);
|
||||
free (reader->object_values);
|
||||
if (reader->object_values != reader->literal_values) {
|
||||
free (reader->object_values);
|
||||
}
|
||||
free (reader->object_shapes);
|
||||
|
||||
/* Clean up BigInt data */
|
||||
free (reader->bigint_values);
|
||||
@@ -191,8 +197,8 @@ Result _hbc_reader_read_header(HBCReader *reader) {
|
||||
"Unsupported bytecode version (too old, minimum supported is 72)");
|
||||
}
|
||||
|
||||
if (version > 96) {
|
||||
fprintf (stderr, "Warning: Version %u is newer than the latest supported version (96). Some features may not work correctly.\n", version);
|
||||
if (version > 99) {
|
||||
fprintf (stderr, "Warning: Version %u is newer than the latest supported version (99). Some features may not work correctly.\n", version);
|
||||
}
|
||||
|
||||
/* Read the source hash */
|
||||
@@ -248,14 +254,25 @@ Result _hbc_reader_read_header(HBCReader *reader) {
|
||||
/* Read the RegExp storage size */
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &reader->header.regExpStorageSize));
|
||||
|
||||
/* Read the array buffer size */
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &reader->header.arrayBufferSize));
|
||||
/* Read literal/array buffer size */
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &reader->header.literalValueBufferSize));
|
||||
|
||||
/* Read the object key buffer size */
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &reader->header.objKeyBufferSize));
|
||||
|
||||
/* Read the object value buffer size */
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &reader->header.objValueBufferSize));
|
||||
if (version >= 97) {
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &reader->header.objShapeTableCount));
|
||||
reader->header.arrayBufferSize = reader->header.literalValueBufferSize;
|
||||
reader->header.objValueBufferSize = reader->header.literalValueBufferSize;
|
||||
} else {
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &reader->header.objValueBufferSize));
|
||||
reader->header.arrayBufferSize = reader->header.literalValueBufferSize;
|
||||
reader->header.objShapeTableCount = 0;
|
||||
}
|
||||
reader->header.numStringSwitchImms = 0;
|
||||
if (version >= 99) {
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &reader->header.numStringSwitchImms));
|
||||
}
|
||||
|
||||
/* Read the segment ID (or CJS module offset for older versions) */
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &reader->header.segmentID));
|
||||
@@ -287,11 +304,128 @@ Result _hbc_reader_read_header(HBCReader *reader) {
|
||||
return SUCCESS_RESULT ();
|
||||
}
|
||||
|
||||
static Result hbc_reader_read_functions_modern(HBCReader *reader) {
|
||||
if (!reader) {
|
||||
return ERROR_RESULT (RESULT_ERROR_INVALID_ARGUMENT, "Reader is NULL");
|
||||
}
|
||||
|
||||
RETURN_IF_ERROR (align_over_padding (&reader->file_buffer, 4));
|
||||
|
||||
reader->function_headers = (FunctionHeader *)calloc (reader->header.functionCount, sizeof (FunctionHeader));
|
||||
if (!reader->function_headers) {
|
||||
return ERROR_RESULT (RESULT_ERROR_MEMORY_ALLOCATION, "Failed to allocate function headers");
|
||||
}
|
||||
reader->function_id_to_exc_handlers = (ExceptionHandlerList *)calloc (reader->header.functionCount, sizeof (ExceptionHandlerList));
|
||||
if (!reader->function_id_to_exc_handlers) {
|
||||
free (reader->function_headers);
|
||||
reader->function_headers = NULL;
|
||||
return ERROR_RESULT (RESULT_ERROR_MEMORY_ALLOCATION, "Failed to allocate exception handler lists");
|
||||
}
|
||||
reader->function_id_to_debug_offsets = (DebugOffsets *)calloc (reader->header.functionCount, sizeof (DebugOffsets));
|
||||
if (!reader->function_id_to_debug_offsets) {
|
||||
free (reader->function_headers);
|
||||
free (reader->function_id_to_exc_handlers);
|
||||
reader->function_headers = NULL;
|
||||
reader->function_id_to_exc_handlers = NULL;
|
||||
return ERROR_RESULT (RESULT_ERROR_MEMORY_ALLOCATION, "Failed to allocate debug offsets");
|
||||
}
|
||||
|
||||
for (u32 i = 0; i < reader->header.functionCount; i++) {
|
||||
size_t header_pos = reader->file_buffer.position;
|
||||
u32 raw1 = 0, raw2 = 0, raw3 = 0;
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &raw1));
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &raw2));
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &raw3));
|
||||
|
||||
FunctionHeader *header = &reader->function_headers[i];
|
||||
header->offset = raw1 & 0x1FFFFFFu;
|
||||
header->paramCount = (reader->header.version >= 99)? ((raw1 >> 25) & 0x1Fu): ((raw1 >> 25) & 0x7Fu);
|
||||
header->bytecodeSizeInBytes = (reader->header.version >= 99)? (raw2 & 0x3FFFu): (raw2 & 0x7FFFu);
|
||||
header->functionName = (reader->header.version >= 99)? ((raw2 >> 14) & 0xFFu): ((raw2 >> 15) & 0x1FFFFu);
|
||||
header->frameSize = raw3 & 0xFFu;
|
||||
header->highestReadCacheIndex = (raw3 >> 8) & 0xFFu;
|
||||
header->highestWriteCacheIndex = (reader->header.version >= 99)? ((raw3 >> 16) & 0x7Fu): ((raw3 >> 16) & 0xFFu);
|
||||
header->environmentSize = (reader->header.version >= 99)? ((raw3 >> 23) & 0x1u): 0;
|
||||
{
|
||||
u8 flags = (raw3 >> 24) & 0xFFu;
|
||||
header->prohibitInvoke = flags & 0x3u;
|
||||
header->strictMode = (flags >> 2) & 0x1u;
|
||||
header->hasExceptionHandler = (flags >> 3) & 0x1u;
|
||||
header->hasDebugInfo = (flags >> 4) & 0x1u;
|
||||
header->overflowed = (flags >> 5) & 0x1u;
|
||||
header->unused = (flags >> 6) & 0x3u;
|
||||
}
|
||||
header->infoOffset = 0;
|
||||
|
||||
if (header->overflowed) {
|
||||
u32 large_header_offset = (reader->header.version >= 99)? ((header->functionName << 24) | (header->offset & 0xFFFFFFu)): ((header->functionName << 16) | (header->offset & 0xFFFFu));
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_seek (&reader->file_buffer, large_header_offset));
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &header->offset));
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &header->paramCount));
|
||||
if (reader->header.version >= 99) {
|
||||
u32 ignored = 0;
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &ignored));
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &header->bytecodeSizeInBytes));
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &header->functionName));
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &ignored));
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &ignored));
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &header->frameSize));
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u8 (&reader->file_buffer, &header->highestReadCacheIndex));
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u8 (&reader->file_buffer, &header->highestWriteCacheIndex));
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u8 (&reader->file_buffer, &header->environmentSize));
|
||||
{
|
||||
u8 flags = 0;
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u8 (&reader->file_buffer, &flags));
|
||||
header->prohibitInvoke = flags & 0x3u;
|
||||
header->strictMode = (flags >> 2) & 0x1u;
|
||||
header->hasExceptionHandler = (flags >> 3) & 0x1u;
|
||||
header->hasDebugInfo = (flags >> 4) & 0x1u;
|
||||
header->overflowed = (flags >> 5) & 0x1u;
|
||||
header->unused = (flags >> 6) & 0x3u;
|
||||
}
|
||||
} else {
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &header->bytecodeSizeInBytes));
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &header->functionName));
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &header->frameSize));
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u8 (&reader->file_buffer, &header->highestReadCacheIndex));
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u8 (&reader->file_buffer, &header->highestWriteCacheIndex));
|
||||
{
|
||||
u8 flags = 0;
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u8 (&reader->file_buffer, &flags));
|
||||
header->prohibitInvoke = flags & 0x3u;
|
||||
header->strictMode = (flags >> 2) & 0x1u;
|
||||
header->hasExceptionHandler = (flags >> 3) & 0x1u;
|
||||
header->hasDebugInfo = (flags >> 4) & 0x1u;
|
||||
header->overflowed = (flags >> 5) & 0x1u;
|
||||
header->unused = (flags >> 6) & 0x3u;
|
||||
}
|
||||
}
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_seek (&reader->file_buffer, header_pos + 12));
|
||||
}
|
||||
|
||||
if (header->offset + header->bytecodeSizeInBytes > reader->file_buffer.size) {
|
||||
return ERROR_RESULT (RESULT_ERROR_PARSING_FAILED, "Function bytecode range is out of bounds");
|
||||
}
|
||||
header->bytecode = (u8 *)malloc (header->bytecodeSizeInBytes);
|
||||
if (!header->bytecode) {
|
||||
return ERROR_RESULT (RESULT_ERROR_MEMORY_ALLOCATION, "Failed to allocate bytecode buffer");
|
||||
}
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_seek (&reader->file_buffer, header->offset));
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_bytes (&reader->file_buffer, header->bytecode, header->bytecodeSizeInBytes));
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_seek (&reader->file_buffer, header_pos + 12));
|
||||
}
|
||||
|
||||
return SUCCESS_RESULT ();
|
||||
}
|
||||
|
||||
/* Read function headers */
|
||||
Result _hbc_reader_read_functions(HBCReader *reader) {
|
||||
if (!reader) {
|
||||
return ERROR_RESULT (RESULT_ERROR_INVALID_ARGUMENT, "Reader is NULL");
|
||||
}
|
||||
if (reader->header.version >= 97) {
|
||||
return hbc_reader_read_functions_modern (reader);
|
||||
}
|
||||
|
||||
/* Check if the function count is reasonable to prevent memory exhaustion */
|
||||
if (reader->header.functionCount > MAX_FUNCTIONS) {
|
||||
@@ -850,8 +984,12 @@ Result _hbc_reader_read_string_tables(HBCReader *reader) {
|
||||
is_utf16 = reader->small_string_table[i].isUTF16;
|
||||
}
|
||||
|
||||
/* Check bounds */
|
||||
if (offset + (is_utf16? length * 2: length) > string_storage_size) {
|
||||
size_t decoded_length = (size_t)length;
|
||||
size_t available = (size_t)offset > string_storage_size? 0: string_storage_size - (size_t)offset;
|
||||
if ((size_t)offset > string_storage_size ||
|
||||
decoded_length == SIZE_MAX ||
|
||||
(is_utf16 && decoded_length > available / 2) ||
|
||||
(!is_utf16 && decoded_length > available)) {
|
||||
fprintf (stderr, "Warning: String %u offset/length out of bounds, treating as empty string\n", i);
|
||||
reader->strings[i] = strdup ("");
|
||||
if (!reader->strings[i]) {
|
||||
@@ -862,8 +1000,8 @@ Result _hbc_reader_read_string_tables(HBCReader *reader) {
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Allocate string buffer - for UTF-16, length is in characters, so allocate 2 bytes per character */
|
||||
u32 buffer_size = is_utf16? (length * 2 + 1): (length + 1);
|
||||
/* Allocate string buffer (+1 for null terminator) */
|
||||
size_t buffer_size = decoded_length + 1;
|
||||
char *str = (char *)malloc (buffer_size);
|
||||
if (!str) {
|
||||
free (string_storage);
|
||||
@@ -906,6 +1044,10 @@ Result _hbc_reader_read_arrays(HBCReader *reader) {
|
||||
}
|
||||
|
||||
hbc_debug_printf ("Reading arrays at position %zu\n", reader->file_buffer.position);
|
||||
if (reader->header.version >= 97) {
|
||||
reader->header.arrayBufferSize = reader->header.literalValueBufferSize;
|
||||
reader->header.objValueBufferSize = reader->header.literalValueBufferSize;
|
||||
}
|
||||
|
||||
/* Sanity check on array buffer size */
|
||||
if (reader->header.arrayBufferSize > 100 * 1024 * 1024) { /* 100MB limit */
|
||||
@@ -988,6 +1130,33 @@ Result _hbc_reader_read_arrays(HBCReader *reader) {
|
||||
}
|
||||
}
|
||||
|
||||
if (reader->header.version >= 97 && reader->header.objShapeTableCount > 0) {
|
||||
Result shape_align_result = align_over_padding (&reader->file_buffer, 4);
|
||||
if (shape_align_result.code != RESULT_SUCCESS) {
|
||||
fprintf (stderr, "Error aligning buffer for object shapes: %s\n", shape_align_result.error_message);
|
||||
reader->header.objShapeTableCount = 0;
|
||||
} else {
|
||||
size_t shape_table_size = (size_t)reader->header.objShapeTableCount * sizeof (ShapeTableEntry);
|
||||
if (reader->file_buffer.position + shape_table_size > reader->file_buffer.size) {
|
||||
fprintf (stderr, "Warning: Not enough data for object shape table (need %zu bytes)\n", shape_table_size);
|
||||
reader->header.objShapeTableCount = 0;
|
||||
} else {
|
||||
reader->object_shapes = (ShapeTableEntry *)calloc (reader->header.objShapeTableCount, sizeof (ShapeTableEntry));
|
||||
if (!reader->object_shapes) {
|
||||
return ERROR_RESULT (RESULT_ERROR_MEMORY_ALLOCATION, "Failed to allocate object shape table");
|
||||
}
|
||||
for (u32 i = 0; i < reader->header.objShapeTableCount; i++) {
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &reader->object_shapes[i].key_buffer_offset));
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_read_u32 (&reader->file_buffer, &reader->object_shapes[i].prop_count));
|
||||
}
|
||||
reader->object_shape_count = reader->header.objShapeTableCount;
|
||||
}
|
||||
}
|
||||
reader->literal_values = reader->arrays;
|
||||
reader->object_values = reader->arrays;
|
||||
return SUCCESS_RESULT ();
|
||||
}
|
||||
|
||||
/* Handle object value buffer with safety checks */
|
||||
if (reader->header.objValueBufferSize > 0) {
|
||||
/* Align buffer for object value buffer */
|
||||
@@ -1171,7 +1340,9 @@ Result _hbc_reader_read_bigints(HBCReader *reader) {
|
||||
u32 length = bigint_table[i].length;
|
||||
|
||||
/* Check bounds */
|
||||
if (offset + length > reader->header.bigIntStorageSize) {
|
||||
size_t bigint_available = (size_t)offset > reader->header.bigIntStorageSize? 0:
|
||||
(size_t)reader->header.bigIntStorageSize - (size_t)offset;
|
||||
if ((size_t)offset > reader->header.bigIntStorageSize || (size_t)length > bigint_available) {
|
||||
fprintf (stderr, "Warning: BigInt %u has invalid offset/length (%u+%u exceeds %u)\n", i, offset, length, reader->header.bigIntStorageSize);
|
||||
/* Use zero for this value */
|
||||
reader->bigint_values[i] = 0;
|
||||
@@ -1415,6 +1586,12 @@ Result _hbc_reader_read_debug_info(HBCReader *reader) {
|
||||
if (!reader) {
|
||||
return ERROR_RESULT (RESULT_ERROR_INVALID_ARGUMENT, "Reader is NULL");
|
||||
}
|
||||
if (reader->header.debugInfoOffset == 0) {
|
||||
return SUCCESS_RESULT ();
|
||||
}
|
||||
if (reader->header.version >= 97) {
|
||||
return SUCCESS_RESULT ();
|
||||
}
|
||||
|
||||
/* Seek to debug info offset */
|
||||
RETURN_IF_ERROR (_hbc_buffer_reader_seek (&reader->file_buffer, reader->header.debugInfoOffset));
|
||||
|
||||
+6
-5
@@ -364,9 +364,10 @@ Result _hbc_generate_r2_script(const char *input_file, const char *output_file)
|
||||
bool isUTF16 = string_infos[i].isUTF16;
|
||||
|
||||
/* Skip strings with obviously invalid offsets/lengths */
|
||||
if (offset >= string_storage_size ||
|
||||
(isUTF16 && offset + (length * 2) > string_storage_size) ||
|
||||
(!isUTF16 && offset + length > string_storage_size)) {
|
||||
size_t available = (size_t)offset > string_storage_size? 0: string_storage_size - (size_t)offset;
|
||||
if ((size_t)offset > string_storage_size ||
|
||||
(isUTF16 && (size_t)length > available / 2) ||
|
||||
(!isUTF16 && (size_t)length > available)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -432,9 +433,9 @@ Result _hbc_generate_r2_script(const char *input_file, const char *output_file)
|
||||
snprintf (unique_name, sizeof (unique_name), "%s_%u", sanitized_name[0]? sanitized_name: "str", i);
|
||||
|
||||
/* Write the string flag - offset is relative to string storage base */
|
||||
uint32_t size = (isUTF16)? length * 2: length;
|
||||
size_t size = isUTF16? (size_t)length * 2: (size_t)length;
|
||||
uint32_t addr = (unsigned long) (reader.file_buffer.position - string_storage_size + offset);
|
||||
fprintf (out, "'f str.%s %d 0x%08x\n", unique_name, size, addr);
|
||||
fprintf (out, "'f str.%s %zu 0x%08x\n", unique_name, size, addr);
|
||||
#if 0
|
||||
/* Add flag for string length */
|
||||
if (isUTF16) {
|
||||
|
||||
+10
-12
@@ -7,7 +7,6 @@
|
||||
#include <hbc/parser.h>
|
||||
|
||||
#define MAX_OP_SIZE 16
|
||||
|
||||
#ifndef R_ARCH_SYNTAX_CAMEL
|
||||
#define R_ARCH_SYNTAX_CAMEL 6
|
||||
#endif
|
||||
@@ -170,8 +169,6 @@ static void parse_operands_and_set_ptr(RAnalOp *op, const ut8 *bytes, ut32 size,
|
||||
HBCStringMeta meta;
|
||||
Result meta_result = hbc_get_string_meta (hs->hbc, string_id, &meta);
|
||||
if (meta_result.code == RESULT_SUCCESS) {
|
||||
/* Set op->ptr to the file offset of the string.
|
||||
* meta.offset already includes string_storage_file_offset */
|
||||
op->ptr = (st64)meta.offset;
|
||||
}
|
||||
}
|
||||
@@ -188,7 +185,6 @@ static void parse_operands_and_set_ptr(RAnalOp *op, const ut8 *bytes, ut32 size,
|
||||
offset = fi.offset;
|
||||
(void)fi.size;
|
||||
(void)fi.param_count;
|
||||
// Set op->ptr to the function address as a file offset
|
||||
op->ptr = (st64)offset;
|
||||
}
|
||||
}
|
||||
@@ -264,12 +260,14 @@ static bool decode(RArchSession *s, RAnalOp *op, RArchDecodeMask mask) {
|
||||
set_esil (op, op->bytes, op->addr);
|
||||
}
|
||||
|
||||
if (sinfo.opcode == OP_Ret) {
|
||||
const u8 opc = sinfo.canonical_opcode;
|
||||
|
||||
if (opc == OP_Ret) {
|
||||
op->type = R_ANAL_OP_TYPE_RET;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (opcode_is_conditional (sinfo.opcode)) {
|
||||
if (opcode_is_conditional (opc)) {
|
||||
op->type = R_ANAL_OP_TYPE_CJMP;
|
||||
op->jump = sinfo.jump_target;
|
||||
op->fail = op->addr + op->size;
|
||||
@@ -277,7 +275,7 @@ static bool decode(RArchSession *s, RAnalOp *op, RArchDecodeMask mask) {
|
||||
}
|
||||
|
||||
/* SaveGenerator instructions are conditional branches, not calls */
|
||||
if (sinfo.opcode == OP_SaveGenerator || sinfo.opcode == OP_SaveGeneratorLong) {
|
||||
if (opc == OP_SaveGenerator || opc == OP_SaveGeneratorLong) {
|
||||
op->type = R_ANAL_OP_TYPE_CJMP;
|
||||
op->jump = sinfo.jump_target;
|
||||
op->fail = op->addr + op->size;
|
||||
@@ -288,7 +286,7 @@ static bool decode(RArchSession *s, RAnalOp *op, RArchDecodeMask mask) {
|
||||
op->type = R_ANAL_OP_TYPE_JMP;
|
||||
}
|
||||
|
||||
if (sinfo.opcode == OP_Jmp || sinfo.opcode == OP_JmpLong) {
|
||||
if (opc == OP_Jmp || opc == OP_JmpLong) {
|
||||
op->type = R_ANAL_OP_TYPE_JMP;
|
||||
op->jump = sinfo.jump_target;
|
||||
return true;
|
||||
@@ -297,13 +295,13 @@ static bool decode(RArchSession *s, RAnalOp *op, RArchDecodeMask mask) {
|
||||
if (sinfo.is_call) {
|
||||
op->type = R_ANAL_OP_TYPE_CALL;
|
||||
op->jump = sinfo.jump_target;
|
||||
if (!op->jump && op->ptr) {
|
||||
op->jump = op->ptr;
|
||||
}
|
||||
op->fail = op->addr + op->size;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Classify opcode type */
|
||||
u8 opc = sinfo.opcode;
|
||||
|
||||
switch (opc) {
|
||||
/* Arithmetic operations */
|
||||
case OP_Add:
|
||||
@@ -663,7 +661,7 @@ const RArchPlugin r_arch_plugin_r2hermes = {
|
||||
},
|
||||
.arch = "hbc",
|
||||
.bits = R_SYS_BITS_PACK1 (64),
|
||||
.cpus = "v76,v90,v91,v92,v93,v94,v95,v96",
|
||||
.cpus = "v76,v90,v91,v92,v93,v94,v95,v96,v97,v98,v99",
|
||||
.decode = &decode,
|
||||
.encode = &encode,
|
||||
.regs = regs,
|
||||
|
||||
+18
-5
@@ -51,6 +51,18 @@ static HBC *get_hbc(RBinFile *bf) {
|
||||
return hbo? hbo->hbc: NULL;
|
||||
}
|
||||
|
||||
static int bin_limit(RBinFile *bf) {
|
||||
return bf && bf->rbin? bf->rbin->options.limit: 0;
|
||||
}
|
||||
|
||||
static u32 clamp_count_with_warning(const char *kind, u32 count, int limit) {
|
||||
if (limit > 0 && count > (u32)limit) {
|
||||
R_LOG_WARN ("hbc.bin: bin.limit reached for %s (%u > %d)", kind, count, limit);
|
||||
return (u32)limit;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
/* Check if entrypoint offset is valid: in bounds and not all zeros */
|
||||
static bool is_valid_entrypoint(RBuffer *buf, ut64 offset) {
|
||||
ut64 file_size = r_buf_size (buf);
|
||||
@@ -205,7 +217,8 @@ static RList *symbols(RBinFile *bf) {
|
||||
return symbols;
|
||||
}
|
||||
|
||||
u32 func_count = hbc_function_count (hbc);
|
||||
int limit = bin_limit (bf);
|
||||
u32 func_count = clamp_count_with_warning ("symbols", hbc_function_count (hbc), limit);
|
||||
for (u32 i = 0; i < func_count; i++) {
|
||||
HBCFunc fi;
|
||||
if (hbc_get_function_info (hbc, i, &fi).code != RESULT_SUCCESS) {
|
||||
@@ -260,7 +273,8 @@ static RList *strings(RBinFile *bf) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
u32 string_count = hbc_string_count (hbc);
|
||||
int limit = bin_limit (bf);
|
||||
u32 string_count = clamp_count_with_warning ("strings", hbc_string_count (hbc), limit);
|
||||
for (u32 i = 0; i < string_count; i++) {
|
||||
const char *str = NULL;
|
||||
if (hbc_get_string (hbc, i, &str).code != RESULT_SUCCESS || !str) {
|
||||
@@ -277,8 +291,7 @@ static RList *strings(RBinFile *bf) {
|
||||
}
|
||||
|
||||
RBinString *ptr = R_NEW0 (RBinString);
|
||||
size_t str_len = strlen (str);
|
||||
if (str_len >= R_BIN_SIZEOF_STRINGS) {
|
||||
if (meta.length >= R_BIN_SIZEOF_STRINGS) {
|
||||
ptr->string = r_str_ndup (str, R_BIN_SIZEOF_STRINGS - 4);
|
||||
if (ptr->string) {
|
||||
char *tmp = r_str_newf ("%s...", ptr->string);
|
||||
@@ -286,7 +299,7 @@ static RList *strings(RBinFile *bf) {
|
||||
ptr->string = tmp;
|
||||
}
|
||||
} else {
|
||||
ptr->string = strdup (str);
|
||||
ptr->string = r_str_ndup (str, meta.length);
|
||||
}
|
||||
if (!ptr->string) {
|
||||
free (ptr);
|
||||
|
||||
+13
-2
@@ -440,9 +440,20 @@ static Result cmd_h(const CliContext *ctx, int argc, char **argv) {
|
||||
}
|
||||
fprintf (out, " RegExp Count: %u\n", hh.regExpCount);
|
||||
fprintf (out, " RegExp Storage Size: %u bytes\n", hh.regExpStorageSize);
|
||||
fprintf (out, " Array Buffer Size: %u bytes\n", hh.arrayBufferSize);
|
||||
if (hh.version >= 97) {
|
||||
fprintf (out, " Literal Value Buffer Size: %u bytes\n", hh.literalValueBufferSize);
|
||||
} else {
|
||||
fprintf (out, " Array Buffer Size: %u bytes\n", hh.arrayBufferSize);
|
||||
}
|
||||
fprintf (out, " Object Key Buffer Size: %u bytes\n", hh.objKeyBufferSize);
|
||||
fprintf (out, " Object Value Buffer Size: %u bytes\n", hh.objValueBufferSize);
|
||||
if (hh.version >= 97) {
|
||||
fprintf (out, " Object Shape Table Count: %u\n", hh.objShapeTableCount);
|
||||
} else {
|
||||
fprintf (out, " Object Value Buffer Size: %u bytes\n", hh.objValueBufferSize);
|
||||
}
|
||||
if (hh.version >= 99) {
|
||||
fprintf (out, " String Switch Instruction Count: %u\n", hh.numStringSwitchImms);
|
||||
}
|
||||
fprintf (out, " %s: %u\n CJS Module Count: %u\n", (hh.version < 78)? "CJS Module Offset": "Segment ID", hh.segmentID, hh.cjsModuleCount);
|
||||
if (hh.version >= 84) {
|
||||
fprintf (out, " Function Source Count: %u\n", hh.functionSourceCount);
|
||||
|
||||
Reference in new issue
Block a user