Index: src/js/array.js |
diff --git a/src/js/array.js b/src/js/array.js |
index 2cb2eda9552584a77f02f3f80ce128a4377d78c7..e80aa8df23757e0fb1bd19463258c07a57a4fb92 100644 |
--- a/src/js/array.js |
+++ b/src/js/array.js |
@@ -1270,13 +1270,7 @@ function ArrayReduceRight(callback, current) { |
} |
-// ES6 draft 03-17-15, section 22.1.3.3 |
-function ArrayCopyWithin(target, start, end) { |
- CHECK_OBJECT_COERCIBLE(this, "Array.prototype.copyWithin"); |
- |
- var array = TO_OBJECT(this); |
- var length = TO_LENGTH(array.length); |
- |
+function InnerArrayCopyWithin(target, start, end, array, length) { |
target = TO_INTEGER(target); |
var to; |
if (target < 0) { |
@@ -1324,6 +1318,17 @@ function ArrayCopyWithin(target, start, end) { |
} |
+// ES6 draft 03-17-15, section 22.1.3.3 |
+function ArrayCopyWithin(target, start, end) { |
+ CHECK_OBJECT_COERCIBLE(this, "Array.prototype.copyWithin"); |
+ |
+ var array = TO_OBJECT(this); |
+ var length = TO_LENGTH(array.length); |
+ |
+ return InnerArrayCopyWithin(target, start, end, array, length); |
+} |
+ |
+ |
function InnerArrayFind(predicate, thisArg, array, length) { |
if (!IS_CALLABLE(predicate)) { |
throw %make_type_error(kCalledNonCallable, predicate); |
@@ -1620,6 +1625,7 @@ utils.Export(function(to) { |
to.ArrayPush = ArrayPush; |
to.ArrayToString = ArrayToString; |
to.ArrayValues = IteratorFunctions.values, |
+ to.InnerArrayCopyWithin = InnerArrayCopyWithin; |
to.InnerArrayEvery = InnerArrayEvery; |
to.InnerArrayFill = InnerArrayFill; |
to.InnerArrayFilter = InnerArrayFilter; |