|
35 | 35 | * @{ |
36 | 36 | */ |
37 | 37 |
|
38 | | -#if JERRY_CPOINTER_32_BIT |
39 | | -/** |
40 | | - * Maximum length of the array length to allocate fast mode access for it |
41 | | - * e.g. new Array(5000) is constructed as fast mode access array, |
42 | | - * but new Array(50000000) is consturcted as normal property list based array |
43 | | - */ |
44 | | -#define ECMA_FAST_ARRAY_MAX_INITIAL_LENGTH (1 << 17) |
45 | | -#else /* JERRY_CPOINTER_32_BIT */ |
46 | | -/** |
47 | | - * Maximum length of the array length to allocate fast mode access for it |
48 | | - * e.g. new Array(5000) is constructed as fast mode access array, |
49 | | - * but new Array(50000000) is consturcted as normal property list based array |
50 | | - */ |
51 | | -#define ECMA_FAST_ARRAY_MAX_INITIAL_LENGTH (1 << 13) |
52 | | -#endif /* JERRY_CPOINTER_32_BIT */ |
53 | | - |
54 | 38 | /** |
55 | 39 | * Property name type flag for array indices. |
56 | 40 | */ |
@@ -130,7 +114,7 @@ ecma_op_new_array_object (uint32_t length) /**< length of the new array */ |
130 | 114 |
|
131 | 115 | if (length > 0) |
132 | 116 | { |
133 | | - if (length >= ECMA_FAST_ARRAY_MAX_INITIAL_LENGTH) |
| 117 | + if (length >= ECMA_FAST_ARRAY_MAX_HOLE_COUNT) |
134 | 118 | { |
135 | 119 | return object_p; |
136 | 120 | } |
@@ -398,8 +382,7 @@ ecma_fast_array_set_property (ecma_object_t *object_p, /**< fast access mode arr |
398 | 382 | uint32_t old_holes = ext_obj_p->u.array.length_prop_and_hole_count; |
399 | 383 | uint32_t new_holes = index - old_length; |
400 | 384 |
|
401 | | - if (JERRY_UNLIKELY (new_holes > ECMA_FAST_ARRAY_MAX_NEW_HOLES_COUNT |
402 | | - || ((old_holes >> ECMA_FAST_ARRAY_HOLE_SHIFT) + new_holes) > ECMA_FAST_ARRAY_MAX_HOLE_COUNT)) |
| 385 | + if (JERRY_UNLIKELY (new_holes > (ECMA_FAST_ARRAY_MAX_HOLE_COUNT - (old_holes >> ECMA_FAST_ARRAY_HOLE_SHIFT)))) |
403 | 386 | { |
404 | 387 | ecma_fast_array_convert_to_normal (object_p); |
405 | 388 |
|
@@ -623,17 +606,14 @@ ecma_fast_array_set_length (ecma_object_t *object_p, /**< fast access mode array |
623 | 606 | uint32_t old_holes = ext_obj_p->u.array.length_prop_and_hole_count; |
624 | 607 | uint32_t new_holes = new_length - old_length; |
625 | 608 |
|
626 | | - if (JERRY_UNLIKELY (new_holes > ECMA_FAST_ARRAY_MAX_NEW_HOLES_COUNT |
627 | | - || ((old_holes >> ECMA_FAST_ARRAY_HOLE_SHIFT) + new_holes) > ECMA_FAST_ARRAY_MAX_HOLE_COUNT)) |
| 609 | + if (JERRY_UNLIKELY (new_holes > (ECMA_FAST_ARRAY_MAX_HOLE_COUNT - (old_holes >> ECMA_FAST_ARRAY_HOLE_SHIFT)))) |
628 | 610 | { |
629 | 611 | ecma_fast_array_convert_to_normal (object_p); |
630 | 612 | } |
631 | 613 | else |
632 | 614 | { |
633 | 615 | ecma_fast_array_extend (object_p, new_length); |
634 | 616 | } |
635 | | - |
636 | | - return; |
637 | 617 | } /* ecma_fast_array_set_length */ |
638 | 618 |
|
639 | 619 | /** |
|
0 commit comments