| Index: src/harmony-typedarray.js
|
| diff --git a/src/harmony-typedarray.js b/src/harmony-typedarray.js
|
| index c3cf8e9e308d2c2d716724641f7cd964bfc6f783..88048b44c9e854cb5d57856b8abf86a4a3694a97 100644
|
| --- a/src/harmony-typedarray.js
|
| +++ b/src/harmony-typedarray.js
|
| @@ -7,6 +7,9 @@
|
| "use strict";
|
|
|
| %CheckIsBootstrapping();
|
| +
|
| +// -------------------------------------------------------------------
|
| +// Imports
|
|
|
| macro TYPED_ARRAYS(FUNCTION)
|
| // arrayIds below should be synchronized with Runtime_TypedArrayInitialize.
|
| @@ -28,6 +31,40 @@
|
| TYPED_ARRAYS(DECLARE_GLOBALS)
|
| DECLARE_GLOBALS(Array)
|
|
|
| +var ArrayFrom;
|
| +var InnerArrayCopyWithin;
|
| +var InnerArrayEvery;
|
| +var InnerArrayFill;
|
| +var InnerArrayFilter;
|
| +var InnerArrayFind;
|
| +var InnerArrayFindIndex;
|
| +var InnerArrayForEach;
|
| +var InnerArrayIndexOf;
|
| +var InnerArrayLastIndexOf;
|
| +var InnerArrayMap;
|
| +var InnerArrayReverse;
|
| +var InnerArraySome;
|
| +var InnerArraySort;
|
| +var IsNaN;
|
| +
|
| +utils.Import(function(from) {
|
| + ArrayFrom = from.ArrayFrom;
|
| + InnerArrayCopyWithin = from.InnerArrayCopyWithin;
|
| + InnerArrayEvery = from.InnerArrayEvery;
|
| + InnerArrayFill = from.InnerArrayFill;
|
| + InnerArrayFilter = from.InnerArrayFilter;
|
| + InnerArrayFind = from.InnerArrayFind;
|
| + InnerArrayFindIndex = from.InnerArrayFindIndex;
|
| + InnerArrayForEach = from.InnerArrayForEach;
|
| + InnerArrayIndexOf = from.InnerArrayIndexOf;
|
| + InnerArrayLastIndexOf = from.InnerArrayLastIndexOf;
|
| + InnerArrayMap = from.InnerArrayMap;
|
| + InnerArrayReverse = from.InnerArrayReverse;
|
| + InnerArraySome = from.InnerArraySome;
|
| + InnerArraySort = from.InnerArraySort;
|
| + IsNaN = from.IsNaN;
|
| +});
|
| +
|
| // -------------------------------------------------------------------
|
|
|
| function ConstructTypedArray(constructor, array) {
|
| @@ -58,7 +95,7 @@
|
| var length = %_TypedArrayGetLength(this);
|
|
|
| // TODO(littledan): Replace with a memcpy for better performance
|
| - return $innerArrayCopyWithin(target, start, end, this, length);
|
| + return InnerArrayCopyWithin(target, start, end, this, length);
|
| }
|
| %FunctionSetLength(TypedArrayCopyWithin, 2);
|
|
|
| @@ -68,7 +105,7 @@
|
|
|
| var length = %_TypedArrayGetLength(this);
|
|
|
| - return $innerArrayEvery(f, receiver, this, length);
|
| + return InnerArrayEvery(f, receiver, this, length);
|
| }
|
| %FunctionSetLength(TypedArrayEvery, 1);
|
|
|
| @@ -78,7 +115,7 @@
|
|
|
| var length = %_TypedArrayGetLength(this);
|
|
|
| - $innerArrayForEach(f, receiver, this, length);
|
| + InnerArrayForEach(f, receiver, this, length);
|
| }
|
| %FunctionSetLength(TypedArrayForEach, 1);
|
|
|
| @@ -88,7 +125,7 @@
|
|
|
| var length = %_TypedArrayGetLength(this);
|
|
|
| - return $innerArrayFill(value, start, end, this, length);
|
| + return InnerArrayFill(value, start, end, this, length);
|
| }
|
| %FunctionSetLength(TypedArrayFill, 1);
|
|
|
| @@ -97,7 +134,7 @@
|
| if (!%IsTypedArray(this)) throw MakeTypeError(kNotTypedArray);
|
|
|
| var length = %_TypedArrayGetLength(this);
|
| - var array = $innerArrayFilter(predicate, thisArg, this, length);
|
| + var array = InnerArrayFilter(predicate, thisArg, this, length);
|
| return ConstructTypedArrayLike(this, array);
|
| }
|
| %FunctionSetLength(TypedArrayFilter, 1);
|
| @@ -108,7 +145,7 @@
|
|
|
| var length = %_TypedArrayGetLength(this);
|
|
|
| - return $innerArrayFind(predicate, thisArg, this, length);
|
| + return InnerArrayFind(predicate, thisArg, this, length);
|
| }
|
| %FunctionSetLength(TypedArrayFind, 1);
|
|
|
| @@ -118,7 +155,7 @@
|
|
|
| var length = %_TypedArrayGetLength(this);
|
|
|
| - return $innerArrayFindIndex(predicate, thisArg, this, length);
|
| + return InnerArrayFindIndex(predicate, thisArg, this, length);
|
| }
|
| %FunctionSetLength(TypedArrayFindIndex, 1);
|
|
|
| @@ -128,15 +165,15 @@
|
|
|
| var length = %_TypedArrayGetLength(this);
|
|
|
| - return $innerArrayReverse(this, length);
|
| + return InnerArrayReverse(this, length);
|
| }
|
|
|
|
|
| function TypedArrayComparefn(x, y) {
|
| - if ($isNaN(x) && $isNaN(y)) {
|
| - return $isNaN(y) ? 0 : 1;
|
| - }
|
| - if ($isNaN(x)) {
|
| + if (IsNaN(x) && IsNaN(y)) {
|
| + return IsNaN(y) ? 0 : 1;
|
| + }
|
| + if (IsNaN(x)) {
|
| return 1;
|
| }
|
| if (x === 0 && x === y) {
|
| @@ -162,7 +199,7 @@
|
| comparefn = TypedArrayComparefn;
|
| }
|
|
|
| - return %_CallFunction(this, length, comparefn, $innerArraySort);
|
| + return %_CallFunction(this, length, comparefn, InnerArraySort);
|
| }
|
|
|
|
|
| @@ -172,7 +209,7 @@
|
|
|
| var length = %_TypedArrayGetLength(this);
|
|
|
| - return %_CallFunction(this, element, index, length, $innerArrayIndexOf);
|
| + return %_CallFunction(this, element, index, length, InnerArrayIndexOf);
|
| }
|
| %FunctionSetLength(TypedArrayIndexOf, 1);
|
|
|
| @@ -184,7 +221,7 @@
|
| var length = %_TypedArrayGetLength(this);
|
|
|
| return %_CallFunction(this, element, index, length,
|
| - %_ArgumentsLength(), $innerArrayLastIndexOf);
|
| + %_ArgumentsLength(), InnerArrayLastIndexOf);
|
| }
|
| %FunctionSetLength(TypedArrayLastIndexOf, 1);
|
|
|
| @@ -196,7 +233,7 @@
|
| // TODO(littledan): Preallocate rather than making an intermediate
|
| // InternalArray, for better performance.
|
| var length = %_TypedArrayGetLength(this);
|
| - var array = $innerArrayMap(predicate, thisArg, this, length);
|
| + var array = InnerArrayMap(predicate, thisArg, this, length);
|
| return ConstructTypedArrayLike(this, array);
|
| }
|
| %FunctionSetLength(TypedArrayMap, 1);
|
| @@ -208,7 +245,7 @@
|
|
|
| var length = %_TypedArrayGetLength(this);
|
|
|
| - return $innerArraySome(f, receiver, this, length);
|
| + return InnerArraySome(f, receiver, this, length);
|
| }
|
| %FunctionSetLength(TypedArraySome, 1);
|
|
|
| @@ -227,7 +264,7 @@
|
| function TypedArrayFrom(source, mapfn, thisArg) {
|
| // TODO(littledan): Investigate if there is a receiver which could be
|
| // faster to accumulate on than Array, e.g., a TypedVector.
|
| - var array = %_CallFunction(GlobalArray, source, mapfn, thisArg, $arrayFrom);
|
| + var array = %_CallFunction(GlobalArray, source, mapfn, thisArg, ArrayFrom);
|
| return ConstructTypedArray(this, array);
|
| }
|
| %FunctionSetLength(TypedArrayFrom, 1);
|
| @@ -235,13 +272,13 @@
|
| // TODO(littledan): Fix the TypedArray proto chain (bug v8:4085).
|
| macro EXTEND_TYPED_ARRAY(NAME)
|
| // Set up non-enumerable functions on the object.
|
| - $installFunctions(GlobalNAME, DONT_ENUM | DONT_DELETE | READ_ONLY, [
|
| + utils.InstallFunctions(GlobalNAME, DONT_ENUM | DONT_DELETE | READ_ONLY, [
|
| "from", TypedArrayFrom,
|
| "of", TypedArrayOf
|
| ]);
|
|
|
| // Set up non-enumerable functions on the prototype object.
|
| - $installFunctions(GlobalNAME.prototype, DONT_ENUM, [
|
| + utils.InstallFunctions(GlobalNAME.prototype, DONT_ENUM, [
|
| "copyWithin", TypedArrayCopyWithin,
|
| "every", TypedArrayEvery,
|
| "fill", TypedArrayFill,
|
|
|