Index: src/harmony-typedarray.js |
diff --git a/src/harmony-typedarray.js b/src/harmony-typedarray.js |
index 88048b44c9e854cb5d57856b8abf86a4a3694a97..c7a4ffef792b2abde4a00b01b9da937b9d13480f 100644 |
--- a/src/harmony-typedarray.js |
+++ b/src/harmony-typedarray.js |
@@ -59,6 +59,8 @@ utils.Import(function(from) { |
InnerArrayIndexOf = from.InnerArrayIndexOf; |
InnerArrayLastIndexOf = from.InnerArrayLastIndexOf; |
InnerArrayMap = from.InnerArrayMap; |
+ InnerArrayReduce = from.InnerArrayReduce; |
+ InnerArrayReduceRight = from.InnerArrayReduceRight; |
InnerArrayReverse = from.InnerArrayReverse; |
InnerArraySome = from.InnerArraySome; |
InnerArraySort = from.InnerArraySort; |
@@ -250,6 +252,28 @@ function TypedArraySome(f, receiver) { |
%FunctionSetLength(TypedArraySome, 1); |
+// ES6 draft 07-15-13, section 22.2.3.19 |
+function TypedArrayReduce(callback, current) { |
+ if (!%IsTypedArray(this)) throw MakeTypeError(kNotTypedArray); |
+ |
+ var length = %_TypedArrayGetLength(this); |
+ return InnerArrayReduce(callback, current, this, length, |
+ %_ArgumentsLength()); |
+} |
+%FunctionSetLength(TypedArrayReduce, 1); |
+ |
+ |
+// ES6 draft 07-15-13, section 22.2.3.19 |
+function TypedArrayReduceRight(callback, current) { |
+ if (!%IsTypedArray(this)) throw MakeTypeError(kNotTypedArray); |
+ |
+ var length = %_TypedArrayGetLength(this); |
+ return InnerArrayReduceRight(callback, current, this, length, |
+ %_ArgumentsLength()); |
+} |
+%FunctionSetLength(TypedArrayReduceRight, 1); |
+ |
+ |
// ES6 draft 08-24-14, section 22.2.2.2 |
function TypedArrayOf() { |
var length = %_ArgumentsLength(); |
@@ -289,6 +313,8 @@ macro EXTEND_TYPED_ARRAY(NAME) |
"lastIndexOf", TypedArrayLastIndexOf, |
"forEach", TypedArrayForEach, |
"map", TypedArrayMap, |
+ "reduce", TypedArrayReduce, |
+ "reduceRight", TypedArrayReduceRight, |
"reverse", TypedArrayReverse, |
"some", TypedArraySome, |
"sort", TypedArraySort |