Bug 963738 - Fix some false positives in the Array analysis; r=jonco
This commit is contained in:
@@ -85,12 +85,13 @@ ExhaustiveTest(const char funcode[])
|
||||
EVAL(CALL_CODES[ArgCount], v.address());
|
||||
Rooted<ArgumentsObject*> argsobj(cx, &JSVAL_TO_OBJECT(v)->as<ArgumentsObject>());
|
||||
|
||||
Value elems[MAX_ELEMS];
|
||||
Value elems_[MAX_ELEMS];
|
||||
AutoValueArray elems(cx, elems_, MAX_ELEMS);
|
||||
|
||||
for (size_t i = 0; i <= ArgCount; i++) {
|
||||
for (size_t j = 0; j <= ArgCount - i; j++) {
|
||||
ClearElements(elems);
|
||||
CHECK(argsobj->maybeGetElements(i, j, elems));
|
||||
CHECK(argsobj->maybeGetElements(i, j, elems.start()));
|
||||
for (size_t k = 0; k < j; k++)
|
||||
CHECK_SAME(elems[k], INT_TO_JSVAL(i + k));
|
||||
for (size_t k = j; k < MAX_ELEMS - 1; k++)
|
||||
@@ -103,10 +104,10 @@ ExhaustiveTest(const char funcode[])
|
||||
}
|
||||
|
||||
static void
|
||||
ClearElements(Value elems[MAX_ELEMS])
|
||||
ClearElements(AutoValueArray &elems)
|
||||
{
|
||||
for (size_t i = 0; i < MAX_ELEMS - 1; i++)
|
||||
elems[i] = NullValue();
|
||||
elems[MAX_ELEMS - 1] = Int32Value(42);
|
||||
for (size_t i = 0; i < elems.length() - 1; i++)
|
||||
elems[i].setNull();
|
||||
elems[elems.length() - 1].setInt32(42);
|
||||
}
|
||||
END_TEST(testArgumentsObject)
|
||||
|
||||
Reference in New Issue
Block a user