зеркало из https://github.com/mozilla/gecko-dev.git
Bug 777618 - Remove VALUE_TO_BOOLEAN and POP_BOOLEAN from interpreter. (r=luke)
This commit is contained in:
Родитель
9bf259ba5c
Коммит
5639fdfe7b
|
@ -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 = ®s.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_ = ®s.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)
|
||||
|
|
Загрузка…
Ссылка в новой задаче