aboutsummaryrefslogtreecommitdiff
path: root/src/njs_array.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/njs_array.c')
-rw-r--r--src/njs_array.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/njs_array.c b/src/njs_array.c
index e6f8ed83..bcf428e9 100644
--- a/src/njs_array.c
+++ b/src/njs_array.c
@@ -81,7 +81,7 @@ njs_array_alloc(njs_vm_t *vm, njs_bool_t flat, uint64_t length, uint32_t spare)
}
array->start = array->data;
- njs_lvlhsh_init(&array->object.hash);
+ njs_flathsh_init(&array->object.hash);
array->object.shared_hash = vm->shared->array_instance_hash;
array->object.__proto__ = njs_vm_proto(vm, NJS_OBJ_TYPE_ARRAY);
array->object.slots = NULL;
@@ -702,8 +702,10 @@ njs_array_length(njs_vm_t *vm,njs_object_prop_t *prop, uint32_t unused,
}
}
- prop->type = NJS_PROPERTY;
- njs_set_number(njs_prop_value(prop), length);
+ ret = njs_array_length_redefine(vm, value, length, 1);
+ if (ret != NJS_OK) {
+ return ret;
+ }
njs_value_assign(retval, setval);
@@ -1613,13 +1615,13 @@ njs_array_prototype_to_string(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
{
njs_int_t ret;
njs_value_t value;
- njs_flathsh_query_t lhq;
+ njs_flathsh_query_t fhq;
if (njs_is_object(njs_argument(args, 0))) {
- lhq.proto = &njs_object_hash_proto;
- lhq.key_hash = NJS_ATOM_STRING_join;
+ fhq.proto = &njs_object_hash_proto;
+ fhq.key_hash = NJS_ATOM_STRING_join;
- ret = njs_object_property(vm, njs_object(njs_argument(args, 0)), &lhq,
+ ret = njs_object_property(vm, njs_object(njs_argument(args, 0)), &fhq,
&value);
if (njs_slow_path(ret == NJS_ERROR)) {