/* GENERATED BY imacro_asm.js -- DO NOT EDIT!!! */
static struct {
    jsbytecode any_obj[37];
    jsbytecode obj_any[39];
} equality_imacros = {
    {
/* 0*/  JSOP_DUP,
/* 1*/  JSOP_DUP,
/* 2*/  JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
/* 5*/  JSOP_IFPRIMTOP, 0, 16,
/* 8*/  JSOP_SWAP,
/* 9*/  JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_VOID),
/*12*/  JSOP_CALL, 0, 1,
/*15*/  JSOP_IFPRIMTOP, 0, 18,
/*18*/  JSOP_GOTO, 0, 4,
/*21*/  JSOP_POP,
/*22*/  JSOP_POP,
/*23*/  JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
/*26*/  JSOP_CALL, 0, 0,
/*29*/  JSOP_PRIMTOP,
/*30*/  JSOP_GOTO, 0, 5,
/*33*/  JSOP_SWAP,
/*34*/  JSOP_POP,
/*35*/  JSOP_IMACOP,
/*36*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_SWAP,
/* 1*/  JSOP_DUP,
/* 2*/  JSOP_DUP,
/* 3*/  JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
/* 6*/  JSOP_IFPRIMTOP, 0, 16,
/* 9*/  JSOP_SWAP,
/*10*/  JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_VOID),
/*13*/  JSOP_CALL, 0, 1,
/*16*/  JSOP_IFPRIMTOP, 0, 18,
/*19*/  JSOP_GOTO, 0, 4,
/*22*/  JSOP_POP,
/*23*/  JSOP_POP,
/*24*/  JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
/*27*/  JSOP_CALL, 0, 0,
/*30*/  JSOP_PRIMTOP,
/*31*/  JSOP_GOTO, 0, 5,
/*34*/  JSOP_SWAP,
/*35*/  JSOP_POP,
/*36*/  JSOP_SWAP,
/*37*/  JSOP_IMACOP,
/*38*/  JSOP_STOP,
    },
};
static struct {
    jsbytecode any_obj[37];
    jsbytecode obj_any[39];
    jsbytecode obj_obj[74];
} binary_imacros = {
    {
/* 0*/  JSOP_DUP,
/* 1*/  JSOP_DUP,
/* 2*/  JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
/* 5*/  JSOP_IFPRIMTOP, 0, 16,
/* 8*/  JSOP_SWAP,
/* 9*/  JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_NUMBER),
/*12*/  JSOP_CALL, 0, 1,
/*15*/  JSOP_IFPRIMTOP, 0, 18,
/*18*/  JSOP_GOTO, 0, 4,
/*21*/  JSOP_POP,
/*22*/  JSOP_POP,
/*23*/  JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
/*26*/  JSOP_CALL, 0, 0,
/*29*/  JSOP_PRIMTOP,
/*30*/  JSOP_GOTO, 0, 5,
/*33*/  JSOP_SWAP,
/*34*/  JSOP_POP,
/*35*/  JSOP_IMACOP,
/*36*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_SWAP,
/* 1*/  JSOP_DUP,
/* 2*/  JSOP_DUP,
/* 3*/  JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
/* 6*/  JSOP_IFPRIMTOP, 0, 16,
/* 9*/  JSOP_SWAP,
/*10*/  JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_NUMBER),
/*13*/  JSOP_CALL, 0, 1,
/*16*/  JSOP_IFPRIMTOP, 0, 18,
/*19*/  JSOP_GOTO, 0, 4,
/*22*/  JSOP_POP,
/*23*/  JSOP_POP,
/*24*/  JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
/*27*/  JSOP_CALL, 0, 0,
/*30*/  JSOP_PRIMTOP,
/*31*/  JSOP_GOTO, 0, 5,
/*34*/  JSOP_SWAP,
/*35*/  JSOP_POP,
/*36*/  JSOP_SWAP,
/*37*/  JSOP_IMACOP,
/*38*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_SWAP,
/* 1*/  JSOP_DUP,
/* 2*/  JSOP_DUP,
/* 3*/  JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
/* 6*/  JSOP_IFPRIMTOP, 0, 16,
/* 9*/  JSOP_SWAP,
/*10*/  JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_NUMBER),
/*13*/  JSOP_CALL, 0, 1,
/*16*/  JSOP_IFPRIMTOP, 0, 18,
/*19*/  JSOP_GOTO, 0, 4,
/*22*/  JSOP_POP,
/*23*/  JSOP_POP,
/*24*/  JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
/*27*/  JSOP_CALL, 0, 0,
/*30*/  JSOP_PRIMTOP,
/*31*/  JSOP_GOTO, 0, 5,
/*34*/  JSOP_SWAP,
/*35*/  JSOP_POP,
/*36*/  JSOP_SWAP,
/*37*/  JSOP_DUP,
/*38*/  JSOP_DUP,
/*39*/  JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
/*42*/  JSOP_IFPRIMTOP, 0, 16,
/*45*/  JSOP_SWAP,
/*46*/  JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_NUMBER),
/*49*/  JSOP_CALL, 0, 1,
/*52*/  JSOP_IFPRIMTOP, 0, 18,
/*55*/  JSOP_GOTO, 0, 4,
/*58*/  JSOP_POP,
/*59*/  JSOP_POP,
/*60*/  JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
/*63*/  JSOP_CALL, 0, 0,
/*66*/  JSOP_PRIMTOP,
/*67*/  JSOP_GOTO, 0, 5,
/*70*/  JSOP_SWAP,
/*71*/  JSOP_POP,
/*72*/  JSOP_IMACOP,
/*73*/  JSOP_STOP,
    },
};
static struct {
    jsbytecode any_obj[37];
    jsbytecode obj_any[39];
    jsbytecode obj_obj[74];
} add_imacros = {
    {
/* 0*/  JSOP_DUP,
/* 1*/  JSOP_DUP,
/* 2*/  JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
/* 5*/  JSOP_IFPRIMTOP, 0, 16,
/* 8*/  JSOP_SWAP,
/* 9*/  JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_VOID),
/*12*/  JSOP_CALL, 0, 1,
/*15*/  JSOP_IFPRIMTOP, 0, 18,
/*18*/  JSOP_GOTO, 0, 4,
/*21*/  JSOP_POP,
/*22*/  JSOP_POP,
/*23*/  JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
/*26*/  JSOP_CALL, 0, 0,
/*29*/  JSOP_PRIMTOP,
/*30*/  JSOP_GOTO, 0, 5,
/*33*/  JSOP_SWAP,
/*34*/  JSOP_POP,
/*35*/  JSOP_ADD,
/*36*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_SWAP,
/* 1*/  JSOP_DUP,
/* 2*/  JSOP_DUP,
/* 3*/  JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
/* 6*/  JSOP_IFPRIMTOP, 0, 16,
/* 9*/  JSOP_SWAP,
/*10*/  JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_VOID),
/*13*/  JSOP_CALL, 0, 1,
/*16*/  JSOP_IFPRIMTOP, 0, 18,
/*19*/  JSOP_GOTO, 0, 4,
/*22*/  JSOP_POP,
/*23*/  JSOP_POP,
/*24*/  JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
/*27*/  JSOP_CALL, 0, 0,
/*30*/  JSOP_PRIMTOP,
/*31*/  JSOP_GOTO, 0, 5,
/*34*/  JSOP_SWAP,
/*35*/  JSOP_POP,
/*36*/  JSOP_SWAP,
/*37*/  JSOP_ADD,
/*38*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_SWAP,
/* 1*/  JSOP_DUP,
/* 2*/  JSOP_DUP,
/* 3*/  JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
/* 6*/  JSOP_IFPRIMTOP, 0, 16,
/* 9*/  JSOP_SWAP,
/*10*/  JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_VOID),
/*13*/  JSOP_CALL, 0, 1,
/*16*/  JSOP_IFPRIMTOP, 0, 18,
/*19*/  JSOP_GOTO, 0, 4,
/*22*/  JSOP_POP,
/*23*/  JSOP_POP,
/*24*/  JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
/*27*/  JSOP_CALL, 0, 0,
/*30*/  JSOP_PRIMTOP,
/*31*/  JSOP_GOTO, 0, 5,
/*34*/  JSOP_SWAP,
/*35*/  JSOP_POP,
/*36*/  JSOP_SWAP,
/*37*/  JSOP_DUP,
/*38*/  JSOP_DUP,
/*39*/  JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
/*42*/  JSOP_IFPRIMTOP, 0, 16,
/*45*/  JSOP_SWAP,
/*46*/  JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_VOID),
/*49*/  JSOP_CALL, 0, 1,
/*52*/  JSOP_IFPRIMTOP, 0, 18,
/*55*/  JSOP_GOTO, 0, 4,
/*58*/  JSOP_POP,
/*59*/  JSOP_POP,
/*60*/  JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
/*63*/  JSOP_CALL, 0, 0,
/*66*/  JSOP_PRIMTOP,
/*67*/  JSOP_GOTO, 0, 5,
/*70*/  JSOP_SWAP,
/*71*/  JSOP_POP,
/*72*/  JSOP_ADD,
/*73*/  JSOP_STOP,
    },
};
static struct {
    jsbytecode sign[37];
} unary_imacros = {
    {
/* 0*/  JSOP_DUP,
/* 1*/  JSOP_DUP,
/* 2*/  JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
/* 5*/  JSOP_IFPRIMTOP, 0, 21,
/* 8*/  JSOP_SWAP,
/* 9*/  JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_NUMBER),
/*12*/  JSOP_CALL, 0, 1,
/*15*/  JSOP_IFPRIMTOP, 0, 6,
/*18*/  JSOP_GOTO, 0, 9,
/*21*/  JSOP_SWAP,
/*22*/  JSOP_POP,
/*23*/  JSOP_GOTO, 0, 12,
/*26*/  JSOP_POP,
/*27*/  JSOP_POP,
/*28*/  JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
/*31*/  JSOP_CALL, 0, 0,
/*34*/  JSOP_PRIMTOP,
/*35*/  JSOP_IMACOP,
/*36*/  JSOP_STOP,
    },
};
static struct {
    jsbytecode String[39];
} call_imacros = {
    {
/* 0*/  JSOP_DUP,
/* 1*/  JSOP_DUP,
/* 2*/  JSOP_GETPROP, 0, COMMON_ATOM_INDEX(toString),
/* 5*/  JSOP_IFPRIMTOP, 0, 13,
/* 8*/  JSOP_SWAP,
/* 9*/  JSOP_CALL, 0, 0,
/*12*/  JSOP_IFPRIMTOP, 0, 21,
/*15*/  JSOP_GOTO, 0, 4,
/*18*/  JSOP_POP,
/*19*/  JSOP_POP,
/*20*/  JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(valueOf),
/*23*/  JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_STRING),
/*26*/  JSOP_CALL, 0, 1,
/*29*/  JSOP_PRIMTOP,
/*30*/  JSOP_GOTO, 0, 5,
/*33*/  JSOP_SWAP,
/*34*/  JSOP_POP,
/*35*/  JSOP_CALL, 0, 1,
/*38*/  JSOP_STOP,
    },
};
static struct {
    jsbytecode apply0[8];
    jsbytecode apply1[12];
    jsbytecode apply2[16];
    jsbytecode apply3[21];
    jsbytecode apply4[26];
    jsbytecode apply5[31];
    jsbytecode apply6[36];
    jsbytecode apply7[41];
    jsbytecode apply8[46];
    jsbytecode call0[7];
    jsbytecode call1[7];
    jsbytecode call2[7];
    jsbytecode call3[7];
    jsbytecode call4[7];
    jsbytecode call5[7];
    jsbytecode call6[7];
    jsbytecode call7[7];
    jsbytecode call8[7];
} apply_imacros = {
    {
/* 0*/  JSOP_PICK, 3,
/* 2*/  JSOP_POP,
/* 3*/  JSOP_POP,
/* 4*/  JSOP_CALL, 0, 0,
/* 7*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_PICK, 3,
/* 2*/  JSOP_POP,
/* 3*/  JSOP_DUP,
/* 4*/  JSOP_ZERO,
/* 5*/  JSOP_GETELEM,
/* 6*/  JSOP_SWAP,
/* 7*/  JSOP_POP,
/* 8*/  JSOP_CALL, 0, 1,
/*11*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_PICK, 3,
/* 2*/  JSOP_POP,
/* 3*/  JSOP_DUP,
/* 4*/  JSOP_ZERO,
/* 5*/  JSOP_GETELEM,
/* 6*/  JSOP_SWAP,
/* 7*/  JSOP_DUP,
/* 8*/  JSOP_ONE,
/* 9*/  JSOP_GETELEM,
/*10*/  JSOP_SWAP,
/*11*/  JSOP_POP,
/*12*/  JSOP_CALL, 0, 2,
/*15*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_PICK, 3,
/* 2*/  JSOP_POP,
/* 3*/  JSOP_DUP,
/* 4*/  JSOP_ZERO,
/* 5*/  JSOP_GETELEM,
/* 6*/  JSOP_SWAP,
/* 7*/  JSOP_DUP,
/* 8*/  JSOP_ONE,
/* 9*/  JSOP_GETELEM,
/*10*/  JSOP_SWAP,
/*11*/  JSOP_DUP,
/*12*/  JSOP_INT8, 2,
/*14*/  JSOP_GETELEM,
/*15*/  JSOP_SWAP,
/*16*/  JSOP_POP,
/*17*/  JSOP_CALL, 0, 3,
/*20*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_PICK, 3,
/* 2*/  JSOP_POP,
/* 3*/  JSOP_DUP,
/* 4*/  JSOP_ZERO,
/* 5*/  JSOP_GETELEM,
/* 6*/  JSOP_SWAP,
/* 7*/  JSOP_DUP,
/* 8*/  JSOP_ONE,
/* 9*/  JSOP_GETELEM,
/*10*/  JSOP_SWAP,
/*11*/  JSOP_DUP,
/*12*/  JSOP_INT8, 2,
/*14*/  JSOP_GETELEM,
/*15*/  JSOP_SWAP,
/*16*/  JSOP_DUP,
/*17*/  JSOP_INT8, 3,
/*19*/  JSOP_GETELEM,
/*20*/  JSOP_SWAP,
/*21*/  JSOP_POP,
/*22*/  JSOP_CALL, 0, 4,
/*25*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_PICK, 3,
/* 2*/  JSOP_POP,
/* 3*/  JSOP_DUP,
/* 4*/  JSOP_ZERO,
/* 5*/  JSOP_GETELEM,
/* 6*/  JSOP_SWAP,
/* 7*/  JSOP_DUP,
/* 8*/  JSOP_ONE,
/* 9*/  JSOP_GETELEM,
/*10*/  JSOP_SWAP,
/*11*/  JSOP_DUP,
/*12*/  JSOP_INT8, 2,
/*14*/  JSOP_GETELEM,
/*15*/  JSOP_SWAP,
/*16*/  JSOP_DUP,
/*17*/  JSOP_INT8, 3,
/*19*/  JSOP_GETELEM,
/*20*/  JSOP_SWAP,
/*21*/  JSOP_DUP,
/*22*/  JSOP_INT8, 4,
/*24*/  JSOP_GETELEM,
/*25*/  JSOP_SWAP,
/*26*/  JSOP_POP,
/*27*/  JSOP_CALL, 0, 5,
/*30*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_PICK, 3,
/* 2*/  JSOP_POP,
/* 3*/  JSOP_DUP,
/* 4*/  JSOP_ZERO,
/* 5*/  JSOP_GETELEM,
/* 6*/  JSOP_SWAP,
/* 7*/  JSOP_DUP,
/* 8*/  JSOP_ONE,
/* 9*/  JSOP_GETELEM,
/*10*/  JSOP_SWAP,
/*11*/  JSOP_DUP,
/*12*/  JSOP_INT8, 2,
/*14*/  JSOP_GETELEM,
/*15*/  JSOP_SWAP,
/*16*/  JSOP_DUP,
/*17*/  JSOP_INT8, 3,
/*19*/  JSOP_GETELEM,
/*20*/  JSOP_SWAP,
/*21*/  JSOP_DUP,
/*22*/  JSOP_INT8, 4,
/*24*/  JSOP_GETELEM,
/*25*/  JSOP_SWAP,
/*26*/  JSOP_DUP,
/*27*/  JSOP_INT8, 5,
/*29*/  JSOP_GETELEM,
/*30*/  JSOP_SWAP,
/*31*/  JSOP_POP,
/*32*/  JSOP_CALL, 0, 6,
/*35*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_PICK, 3,
/* 2*/  JSOP_POP,
/* 3*/  JSOP_DUP,
/* 4*/  JSOP_ZERO,
/* 5*/  JSOP_GETELEM,
/* 6*/  JSOP_SWAP,
/* 7*/  JSOP_DUP,
/* 8*/  JSOP_ONE,
/* 9*/  JSOP_GETELEM,
/*10*/  JSOP_SWAP,
/*11*/  JSOP_DUP,
/*12*/  JSOP_INT8, 2,
/*14*/  JSOP_GETELEM,
/*15*/  JSOP_SWAP,
/*16*/  JSOP_DUP,
/*17*/  JSOP_INT8, 3,
/*19*/  JSOP_GETELEM,
/*20*/  JSOP_SWAP,
/*21*/  JSOP_DUP,
/*22*/  JSOP_INT8, 4,
/*24*/  JSOP_GETELEM,
/*25*/  JSOP_SWAP,
/*26*/  JSOP_DUP,
/*27*/  JSOP_INT8, 5,
/*29*/  JSOP_GETELEM,
/*30*/  JSOP_SWAP,
/*31*/  JSOP_DUP,
/*32*/  JSOP_INT8, 6,
/*34*/  JSOP_GETELEM,
/*35*/  JSOP_SWAP,
/*36*/  JSOP_POP,
/*37*/  JSOP_CALL, 0, 7,
/*40*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_PICK, 3,
/* 2*/  JSOP_POP,
/* 3*/  JSOP_DUP,
/* 4*/  JSOP_ZERO,
/* 5*/  JSOP_GETELEM,
/* 6*/  JSOP_SWAP,
/* 7*/  JSOP_DUP,
/* 8*/  JSOP_ONE,
/* 9*/  JSOP_GETELEM,
/*10*/  JSOP_SWAP,
/*11*/  JSOP_DUP,
/*12*/  JSOP_INT8, 2,
/*14*/  JSOP_GETELEM,
/*15*/  JSOP_SWAP,
/*16*/  JSOP_DUP,
/*17*/  JSOP_INT8, 3,
/*19*/  JSOP_GETELEM,
/*20*/  JSOP_SWAP,
/*21*/  JSOP_DUP,
/*22*/  JSOP_INT8, 4,
/*24*/  JSOP_GETELEM,
/*25*/  JSOP_SWAP,
/*26*/  JSOP_DUP,
/*27*/  JSOP_INT8, 5,
/*29*/  JSOP_GETELEM,
/*30*/  JSOP_SWAP,
/*31*/  JSOP_DUP,
/*32*/  JSOP_INT8, 6,
/*34*/  JSOP_GETELEM,
/*35*/  JSOP_SWAP,
/*36*/  JSOP_DUP,
/*37*/  JSOP_INT8, 7,
/*39*/  JSOP_GETELEM,
/*40*/  JSOP_SWAP,
/*41*/  JSOP_POP,
/*42*/  JSOP_CALL, 0, 8,
/*45*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_SWAP,
/* 1*/  JSOP_POP,
/* 2*/  JSOP_NULLTHIS,
/* 3*/  JSOP_CALL, 0, 0,
/* 6*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_PICK, 2,
/* 2*/  JSOP_POP,
/* 3*/  JSOP_CALL, 0, 0,
/* 6*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_PICK, 3,
/* 2*/  JSOP_POP,
/* 3*/  JSOP_CALL, 0, 1,
/* 6*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_PICK, 4,
/* 2*/  JSOP_POP,
/* 3*/  JSOP_CALL, 0, 2,
/* 6*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_PICK, 5,
/* 2*/  JSOP_POP,
/* 3*/  JSOP_CALL, 0, 3,
/* 6*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_PICK, 6,
/* 2*/  JSOP_POP,
/* 3*/  JSOP_CALL, 0, 4,
/* 6*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_PICK, 7,
/* 2*/  JSOP_POP,
/* 3*/  JSOP_CALL, 0, 5,
/* 6*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_PICK, 8,
/* 2*/  JSOP_POP,
/* 3*/  JSOP_CALL, 0, 6,
/* 6*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_PICK, 9,
/* 2*/  JSOP_POP,
/* 3*/  JSOP_CALL, 0, 7,
/* 6*/  JSOP_STOP,
    },
};
static struct {
    jsbytecode for_in[13];
    jsbytecode for_each[13];
    jsbytecode for_in_native[10];
    jsbytecode for_each_native[10];
} iter_imacros = {
    {
/* 0*/  JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(iterator),
/* 3*/  JSOP_INT8, (JSITER_ENUMERATE),
/* 5*/  JSOP_CALL, 0, 1,
/* 8*/  JSOP_OBJTOP, ((JSMSG_BAD_ITERATOR_RETURN) & 0xff00) >> 8, ((JSMSG_BAD_ITERATOR_RETURN) & 0xff),
/*11*/  JSOP_PUSH,
/*12*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(iterator),
/* 3*/  JSOP_INT8, (JSITER_ENUMERATE|JSITER_FOREACH),
/* 5*/  JSOP_CALL, 0, 1,
/* 8*/  JSOP_OBJTOP, ((JSMSG_BAD_ITERATOR_RETURN) & 0xff00) >> 8, ((JSMSG_BAD_ITERATOR_RETURN) & 0xff),
/*11*/  JSOP_PUSH,
/*12*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_CALLBUILTIN, ((JSBUILTIN_ObjectToIterator) & 0xff00) >> 8, ((JSBUILTIN_ObjectToIterator) & 0xff),
/* 3*/  JSOP_INT8, (JSITER_ENUMERATE),
/* 5*/  JSOP_CALL, 0, 1,
/* 8*/  JSOP_PUSH,
/* 9*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_CALLBUILTIN, ((JSBUILTIN_ObjectToIterator) & 0xff00) >> 8, ((JSBUILTIN_ObjectToIterator) & 0xff),
/* 3*/  JSOP_INT8, (JSITER_ENUMERATE|JSITER_FOREACH),
/* 5*/  JSOP_CALL, 0, 1,
/* 8*/  JSOP_PUSH,
/* 9*/  JSOP_STOP,
    },
};
static struct {
    jsbytecode custom_iter_next[10];
    jsbytecode native_iter_next[12];
} nextiter_imacros = {
    {
/* 0*/  JSOP_POP,
/* 1*/  JSOP_DUP,
/* 2*/  JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(next),
/* 5*/  JSOP_CALL, 0, 0,
/* 8*/  JSOP_TRUE,
/* 9*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_POP,
/* 1*/  JSOP_DUP,
/* 2*/  JSOP_CALLBUILTIN, ((JSBUILTIN_CallIteratorNext) & 0xff00) >> 8, ((JSBUILTIN_CallIteratorNext) & 0xff),
/* 5*/  JSOP_CALL, 0, 0,
/* 8*/  JSOP_DUP,
/* 9*/  JSOP_HOLE,
/*10*/  JSOP_STRICTNE,
/*11*/  JSOP_STOP,
    },
};
static struct {
    jsbytecode getprop[10];
    jsbytecode getelem[10];
} getelem_imacros = {
    {
/* 0*/  JSOP_SWAP,
/* 1*/  JSOP_CALLBUILTIN, ((JSBUILTIN_GetProperty) & 0xff00) >> 8, ((JSBUILTIN_GetProperty) & 0xff),
/* 4*/  JSOP_PICK, 2,
/* 6*/  JSOP_CALL, 0, 1,
/* 9*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_SWAP,
/* 1*/  JSOP_CALLBUILTIN, ((JSBUILTIN_GetElement) & 0xff00) >> 8, ((JSBUILTIN_GetElement) & 0xff),
/* 4*/  JSOP_PICK, 2,
/* 6*/  JSOP_CALL, 0, 1,
/* 9*/  JSOP_STOP,
    },
};
static struct {
    jsbytecode setprop[15];
    jsbytecode setelem[15];
} setelem_imacros = {
    {
/* 0*/  JSOP_DUP,
/* 1*/  JSOP_PICK, 3,
/* 3*/  JSOP_CALLBUILTIN, ((JSBUILTIN_SetProperty) & 0xff00) >> 8, ((JSBUILTIN_SetProperty) & 0xff),
/* 6*/  JSOP_PICK, 4,
/* 8*/  JSOP_PICK, 4,
/*10*/  JSOP_CALL, 0, 2,
/*13*/  JSOP_POP,
/*14*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_DUP,
/* 1*/  JSOP_PICK, 3,
/* 3*/  JSOP_CALLBUILTIN, ((JSBUILTIN_SetElement) & 0xff00) >> 8, ((JSBUILTIN_SetElement) & 0xff),
/* 6*/  JSOP_PICK, 4,
/* 8*/  JSOP_PICK, 4,
/*10*/  JSOP_CALL, 0, 2,
/*13*/  JSOP_POP,
/*14*/  JSOP_STOP,
    },
};
static struct {
    jsbytecode initprop[15];
    jsbytecode initelem[15];
} initelem_imacros = {
    {
/* 0*/  JSOP_PICK, 2,
/* 2*/  JSOP_DUP,
/* 3*/  JSOP_CALLBUILTIN, ((JSBUILTIN_SetProperty) & 0xff00) >> 8, ((JSBUILTIN_SetProperty) & 0xff),
/* 6*/  JSOP_PICK, 4,
/* 8*/  JSOP_PICK, 4,
/*10*/  JSOP_CALL, 0, 2,
/*13*/  JSOP_POP,
/*14*/  JSOP_STOP,
    },
    {
/* 0*/  JSOP_PICK, 2,
/* 2*/  JSOP_DUP,
/* 3*/  JSOP_CALLBUILTIN, ((JSBUILTIN_SetElement) & 0xff00) >> 8, ((JSBUILTIN_SetElement) & 0xff),
/* 6*/  JSOP_PICK, 4,
/* 8*/  JSOP_PICK, 4,
/*10*/  JSOP_CALL, 0, 2,
/*13*/  JSOP_POP,
/*14*/  JSOP_STOP,
    },
};
uint8 js_opcode2extra[JSOP_LIMIT] = {
    0,  /* JSOP_NOP */
    0,  /* JSOP_PUSH */
    0,  /* JSOP_POPV */
    0,  /* JSOP_ENTERWITH */
    0,  /* JSOP_LEAVEWITH */
    0,  /* JSOP_RETURN */
    0,  /* JSOP_GOTO */
    0,  /* JSOP_IFEQ */
    0,  /* JSOP_IFNE */
    0,  /* JSOP_ARGUMENTS */
    0,  /* JSOP_FORARG */
    0,  /* JSOP_FORLOCAL */
    0,  /* JSOP_DUP */
    0,  /* JSOP_DUP2 */
    0,  /* JSOP_SETCONST */
    3,  /* JSOP_BITOR */
    3,  /* JSOP_BITXOR */
    3,  /* JSOP_BITAND */
    3,  /* JSOP_EQ */
    3,  /* JSOP_NE */
    3,  /* JSOP_LT */
    3,  /* JSOP_LE */
    3,  /* JSOP_GT */
    3,  /* JSOP_GE */
    3,  /* JSOP_LSH */
    3,  /* JSOP_RSH */
    3,  /* JSOP_URSH */
    3,  /* JSOP_ADD */
    3,  /* JSOP_SUB */
    3,  /* JSOP_MUL */
    3,  /* JSOP_DIV */
    3,  /* JSOP_MOD */
    0,  /* JSOP_NOT */
    0,  /* JSOP_BITNOT */
    3,  /* JSOP_NEG */
    3,  /* JSOP_POS */
    0,  /* JSOP_DELNAME */
    0,  /* JSOP_DELPROP */
    0,  /* JSOP_DELELEM */
    0,  /* JSOP_TYPEOF */
    0,  /* JSOP_VOID */
    0,  /* JSOP_INCNAME */
    0,  /* JSOP_INCPROP */
    0,  /* JSOP_INCELEM */
    0,  /* JSOP_DECNAME */
    0,  /* JSOP_DECPROP */
    0,  /* JSOP_DECELEM */
    0,  /* JSOP_NAMEINC */
    0,  /* JSOP_PROPINC */
    0,  /* JSOP_ELEMINC */
    0,  /* JSOP_NAMEDEC */
    0,  /* JSOP_PROPDEC */
    0,  /* JSOP_ELEMDEC */
    0,  /* JSOP_GETPROP */
    0,  /* JSOP_SETPROP */
    2,  /* JSOP_GETELEM */
    3,  /* JSOP_SETELEM */
    0,  /* JSOP_CALLNAME */
    2,  /* JSOP_CALL */
    0,  /* JSOP_NAME */
    0,  /* JSOP_DOUBLE */
    0,  /* JSOP_STRING */
    0,  /* JSOP_ZERO */
    0,  /* JSOP_ONE */
    0,  /* JSOP_NULL */
    0,  /* JSOP_THIS */
    0,  /* JSOP_FALSE */
    0,  /* JSOP_TRUE */
    0,  /* JSOP_OR */
    0,  /* JSOP_AND */
    0,  /* JSOP_TABLESWITCH */
    0,  /* JSOP_LOOKUPSWITCH */
    0,  /* JSOP_STRICTEQ */
    0,  /* JSOP_STRICTNE */
    0,  /* JSOP_NULLTHIS */
    3,  /* JSOP_ITER */
    2,  /* JSOP_NEXTITER */
    0,  /* JSOP_ENDITER */
    8,  /* JSOP_APPLY */
    0,  /* JSOP_SWAP */
    0,  /* JSOP_OBJECT */
    0,  /* JSOP_POP */
    0,  /* JSOP_NEW */
    0,  /* JSOP_TRAP */
    0,  /* JSOP_GETARG */
    0,  /* JSOP_SETARG */
    0,  /* JSOP_GETLOCAL */
    0,  /* JSOP_SETLOCAL */
    0,  /* JSOP_UINT16 */
    0,  /* JSOP_NEWINIT */
    0,  /* JSOP_ENDINIT */
    0,  /* JSOP_INITPROP */
    3,  /* JSOP_INITELEM */
    0,  /* JSOP_DEFSHARP */
    0,  /* JSOP_USESHARP */
    0,  /* JSOP_INCARG */
    0,  /* JSOP_DECARG */
    0,  /* JSOP_ARGINC */
    0,  /* JSOP_ARGDEC */
    0,  /* JSOP_INCLOCAL */
    0,  /* JSOP_DECLOCAL */
    0,  /* JSOP_LOCALINC */
    0,  /* JSOP_LOCALDEC */
    0,  /* JSOP_IMACOP */
    0,  /* JSOP_FORNAME */
    0,  /* JSOP_FORPROP */
    0,  /* JSOP_FORELEM */
    0,  /* JSOP_POPN */
    0,  /* JSOP_BINDNAME */
    0,  /* JSOP_SETNAME */
    0,  /* JSOP_THROW */
    0,  /* JSOP_IN */
    0,  /* JSOP_INSTANCEOF */
    0,  /* JSOP_DEBUGGER */
    0,  /* JSOP_GOSUB */
    0,  /* JSOP_RETSUB */
    0,  /* JSOP_EXCEPTION */
    0,  /* JSOP_LINENO */
    0,  /* JSOP_CONDSWITCH */
    0,  /* JSOP_CASE */
    0,  /* JSOP_DEFAULT */
    0,  /* JSOP_EVAL */
    0,  /* JSOP_ENUMELEM */
    0,  /* JSOP_GETTER */
    0,  /* JSOP_SETTER */
    0,  /* JSOP_DEFFUN */
    0,  /* JSOP_DEFCONST */
    0,  /* JSOP_DEFVAR */
    0,  /* JSOP_ANONFUNOBJ */
    0,  /* JSOP_NAMEDFUNOBJ */
    0,  /* JSOP_SETLOCALPOP */
    0,  /* JSOP_IFPRIMTOP */
    0,  /* JSOP_SETCALL */
    0,  /* JSOP_TRY */
    0,  /* JSOP_FINALLY */
    0,  /* JSOP_OBJTOP */
    0,  /* JSOP_ARGSUB */
    0,  /* JSOP_ARGCNT */
    0,  /* JSOP_DEFLOCALFUN */
    0,  /* JSOP_GOTOX */
    0,  /* JSOP_IFEQX */
    0,  /* JSOP_IFNEX */
    0,  /* JSOP_ORX */
    0,  /* JSOP_ANDX */
    0,  /* JSOP_GOSUBX */
    0,  /* JSOP_CASEX */
    0,  /* JSOP_DEFAULTX */
    0,  /* JSOP_TABLESWITCHX */
    0,  /* JSOP_LOOKUPSWITCHX */
    0,  /* JSOP_BACKPATCH */
    0,  /* JSOP_BACKPATCH_POP */
    0,  /* JSOP_THROWING */
    0,  /* JSOP_SETRVAL */
    0,  /* JSOP_RETRVAL */
    0,  /* JSOP_GETGVAR */
    0,  /* JSOP_SETGVAR */
    0,  /* JSOP_INCGVAR */
    0,  /* JSOP_DECGVAR */
    0,  /* JSOP_GVARINC */
    0,  /* JSOP_GVARDEC */
    0,  /* JSOP_REGEXP */
    0,  /* JSOP_DEFXMLNS */
    0,  /* JSOP_ANYNAME */
    0,  /* JSOP_QNAMEPART */
    0,  /* JSOP_QNAMECONST */
    0,  /* JSOP_QNAME */
    0,  /* JSOP_TOATTRNAME */
    0,  /* JSOP_TOATTRVAL */
    0,  /* JSOP_ADDATTRNAME */
    0,  /* JSOP_ADDATTRVAL */
    0,  /* JSOP_BINDXMLNAME */
    0,  /* JSOP_SETXMLNAME */
    0,  /* JSOP_XMLNAME */
    0,  /* JSOP_DESCENDANTS */
    0,  /* JSOP_FILTER */
    0,  /* JSOP_ENDFILTER */
    0,  /* JSOP_TOXML */
    0,  /* JSOP_TOXMLLIST */
    0,  /* JSOP_XMLTAGEXPR */
    0,  /* JSOP_XMLELTEXPR */
    0,  /* JSOP_XMLOBJECT */
    0,  /* JSOP_XMLCDATA */
    0,  /* JSOP_XMLCOMMENT */
    0,  /* JSOP_XMLPI */
    0,  /* JSOP_CALLPROP */
    0,  /* JSOP_GETFUNNS */
    0,  /* JSOP_GETUPVAR */
    0,  /* JSOP_DELDESC */
    0,  /* JSOP_UINT24 */
    0,  /* JSOP_INDEXBASE */
    0,  /* JSOP_RESETBASE */
    0,  /* JSOP_RESETBASE0 */
    0,  /* JSOP_STARTXML */
    0,  /* JSOP_STARTXMLEXPR */
    0,  /* JSOP_CALLELEM */
    0,  /* JSOP_STOP */
    0,  /* JSOP_GETXPROP */
    0,  /* JSOP_CALLXMLNAME */
    0,  /* JSOP_TYPEOFEXPR */
    0,  /* JSOP_ENTERBLOCK */
    0,  /* JSOP_LEAVEBLOCK */
    0,  /* JSOP_PICK */
    0,  /* JSOP_PRIMTOP */
    0,  /* JSOP_UNUSED203 */
    0,  /* JSOP_UNUSED204 */
    0,  /* JSOP_UNUSED205 */
    0,  /* JSOP_UNUSED206 */
    0,  /* JSOP_UNUSED207 */
    0,  /* JSOP_UNUSED208 */
    0,  /* JSOP_UNUSED209 */
    0,  /* JSOP_GENERATOR */
    0,  /* JSOP_YIELD */
    0,  /* JSOP_ARRAYPUSH */
    0,  /* JSOP_CALLUPVAR */
    0,  /* JSOP_ENUMCONSTELEM */
    0,  /* JSOP_LEAVEBLOCKEXPR */
    0,  /* JSOP_GETTHISPROP */
    0,  /* JSOP_GETARGPROP */
    0,  /* JSOP_GETLOCALPROP */
    0,  /* JSOP_UNUSED219 */
    0,  /* JSOP_INDEXBASE1 */
    0,  /* JSOP_INDEXBASE2 */
    0,  /* JSOP_INDEXBASE3 */
    0,  /* JSOP_CALLGVAR */
    0,  /* JSOP_CALLLOCAL */
    0,  /* JSOP_CALLARG */
    0,  /* JSOP_CALLBUILTIN */
    0,  /* JSOP_INT8 */
    0,  /* JSOP_INT32 */
    0,  /* JSOP_LENGTH */
    0,  /* JSOP_NEWARRAY */
    0,  /* JSOP_HOLE */
    0,  /* JSOP_LOOP */
};
#define JSOP_IS_IMACOP(x) (0 \
 || x == JSOP_BITOR \
 || x == JSOP_BITXOR \
 || x == JSOP_BITAND \
 || x == JSOP_EQ \
 || x == JSOP_NE \
 || x == JSOP_LT \
 || x == JSOP_LE \
 || x == JSOP_GT \
 || x == JSOP_GE \
 || x == JSOP_LSH \
 || x == JSOP_RSH \
 || x == JSOP_URSH \
 || x == JSOP_ADD \
 || x == JSOP_SUB \
 || x == JSOP_MUL \
 || x == JSOP_DIV \
 || x == JSOP_MOD \
 || x == JSOP_NEG \
 || x == JSOP_POS \
 || x == JSOP_GETELEM \
 || x == JSOP_SETELEM \
 || x == JSOP_CALL \
 || x == JSOP_ITER \
 || x == JSOP_NEXTITER \
 || x == JSOP_APPLY \
 || x == JSOP_INITELEM \
)
