Index: src/array.js |
diff --git a/src/array.js b/src/array.js |
index 0d7a7cbc85e1f89a490d229fa759d047b3966fa6..28142bb1600327dc935b60262f60e50e3fac34e8 100644 |
--- a/src/array.js |
+++ b/src/array.js |
@@ -603,16 +603,17 @@ function ArraySplice(start, delete_count) { |
} |
// SpiderMonkey, TraceMonkey and JSC treat the case where no delete count is |
- // given differently from when an undefined delete count is given. |
+ // given as a request to delete all the elements from the start. |
+ // And it differs from the case of undefined delete count. |
// This does not follow ECMA-262, but we do the same for |
// compatibility. |
var del_count = 0; |
- if (num_arguments > 1) { |
+ if (num_arguments == 1) { |
+ del_count = len - start_i; |
+ } else { |
del_count = TO_INTEGER(delete_count); |
if (del_count < 0) del_count = 0; |
if (del_count > len - start_i) del_count = len - start_i; |
- } else { |
- del_count = len - start_i; |
} |
var deleted_elements = []; |