]> git.kaiwu.me - njs.git/commitdiff
Cleanup of njs_property_query() usage.
authorDmitry Volyntsev <xeioex@nginx.com>
Tue, 6 Aug 2019 14:58:37 +0000 (17:58 +0300)
committerDmitry Volyntsev <xeioex@nginx.com>
Tue, 6 Aug 2019 14:58:37 +0000 (17:58 +0300)
src/njs_object_prop.c
src/njs_value.c
src/njs_value.h

index 42c71009653a837a97de5fc0dd34af315fa2c230..14b2e64801c071cd821e35b45dc45ef32fb079ed 100644 (file)
@@ -87,15 +87,11 @@ njs_object_prop_define(njs_vm_t *vm, njs_value_t *object,
     njs_object_prop_t     *prop, *prev;
     njs_property_query_t  pq;
 
-    njs_string_get(name, &pq.lhq.key);
-    pq.lhq.key_hash = njs_djb_hash(pq.lhq.key.start, pq.lhq.key.length);
-    pq.lhq.proto = &njs_object_hash_proto;
-
     njs_property_query_init(&pq, NJS_PROPERTY_QUERY_SET, 1);
 
     ret = njs_property_query(vm, &pq, object, name);
 
-    if (ret != NJS_OK && ret != NJS_DECLINED) {
+    if (njs_slow_path(ret == NJS_ERROR)) {
         return ret;
     }
 
index b92a69c3825c9c79824036cf38d33993414ba7bc..4dd57e7d9811d46a7bcf4a7791bf979c75e7dade 100644 (file)
@@ -560,10 +560,10 @@ njs_property_query(njs_vm_t *vm, njs_property_query_t *pq, njs_value_t *value,
     case NJS_UNDEFINED:
     case NJS_NULL:
     default:
-        ret = njs_primitive_value_to_string(vm, &pq->value, key);
+        ret = njs_primitive_value_to_string(vm, &pq->key, key);
 
         if (njs_fast_path(ret == NJS_OK)) {
-            njs_string_get(&pq->value, &pq->lhq.key);
+            njs_string_get(&pq->key, &pq->lhq.key);
             njs_type_error(vm, "cannot get property \"%V\" of undefined",
                            &pq->lhq.key);
             return NJS_ERROR;
@@ -574,11 +574,11 @@ njs_property_query(njs_vm_t *vm, njs_property_query_t *pq, njs_value_t *value,
         return NJS_ERROR;
     }
 
-    ret = njs_primitive_value_to_string(vm, &pq->value, key);
+    ret = njs_primitive_value_to_string(vm, &pq->key, key);
 
     if (njs_fast_path(ret == NJS_OK)) {
 
-        njs_string_get(&pq->value, &pq->lhq.key);
+        njs_string_get(&pq->key, &pq->lhq.key);
         pq->lhq.key_hash = njs_djb_hash(pq->lhq.key.start, pq->lhq.key.length);
 
         if (obj == NULL) {
@@ -765,8 +765,8 @@ njs_string_property_query(njs_vm_t *vm, njs_property_query_t *pq,
 
         if (pq->query != NJS_PROPERTY_QUERY_GET) {
             /* pq->lhq.key is used by NJS_VMCODE_PROPERTY_SET for TypeError */
-            njs_uint32_to_string(&pq->value, index);
-            njs_string_get(&pq->value, &pq->lhq.key);
+            njs_uint32_to_string(&pq->key, index);
+            njs_string_get(&pq->key, &pq->lhq.key);
         }
 
         return NJS_OK;
@@ -1103,7 +1103,7 @@ njs_value_property_set(njs_vm_t *vm, njs_value_t *value, njs_value_t *key,
         return NJS_ERROR;
     }
 
-    prop = njs_object_prop_alloc(vm, &pq.value, &njs_value_undefined, 1);
+    prop = njs_object_prop_alloc(vm, &pq.key, &njs_value_undefined, 1);
     if (njs_slow_path(prop == NULL)) {
         return NJS_ERROR;
     }
index 6682dbd492f724b49e1f625fd78c0800014d1ef3..1896f00b9b274a2f347c05c1bd5485217a63cdc7 100644 (file)
@@ -348,7 +348,7 @@ typedef struct {
     const njs_extern_t          *ext_proto;
     uint32_t                    ext_index;
 
-    njs_value_t                 value;
+    njs_value_t                 key;
     njs_object_t                *prototype;
     njs_object_prop_t           *own_whiteout;
     uint8_t                     query;