| Index: src/array.js
|
| diff --git a/src/array.js b/src/array.js
|
| index f3c0697b994b36f50f4a6c966816d3359ef9375b..dfa73011d0bc682e2530b0d7e401997ecbea7ab4 100644
|
| --- a/src/array.js
|
| +++ b/src/array.js
|
| @@ -953,7 +953,8 @@ function ArrayMap(f, receiver) {
|
|
|
|
|
| function ArrayIndexOf(element, index) {
|
| - var length = this.length;
|
| + var length = TO_UINT32(this.length);
|
| + if (length == 0) return -1;
|
| if (IS_UNDEFINED(index)) {
|
| index = 0;
|
| } else {
|
| @@ -963,13 +964,13 @@ function ArrayIndexOf(element, index) {
|
| // If index is still negative, search the entire array.
|
| if (index < 0) index = 0;
|
| }
|
| + // Lookup through the array.
|
| if (!IS_UNDEFINED(element)) {
|
| for (var i = index; i < length; i++) {
|
| if (this[i] === element) return i;
|
| }
|
| return -1;
|
| }
|
| - // Lookup through the array.
|
| for (var i = index; i < length; i++) {
|
| if (IS_UNDEFINED(this[i]) && i in this) {
|
| return i;
|
| @@ -980,7 +981,8 @@ function ArrayIndexOf(element, index) {
|
|
|
|
|
| function ArrayLastIndexOf(element, index) {
|
| - var length = this.length;
|
| + var length = TO_UINT32(this.length);
|
| + if (length == 0) return -1;
|
| if (%_ArgumentsLength() < 2) {
|
| index = length - 1;
|
| } else {
|
|
|