| Index: src/array.js
|
| diff --git a/src/array.js b/src/array.js
|
| index 55c59eb4a12ec9aa3af47ecc232bcce2df901b94..5e3e72dc8d797315ff0d6afdb26c5cfba06d1492 100644
|
| --- a/src/array.js
|
| +++ b/src/array.js
|
| @@ -3,12 +3,22 @@
|
| // found in the LICENSE file.
|
|
|
| var $arrayConcat;
|
| +var $arrayJoin;
|
| var $arrayPush;
|
| var $arrayPop;
|
| var $arrayShift;
|
| var $arraySlice;
|
| var $arraySplice;
|
| var $arrayUnshift;
|
| +var $innerArrayForEach;
|
| +var $innerArrayEvery;
|
| +var $innerArrayFilter;
|
| +var $innerArrayIndexOf;
|
| +var $innerArrayLastIndexOf;
|
| +var $innerArrayMap;
|
| +var $innerArrayReverse;
|
| +var $innerArraySome;
|
| +var $innerArraySort;
|
|
|
| (function(global, utils) {
|
|
|
| @@ -23,20 +33,10 @@
|
| var InternalArray = utils.InternalArray;
|
| var InternalPackedArray = utils.InternalPackedArray;
|
|
|
| -var Delete;
|
| var MathMin;
|
| -var ObjectHasOwnProperty;
|
| -var ObjectIsFrozen;
|
| -var ObjectIsSealed;
|
| -var ObjectToString;
|
|
|
| utils.Import(function(from) {
|
| - Delete = from.Delete;
|
| MathMin = from.MathMin;
|
| - ObjectHasOwnProperty = from.ObjectHasOwnProperty;
|
| - ObjectIsFrozen = from.ObjectIsFrozen;
|
| - ObjectIsSealed = from.ObjectIsSealed;
|
| - ObjectToString = from.ObjectToString;
|
| });
|
|
|
| // -------------------------------------------------------------------
|
| @@ -392,7 +392,7 @@
|
| func = array.join;
|
| }
|
| if (!IS_SPEC_FUNCTION(func)) {
|
| - return %_CallFunction(array, ObjectToString);
|
| + return %_CallFunction(array, $objectToString);
|
| }
|
| return %_CallFunction(array, func);
|
| }
|
| @@ -467,7 +467,7 @@
|
|
|
| n--;
|
| var value = array[n];
|
| - Delete(array, $toName(n), true);
|
| + $delete(array, $toName(n), true);
|
| array.length = n;
|
| return value;
|
| }
|
| @@ -645,7 +645,7 @@
|
| return;
|
| }
|
|
|
| - if (ObjectIsSealed(array)) throw MakeTypeError(kArrayFunctionsOnSealed);
|
| + if ($objectIsSealed(array)) throw MakeTypeError(kArrayFunctionsOnSealed);
|
|
|
| if (%IsObserved(array))
|
| return ObservedArrayShift.call(array, len);
|
| @@ -696,7 +696,7 @@
|
| var num_arguments = %_ArgumentsLength();
|
|
|
| if (len > 0 && UseSparseVariant(array, len, IS_ARRAY(array), len) &&
|
| - !ObjectIsSealed(array)) {
|
| + !$objectIsSealed(array)) {
|
| SparseMove(array, 0, 0, len, num_arguments);
|
| } else {
|
| SimpleMove(array, 0, 0, len, num_arguments);
|
| @@ -842,9 +842,9 @@
|
| deleted_elements.length = del_count;
|
| var num_elements_to_add = num_arguments > 2 ? num_arguments - 2 : 0;
|
|
|
| - if (del_count != num_elements_to_add && ObjectIsSealed(array)) {
|
| + if (del_count != num_elements_to_add && $objectIsSealed(array)) {
|
| throw MakeTypeError(kArrayFunctionsOnSealed);
|
| - } else if (del_count > 0 && ObjectIsFrozen(array)) {
|
| + } else if (del_count > 0 && $objectIsFrozen(array)) {
|
| throw MakeTypeError(kArrayFunctionsOnFrozen);
|
| }
|
|
|
| @@ -1582,7 +1582,7 @@
|
| DONT_ENUM | READ_ONLY);
|
|
|
| // Set up non-enumerable functions on the Array object.
|
| -utils.InstallFunctions(GlobalArray, DONT_ENUM, [
|
| +$installFunctions(GlobalArray, DONT_ENUM, [
|
| "isArray", ArrayIsArray
|
| ]);
|
|
|
| @@ -1603,7 +1603,7 @@
|
| // set their names.
|
| // Manipulate the length of some of the functions to meet
|
| // expectations set by ECMA-262 or Mozilla.
|
| -utils.InstallFunctions(GlobalArray.prototype, DONT_ENUM, [
|
| +$installFunctions(GlobalArray.prototype, DONT_ENUM, [
|
| "toString", getFunction("toString", ArrayToString),
|
| "toLocaleString", getFunction("toLocaleString", ArrayToLocaleString),
|
| "join", getFunction("join", ArrayJoin),
|
| @@ -1632,7 +1632,7 @@
|
| // The internal Array prototype doesn't need to be fancy, since it's never
|
| // exposed to user code.
|
| // Adding only the functions that are actually used.
|
| -utils.SetUpLockedPrototype(InternalArray, GlobalArray(), [
|
| +$setUpLockedPrototype(InternalArray, GlobalArray(), [
|
| "concat", getFunction("concat", ArrayConcatJS),
|
| "indexOf", getFunction("indexOf", ArrayIndexOf),
|
| "join", getFunction("join", ArrayJoin),
|
| @@ -1642,30 +1642,15 @@
|
| "splice", getFunction("splice", ArraySplice)
|
| ]);
|
|
|
| -utils.SetUpLockedPrototype(InternalPackedArray, GlobalArray(), [
|
| +$setUpLockedPrototype(InternalPackedArray, GlobalArray(), [
|
| "join", getFunction("join", ArrayJoin),
|
| "pop", getFunction("pop", ArrayPop),
|
| "push", getFunction("push", ArrayPush),
|
| "shift", getFunction("shift", ArrayShift)
|
| ]);
|
|
|
| -// -------------------------------------------------------------------
|
| -// Exports
|
| -
|
| -utils.Export(function(to) {
|
| - to.ArrayJoin = ArrayJoin;
|
| - to.InnerArrayEvery = InnerArrayEvery;
|
| - to.InnerArrayFilter = InnerArrayFilter;
|
| - to.InnerArrayForEach = InnerArrayForEach;
|
| - to.InnerArrayIndexOf = InnerArrayIndexOf;
|
| - to.InnerArrayLastIndexOf = InnerArrayLastIndexOf;
|
| - to.InnerArrayMap = InnerArrayMap;
|
| - to.InnerArrayReverse = InnerArrayReverse;
|
| - to.InnerArraySome = InnerArraySome;
|
| - to.InnerArraySort = InnerArraySort;
|
| -});
|
| -
|
| $arrayConcat = ArrayConcatJS;
|
| +$arrayJoin = ArrayJoin;
|
| $arrayPush = ArrayPush;
|
| $arrayPop = ArrayPop;
|
| $arrayShift = ArrayShift;
|
| @@ -1673,4 +1658,14 @@
|
| $arraySplice = ArraySplice;
|
| $arrayUnshift = ArrayUnshift;
|
|
|
| +$innerArrayEvery = InnerArrayEvery;
|
| +$innerArrayFilter = InnerArrayFilter;
|
| +$innerArrayForEach = InnerArrayForEach;
|
| +$innerArrayIndexOf = InnerArrayIndexOf;
|
| +$innerArrayLastIndexOf = InnerArrayLastIndexOf;
|
| +$innerArrayMap = InnerArrayMap;
|
| +$innerArrayReverse = InnerArrayReverse;
|
| +$innerArraySome = InnerArraySome;
|
| +$innerArraySort = InnerArraySort;
|
| +
|
| });
|
|
|