| Index: src/js/array.js
|
| diff --git a/src/js/array.js b/src/js/array.js
|
| index 70538bc06d56b78f0c5d744a442f19c03759535c..d9b097c84727e2aa7beb843b8895b46f25d85cd8 100644
|
| --- a/src/js/array.js
|
| +++ b/src/js/array.js
|
| @@ -272,12 +272,10 @@ function SparseSlice(array, start_i, del_count, len, deleted_elements) {
|
| var length = indices.length;
|
| for (var k = 0; k < length; ++k) {
|
| var key = indices[k];
|
| - if (!IS_UNDEFINED(key)) {
|
| - if (key >= start_i) {
|
| - var current = array[key];
|
| - if (!IS_UNDEFINED(current) || key in array) {
|
| - DefineIndexedProperty(deleted_elements, key - start_i, current);
|
| - }
|
| + if (key >= start_i) {
|
| + var current = array[key];
|
| + if (!IS_UNDEFINED(current) || key in array) {
|
| + DefineIndexedProperty(deleted_elements, key - start_i, current);
|
| }
|
| }
|
| }
|
| @@ -314,21 +312,19 @@ function SparseMove(array, start_i, del_count, len, num_additional_args) {
|
| var length = indices.length;
|
| for (var k = 0; k < length; ++k) {
|
| var key = indices[k];
|
| - if (!IS_UNDEFINED(key)) {
|
| - if (key < start_i) {
|
| - var current = array[key];
|
| - if (!IS_UNDEFINED(current) || key in array) {
|
| - new_array[key] = current;
|
| - }
|
| - } else if (key >= start_i + del_count) {
|
| - var current = array[key];
|
| - if (!IS_UNDEFINED(current) || key in array) {
|
| - var new_key = key - del_count + num_additional_args;
|
| - new_array[new_key] = current;
|
| - if (new_key > 0xfffffffe) {
|
| - big_indices = big_indices || new InternalArray();
|
| - big_indices.push(new_key);
|
| - }
|
| + if (key < start_i) {
|
| + var current = array[key];
|
| + if (!IS_UNDEFINED(current) || key in array) {
|
| + new_array[key] = current;
|
| + }
|
| + } else if (key >= start_i + del_count) {
|
| + var current = array[key];
|
| + if (!IS_UNDEFINED(current) || key in array) {
|
| + var new_key = key - del_count + num_additional_args;
|
| + new_array[new_key] = current;
|
| + if (new_key > 0xfffffffe) {
|
| + big_indices = big_indices || new InternalArray();
|
| + big_indices.push(new_key);
|
| }
|
| }
|
| }
|
| @@ -1066,8 +1062,7 @@ function InnerArraySort(array, length, comparefn) {
|
| } else {
|
| for (var i = 0; i < indices.length; i++) {
|
| var index = indices[i];
|
| - if (!IS_UNDEFINED(index) && !HAS_OWN_PROPERTY(obj, index)
|
| - && HAS_OWN_PROPERTY(proto, index)) {
|
| + if (!HAS_OWN_PROPERTY(obj, index) && HAS_OWN_PROPERTY(proto, index)) {
|
| obj[index] = proto[index];
|
| if (index >= max) { max = index + 1; }
|
| }
|
| @@ -1094,8 +1089,7 @@ function InnerArraySort(array, length, comparefn) {
|
| } else {
|
| for (var i = 0; i < indices.length; i++) {
|
| var index = indices[i];
|
| - if (!IS_UNDEFINED(index) && from <= index &&
|
| - HAS_OWN_PROPERTY(proto, index)) {
|
| + if (from <= index && HAS_OWN_PROPERTY(proto, index)) {
|
| obj[index] = UNDEFINED;
|
| }
|
| }
|
| @@ -1379,7 +1373,7 @@ function InnerArrayIndexOf(array, element, index, length) {
|
| while (i < n && sortedKeys[i] < index) i++;
|
| while (i < n) {
|
| var key = sortedKeys[i];
|
| - if (!IS_UNDEFINED(key) && array[key] === element) return key;
|
| + if (array[key] === element) return key;
|
| i++;
|
| }
|
| return -1;
|
| @@ -1438,7 +1432,7 @@ function InnerArrayLastIndexOf(array, element, index, length, argumentsLength) {
|
| var i = sortedKeys.length - 1;
|
| while (i >= 0) {
|
| var key = sortedKeys[i];
|
| - if (!IS_UNDEFINED(key) && array[key] === element) return key;
|
| + if (array[key] === element) return key;
|
| i--;
|
| }
|
| return -1;
|
|
|