Backout bug 477187.
This commit is contained in:
@@ -587,7 +587,7 @@ array_length_setter(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
} else if (oldlen - newlen < (1 << 24)) {
|
||||
do {
|
||||
--oldlen;
|
||||
if (!JS_CHECK_OPERATION_LIMIT(cx) ||
|
||||
if (!JS_CHECK_OPERATION_LIMIT(cx, JSOW_JUMP) ||
|
||||
!DeleteArrayElement(cx, obj, oldlen)) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
@@ -608,7 +608,7 @@ array_length_setter(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
JS_PUSH_TEMP_ROOT_OBJECT(cx, iter, &tvr);
|
||||
gap = oldlen - newlen;
|
||||
for (;;) {
|
||||
ok = (JS_CHECK_OPERATION_LIMIT(cx) &&
|
||||
ok = (JS_CHECK_OPERATION_LIMIT(cx, JSOW_JUMP) &&
|
||||
JS_NextProperty(cx, iter, &id));
|
||||
if (!ok)
|
||||
break;
|
||||
@@ -1326,7 +1326,7 @@ array_join_sub(JSContext *cx, JSObject *obj, enum ArrayToStringOp op,
|
||||
|
||||
/* Use rval to locally root each element value as we loop and convert. */
|
||||
for (index = 0; index < length; index++) {
|
||||
ok = (JS_CHECK_OPERATION_LIMIT(cx) &&
|
||||
ok = (JS_CHECK_OPERATION_LIMIT(cx, JSOW_JUMP) &&
|
||||
GetArrayElement(cx, obj, index, &hole, rval));
|
||||
if (!ok)
|
||||
goto done;
|
||||
@@ -1379,6 +1379,7 @@ array_join_sub(JSContext *cx, JSObject *obj, enum ArrayToStringOp op,
|
||||
goto done;
|
||||
}
|
||||
growth *= sizeof(jschar);
|
||||
JS_COUNT_OPERATION(cx, JSOW_ALLOCATION);
|
||||
if (!chars) {
|
||||
chars = (jschar *) malloc(growth);
|
||||
if (!chars)
|
||||
@@ -1499,7 +1500,7 @@ InitArrayElements(JSContext *cx, JSObject *obj, jsuint start, jsuint end,
|
||||
}
|
||||
|
||||
while (start != end) {
|
||||
if (!JS_CHECK_OPERATION_LIMIT(cx) ||
|
||||
if (!JS_CHECK_OPERATION_LIMIT(cx, JSOW_JUMP) ||
|
||||
!SetArrayElement(cx, obj, start++, *vector++)) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
@@ -1597,7 +1598,7 @@ array_reverse(JSContext *cx, uintN argc, jsval *vp)
|
||||
JS_PUSH_SINGLE_TEMP_ROOT(cx, JSVAL_NULL, &tvr);
|
||||
half = len / 2;
|
||||
for (i = 0; i < half; i++) {
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx) &&
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx, JSOW_JUMP) &&
|
||||
GetArrayElement(cx, obj, i, &hole, &tvr.u.value) &&
|
||||
GetArrayElement(cx, obj, len - i - 1, &hole2, vp) &&
|
||||
SetOrDeleteArrayElement(cx, obj, len - i - 1, hole, tvr.u.value) &&
|
||||
@@ -1782,7 +1783,7 @@ sort_compare(void *arg, const void *a, const void *b, int *result)
|
||||
JS_ASSERT(!JSVAL_IS_VOID(av));
|
||||
JS_ASSERT(!JSVAL_IS_VOID(bv));
|
||||
|
||||
if (!JS_CHECK_OPERATION_LIMIT(cx))
|
||||
if (!JS_CHECK_OPERATION_LIMIT(cx, JSOW_JUMP))
|
||||
return JS_FALSE;
|
||||
|
||||
invokevp = ca->elemroot;
|
||||
@@ -1820,7 +1821,7 @@ sort_compare_strings(void *arg, const void *a, const void *b, int *result)
|
||||
|
||||
JS_ASSERT(JSVAL_IS_STRING(av));
|
||||
JS_ASSERT(JSVAL_IS_STRING(bv));
|
||||
if (!JS_CHECK_OPERATION_LIMIT((JSContext *)arg))
|
||||
if (!JS_CHECK_OPERATION_LIMIT((JSContext *)arg, JSOW_JUMP))
|
||||
return JS_FALSE;
|
||||
|
||||
*result = (int) js_CompareStrings(JSVAL_TO_STRING(av), JSVAL_TO_STRING(bv));
|
||||
@@ -1914,7 +1915,7 @@ array_sort(JSContext *cx, uintN argc, jsval *vp)
|
||||
newlen = 0;
|
||||
all_strings = JS_TRUE;
|
||||
for (i = 0; i < len; i++) {
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx);
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx, JSOW_JUMP);
|
||||
if (!ok)
|
||||
goto out;
|
||||
|
||||
@@ -2000,7 +2001,7 @@ array_sort(JSContext *cx, uintN argc, jsval *vp)
|
||||
i = newlen;
|
||||
do {
|
||||
--i;
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx);
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx, JSOW_JUMP);
|
||||
if (!ok)
|
||||
goto out;
|
||||
v = vec[i];
|
||||
@@ -2079,7 +2080,7 @@ array_sort(JSContext *cx, uintN argc, jsval *vp)
|
||||
/* Set undefs that sorted after the rest of elements. */
|
||||
while (undefs != 0) {
|
||||
--undefs;
|
||||
if (!JS_CHECK_OPERATION_LIMIT(cx) ||
|
||||
if (!JS_CHECK_OPERATION_LIMIT(cx, JSOW_JUMP) ||
|
||||
!SetArrayElement(cx, obj, newlen++, JSVAL_VOID)) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
@@ -2087,7 +2088,7 @@ array_sort(JSContext *cx, uintN argc, jsval *vp)
|
||||
|
||||
/* Re-create any holes that sorted to the end of the array. */
|
||||
while (len > newlen) {
|
||||
if (!JS_CHECK_OPERATION_LIMIT(cx) ||
|
||||
if (!JS_CHECK_OPERATION_LIMIT(cx, JSOW_JUMP) ||
|
||||
!DeleteArrayElement(cx, obj, --len)) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
@@ -2282,7 +2283,7 @@ array_shift(JSContext *cx, uintN argc, jsval *vp)
|
||||
ok = JS_TRUE;
|
||||
JS_PUSH_SINGLE_TEMP_ROOT(cx, JSVAL_NULL, &tvr);
|
||||
for (i = 0; i != length; i++) {
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx) &&
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx, JSOW_JUMP) &&
|
||||
GetArrayElement(cx, obj, i + 1, &hole, &tvr.u.value) &&
|
||||
SetOrDeleteArrayElement(cx, obj, i, hole, tvr.u.value);
|
||||
if (!ok)
|
||||
@@ -2320,7 +2321,7 @@ array_unshift(JSContext *cx, uintN argc, jsval *vp)
|
||||
JS_PUSH_SINGLE_TEMP_ROOT(cx, JSVAL_NULL, &tvr);
|
||||
do {
|
||||
--last;
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx) &&
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx, JSOW_JUMP) &&
|
||||
GetArrayElement(cx, obj, last, &hole, &tvr.u.value) &&
|
||||
SetOrDeleteArrayElement(cx, obj, last + argc, hole,
|
||||
tvr.u.value);
|
||||
@@ -2417,7 +2418,7 @@ array_splice(JSContext *cx, uintN argc, jsval *vp)
|
||||
/* If there are elements to remove, put them into the return value. */
|
||||
if (count > 0) {
|
||||
for (last = begin; last < end; last++) {
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx) &&
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx, JSOW_JUMP) &&
|
||||
GetArrayElement(cx, obj, last, &hole, &tvr.u.value);
|
||||
if (!ok)
|
||||
goto out;
|
||||
@@ -2441,7 +2442,7 @@ array_splice(JSContext *cx, uintN argc, jsval *vp)
|
||||
last = length;
|
||||
/* (uint) end could be 0, so can't use vanilla >= test */
|
||||
while (last-- > end) {
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx) &&
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx, JSOW_JUMP) &&
|
||||
GetArrayElement(cx, obj, last, &hole, &tvr.u.value) &&
|
||||
SetOrDeleteArrayElement(cx, obj, last + delta, hole,
|
||||
tvr.u.value);
|
||||
@@ -2452,7 +2453,7 @@ array_splice(JSContext *cx, uintN argc, jsval *vp)
|
||||
} else if (argc < count) {
|
||||
delta = count - (jsuint)argc;
|
||||
for (last = end; last < length; last++) {
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx) &&
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx, JSOW_JUMP) &&
|
||||
GetArrayElement(cx, obj, last, &hole, &tvr.u.value) &&
|
||||
SetOrDeleteArrayElement(cx, obj, last - delta, hole,
|
||||
tvr.u.value);
|
||||
@@ -2529,7 +2530,7 @@ array_concat(JSContext *cx, uintN argc, jsval *vp)
|
||||
|
||||
/* Loop over [0, argc] to concat args into nobj, expanding all Arrays. */
|
||||
for (i = 0; i <= argc; i++) {
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx);
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx, JSOW_JUMP);
|
||||
if (!ok)
|
||||
goto out;
|
||||
v = argv[i];
|
||||
@@ -2550,7 +2551,7 @@ array_concat(JSContext *cx, uintN argc, jsval *vp)
|
||||
if (!ok)
|
||||
goto out;
|
||||
for (slot = 0; slot < alength; slot++) {
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx) &&
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx, JSOW_JUMP) &&
|
||||
GetArrayElement(cx, aobj, slot, &hole,
|
||||
&tvr.u.value);
|
||||
if (!ok)
|
||||
@@ -2656,7 +2657,7 @@ array_slice(JSContext *cx, uintN argc, jsval *vp)
|
||||
JS_PUSH_SINGLE_TEMP_ROOT(cx, JSVAL_NULL, &tvr);
|
||||
|
||||
for (slot = begin; slot < end; slot++) {
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx) &&
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx, JSOW_JUMP) &&
|
||||
GetArrayElement(cx, obj, slot, &hole, &tvr.u.value);
|
||||
if (!ok)
|
||||
goto out;
|
||||
@@ -2728,7 +2729,7 @@ array_indexOfHelper(JSContext *cx, JSBool isLast, uintN argc, jsval *vp)
|
||||
}
|
||||
|
||||
for (;;) {
|
||||
if (!JS_CHECK_OPERATION_LIMIT(cx) ||
|
||||
if (!JS_CHECK_OPERATION_LIMIT(cx, JSOW_JUMP) ||
|
||||
!GetArrayElement(cx, obj, (jsuint)i, &hole, vp)) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
@@ -2877,7 +2878,7 @@ array_extra(JSContext *cx, ArrayExtraMode mode, uintN argc, jsval *vp)
|
||||
invokevp = elemroot + 1;
|
||||
|
||||
for (i = start; i != end; i += step) {
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx) &&
|
||||
ok = JS_CHECK_OPERATION_LIMIT(cx, JSOW_JUMP) &&
|
||||
GetArrayElement(cx, obj, i, &hole, elemroot);
|
||||
if (!ok)
|
||||
goto out;
|
||||
|
||||
Reference in New Issue
Block a user