]> git.kaiwu.me - njs.git/commitdiff
Fixed njs_value_property() for NJS_DECLINED from prop handler.
authorAlexander Borisov <alexander.borisov@nginx.com>
Wed, 22 Jul 2020 12:21:14 +0000 (15:21 +0300)
committerAlexander Borisov <alexander.borisov@nginx.com>
Wed, 22 Jul 2020 12:21:14 +0000 (15:21 +0300)
This ensures retval has valid value for any case except NJS_ERROR.

src/njs_value.c

index 4d5aba6d54b574355daebcf26e9f9e9cda5ce744..a271a7703161ffe0211ff89ee1e75c79b183f978 100644 (file)
@@ -1033,8 +1033,12 @@ slow_path:
             ret = prop->value.data.u.prop_handler(vm, prop, value, NULL,
                                                   &prop->value);
 
-            if (njs_slow_path(ret == NJS_ERROR)) {
-                return ret;
+            if (njs_slow_path(ret != NJS_OK)) {
+                if (ret == NJS_ERROR) {
+                    return ret;
+                }
+
+                njs_set_undefined(&prop->value);
             }
 
             *retval = prop->value;