2009-02-02 16:49:43 -08:00
|
|
|
/* GENERATED BY imacro_asm.js -- DO NOT EDIT!!! */
|
2008-12-26 11:48:33 -08:00
|
|
|
static struct {
|
2009-08-19 09:06:22 -07:00
|
|
|
jsbytecode any_obj[36];
|
|
|
|
jsbytecode obj_any[38];
|
2008-12-26 11:48:33 -08:00
|
|
|
} equality_imacros = {
|
|
|
|
{
|
|
|
|
/* 0*/ JSOP_DUP,
|
|
|
|
/* 1*/ JSOP_DUP,
|
|
|
|
/* 2*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
|
2009-08-19 09:06:22 -07:00
|
|
|
/* 5*/ JSOP_IFPRIMTOP, 0, 18,
|
2008-12-26 11:48:33 -08:00
|
|
|
/* 8*/ JSOP_SWAP,
|
|
|
|
/* 9*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_VOID),
|
|
|
|
/*12*/ JSOP_CALL, 0, 1,
|
2009-08-19 09:06:22 -07:00
|
|
|
/*15*/ JSOP_IFPRIMTOP, 0, 17,
|
|
|
|
/*18*/ JSOP_POP,
|
|
|
|
/*19*/ JSOP_DUP,
|
|
|
|
/*20*/ JSOP_GOTO, 0, 4,
|
|
|
|
/*23*/ JSOP_POP,
|
|
|
|
/*24*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
|
|
|
|
/*27*/ JSOP_CALL, 0, 0,
|
|
|
|
/*30*/ JSOP_PRIMTOP, (JSTYPE_NUMBER),
|
|
|
|
/*32*/ JSOP_SWAP,
|
|
|
|
/*33*/ JSOP_POP,
|
|
|
|
/*34*/ JSOP_IMACOP,
|
|
|
|
/*35*/ JSOP_STOP,
|
2008-12-26 11:48:33 -08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
/* 0*/ JSOP_SWAP,
|
|
|
|
/* 1*/ JSOP_DUP,
|
|
|
|
/* 2*/ JSOP_DUP,
|
|
|
|
/* 3*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
|
2009-08-19 09:06:22 -07:00
|
|
|
/* 6*/ JSOP_IFPRIMTOP, 0, 18,
|
2008-12-26 11:48:33 -08:00
|
|
|
/* 9*/ JSOP_SWAP,
|
|
|
|
/*10*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_VOID),
|
|
|
|
/*13*/ JSOP_CALL, 0, 1,
|
2009-08-19 09:06:22 -07:00
|
|
|
/*16*/ JSOP_IFPRIMTOP, 0, 17,
|
|
|
|
/*19*/ JSOP_POP,
|
|
|
|
/*20*/ JSOP_DUP,
|
|
|
|
/*21*/ JSOP_GOTO, 0, 4,
|
|
|
|
/*24*/ JSOP_POP,
|
|
|
|
/*25*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
|
|
|
|
/*28*/ JSOP_CALL, 0, 0,
|
|
|
|
/*31*/ JSOP_PRIMTOP, (JSTYPE_NUMBER),
|
2009-04-24 09:07:49 -07:00
|
|
|
/*33*/ JSOP_SWAP,
|
2009-08-19 09:06:22 -07:00
|
|
|
/*34*/ JSOP_POP,
|
|
|
|
/*35*/ JSOP_SWAP,
|
|
|
|
/*36*/ JSOP_IMACOP,
|
|
|
|
/*37*/ JSOP_STOP,
|
2008-12-26 11:48:33 -08:00
|
|
|
},
|
|
|
|
};
|
2008-12-16 19:03:42 -08:00
|
|
|
static struct {
|
2009-08-19 09:06:22 -07:00
|
|
|
jsbytecode any_obj[36];
|
2009-04-24 09:07:49 -07:00
|
|
|
jsbytecode obj_any[38];
|
2009-08-19 09:06:22 -07:00
|
|
|
jsbytecode obj_obj[72];
|
2008-12-16 19:03:42 -08:00
|
|
|
} binary_imacros = {
|
|
|
|
{
|
|
|
|
/* 0*/ JSOP_DUP,
|
|
|
|
/* 1*/ JSOP_DUP,
|
|
|
|
/* 2*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
|
2009-08-19 09:06:22 -07:00
|
|
|
/* 5*/ JSOP_IFPRIMTOP, 0, 18,
|
2008-12-16 19:03:42 -08:00
|
|
|
/* 8*/ JSOP_SWAP,
|
|
|
|
/* 9*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_NUMBER),
|
|
|
|
/*12*/ JSOP_CALL, 0, 1,
|
2009-08-19 09:06:22 -07:00
|
|
|
/*15*/ JSOP_IFPRIMTOP, 0, 17,
|
|
|
|
/*18*/ JSOP_POP,
|
|
|
|
/*19*/ JSOP_DUP,
|
|
|
|
/*20*/ JSOP_GOTO, 0, 4,
|
|
|
|
/*23*/ JSOP_POP,
|
|
|
|
/*24*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
|
|
|
|
/*27*/ JSOP_CALL, 0, 0,
|
|
|
|
/*30*/ JSOP_PRIMTOP, (JSTYPE_NUMBER),
|
|
|
|
/*32*/ JSOP_SWAP,
|
|
|
|
/*33*/ JSOP_POP,
|
|
|
|
/*34*/ JSOP_IMACOP,
|
|
|
|
/*35*/ JSOP_STOP,
|
2008-12-16 19:03:42 -08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
/* 0*/ JSOP_SWAP,
|
|
|
|
/* 1*/ JSOP_DUP,
|
|
|
|
/* 2*/ JSOP_DUP,
|
|
|
|
/* 3*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
|
2009-04-24 09:07:49 -07:00
|
|
|
/* 6*/ JSOP_IFPRIMTOP, 0, 18,
|
2008-12-16 19:03:42 -08:00
|
|
|
/* 9*/ JSOP_SWAP,
|
|
|
|
/*10*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_NUMBER),
|
|
|
|
/*13*/ JSOP_CALL, 0, 1,
|
2009-04-24 09:07:49 -07:00
|
|
|
/*16*/ JSOP_IFPRIMTOP, 0, 17,
|
|
|
|
/*19*/ JSOP_POP,
|
|
|
|
/*20*/ JSOP_DUP,
|
|
|
|
/*21*/ JSOP_GOTO, 0, 4,
|
|
|
|
/*24*/ JSOP_POP,
|
|
|
|
/*25*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
|
|
|
|
/*28*/ JSOP_CALL, 0, 0,
|
|
|
|
/*31*/ JSOP_PRIMTOP, (JSTYPE_NUMBER),
|
|
|
|
/*33*/ JSOP_SWAP,
|
|
|
|
/*34*/ JSOP_POP,
|
|
|
|
/*35*/ JSOP_SWAP,
|
|
|
|
/*36*/ JSOP_IMACOP,
|
|
|
|
/*37*/ JSOP_STOP,
|
2008-12-16 19:03:42 -08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
/* 0*/ JSOP_SWAP,
|
|
|
|
/* 1*/ JSOP_DUP,
|
|
|
|
/* 2*/ JSOP_DUP,
|
|
|
|
/* 3*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
|
2009-08-19 09:06:22 -07:00
|
|
|
/* 6*/ JSOP_IFPRIMTOP, 0, 18,
|
2008-12-16 19:03:42 -08:00
|
|
|
/* 9*/ JSOP_SWAP,
|
|
|
|
/*10*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_NUMBER),
|
|
|
|
/*13*/ JSOP_CALL, 0, 1,
|
2009-08-19 09:06:22 -07:00
|
|
|
/*16*/ JSOP_IFPRIMTOP, 0, 17,
|
|
|
|
/*19*/ JSOP_POP,
|
|
|
|
/*20*/ JSOP_DUP,
|
|
|
|
/*21*/ JSOP_GOTO, 0, 4,
|
|
|
|
/*24*/ JSOP_POP,
|
|
|
|
/*25*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
|
|
|
|
/*28*/ JSOP_CALL, 0, 0,
|
|
|
|
/*31*/ JSOP_PRIMTOP, (JSTYPE_NUMBER),
|
2009-04-24 09:07:49 -07:00
|
|
|
/*33*/ JSOP_SWAP,
|
2009-08-19 09:06:22 -07:00
|
|
|
/*34*/ JSOP_POP,
|
|
|
|
/*35*/ JSOP_SWAP,
|
|
|
|
/*36*/ JSOP_DUP,
|
|
|
|
/*37*/ JSOP_DUP,
|
|
|
|
/*38*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
|
|
|
|
/*41*/ JSOP_IFPRIMTOP, 0, 18,
|
|
|
|
/*44*/ JSOP_SWAP,
|
|
|
|
/*45*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_NUMBER),
|
|
|
|
/*48*/ JSOP_CALL, 0, 1,
|
|
|
|
/*51*/ JSOP_IFPRIMTOP, 0, 17,
|
|
|
|
/*54*/ JSOP_POP,
|
|
|
|
/*55*/ JSOP_DUP,
|
|
|
|
/*56*/ JSOP_GOTO, 0, 4,
|
|
|
|
/*59*/ JSOP_POP,
|
|
|
|
/*60*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
|
|
|
|
/*63*/ JSOP_CALL, 0, 0,
|
|
|
|
/*66*/ JSOP_PRIMTOP, (JSTYPE_NUMBER),
|
|
|
|
/*68*/ JSOP_SWAP,
|
|
|
|
/*69*/ JSOP_POP,
|
|
|
|
/*70*/ JSOP_IMACOP,
|
|
|
|
/*71*/ JSOP_STOP,
|
2008-12-16 19:03:42 -08:00
|
|
|
},
|
|
|
|
};
|
|
|
|
static struct {
|
2009-08-19 09:06:22 -07:00
|
|
|
jsbytecode any_obj[36];
|
|
|
|
jsbytecode obj_any[38];
|
|
|
|
jsbytecode obj_obj[72];
|
2008-12-16 19:03:42 -08:00
|
|
|
} add_imacros = {
|
|
|
|
{
|
|
|
|
/* 0*/ JSOP_DUP,
|
|
|
|
/* 1*/ JSOP_DUP,
|
|
|
|
/* 2*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
|
2009-08-19 09:06:22 -07:00
|
|
|
/* 5*/ JSOP_IFPRIMTOP, 0, 18,
|
2008-12-16 19:03:42 -08:00
|
|
|
/* 8*/ JSOP_SWAP,
|
|
|
|
/* 9*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_VOID),
|
|
|
|
/*12*/ JSOP_CALL, 0, 1,
|
2009-08-19 09:06:22 -07:00
|
|
|
/*15*/ JSOP_IFPRIMTOP, 0, 17,
|
|
|
|
/*18*/ JSOP_POP,
|
|
|
|
/*19*/ JSOP_DUP,
|
|
|
|
/*20*/ JSOP_GOTO, 0, 4,
|
|
|
|
/*23*/ JSOP_POP,
|
|
|
|
/*24*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
|
|
|
|
/*27*/ JSOP_CALL, 0, 0,
|
|
|
|
/*30*/ JSOP_PRIMTOP, (JSTYPE_VOID),
|
|
|
|
/*32*/ JSOP_SWAP,
|
|
|
|
/*33*/ JSOP_POP,
|
|
|
|
/*34*/ JSOP_ADD,
|
|
|
|
/*35*/ JSOP_STOP,
|
2008-12-16 19:03:42 -08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
/* 0*/ JSOP_SWAP,
|
|
|
|
/* 1*/ JSOP_DUP,
|
|
|
|
/* 2*/ JSOP_DUP,
|
|
|
|
/* 3*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
|
2009-08-19 09:06:22 -07:00
|
|
|
/* 6*/ JSOP_IFPRIMTOP, 0, 18,
|
2008-12-16 19:03:42 -08:00
|
|
|
/* 9*/ JSOP_SWAP,
|
|
|
|
/*10*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_VOID),
|
|
|
|
/*13*/ JSOP_CALL, 0, 1,
|
2009-08-19 09:06:22 -07:00
|
|
|
/*16*/ JSOP_IFPRIMTOP, 0, 17,
|
|
|
|
/*19*/ JSOP_POP,
|
|
|
|
/*20*/ JSOP_DUP,
|
|
|
|
/*21*/ JSOP_GOTO, 0, 4,
|
|
|
|
/*24*/ JSOP_POP,
|
|
|
|
/*25*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
|
|
|
|
/*28*/ JSOP_CALL, 0, 0,
|
|
|
|
/*31*/ JSOP_PRIMTOP, (JSTYPE_VOID),
|
2009-04-24 09:07:49 -07:00
|
|
|
/*33*/ JSOP_SWAP,
|
2009-08-19 09:06:22 -07:00
|
|
|
/*34*/ JSOP_POP,
|
|
|
|
/*35*/ JSOP_SWAP,
|
|
|
|
/*36*/ JSOP_ADD,
|
|
|
|
/*37*/ JSOP_STOP,
|
2008-12-16 19:03:42 -08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
/* 0*/ JSOP_SWAP,
|
|
|
|
/* 1*/ JSOP_DUP,
|
|
|
|
/* 2*/ JSOP_DUP,
|
|
|
|
/* 3*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
|
2009-08-19 09:06:22 -07:00
|
|
|
/* 6*/ JSOP_IFPRIMTOP, 0, 18,
|
2008-12-16 19:03:42 -08:00
|
|
|
/* 9*/ JSOP_SWAP,
|
|
|
|
/*10*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_VOID),
|
|
|
|
/*13*/ JSOP_CALL, 0, 1,
|
2009-08-19 09:06:22 -07:00
|
|
|
/*16*/ JSOP_IFPRIMTOP, 0, 17,
|
|
|
|
/*19*/ JSOP_POP,
|
|
|
|
/*20*/ JSOP_DUP,
|
|
|
|
/*21*/ JSOP_GOTO, 0, 4,
|
|
|
|
/*24*/ JSOP_POP,
|
|
|
|
/*25*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
|
|
|
|
/*28*/ JSOP_CALL, 0, 0,
|
|
|
|
/*31*/ JSOP_PRIMTOP, (JSTYPE_VOID),
|
2009-04-24 09:07:49 -07:00
|
|
|
/*33*/ JSOP_SWAP,
|
2009-08-19 09:06:22 -07:00
|
|
|
/*34*/ JSOP_POP,
|
|
|
|
/*35*/ JSOP_SWAP,
|
|
|
|
/*36*/ JSOP_DUP,
|
|
|
|
/*37*/ JSOP_DUP,
|
|
|
|
/*38*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
|
|
|
|
/*41*/ JSOP_IFPRIMTOP, 0, 18,
|
|
|
|
/*44*/ JSOP_SWAP,
|
|
|
|
/*45*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_VOID),
|
|
|
|
/*48*/ JSOP_CALL, 0, 1,
|
|
|
|
/*51*/ JSOP_IFPRIMTOP, 0, 17,
|
|
|
|
/*54*/ JSOP_POP,
|
|
|
|
/*55*/ JSOP_DUP,
|
|
|
|
/*56*/ JSOP_GOTO, 0, 4,
|
|
|
|
/*59*/ JSOP_POP,
|
|
|
|
/*60*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
|
|
|
|
/*63*/ JSOP_CALL, 0, 0,
|
|
|
|
/*66*/ JSOP_PRIMTOP, (JSTYPE_VOID),
|
|
|
|
/*68*/ JSOP_SWAP,
|
|
|
|
/*69*/ JSOP_POP,
|
|
|
|
/*70*/ JSOP_ADD,
|
|
|
|
/*71*/ JSOP_STOP,
|
2008-12-16 19:03:42 -08:00
|
|
|
},
|
|
|
|
};
|
2008-12-19 19:30:09 -08:00
|
|
|
static struct {
|
2009-08-19 09:06:22 -07:00
|
|
|
jsbytecode sign[41];
|
2008-12-19 19:30:09 -08:00
|
|
|
} unary_imacros = {
|
|
|
|
{
|
|
|
|
/* 0*/ JSOP_DUP,
|
|
|
|
/* 1*/ JSOP_DUP,
|
|
|
|
/* 2*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
|
2009-08-19 09:06:22 -07:00
|
|
|
/* 5*/ JSOP_IFPRIMTOP, 0, 23,
|
2008-12-19 19:30:09 -08:00
|
|
|
/* 8*/ JSOP_SWAP,
|
2009-01-13 19:06:03 -08:00
|
|
|
/* 9*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_NUMBER),
|
|
|
|
/*12*/ JSOP_CALL, 0, 1,
|
2009-08-19 09:06:22 -07:00
|
|
|
/*15*/ JSOP_IFPRIMTOP, 0, 8,
|
|
|
|
/*18*/ JSOP_POP,
|
|
|
|
/*19*/ JSOP_DUP,
|
|
|
|
/*20*/ JSOP_GOTO, 0, 9,
|
|
|
|
/*23*/ JSOP_SWAP,
|
|
|
|
/*24*/ JSOP_POP,
|
|
|
|
/*25*/ JSOP_GOTO, 0, 14,
|
|
|
|
/*28*/ JSOP_POP,
|
|
|
|
/*29*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
|
|
|
|
/*32*/ JSOP_CALL, 0, 0,
|
|
|
|
/*35*/ JSOP_PRIMTOP, (JSTYPE_NUMBER),
|
|
|
|
/*37*/ JSOP_SWAP,
|
|
|
|
/*38*/ JSOP_POP,
|
|
|
|
/*39*/ JSOP_IMACOP,
|
|
|
|
/*40*/ JSOP_STOP,
|
2008-12-19 19:30:09 -08:00
|
|
|
},
|
|
|
|
};
|
2009-03-09 17:29:42 -07:00
|
|
|
static struct {
|
2009-08-19 09:06:22 -07:00
|
|
|
jsbytecode String[38];
|
2009-03-09 17:29:42 -07:00
|
|
|
} call_imacros = {
|
|
|
|
{
|
|
|
|
/* 0*/ JSOP_DUP,
|
|
|
|
/* 1*/ JSOP_DUP,
|
2009-03-10 01:52:43 -07:00
|
|
|
/* 2*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(toString),
|
2009-08-19 09:06:22 -07:00
|
|
|
/* 5*/ JSOP_IFPRIMTOP, 0, 15,
|
2009-03-09 17:29:42 -07:00
|
|
|
/* 8*/ JSOP_SWAP,
|
2009-03-10 01:52:43 -07:00
|
|
|
/* 9*/ JSOP_CALL, 0, 0,
|
2009-08-19 09:06:22 -07:00
|
|
|
/*12*/ JSOP_IFPRIMTOP, 0, 20,
|
|
|
|
/*15*/ JSOP_POP,
|
|
|
|
/*16*/ JSOP_DUP,
|
|
|
|
/*17*/ JSOP_GOTO, 0, 4,
|
|
|
|
/*20*/ JSOP_POP,
|
|
|
|
/*21*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(valueOf),
|
|
|
|
/*24*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_STRING),
|
|
|
|
/*27*/ JSOP_CALL, 0, 1,
|
|
|
|
/*30*/ JSOP_PRIMTOP, (JSTYPE_STRING),
|
|
|
|
/*32*/ JSOP_SWAP,
|
|
|
|
/*33*/ JSOP_POP,
|
|
|
|
/*34*/ JSOP_CALL, 0, 1,
|
|
|
|
/*37*/ JSOP_STOP,
|
2009-03-09 17:29:42 -07:00
|
|
|
},
|
|
|
|
};
|
2009-03-22 12:49:15 -07:00
|
|
|
static struct {
|
2009-08-19 09:06:22 -07:00
|
|
|
jsbytecode String[38];
|
2009-03-22 12:49:15 -07:00
|
|
|
} new_imacros = {
|
|
|
|
{
|
|
|
|
/* 0*/ JSOP_DUP,
|
|
|
|
/* 1*/ JSOP_DUP,
|
|
|
|
/* 2*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(toString),
|
2009-08-19 09:06:22 -07:00
|
|
|
/* 5*/ JSOP_IFPRIMTOP, 0, 15,
|
2009-03-22 12:49:15 -07:00
|
|
|
/* 8*/ JSOP_SWAP,
|
|
|
|
/* 9*/ JSOP_CALL, 0, 0,
|
2009-08-19 09:06:22 -07:00
|
|
|
/*12*/ JSOP_IFPRIMTOP, 0, 20,
|
|
|
|
/*15*/ JSOP_POP,
|
|
|
|
/*16*/ JSOP_DUP,
|
|
|
|
/*17*/ JSOP_GOTO, 0, 4,
|
|
|
|
/*20*/ JSOP_POP,
|
|
|
|
/*21*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(valueOf),
|
|
|
|
/*24*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_STRING),
|
|
|
|
/*27*/ JSOP_CALL, 0, 1,
|
|
|
|
/*30*/ JSOP_PRIMTOP, (JSTYPE_STRING),
|
|
|
|
/*32*/ JSOP_SWAP,
|
|
|
|
/*33*/ JSOP_POP,
|
|
|
|
/*34*/ JSOP_NEW, 0, 1,
|
|
|
|
/*37*/ JSOP_STOP,
|
2009-03-22 12:49:15 -07:00
|
|
|
},
|
|
|
|
};
|
2008-12-18 19:20:47 -08:00
|
|
|
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,
|
2009-04-05 21:17:22 -07:00
|
|
|
/* 2*/ JSOP_NULL,
|
2008-12-18 19:20:47 -08:00
|
|
|
/* 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,
|
|
|
|
},
|
|
|
|
};
|
2009-01-28 07:24:35 -08:00
|
|
|
static struct {
|
2009-02-07 11:28:23 -08:00
|
|
|
jsbytecode for_in[13];
|
|
|
|
jsbytecode for_each[13];
|
2009-01-28 07:24:35 -08:00
|
|
|
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,
|
2009-02-07 11:28:23 -08:00
|
|
|
/* 8*/ JSOP_OBJTOP, ((JSMSG_BAD_ITERATOR_RETURN) & 0xff00) >> 8, ((JSMSG_BAD_ITERATOR_RETURN) & 0xff),
|
|
|
|
/*11*/ JSOP_PUSH,
|
|
|
|
/*12*/ JSOP_STOP,
|
2009-01-28 07:24:35 -08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
/* 0*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(iterator),
|
|
|
|
/* 3*/ JSOP_INT8, (JSITER_ENUMERATE|JSITER_FOREACH),
|
|
|
|
/* 5*/ JSOP_CALL, 0, 1,
|
2009-02-07 11:28:23 -08:00
|
|
|
/* 8*/ JSOP_OBJTOP, ((JSMSG_BAD_ITERATOR_RETURN) & 0xff00) >> 8, ((JSMSG_BAD_ITERATOR_RETURN) & 0xff),
|
|
|
|
/*11*/ JSOP_PUSH,
|
|
|
|
/*12*/ JSOP_STOP,
|
2009-01-28 07:24:35 -08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
/* 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 {
|
2009-03-30 16:43:23 -07:00
|
|
|
jsbytecode custom_iter_next[12];
|
2009-01-28 07:24:35 -08:00
|
|
|
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,
|
2009-03-30 16:43:23 -07:00
|
|
|
/* 8*/ JSOP_DUP,
|
|
|
|
/* 9*/ JSOP_HOLE,
|
|
|
|
/*10*/ JSOP_STRICTNE,
|
|
|
|
/*11*/ JSOP_STOP,
|
2009-01-28 07:24:35 -08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
/* 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,
|
|
|
|
},
|
|
|
|
};
|
2009-08-18 15:43:17 -07:00
|
|
|
static struct {
|
2010-02-19 19:22:37 -08:00
|
|
|
jsbytecode toString[35];
|
|
|
|
} objtostr_imacros = {
|
2009-08-18 15:43:17 -07:00
|
|
|
{
|
2010-02-19 19:22:37 -08:00
|
|
|
/* 0*/ JSOP_DUP,
|
2009-08-18 15:43:17 -07:00
|
|
|
/* 1*/ JSOP_DUP,
|
2010-02-19 19:22:37 -08:00
|
|
|
/* 2*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
|
|
|
|
/* 5*/ JSOP_IFPRIMTOP, 0, 18,
|
|
|
|
/* 8*/ JSOP_SWAP,
|
|
|
|
/* 9*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_VOID),
|
|
|
|
/*12*/ JSOP_CALL, 0, 1,
|
|
|
|
/*15*/ JSOP_IFPRIMTOP, 0, 17,
|
|
|
|
/*18*/ JSOP_POP,
|
|
|
|
/*19*/ JSOP_DUP,
|
|
|
|
/*20*/ JSOP_GOTO, 0, 4,
|
|
|
|
/*23*/ JSOP_POP,
|
|
|
|
/*24*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
|
|
|
|
/*27*/ JSOP_CALL, 0, 0,
|
|
|
|
/*30*/ JSOP_PRIMTOP, (JSTYPE_VOID),
|
|
|
|
/*32*/ JSOP_SWAP,
|
|
|
|
/*33*/ JSOP_POP,
|
|
|
|
/*34*/ JSOP_STOP,
|
2009-08-18 15:43:17 -07:00
|
|
|
},
|
|
|
|
};
|
2008-12-16 19:03:42 -08:00
|
|
|
uint8 js_opcode2extra[JSOP_LIMIT] = {
|
2008-12-21 21:26:08 -08:00
|
|
|
0, /* JSOP_NOP */
|
2008-12-16 19:03:42 -08:00
|
|
|
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 */
|
2009-01-13 19:06:03 -08:00
|
|
|
3, /* JSOP_NEG */
|
|
|
|
3, /* JSOP_POS */
|
2008-12-16 19:03:42 -08:00
|
|
|
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 */
|
2009-08-03 09:38:28 -07:00
|
|
|
0, /* JSOP_GETELEM */
|
2009-08-14 13:47:04 -07:00
|
|
|
0, /* JSOP_SETELEM */
|
2008-12-16 19:03:42 -08:00
|
|
|
0, /* JSOP_CALLNAME */
|
2009-04-24 09:07:49 -07:00
|
|
|
3, /* JSOP_CALL */
|
2008-12-16 19:03:42 -08:00
|
|
|
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 */
|
2009-04-05 21:17:22 -07:00
|
|
|
0, /* JSOP_SETCALL */
|
2009-04-24 09:07:49 -07:00
|
|
|
2, /* JSOP_ITER */
|
2009-01-28 07:24:35 -08:00
|
|
|
2, /* JSOP_NEXTITER */
|
2008-12-16 19:03:42 -08:00
|
|
|
0, /* JSOP_ENDITER */
|
2009-02-02 13:56:34 -08:00
|
|
|
8, /* JSOP_APPLY */
|
2008-12-16 19:03:42 -08:00
|
|
|
0, /* JSOP_SWAP */
|
|
|
|
0, /* JSOP_OBJECT */
|
|
|
|
0, /* JSOP_POP */
|
2009-04-24 09:07:49 -07:00
|
|
|
3, /* JSOP_NEW */
|
2008-12-16 19:03:42 -08:00
|
|
|
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 */
|
2009-08-14 13:47:04 -07:00
|
|
|
0, /* JSOP_INITELEM */
|
2008-12-16 19:03:42 -08:00
|
|
|
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 */
|
2009-08-14 14:34:43 -07:00
|
|
|
0, /* JSOP_INSTANCEOF */
|
2008-12-16 19:03:42 -08:00
|
|
|
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 */
|
2009-04-05 21:17:22 -07:00
|
|
|
0, /* JSOP_LAMBDA */
|
|
|
|
0, /* JSOP_CALLEE */
|
2008-12-16 19:03:42 -08:00
|
|
|
0, /* JSOP_SETLOCALPOP */
|
2009-04-05 21:17:22 -07:00
|
|
|
0, /* JSOP_PICK */
|
2008-12-16 19:03:42 -08:00
|
|
|
0, /* JSOP_TRY */
|
|
|
|
0, /* JSOP_FINALLY */
|
2009-04-05 21:17:22 -07:00
|
|
|
0, /* JSOP_GETDSLOT */
|
|
|
|
0, /* JSOP_CALLDSLOT */
|
2008-12-16 19:03:42 -08:00
|
|
|
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_GETUPVAR */
|
2009-04-05 21:17:22 -07:00
|
|
|
0, /* JSOP_CALLUPVAR */
|
2008-12-16 19:03:42 -08:00
|
|
|
0, /* JSOP_DELDESC */
|
|
|
|
0, /* JSOP_UINT24 */
|
|
|
|
0, /* JSOP_INDEXBASE */
|
|
|
|
0, /* JSOP_RESETBASE */
|
|
|
|
0, /* JSOP_RESETBASE0 */
|
|
|
|
0, /* JSOP_STARTXML */
|
|
|
|
0, /* JSOP_STARTXMLEXPR */
|
2009-08-03 09:38:28 -07:00
|
|
|
0, /* JSOP_CALLELEM */
|
2008-12-16 19:03:42 -08:00
|
|
|
0, /* JSOP_STOP */
|
|
|
|
0, /* JSOP_GETXPROP */
|
|
|
|
0, /* JSOP_CALLXMLNAME */
|
|
|
|
0, /* JSOP_TYPEOFEXPR */
|
|
|
|
0, /* JSOP_ENTERBLOCK */
|
|
|
|
0, /* JSOP_LEAVEBLOCK */
|
2009-04-05 21:17:22 -07:00
|
|
|
0, /* JSOP_IFPRIMTOP */
|
2008-12-19 19:30:09 -08:00
|
|
|
0, /* JSOP_PRIMTOP */
|
2008-12-16 19:03:42 -08:00
|
|
|
0, /* JSOP_GENERATOR */
|
|
|
|
0, /* JSOP_YIELD */
|
|
|
|
0, /* JSOP_ARRAYPUSH */
|
2009-04-05 21:17:22 -07:00
|
|
|
0, /* JSOP_GETFUNNS */
|
2008-12-16 19:03:42 -08:00
|
|
|
0, /* JSOP_ENUMCONSTELEM */
|
|
|
|
0, /* JSOP_LEAVEBLOCKEXPR */
|
|
|
|
0, /* JSOP_GETTHISPROP */
|
|
|
|
0, /* JSOP_GETARGPROP */
|
|
|
|
0, /* JSOP_GETLOCALPROP */
|
|
|
|
0, /* JSOP_INDEXBASE1 */
|
|
|
|
0, /* JSOP_INDEXBASE2 */
|
|
|
|
0, /* JSOP_INDEXBASE3 */
|
|
|
|
0, /* JSOP_CALLGVAR */
|
|
|
|
0, /* JSOP_CALLLOCAL */
|
|
|
|
0, /* JSOP_CALLARG */
|
2009-01-28 07:24:35 -08:00
|
|
|
0, /* JSOP_CALLBUILTIN */
|
2008-12-16 19:03:42 -08:00
|
|
|
0, /* JSOP_INT8 */
|
|
|
|
0, /* JSOP_INT32 */
|
|
|
|
0, /* JSOP_LENGTH */
|
|
|
|
0, /* JSOP_NEWARRAY */
|
|
|
|
0, /* JSOP_HOLE */
|
2009-04-05 21:17:22 -07:00
|
|
|
0, /* JSOP_DEFFUN_FC */
|
|
|
|
0, /* JSOP_DEFLOCALFUN_FC */
|
|
|
|
0, /* JSOP_LAMBDA_FC */
|
|
|
|
0, /* JSOP_OBJTOP */
|
2009-09-14 17:26:16 -07:00
|
|
|
0, /* JSOP_TRACE */
|
2009-06-04 18:58:47 -07:00
|
|
|
0, /* JSOP_GETUPVAR_DBG */
|
|
|
|
0, /* JSOP_CALLUPVAR_DBG */
|
|
|
|
0, /* JSOP_DEFFUN_DBGFC */
|
|
|
|
0, /* JSOP_DEFLOCALFUN_DBGFC */
|
|
|
|
0, /* JSOP_LAMBDA_DBGFC */
|
2010-02-19 19:22:37 -08:00
|
|
|
0, /* JSOP_CONCATN */
|
2009-09-03 14:41:19 -07:00
|
|
|
0, /* JSOP_SETMETHOD */
|
|
|
|
0, /* JSOP_INITMETHOD */
|
2010-01-14 09:33:14 -08:00
|
|
|
0, /* JSOP_UNBRAND */
|
2010-02-10 15:17:52 -08:00
|
|
|
0, /* JSOP_UNBRANDTHIS */
|
2009-09-09 20:21:15 -07:00
|
|
|
0, /* JSOP_SHARPINIT */
|
2010-02-19 19:22:37 -08:00
|
|
|
3, /* JSOP_OBJTOSTR */
|
2008-12-16 19:03:42 -08:00
|
|
|
};
|
2009-03-09 18:34:35 -07:00
|
|
|
#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_CALL \
|
|
|
|
|| x == JSOP_ITER \
|
|
|
|
|| x == JSOP_NEXTITER \
|
|
|
|
|| x == JSOP_APPLY \
|
2009-03-22 12:49:15 -07:00
|
|
|
|| x == JSOP_NEW \
|
2010-02-19 19:22:37 -08:00
|
|
|
|| x == JSOP_OBJTOSTR \
|
2009-03-09 18:34:35 -07:00
|
|
|
)
|
2009-04-24 09:07:49 -07:00
|
|
|
jsbytecode*
|
|
|
|
js_GetImacroStart(jsbytecode* pc) {
|
2009-08-19 09:06:22 -07:00
|
|
|
if (size_t(pc - equality_imacros.any_obj) < 36) return equality_imacros.any_obj;
|
|
|
|
if (size_t(pc - equality_imacros.obj_any) < 38) return equality_imacros.obj_any;
|
|
|
|
if (size_t(pc - binary_imacros.any_obj) < 36) return binary_imacros.any_obj;
|
2009-04-24 09:07:49 -07:00
|
|
|
if (size_t(pc - binary_imacros.obj_any) < 38) return binary_imacros.obj_any;
|
2009-08-19 09:06:22 -07:00
|
|
|
if (size_t(pc - binary_imacros.obj_obj) < 72) return binary_imacros.obj_obj;
|
|
|
|
if (size_t(pc - add_imacros.any_obj) < 36) return add_imacros.any_obj;
|
|
|
|
if (size_t(pc - add_imacros.obj_any) < 38) return add_imacros.obj_any;
|
|
|
|
if (size_t(pc - add_imacros.obj_obj) < 72) return add_imacros.obj_obj;
|
|
|
|
if (size_t(pc - unary_imacros.sign) < 41) return unary_imacros.sign;
|
|
|
|
if (size_t(pc - call_imacros.String) < 38) return call_imacros.String;
|
|
|
|
if (size_t(pc - new_imacros.String) < 38) return new_imacros.String;
|
2009-04-24 09:07:49 -07:00
|
|
|
if (size_t(pc - apply_imacros.apply0) < 8) return apply_imacros.apply0;
|
|
|
|
if (size_t(pc - apply_imacros.apply1) < 12) return apply_imacros.apply1;
|
|
|
|
if (size_t(pc - apply_imacros.apply2) < 16) return apply_imacros.apply2;
|
|
|
|
if (size_t(pc - apply_imacros.apply3) < 21) return apply_imacros.apply3;
|
|
|
|
if (size_t(pc - apply_imacros.apply4) < 26) return apply_imacros.apply4;
|
|
|
|
if (size_t(pc - apply_imacros.apply5) < 31) return apply_imacros.apply5;
|
|
|
|
if (size_t(pc - apply_imacros.apply6) < 36) return apply_imacros.apply6;
|
|
|
|
if (size_t(pc - apply_imacros.apply7) < 41) return apply_imacros.apply7;
|
|
|
|
if (size_t(pc - apply_imacros.apply8) < 46) return apply_imacros.apply8;
|
|
|
|
if (size_t(pc - apply_imacros.call0) < 7) return apply_imacros.call0;
|
|
|
|
if (size_t(pc - apply_imacros.call1) < 7) return apply_imacros.call1;
|
|
|
|
if (size_t(pc - apply_imacros.call2) < 7) return apply_imacros.call2;
|
|
|
|
if (size_t(pc - apply_imacros.call3) < 7) return apply_imacros.call3;
|
|
|
|
if (size_t(pc - apply_imacros.call4) < 7) return apply_imacros.call4;
|
|
|
|
if (size_t(pc - apply_imacros.call5) < 7) return apply_imacros.call5;
|
|
|
|
if (size_t(pc - apply_imacros.call6) < 7) return apply_imacros.call6;
|
|
|
|
if (size_t(pc - apply_imacros.call7) < 7) return apply_imacros.call7;
|
|
|
|
if (size_t(pc - apply_imacros.call8) < 7) return apply_imacros.call8;
|
|
|
|
if (size_t(pc - iter_imacros.for_in) < 13) return iter_imacros.for_in;
|
|
|
|
if (size_t(pc - iter_imacros.for_each) < 13) return iter_imacros.for_each;
|
|
|
|
if (size_t(pc - iter_imacros.for_in_native) < 10) return iter_imacros.for_in_native;
|
|
|
|
if (size_t(pc - iter_imacros.for_each_native) < 10) return iter_imacros.for_each_native;
|
|
|
|
if (size_t(pc - nextiter_imacros.custom_iter_next) < 12) return nextiter_imacros.custom_iter_next;
|
|
|
|
if (size_t(pc - nextiter_imacros.native_iter_next) < 12) return nextiter_imacros.native_iter_next;
|
2010-02-19 19:22:37 -08:00
|
|
|
if (size_t(pc - objtostr_imacros.toString) < 35) return objtostr_imacros.toString;
|
2009-04-24 09:07:49 -07:00
|
|
|
return NULL;
|
|
|
|
}
|