Index: src/array.js |
diff --git a/src/array.js b/src/array.js |
index d158a059c678019ef2460f142eabc2e252ef4754..b3b25ed260c505f35c058c0cdabd8e8b9b8c057c 100644 |
--- a/src/array.js |
+++ b/src/array.js |
@@ -444,13 +444,14 @@ function ObservedArrayPush() { |
for (var i = 0; i < m; i++) { |
this[i+n] = %_Arguments(i); |
} |
- this.length = n + m; |
+ var new_length = n + m; |
+ this.length = new_length; |
} finally { |
EndPerformSplice(this); |
EnqueueSpliceRecord(this, n, [], m); |
} |
- return this.length; |
+ return new_length; |
} |
// Appends the arguments to the end of the array and returns the new |
@@ -471,8 +472,10 @@ function ArrayPush() { |
for (var i = 0; i < m; i++) { |
this[i+n] = %_Arguments(i); |
} |
- this.length = n + m; |
- return this.length; |
+ |
+ var new_length = n + m; |
+ this.length = new_length; |
+ return new_length; |
} |
@@ -627,13 +630,14 @@ function ObservedArrayUnshift() { |
for (var i = 0; i < num_arguments; i++) { |
this[i] = %_Arguments(i); |
} |
- this.length = len + num_arguments; |
+ var new_length = len + num_arguments; |
+ this.length = new_length; |
} finally { |
EndPerformSplice(this); |
EnqueueSpliceRecord(this, 0, [], num_arguments); |
} |
- return len + num_arguments; |
+ return new_length; |
} |
function ArrayUnshift(arg1) { // length == 1 |
@@ -672,9 +676,9 @@ function ArrayUnshift(arg1) { // length == 1 |
this[i] = %_Arguments(i); |
} |
- this.length = len + num_arguments; |
- |
- return this.length; |
+ var new_length = len + num_arguments; |
+ this.length = new_length; |
+ return new_length; |
} |