aboutsummaryrefslogtreecommitdiff
path: root/src/njs_object.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/njs_object.h')
-rw-r--r--src/njs_object.h29
1 files changed, 11 insertions, 18 deletions
diff --git a/src/njs_object.h b/src/njs_object.h
index 6b2438df..dd5334d2 100644
--- a/src/njs_object.h
+++ b/src/njs_object.h
@@ -101,8 +101,8 @@ njs_int_t njs_object_length(njs_vm_t *vm, njs_value_t *value, int64_t *dst);
njs_int_t njs_prop_private_copy(njs_vm_t *vm, njs_property_query_t *pq,
njs_object_t *proto);
-njs_object_prop_t *njs_object_prop_alloc(njs_vm_t *vm,
- const njs_value_t *value, uint8_t attributes);
+void njs_object_prop_init(njs_object_prop_t *prop, njs_object_prop_type_t type,
+ uint8_t attributes);
njs_int_t njs_object_property(njs_vm_t *vm, njs_object_t *object,
njs_flathsh_query_t *lhq, njs_value_t *retval);
njs_object_prop_t *njs_object_property_add(njs_vm_t *vm, njs_value_t *object,
@@ -114,7 +114,7 @@ njs_int_t njs_object_prop_descriptor(njs_vm_t *vm, njs_value_t *dest,
njs_int_t njs_object_get_prototype_of(njs_vm_t *vm, njs_value_t *args,
njs_uint_t nargs, njs_index_t unused, njs_value_t *retval);
const char *njs_prop_type_string(njs_object_prop_type_t type);
-njs_int_t njs_object_prop_init(njs_vm_t *vm, const njs_object_init_t* init,
+njs_int_t njs_object_props_init(njs_vm_t *vm, const njs_object_init_t* init,
njs_object_prop_t *base, uint32_t atom_id, njs_value_t *value,
njs_value_t *retval);
@@ -122,10 +122,11 @@ njs_int_t njs_object_prop_init(njs_vm_t *vm, const njs_object_init_t* init,
njs_inline njs_bool_t
njs_is_data_descriptor(njs_object_prop_t *prop)
{
- return prop->writable != NJS_ATTRIBUTE_UNSET
- || (prop->type != NJS_ACCESSOR && njs_is_valid(njs_prop_value(prop)))
- || prop->type == NJS_PROPERTY_HANDLER;
-
+ return (prop->type == NJS_PROPERTY && njs_is_valid(njs_prop_value(prop)))
+ || prop->type == NJS_PROPERTY_HANDLER
+ || prop->type == NJS_PROPERTY_REF
+ || prop->type == NJS_PROPERTY_PLACE_REF
+ || prop->type == NJS_PROPERTY_TYPED_ARRAY_REF;
}
@@ -136,13 +137,6 @@ njs_is_accessor_descriptor(njs_object_prop_t *prop)
}
-njs_inline njs_bool_t
-njs_is_generic_descriptor(njs_object_prop_t *prop)
-{
- return !njs_is_data_descriptor(prop) && !njs_is_accessor_descriptor(prop);
-}
-
-
njs_inline njs_int_t
njs_primitive_value_to_key(njs_vm_t *vm, njs_value_t *dst,
const njs_value_t *src)
@@ -241,18 +235,17 @@ njs_key_string_get(njs_vm_t *vm, njs_value_t *key, njs_str_t *str)
}
-njs_inline njs_int_t
+njs_inline void
njs_atom_string_get(njs_vm_t *vm, uint32_t atom_id, njs_str_t *str)
{
njs_value_t value;
if (njs_atom_to_value(vm, &value, atom_id) != NJS_OK) {
- return NJS_ERROR;
+ str->start = (u_char *) "unknown";
+ str->length = njs_length("unknown");
}
njs_key_string_get(vm, &value, str);
-
- return NJS_OK;
}