This commit is contained in:
Luke Wagner 2010-05-25 15:01:02 -07:00
commit 0453c34865
5 changed files with 15 additions and 17 deletions

View File

@ -2671,7 +2671,7 @@ JS_PUBLIC_API(JSBool)
JS_SetParent(JSContext *cx, JSObject *obj, JSObject *parent)
{
CHECK_REQUEST(cx);
JS_ASSERT(!parent->isFunction() &&
JS_ASSERT((!parent || !parent->isFunction()) &&
"Functions may not be set as the parents of objects.");
return js_SetProtoOrParent(cx, obj, JSSLOT_PARENT, parent, JS_FALSE);
}

View File

@ -1644,7 +1644,7 @@ array_reverse(JSContext *cx, uintN argc, Value *vp)
return false;
}
}
JS_ASSERT(obj == &vp->asObject());
vp->setObject(*obj);
return true;
}

View File

@ -4018,7 +4018,7 @@ Decompile(SprintStack *ss, jsbytecode *pc, intN nb, JSOp nextop)
case JSOP_DOUBLE:
GET_DOUBLE_FROM_BYTECODE(jp->script, pc, 0, atom);
val = ATOM_TO_JSVAL(atom);
val = DOUBLE_TO_JSVAL(*ATOM_TO_DOUBLE(atom));
LOCAL_ASSERT(JSVAL_IS_DOUBLE(val));
todo = SprintDoubleValue(&ss->sprinter, val, &saveop);
break;
@ -4304,7 +4304,9 @@ Decompile(SprintStack *ss, jsbytecode *pc, intN nb, JSOp nextop)
pc2 += INDEX_LEN;
off2 = GetJumpOffset(pc, pc2);
pc2 += jmplen;
table[k].key = ATOM_TO_JSVAL(atom);
table[k].key = ATOM_IS_DOUBLE(atom)
? DOUBLE_TO_JSVAL(*ATOM_TO_DOUBLE(atom))
: ATOM_TO_JSVAL(atom);
table[k].offset = off2;
}

View File

@ -1775,7 +1775,7 @@ BEGIN_CASE(JSOP_CALLPROP)
if (entry->vword.isFunObj()) {
regs.sp[-1].setFunObj(entry->vword.toFunObj());
PUSH_COPY(lval);
goto end_callprop_with_funobj;
goto end_callprop;
} else if (entry->vword.isSlot()) {
uint32 slot = entry->vword.toSlot();
JS_ASSERT(slot < obj2->scope()->freeslot);
@ -1838,7 +1838,6 @@ BEGIN_CASE(JSOP_CALLPROP)
goto error;
}
#endif
end_callprop_with_funobj:;
}
END_CASE(JSOP_CALLPROP)
@ -2215,12 +2214,10 @@ END_CASE(JSOP_ENUMELEM)
JSObject *obj;
uintN flags;
uintN argc;
Value lval;
Value *vp;
BEGIN_CASE(JSOP_NEW)
{
Value lval;
/* Get immediate argc and find the constructor function. */
argc = GET_ARGC(regs.pc);
vp = regs.sp - (2 + argc);
@ -2274,9 +2271,8 @@ BEGIN_CASE(JSOP_APPLY)
argc = GET_ARGC(regs.pc);
vp = regs.sp - (argc + 2);
lval = *vp;
if (lval.isFunObj()) {
obj = &lval.asFunObj();
if (vp->isFunObj()) {
obj = &vp->asFunObj();
fun = GET_FUNCTION_PRIVATE(cx, obj);
/* Clear frame flags since this is not a constructor call. */
@ -2406,12 +2402,12 @@ BEGIN_CASE(JSOP_APPLY)
}
if (fun->flags & JSFUN_FAST_NATIVE) {
DTrace::enterJSFun(cx, NULL, fun, fp, argc, vp + 2, &lval);
DTrace::enterJSFun(cx, NULL, fun, fp, argc, vp + 2, vp);
JS_ASSERT(fun->u.n.extra == 0);
JS_ASSERT(vp[1].isObjectOrNull() || PrimitiveValue::test(fun, vp[1]));
JSBool ok = ((FastNative) fun->u.n.native)(cx, argc, vp);
DTrace::exitJSFun(cx, NULL, fun, *vp, &lval);
DTrace::exitJSFun(cx, NULL, fun, *vp, vp);
regs.sp = vp + 1;
if (!ok)
goto error;

View File

@ -125,10 +125,10 @@ class ResultsSink:
# key is (result, expect, random)
# value is (tinderbox label, dev test category)
LABELS = {
(TestResult.CRASH, False, False): ('TEST-UNEXPECTED-FAIL', 'REGRESSIONS'),
(TestResult.CRASH, False, True): ('TEST-UNEXPECTED-FAIL', 'REGRESSIONS'),
(TestResult.CRASH, True, False): ('TEST-UNEXPECTED-FAIL', 'REGRESSIONS'),
(TestResult.CRASH, True, True): ('TEST-UNEXPECTED-FAIL', 'REGRESSIONS'),
(TestResult.CRASH, False, False): ('TEST-UNEXPECTED-CRASH', 'REGRESSIONS'),
(TestResult.CRASH, False, True): ('TEST-UNEXPECTED-CRASH', 'REGRESSIONS'),
(TestResult.CRASH, True, False): ('TEST-UNEXPECTED-CRASH', 'REGRESSIONS'),
(TestResult.CRASH, True, True): ('TEST-UNEXPECTED-CRASH', 'REGRESSIONS'),
(TestResult.FAIL, False, False): ('TEST-KNOWN-FAIL', ''),
(TestResult.FAIL, False, True): ('TEST-KNOWN-FAIL (EXPECTED RANDOM)', ''),