|
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