| Index: src/array.js
|
| diff --git a/src/array.js b/src/array.js
|
| index 5f89ebb7a6b6c4cfea2b66df051e918e95a74c0d..4a7aea5e1d9fd358cd679ae0f534e8d6bed1f257 100644
|
| --- a/src/array.js
|
| +++ b/src/array.js
|
| @@ -399,14 +399,13 @@ function ObservedArrayPop(n) {
|
| n--;
|
| var value = this[n];
|
|
|
| - EnqueueSpliceRecord(this, n, [value], 0);
|
| -
|
| try {
|
| BeginPerformSplice(this);
|
| delete this[n];
|
| this.length = n;
|
| } finally {
|
| EndPerformSplice(this);
|
| + EnqueueSpliceRecord(this, n, [value], 0);
|
| }
|
|
|
| return value;
|
| @@ -441,8 +440,6 @@ function ObservedArrayPush() {
|
| var n = TO_UINT32(this.length);
|
| var m = %_ArgumentsLength();
|
|
|
| - EnqueueSpliceRecord(this, n, [], m);
|
| -
|
| try {
|
| BeginPerformSplice(this);
|
| for (var i = 0; i < m; i++) {
|
| @@ -451,6 +448,7 @@ function ObservedArrayPush() {
|
| this.length = n + m;
|
| } finally {
|
| EndPerformSplice(this);
|
| + EnqueueSpliceRecord(this, n, [], m);
|
| }
|
|
|
| return this.length;
|
| @@ -581,14 +579,13 @@ function ArrayReverse() {
|
| function ObservedArrayShift(len) {
|
| var first = this[0];
|
|
|
| - EnqueueSpliceRecord(this, 0, [first], 0);
|
| -
|
| try {
|
| BeginPerformSplice(this);
|
| SimpleMove(this, 0, 1, len, 0);
|
| this.length = len - 1;
|
| } finally {
|
| EndPerformSplice(this);
|
| + EnqueueSpliceRecord(this, 0, [first], 0);
|
| }
|
|
|
| return first;
|
| @@ -627,8 +624,6 @@ function ObservedArrayUnshift() {
|
| var len = TO_UINT32(this.length);
|
| var num_arguments = %_ArgumentsLength();
|
|
|
| - EnqueueSpliceRecord(this, 0, [], num_arguments);
|
| -
|
| try {
|
| BeginPerformSplice(this);
|
| SimpleMove(this, 0, 0, len, num_arguments);
|
| @@ -638,6 +633,7 @@ function ObservedArrayUnshift() {
|
| this.length = len + num_arguments;
|
| } finally {
|
| EndPerformSplice(this);
|
| + EnqueueSpliceRecord(this, 0, [], num_arguments);
|
| }
|
|
|
| return len + num_arguments;
|
|
|