mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Backed out value_to_iter inline method extraction.
This commit is contained in:
parent
8d20524c9b
commit
0077c6a422
@ -2519,17 +2519,6 @@ default_value(JSContext* cx, JSFrameRegs& regs, int n, JSType hint,
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
static inline bool
|
||||
value_to_iter(JSContext* cx, JSFrameRegs& regs, JSStackFrame *fp, JSOp op, uintN flags)
|
||||
{
|
||||
JS_ASSERT(regs.sp > fp->spbase);
|
||||
if (!js_ValueToIterator(cx, flags, ®s.sp[-1]))
|
||||
return false;
|
||||
JS_ASSERT(!JSVAL_IS_PRIMITIVE(regs.sp[-1]));
|
||||
JS_ASSERT(JSOP_FORIN_LENGTH == js_CodeSpec[op].length);
|
||||
return true;
|
||||
}
|
||||
|
||||
#define PUSH_STACK(v) prim_push_stack(regs, (v))
|
||||
#define POP_STACK(v) prim_pop_stack(regs, (v))
|
||||
#define STORE_STACK(n,v) prim_store_stack(regs, (n), (v))
|
||||
@ -2545,8 +2534,6 @@ value_to_iter(JSContext* cx, JSFrameRegs& regs, JSStackFrame *fp, JSOp op, uintN
|
||||
#define STORE_STACK_STRING(n, str) store_stack_string(regs, (n), (str))
|
||||
#define STORE_STACK_OBJECT(n, obj) store_stack_object(regs, (n), (obj))
|
||||
|
||||
#define VALUE_TO_ITER(flags) value_to_iter(cx, regs, fp, op, flags)
|
||||
|
||||
/*
|
||||
* Push the double d using regs from the lexical environment. Try to convert d
|
||||
* to a jsint that fits in a jsval, otherwise GC-alloc space for it and push a
|
||||
@ -3361,13 +3348,13 @@ JS_INTERPRET(JSContext *cx)
|
||||
END_CASE(JSOP_IN)
|
||||
|
||||
BEGIN_CASE(JSOP_FOREACH)
|
||||
VALUE_TO_ITER(JSITER_ENUMERATE | JSITER_FOREACH);
|
||||
END_CASE(JSOP_FOREACH);
|
||||
flags = JSITER_ENUMERATE | JSITER_FOREACH;
|
||||
goto value_to_iter;
|
||||
|
||||
#if JS_HAS_DESTRUCTURING
|
||||
BEGIN_CASE(JSOP_FOREACHKEYVAL)
|
||||
VALUE_TO_ITER(JSITER_ENUMERATE | JSITER_FOREACH | JSITER_KEYVALUE);
|
||||
END_CASE(JSOP_FOREACHKEYVAL)
|
||||
flags = JSITER_ENUMERATE | JSITER_FOREACH | JSITER_KEYVALUE;
|
||||
goto value_to_iter;
|
||||
#endif
|
||||
|
||||
BEGIN_CASE(JSOP_FORIN)
|
||||
@ -3377,7 +3364,14 @@ JS_INTERPRET(JSContext *cx)
|
||||
* explicit iterator is not given via the optional __iterator__
|
||||
* method.
|
||||
*/
|
||||
VALUE_TO_ITER(JSITER_ENUMERATE);
|
||||
flags = JSITER_ENUMERATE;
|
||||
|
||||
value_to_iter:
|
||||
JS_ASSERT(regs.sp > fp->spbase);
|
||||
if (!js_ValueToIterator(cx, flags, ®s.sp[-1]))
|
||||
goto error;
|
||||
JS_ASSERT(!JSVAL_IS_PRIMITIVE(regs.sp[-1]));
|
||||
JS_ASSERT(JSOP_FORIN_LENGTH == js_CodeSpec[op].length);
|
||||
END_CASE(JSOP_FORIN)
|
||||
|
||||
BEGIN_CASE(JSOP_FORPROP)
|
||||
|
Loading…
Reference in New Issue
Block a user