njs_array_handler_includes(njs_vm_t *vm, njs_array_iterator_args_t *args,
njs_value_t *entry, uint32_t n)
{
+ if (!njs_is_valid(entry)) {
+ entry = njs_value_arg(&njs_value_undefined);
+ }
+
if (njs_values_strict_equal(args->argument, entry)) {
njs_set_true(&vm->retval);
iargs.from = (uint32_t) from;
iargs.to = length;
- if (njs_is_numeric(iargs.argument) && isnan(njs_number(iargs.argument))) {
+ if (njs_is_number(iargs.argument) && isnan(njs_number(iargs.argument))) {
ret = njs_array_iterator(vm, &iargs, njs_array_handler_includes_nan);
if (njs_fast_path(ret == NJS_DECLINED)) {
return NJS_OK;
"Array.prototype.includes.call(o); i"),
njs_str("1") },
+ { njs_str("[,,,].includes(undefined)"),
+ njs_str("true") },
+
{ njs_str("''.startsWith('')"),
njs_str("true") },