njs_value_t *property)
{
njs_ret_t ret;
- const njs_value_t *retval;
njs_object_prop_t *prop;
njs_property_query_t pq;
- retval = &njs_value_false;
-
njs_property_query_init(&pq, NJS_PROPERTY_QUERY_DELETE, 1);
ret = njs_property_query(vm, &pq, object, property);
case NJS_PROPERTY_REF:
njs_set_invalid(prop->value.data.u.value);
- retval = &njs_value_true;
goto done;
case NJS_PROPERTY_HANDLER:
return ret;
}
- retval = &njs_value_true;
goto done;
}
prop->type = NJS_WHITEOUT;
njs_set_invalid(&prop->value);
- retval = &njs_value_true;
-
break;
case NXT_DECLINED:
done:
- vm->retval = *retval;
+ vm->retval = njs_value_true;
return sizeof(njs_vmcode_3addr_t);
}
{ nxt_string("delete 1"),
nxt_string("true") },
+ { nxt_string("var a = []; delete a[1]"),
+ nxt_string("true") },
+
+ { nxt_string("var o = {}; [delete o.m, delete o.m]"),
+ nxt_string("true,true") },
+
+ { nxt_string("[delete Array.nonexistent, delete Array.Array]"),
+ nxt_string("true,true") },
+
{ nxt_string("var a; delete (a = 1); a"),
nxt_string("1") },
nxt_string("1,2,34") },
{ nxt_string("delete[]['4e9']"),
- nxt_string("false") },
+ nxt_string("true") },
{ nxt_string("var n = 1, a = [ n += 1 ]; a"),
nxt_string("2") },