Bug 777618 - Remove VALUE_TO_BOOLEAN and POP_BOOLEAN from interpreter. (r=luke)

This commit is contained in:
Eric Faust 2012-07-26 15:24:28 -07:00
Родитель 9bf259ba5c
Коммит 5639fdfe7b
1 изменённых файлов: 8 добавлений и 27 удалений

Просмотреть файл

@ -880,18 +880,6 @@ DoIncDec(JSContext *cx, HandleScript script, jsbytecode *pc, const Value &v, Val
#define POP_COPY_TO(v) v = *--regs.sp
#define POP_RETURN_VALUE() regs.fp()->setReturnValue(*--regs.sp)
#define VALUE_TO_BOOLEAN(cx, vp, b) \
JS_BEGIN_MACRO \
vp = &regs.sp[-1]; \
if (vp->isNull()) { \
b = false; \
} else { \
b = ToBoolean(*vp); \
} \
JS_END_MACRO
#define POP_BOOLEAN(cx, vp, b) do { VALUE_TO_BOOLEAN(cx, vp, b); regs.sp--; } while(0)
#define FETCH_OBJECT(cx, n, obj) \
JS_BEGIN_MACRO \
Value *vp_ = &regs.sp[n]; \
@ -1620,9 +1608,8 @@ END_CASE(JSOP_GOTO)
BEGIN_CASE(JSOP_IFEQ)
{
bool cond;
Value *_;
POP_BOOLEAN(cx, _, cond);
bool cond = ToBoolean(regs.sp[-1]);
regs.sp--;
if (cond == false) {
len = GET_JUMP_OFFSET(regs.pc);
BRANCH(len);
@ -1632,9 +1619,8 @@ END_CASE(JSOP_IFEQ)
BEGIN_CASE(JSOP_IFNE)
{
bool cond;
Value *_;
POP_BOOLEAN(cx, _, cond);
bool cond = ToBoolean(regs.sp[-1]);
regs.sp--;
if (cond != false) {
len = GET_JUMP_OFFSET(regs.pc);
BRANCH(len);
@ -1644,9 +1630,7 @@ END_CASE(JSOP_IFNE)
BEGIN_CASE(JSOP_OR)
{
bool cond;
Value *_;
VALUE_TO_BOOLEAN(cx, _, cond);
bool cond = ToBoolean(regs.sp[-1]);
if (cond == true) {
len = GET_JUMP_OFFSET(regs.pc);
DO_NEXT_OP(len);
@ -1656,9 +1640,7 @@ END_CASE(JSOP_OR)
BEGIN_CASE(JSOP_AND)
{
bool cond;
Value *_;
VALUE_TO_BOOLEAN(cx, _, cond);
bool cond = ToBoolean(regs.sp[-1]);
if (cond == false) {
len = GET_JUMP_OFFSET(regs.pc);
DO_NEXT_OP(len);
@ -2109,9 +2091,8 @@ END_CASE(JSOP_MOD)
BEGIN_CASE(JSOP_NOT)
{
Value *_;
bool cond;
POP_BOOLEAN(cx, _, cond);
bool cond = ToBoolean(regs.sp[-1]);
regs.sp--;
PUSH_BOOLEAN(!cond);
}
END_CASE(JSOP_NOT)