/* src value may be in Array.prototype object. */
- value = &array->start[n++];
- ret = njs_value_property_i64(vm, this, start++, value);
+ ret = njs_value_property_i64(vm, this, start++,
+ &array->start[n]);
if (njs_slow_path(ret == NJS_ERROR)) {
return NJS_ERROR;
}
if (ret != NJS_OK) {
- njs_set_invalid(value);
+ njs_set_invalid(&array->start[n]);
}
+
+ n++;
}
length--;
{ njs_str("[0,1].slice()"),
njs_str("0,1") },
+ { njs_str("[1,2,3,,,4].slice()"),
+ njs_str("1,2,3,,,4") },
+
{ njs_str("[0,1].slice(undefined)"),
njs_str("0,1") },
njs_str("") },
{ njs_str("var a = [1,2,3,4,5], b = a.slice(3);"
- "b[0] +' '+ b[1] +' '+ b[2]"),
+ "b[0] +' '+ b[1] +' '+ b[2]"),
njs_str("4 5 undefined") },
{ njs_str("var a = [1,2]; a.pop() +' '+ a.length +' '+ a"),
njs_str("3 3 1,2") },
{ njs_str("var a = [1,2], len = a.push(3,4,5);"
- "len +' '+ a.pop() +' '+ a"),
+ "len +' '+ a.pop() +' '+ a"),
njs_str("5 5 1,2,3,4") },
{ njs_str("var x = {'0': 'a', '1': 'b', '2': 'c', 'length': 3};"