| Index: src/js/array.js
|
| diff --git a/src/js/array.js b/src/js/array.js
|
| index 914abd85dcfba085f00a92ae46abc4ac6d77f6e1..a42aad590cd8a1905a29a16148544093a2e6d6ea 100644
|
| --- a/src/js/array.js
|
| +++ b/src/js/array.js
|
| @@ -515,12 +515,12 @@ function ArrayPop() {
|
|
|
| function ObservedArrayPush() {
|
| var n = TO_LENGTH(this.length);
|
| - var m = %_ArgumentsLength();
|
| + var m = arguments.length;
|
|
|
| try {
|
| ObserveBeginPerformSplice(this);
|
| for (var i = 0; i < m; i++) {
|
| - this[i+n] = %_Arguments(i);
|
| + this[i+n] = arguments[i];
|
| }
|
| var new_length = n + m;
|
| this.length = new_length;
|
| @@ -543,7 +543,7 @@ function ArrayPush() {
|
|
|
| var array = TO_OBJECT(this);
|
| var n = TO_LENGTH(array.length);
|
| - var m = %_ArgumentsLength();
|
| + var m = arguments.length;
|
|
|
| // It appears that there is no enforced, absolute limit on the number of
|
| // arguments, but it would surely blow the stack to use 2**30 or more.
|
| @@ -555,7 +555,7 @@ function ArrayPush() {
|
| }
|
|
|
| for (var i = 0; i < m; i++) {
|
| - array[i+n] = %_Arguments(i);
|
| + array[i+n] = arguments[i];
|
| }
|
|
|
| var new_length = n + m;
|
| @@ -711,13 +711,13 @@ function ArrayShift() {
|
|
|
| function ObservedArrayUnshift() {
|
| var len = TO_LENGTH(this.length);
|
| - var num_arguments = %_ArgumentsLength();
|
| + var num_arguments = arguments.length;
|
|
|
| try {
|
| ObserveBeginPerformSplice(this);
|
| SimpleMove(this, 0, 0, len, num_arguments);
|
| for (var i = 0; i < num_arguments; i++) {
|
| - this[i] = %_Arguments(i);
|
| + this[i] = arguments[i];
|
| }
|
| var new_length = len + num_arguments;
|
| this.length = new_length;
|
| @@ -738,7 +738,7 @@ function ArrayUnshift(arg1) { // length == 1
|
|
|
| var array = TO_OBJECT(this);
|
| var len = TO_LENGTH(array.length);
|
| - var num_arguments = %_ArgumentsLength();
|
| + var num_arguments = arguments.length;
|
|
|
| if (len > 0 && UseSparseVariant(array, len, IS_ARRAY(array), len) &&
|
| !%object_is_sealed(array)) {
|
| @@ -748,7 +748,7 @@ function ArrayUnshift(arg1) { // length == 1
|
| }
|
|
|
| for (var i = 0; i < num_arguments; i++) {
|
| - array[i] = %_Arguments(i);
|
| + array[i] = arguments[i];
|
| }
|
|
|
| var new_length = len + num_arguments;
|
| @@ -831,7 +831,7 @@ function ComputeSpliceDeleteCount(delete_count, num_arguments, len, start_i) {
|
|
|
|
|
| function ObservedArraySplice(start, delete_count) {
|
| - var num_arguments = %_ArgumentsLength();
|
| + var num_arguments = arguments.length;
|
| var len = TO_LENGTH(this.length);
|
| var start_i = ComputeSpliceStartIndex(TO_INTEGER(start), len);
|
| var del_count = ComputeSpliceDeleteCount(delete_count, num_arguments, len,
|
| @@ -850,9 +850,9 @@ function ObservedArraySplice(start, delete_count) {
|
| // place of the deleted elements.
|
| var i = start_i;
|
| var arguments_index = 2;
|
| - var arguments_length = %_ArgumentsLength();
|
| + var arguments_length = arguments.length;
|
| while (arguments_index < arguments_length) {
|
| - this[i++] = %_Arguments(arguments_index++);
|
| + this[i++] = arguments[arguments_index++];
|
| }
|
| this.length = len - del_count + num_elements_to_add;
|
|
|
| @@ -877,7 +877,7 @@ function ArraySplice(start, delete_count) {
|
| if (%IsObserved(this))
|
| return ObservedArraySplice.apply(this, arguments);
|
|
|
| - var num_arguments = %_ArgumentsLength();
|
| + var num_arguments = arguments.length;
|
| var array = TO_OBJECT(this);
|
| var len = TO_LENGTH(array.length);
|
| var start_i = ComputeSpliceStartIndex(TO_INTEGER(start), len);
|
| @@ -913,9 +913,9 @@ function ArraySplice(start, delete_count) {
|
| // place of the deleted elements.
|
| var i = start_i;
|
| var arguments_index = 2;
|
| - var arguments_length = %_ArgumentsLength();
|
| + var arguments_length = arguments.length;
|
| while (arguments_index < arguments_length) {
|
| - array[i++] = %_Arguments(arguments_index++);
|
| + array[i++] = arguments[arguments_index++];
|
| }
|
| array.length = len - del_count + num_elements_to_add;
|
|
|
| @@ -1469,7 +1469,7 @@ function ArrayLastIndexOf(element, index) {
|
|
|
| var length = TO_LENGTH(this.length);
|
| return InnerArrayLastIndexOf(this, element, index, length,
|
| - %_ArgumentsLength());
|
| + arguments.length);
|
| }
|
|
|
|
|
| @@ -1508,7 +1508,7 @@ function ArrayReduce(callback, current) {
|
| var array = TO_OBJECT(this);
|
| var length = TO_LENGTH(array.length);
|
| return InnerArrayReduce(callback, current, array, length,
|
| - %_ArgumentsLength());
|
| + arguments.length);
|
| }
|
|
|
|
|
| @@ -1548,7 +1548,7 @@ function ArrayReduceRight(callback, current) {
|
| var array = TO_OBJECT(this);
|
| var length = TO_LENGTH(array.length);
|
| return InnerArrayReduceRight(callback, current, array, length,
|
| - %_ArgumentsLength());
|
| + arguments.length);
|
| }
|
|
|
|
|
| @@ -1811,13 +1811,13 @@ function ArrayFrom(arrayLike, mapfn, receiver) {
|
|
|
|
|
| // ES6, draft 05-22-14, section 22.1.2.3
|
| -function ArrayOf() {
|
| - var length = %_ArgumentsLength();
|
| +function ArrayOf(...args) {
|
| + var length = args.length;
|
| var constructor = this;
|
| // TODO: Implement IsConstructor (ES6 section 7.2.5)
|
| var array = %IsConstructor(constructor) ? new constructor(length) : [];
|
| for (var i = 0; i < length; i++) {
|
| - AddArrayElement(constructor, array, i, %_Arguments(i));
|
| + AddArrayElement(constructor, array, i, args[i]);
|
| }
|
| array.length = length;
|
| return array;
|
|
|