details: https://hg.nginx.org/njs/rev/96c78f35a809 branches: changeset: 952:96c78f35a809 user: Valentin Bartenev <vb...@nginx.com> date: Mon May 06 21:24:31 2019 +0300 description: Fixed return value on deleting non-existent property.
diffstat: njs/njs_vm.c | 9 +-------- njs/test/njs_unit_test.c | 11 ++++++++++- 2 files changed, 11 insertions(+), 9 deletions(-) diffs (78 lines): diff -r f876e5d1be41 -r 96c78f35a809 njs/njs_vm.c --- a/njs/njs_vm.c Mon May 06 20:26:58 2019 +0300 +++ b/njs/njs_vm.c Mon May 06 21:24:31 2019 +0300 @@ -712,12 +712,9 @@ njs_vmcode_property_delete(njs_vm_t *vm, 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); @@ -734,7 +731,6 @@ njs_vmcode_property_delete(njs_vm_t *vm, case NJS_PROPERTY_REF: njs_set_invalid(prop->value.data.u.value); - retval = &njs_value_true; goto done; case NJS_PROPERTY_HANDLER: @@ -744,7 +740,6 @@ njs_vmcode_property_delete(njs_vm_t *vm, return ret; } - retval = &njs_value_true; goto done; } @@ -768,8 +763,6 @@ njs_vmcode_property_delete(njs_vm_t *vm, prop->type = NJS_WHITEOUT; njs_set_invalid(&prop->value); - retval = &njs_value_true; - break; case NXT_DECLINED: @@ -784,7 +777,7 @@ njs_vmcode_property_delete(njs_vm_t *vm, done: - vm->retval = *retval; + vm->retval = njs_value_true; return sizeof(njs_vmcode_3addr_t); } diff -r f876e5d1be41 -r 96c78f35a809 njs/test/njs_unit_test.c --- a/njs/test/njs_unit_test.c Mon May 06 20:26:58 2019 +0300 +++ b/njs/test/njs_unit_test.c Mon May 06 21:24:31 2019 +0300 @@ -3128,6 +3128,15 @@ static njs_unit_test_t njs_test[] = { 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") }, @@ -3261,7 +3270,7 @@ static njs_unit_test_t njs_test[] = 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") }, _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel