]> git.kaiwu.me - njs.git/commitdiff
Array.indexOf() and Array.lastIndexOf() have been fixed.
authorIgor Sysoev <igor@sysoev.ru>
Tue, 18 Oct 2016 14:44:01 +0000 (17:44 +0300)
committerIgor Sysoev <igor@sysoev.ru>
Tue, 18 Oct 2016 14:44:01 +0000 (17:44 +0300)
njs/njs_array.c
njs/test/njs_unit_test.c

index 3b8fe885808aaefd7217b5739dbef44cc1948411..149798d92d1ec90beb47fa9da0d675c11f033e6f 100644 (file)
@@ -996,7 +996,7 @@ njs_array_index_of(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs,
 
     index = -1;
 
-    if (nargs > 1) {
+    if (nargs > 1 && njs_is_array(&args[0])) {
         i = 0;
         array = args[0].data.u.array;
         length = array->length;
index 5ffee20f856947a3892129ead7b5ab16738f5960..322a09dc204744eef21bb5ad53fb3be1afc6183e 100644 (file)
@@ -2359,6 +2359,9 @@ static njs_unit_test_t  njs_test[] =
     { nxt_string("var a = [1,2,3,4,3,4]; a.indexOf(3, -10)"),
       nxt_string("2") },
 
+    { nxt_string("[].indexOf.bind(0)(0, 0)"),
+      nxt_string("-1") },
+
     { nxt_string("var a = [1,2,3,4]; a.lastIndexOf()"),
       nxt_string("-1") },