#ifdef FMT
FMT(none)
FMT(none_int)
FMT(none_loc)
FMT(none_arg)
FMT(none_var_ref)
FMT(u8)
FMT(i8)
FMT(loc8)
FMT(const8)
FMT(label8)
FMT(u16)
FMT(i16)
FMT(label16)
FMT(npop)
FMT(npopx)
FMT(loc)
FMT(arg)
FMT(var_ref)
FMT(u32)
FMT(i32)
FMT(const16)
FMT(label)
FMT(value)
#undef FMT
#endif
#ifdef DEF
#ifndef def
#define def(id, size, n_pop, n_push, f) DEF(id, size, n_pop, n_push, f)
#endif
DEF(invalid, 1, 0, 0, none)
DEF( push_value, 5, 0, 1, value)
DEF( push_const, 3, 0, 1, const16)
DEF( fclosure, 3, 0, 1, const16)
DEF( undefined, 1, 0, 1, none)
DEF( null, 1, 0, 1, none)
DEF( push_this, 1, 0, 1, none)
DEF( push_false, 1, 0, 1, none)
DEF( push_true, 1, 0, 1, none)
DEF( object, 3, 0, 1, u16)
DEF( this_func, 1, 0, 1, none)
DEF( arguments, 1, 0, 1, none)
DEF( new_target, 1, 0, 1, none)
DEF( drop, 1, 1, 0, none)
DEF( nip, 1, 2, 1, none)
DEF( dup, 1, 1, 2, none)
DEF( dup1, 1, 2, 3, none)
DEF( dup2, 1, 2, 4, none)
DEF( insert2, 1, 2, 3, none)
DEF( insert3, 1, 3, 4, none)
DEF( perm3, 1, 3, 3, none)
DEF( perm4, 1, 4, 4, none)
DEF( swap, 1, 2, 2, none)
DEF( rot3l, 1, 3, 3, none)
DEF(call_constructor, 3, 1, 1, npop)
DEF( call, 3, 1, 1, npop)
DEF( call_method, 3, 2, 1, npop)
DEF( array_from, 3, 0, 1, npop)
DEF( return, 1, 1, 0, none)
DEF( return_undef, 1, 0, 0, none)
DEF( throw, 1, 1, 0, none)
DEF( regexp, 1, 2, 1, none)
DEF( get_field, 3, 1, 1, const16)
DEF( get_field2, 3, 1, 2, const16)
DEF( put_field, 3, 2, 0, const16)
DEF( get_array_el, 1, 2, 1, none)
DEF( get_array_el2, 1, 2, 2, none)
DEF( put_array_el, 1, 3, 0, none)
DEF( get_length, 1, 1, 1, none)
DEF( get_length2, 1, 1, 2, none)
DEF( define_field, 3, 2, 1, const16)
DEF( define_getter, 3, 2, 1, const16)
DEF( define_setter, 3, 2, 1, const16)
DEF( set_proto, 1, 2, 1, none)
DEF( get_loc, 3, 0, 1, loc)
DEF( put_loc, 3, 1, 0, loc)
DEF( get_arg, 3, 0, 1, arg)
DEF( put_arg, 3, 1, 0, arg)
DEF( get_var_ref, 3, 0, 1, var_ref)
DEF( put_var_ref, 3, 1, 0, var_ref)
DEF(get_var_ref_nocheck, 3, 0, 1, var_ref)
DEF(put_var_ref_nocheck, 3, 1, 0, var_ref)
DEF( if_false, 5, 1, 0, label)
DEF( if_true, 5, 1, 0, label)
DEF( goto, 5, 0, 0, label)
DEF( catch, 5, 0, 1, label)
DEF( gosub, 5, 0, 0, label)
DEF( ret, 1, 1, 0, none)
DEF( for_in_start, 1, 1, 1, none)
DEF( for_of_start, 1, 1, 1, none)
DEF( for_of_next, 1, 1, 3, none)
DEF( neg, 1, 1, 1, none)
DEF( plus, 1, 1, 1, none)
DEF( dec, 1, 1, 1, none)
DEF( inc, 1, 1, 1, none)
DEF( post_dec, 1, 1, 2, none)
DEF( post_inc, 1, 1, 2, none)
DEF( not, 1, 1, 1, none)
DEF( lnot, 1, 1, 1, none)
DEF( typeof, 1, 1, 1, none)
DEF( delete, 1, 2, 1, none)
DEF( mul, 1, 2, 1, none)
DEF( div, 1, 2, 1, none)
DEF( mod, 1, 2, 1, none)
DEF( add, 1, 2, 1, none)
DEF( sub, 1, 2, 1, none)
DEF( pow, 1, 2, 1, none)
DEF( shl, 1, 2, 1, none)
DEF( sar, 1, 2, 1, none)
DEF( shr, 1, 2, 1, none)
DEF( lt, 1, 2, 1, none)
DEF( lte, 1, 2, 1, none)
DEF( gt, 1, 2, 1, none)
DEF( gte, 1, 2, 1, none)
DEF( instanceof, 1, 2, 1, none)
DEF( in, 1, 2, 1, none)
DEF( eq, 1, 2, 1, none)
DEF( neq, 1, 2, 1, none)
DEF( strict_eq, 1, 2, 1, none)
DEF( strict_neq, 1, 2, 1, none)
DEF( and, 1, 2, 1, none)
DEF( xor, 1, 2, 1, none)
DEF( or, 1, 2, 1, none)
DEF( nop, 1, 0, 0, none)
DEF( push_minus1, 1, 0, 1, none_int)
DEF( push_0, 1, 0, 1, none_int)
DEF( push_1, 1, 0, 1, none_int)
DEF( push_2, 1, 0, 1, none_int)
DEF( push_3, 1, 0, 1, none_int)
DEF( push_4, 1, 0, 1, none_int)
DEF( push_5, 1, 0, 1, none_int)
DEF( push_6, 1, 0, 1, none_int)
DEF( push_7, 1, 0, 1, none_int)
DEF( push_i8, 2, 0, 1, i8)
DEF( push_i16, 3, 0, 1, i16)
DEF( push_const8, 2, 0, 1, const8)
DEF( fclosure8, 2, 0, 1, const8)
DEF(push_empty_string, 1, 0, 1, none)
DEF( get_loc8, 2, 0, 1, loc8)
DEF( put_loc8, 2, 1, 0, loc8)
DEF( get_loc0, 1, 0, 1, none_loc)
DEF( get_loc1, 1, 0, 1, none_loc)
DEF( get_loc2, 1, 0, 1, none_loc)
DEF( get_loc3, 1, 0, 1, none_loc)
DEF( put_loc0, 1, 1, 0, none_loc)
DEF( put_loc1, 1, 1, 0, none_loc)
DEF( put_loc2, 1, 1, 0, none_loc)
DEF( put_loc3, 1, 1, 0, none_loc)
DEF( get_arg0, 1, 0, 1, none_arg)
DEF( get_arg1, 1, 0, 1, none_arg)
DEF( get_arg2, 1, 0, 1, none_arg)
DEF( get_arg3, 1, 0, 1, none_arg)
DEF( put_arg0, 1, 1, 0, none_arg)
DEF( put_arg1, 1, 1, 0, none_arg)
DEF( put_arg2, 1, 1, 0, none_arg)
DEF( put_arg3, 1, 1, 0, none_arg)
#if 0#endif
#undef DEF
#undef def
#endif
#ifdef REDEF
REDEF(invalid, 1)
REDEF(char1, 2)
REDEF(char2, 3)
REDEF(char3, 4)
REDEF(char4, 5)
REDEF(dot, 1)
REDEF(any, 1)
REDEF(space, 1)
REDEF(not_space, 1)
REDEF(line_start, 1)
REDEF(line_start_m, 1)
REDEF(line_end, 1)
REDEF(line_end_m, 1)
REDEF(goto, 5)
REDEF(split_goto_first, 5)
REDEF(split_next_first, 5)
REDEF(match, 1)
REDEF(lookahead_match, 1)
REDEF(negative_lookahead_match, 1)
REDEF(save_start, 2)
REDEF(save_end, 2)
REDEF(save_reset, 3)
REDEF(loop, 6)
REDEF(loop_split_goto_first, 10)
REDEF(loop_split_next_first, 10)
REDEF(loop_check_adv_split_goto_first, 10)
REDEF(loop_check_adv_split_next_first, 10)
REDEF(set_i32, 6)
REDEF(word_boundary, 1)
REDEF(not_word_boundary, 1)
REDEF(back_reference, 2)
REDEF(back_reference_i, 2)
REDEF(range8, 2)
REDEF(range, 3)
REDEF(lookahead, 5)
REDEF(negative_lookahead, 5)
REDEF(set_char_pos, 2)
REDEF(check_advance, 2)
#endif