njs_value_t *setval, njs_value_t *retval)
{
double num;
- int32_t size;
+ int64_t size;
uint32_t length;
njs_ret_t ret;
njs_value_t *val;
return NJS_ERROR;
}
- size = (int32_t) (length - array->length);
+ size = (int64_t) length - array->length;
if (size > 0) {
ret = njs_array_expand(vm, array, 0, size);
{ nxt_string("[].length = {}"),
nxt_string("RangeError: Invalid array length") },
+ { nxt_string("[].length = 2**32 - 1"),
+ nxt_string("MemoryError") },
+
{ nxt_string("[].length = 2**32"),
nxt_string("RangeError: Invalid array length") },
+ { nxt_string("[].length = 2**32 + 1"),
+ nxt_string("RangeError: Invalid array length") },
+
{ nxt_string("[].length = -1"),
nxt_string("RangeError: Invalid array length") },