| Index: src/array.js
|
| diff --git a/src/array.js b/src/array.js
|
| index b2b038dae3a16335d093e831b2ce3ea8ebf691fb..bf04bb7e7b5bc59708745fb12bf15b017d5e4b52 100644
|
| --- a/src/array.js
|
| +++ b/src/array.js
|
| @@ -1198,7 +1198,9 @@ function InnerArrayFilter(f, receiver, array, length) {
|
| }
|
| }
|
| }
|
| - return accumulator;
|
| + var result = new GlobalArray();
|
| + %MoveArrayContents(accumulator, result);
|
| + return result;
|
| }
|
|
|
| function ArrayFilter(f, receiver) {
|
| @@ -1208,10 +1210,7 @@ function ArrayFilter(f, receiver) {
|
| // loop will not affect the looping and side effects are visible.
|
| var array = TO_OBJECT(this);
|
| var length = TO_LENGTH_OR_UINT32(array.length);
|
| - var accumulator = InnerArrayFilter(f, receiver, array, length);
|
| - var result = new GlobalArray();
|
| - %MoveArrayContents(accumulator, result);
|
| - return result;
|
| + return InnerArrayFilter(f, receiver, array, length);
|
| }
|
|
|
| function InnerArrayForEach(f, receiver, array, length) {
|
| @@ -1311,7 +1310,9 @@ function InnerArrayMap(f, receiver, array, length) {
|
| accumulator[i] = %_Call(f, receiver, element, i, array);
|
| }
|
| }
|
| - return accumulator;
|
| + var result = new GlobalArray();
|
| + %MoveArrayContents(accumulator, result);
|
| + return result;
|
| }
|
|
|
|
|
| @@ -1322,10 +1323,7 @@ function ArrayMap(f, receiver) {
|
| // loop will not affect the looping and side effects are visible.
|
| var array = TO_OBJECT(this);
|
| var length = TO_LENGTH_OR_UINT32(array.length);
|
| - var accumulator = InnerArrayMap(f, receiver, array, length);
|
| - var result = new GlobalArray();
|
| - %MoveArrayContents(accumulator, result);
|
| - return result;
|
| + return InnerArrayMap(f, receiver, array, length);
|
| }
|
|
|
|
|
|
|