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;
}
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;
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) {
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;
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;
}