Skip to content

Commit bf049fb

Browse files
authored
Remove redundant checks from builtin-dispatchers (#4741)
We don't need to check arguments length inside the custom dispatchers, because we have already checked within ecma_bultin_dispatch_routine. JerryScript-DCO-1.0-Signed-off-by: Daniel Batiz [email protected]
1 parent 8cbe1b5 commit bf049fb

22 files changed

+66
-82
lines changed

jerry-core/ecma/builtin-objects/ecma-builtin-array-iterator-prototype.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,7 @@ ecma_builtin_array_iterator_prototype_dispatch_routine (uint8_t builtin_routine_
209209
* passed to routine */
210210
uint32_t arguments_number) /**< length of arguments' list */
211211
{
212-
JERRY_UNUSED (arguments_list_p);
213-
JERRY_UNUSED (arguments_number);
212+
JERRY_UNUSED_2 (arguments_list_p, arguments_number);
214213

215214
switch (builtin_routine_id)
216215
{

jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype.c

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2977,8 +2977,6 @@ ecma_builtin_array_prototype_dispatch_routine (uint8_t builtin_routine_id, /**<
29772977
}
29782978

29792979
ecma_value_t ret_value;
2980-
ecma_value_t routine_arg_1 = arguments_list_p[0];
2981-
ecma_value_t routine_arg_2 = arguments_list_p[1];
29822980

29832981
switch (builtin_routine_id)
29842982
{
@@ -2989,7 +2987,7 @@ ecma_builtin_array_prototype_dispatch_routine (uint8_t builtin_routine_id, /**<
29892987
}
29902988
case ECMA_ARRAY_PROTOTYPE_JOIN:
29912989
{
2992-
ret_value = ecma_builtin_array_prototype_join (routine_arg_1, obj_p, length);
2990+
ret_value = ecma_builtin_array_prototype_join (arguments_list_p[0], obj_p, length);
29932991
break;
29942992
}
29952993
case ECMA_ARRAY_PROTOTYPE_POP:
@@ -3017,8 +3015,8 @@ ecma_builtin_array_prototype_dispatch_routine (uint8_t builtin_routine_id, /**<
30173015
}
30183016
case ECMA_ARRAY_PROTOTYPE_SLICE:
30193017
{
3020-
ret_value = ecma_builtin_array_prototype_object_slice (routine_arg_1,
3021-
routine_arg_2,
3018+
ret_value = ecma_builtin_array_prototype_object_slice (arguments_list_p[0],
3019+
arguments_list_p[1],
30223020
obj_p,
30233021
length);
30243022
break;
@@ -3041,7 +3039,7 @@ ecma_builtin_array_prototype_dispatch_routine (uint8_t builtin_routine_id, /**<
30413039
}
30423040
case ECMA_ARRAY_PROTOTYPE_AT:
30433041
{
3044-
ret_value = ecma_builtin_array_prototype_object_at (routine_arg_1,
3042+
ret_value = ecma_builtin_array_prototype_object_at (arguments_list_p[0],
30453043
obj_p,
30463044
length);
30473045
break;
@@ -3066,17 +3064,17 @@ ecma_builtin_array_prototype_dispatch_routine (uint8_t builtin_routine_id, /**<
30663064
case ECMA_ARRAY_PROTOTYPE_SOME:
30673065
case ECMA_ARRAY_PROTOTYPE_FOR_EACH:
30683066
{
3069-
ret_value = ecma_builtin_array_apply (routine_arg_1,
3070-
routine_arg_2,
3067+
ret_value = ecma_builtin_array_apply (arguments_list_p[0],
3068+
arguments_list_p[1],
30713069
(array_routine_mode) builtin_routine_id - ECMA_ARRAY_PROTOTYPE_EVERY,
30723070
obj_p,
30733071
length);
30743072
break;
30753073
}
30763074
case ECMA_ARRAY_PROTOTYPE_MAP:
30773075
{
3078-
ret_value = ecma_builtin_array_prototype_object_map (routine_arg_1,
3079-
routine_arg_2,
3076+
ret_value = ecma_builtin_array_prototype_object_map (arguments_list_p[0],
3077+
arguments_list_p[1],
30803078
obj_p,
30813079
length);
30823080
break;
@@ -3103,17 +3101,17 @@ ecma_builtin_array_prototype_dispatch_routine (uint8_t builtin_routine_id, /**<
31033101
case ECMA_ARRAY_PROTOTYPE_FIND:
31043102
case ECMA_ARRAY_PROTOTYPE_FIND_INDEX:
31053103
{
3106-
ret_value = ecma_builtin_array_prototype_object_find (routine_arg_1,
3107-
routine_arg_2,
3104+
ret_value = ecma_builtin_array_prototype_object_find (arguments_list_p[0],
3105+
arguments_list_p[1],
31083106
builtin_routine_id == ECMA_ARRAY_PROTOTYPE_FIND,
31093107
obj_p,
31103108
length);
31113109
break;
31123110
}
31133111
case ECMA_ARRAY_PROTOTYPE_FILL:
31143112
{
3115-
ret_value = ecma_builtin_array_prototype_fill (routine_arg_1,
3116-
routine_arg_2,
3113+
ret_value = ecma_builtin_array_prototype_fill (arguments_list_p[0],
3114+
arguments_list_p[1],
31173115
arguments_list_p[2],
31183116
obj_p,
31193117
length);
@@ -3137,8 +3135,8 @@ ecma_builtin_array_prototype_dispatch_routine (uint8_t builtin_routine_id, /**<
31373135
}
31383136
case ECMA_ARRAY_PROTOTYPE_FLATMAP:
31393137
{
3140-
ret_value = ecma_builtin_array_prototype_object_flat_map (routine_arg_1,
3141-
routine_arg_2,
3138+
ret_value = ecma_builtin_array_prototype_object_flat_map (arguments_list_p[0],
3139+
arguments_list_p[1],
31423140
obj_p,
31433141
length);
31443142
break;
@@ -3148,8 +3146,8 @@ ecma_builtin_array_prototype_dispatch_routine (uint8_t builtin_routine_id, /**<
31483146
{
31493147
JERRY_ASSERT (builtin_routine_id == ECMA_ARRAY_PROTOTYPE_FILTER);
31503148

3151-
ret_value = ecma_builtin_array_prototype_object_filter (routine_arg_1,
3152-
routine_arg_2,
3149+
ret_value = ecma_builtin_array_prototype_object_filter (arguments_list_p[0],
3150+
arguments_list_p[1],
31533151
obj_p,
31543152
length);
31553153
break;

jerry-core/ecma/builtin-objects/ecma-builtin-array.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -550,13 +550,15 @@ ecma_builtin_array_dispatch_routine (uint8_t builtin_routine_id, /**< built-in w
550550
* passed to routine */
551551
uint32_t arguments_number) /**< length of arguments' list */
552552
{
553+
JERRY_UNUSED (arguments_number);
554+
553555
switch (builtin_routine_id)
554556
{
555557
case ECMA_ARRAY_ROUTINE_IS_ARRAY:
556558
{
557559
JERRY_UNUSED (this_arg);
558560

559-
return arguments_number > 0 ? ecma_is_value_array (arguments_list_p[0]) : ECMA_VALUE_FALSE;
561+
return ecma_is_value_array (arguments_list_p[0]);
560562
}
561563
#if JERRY_ESNEXT
562564
case ECMA_ARRAY_ROUTINE_FROM:

jerry-core/ecma/builtin-objects/ecma-builtin-async-iterator-prototype.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,7 @@ ecma_builtin_async_iterator_prototype_dispatch_routine (uint8_t builtin_routine_
8383
* passed to routine */
8484
uint32_t arguments_number) /**< length of arguments' list */
8585
{
86-
JERRY_UNUSED (arguments_list_p);
87-
JERRY_UNUSED (arguments_number);
86+
JERRY_UNUSED_2 (arguments_list_p, arguments_number);
8887

8988
switch (builtin_routine_id)
9089
{

jerry-core/ecma/builtin-objects/ecma-builtin-boolean-prototype.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,7 @@ ecma_builtin_boolean_prototype_dispatch_routine (uint8_t builtin_routine_id, /**
105105
* passed to routine */
106106
uint32_t arguments_number) /**< length of arguments' list */
107107
{
108-
JERRY_UNUSED (arguments_number);
109-
JERRY_UNUSED (arguments_list_p);
108+
JERRY_UNUSED_2 (arguments_number, arguments_list_p);
110109

111110
ecma_value_t value_of_ret = ecma_builtin_boolean_prototype_object_value_of (this_arg);
112111
if (builtin_routine_id == ECMA_BOOLEAN_PROTOTYPE_ROUTINE_VALUE_OF)

jerry-core/ecma/builtin-objects/ecma-builtin-dataview-prototype.c

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,7 @@ ecma_builtin_dataview_prototype_dispatch_routine (uint8_t builtin_routine_id, /*
152152
* passed to routine */
153153
uint32_t arguments_number) /**< length of arguments' list */
154154
{
155-
ecma_value_t byte_offset = arguments_number > 0 ? arguments_list_p[0] : ECMA_VALUE_UNDEFINED;
156-
155+
JERRY_UNUSED (arguments_number);
157156
switch (builtin_routine_id)
158157
{
159158
case ECMA_DATAVIEW_PROTOTYPE_BUFFER_GETTER:
@@ -175,10 +174,12 @@ ecma_builtin_dataview_prototype_dispatch_routine (uint8_t builtin_routine_id, /*
175174
case ECMA_DATAVIEW_PROTOTYPE_GET_BIGUINT64:
176175
#endif /* JERRY_BUILTIN_BIGINT */
177176
{
178-
ecma_value_t little_endian = arguments_number > 1 ? arguments_list_p[1] : ECMA_VALUE_FALSE;
179177
ecma_typedarray_type_t id = (ecma_typedarray_type_t) (builtin_routine_id - ECMA_DATAVIEW_PROTOTYPE_GET_INT8);
180178

181-
return ecma_op_dataview_get_set_view_value (this_arg, byte_offset, little_endian, ECMA_VALUE_EMPTY, id);
179+
return ecma_op_dataview_get_set_view_value (this_arg,
180+
arguments_list_p[0],
181+
arguments_list_p[1],
182+
ECMA_VALUE_EMPTY, id);
182183
}
183184
case ECMA_DATAVIEW_PROTOTYPE_SET_FLOAT32:
184185
#if JERRY_NUMBER_TYPE_FLOAT64
@@ -193,27 +194,36 @@ ecma_builtin_dataview_prototype_dispatch_routine (uint8_t builtin_routine_id, /*
193194
case ECMA_DATAVIEW_PROTOTYPE_SET_BIGUINT64:
194195
#endif /* JERRY_BUILTIN_BIGINT */
195196
{
196-
ecma_value_t value_to_set = arguments_number > 1 ? arguments_list_p[1] : ECMA_VALUE_UNDEFINED;
197-
ecma_value_t little_endian = arguments_number > 2 ? arguments_list_p[2] : ECMA_VALUE_FALSE;
198197
ecma_typedarray_type_t id = (ecma_typedarray_type_t) (builtin_routine_id - ECMA_DATAVIEW_PROTOTYPE_SET_INT8);
199198

200-
return ecma_op_dataview_get_set_view_value (this_arg, byte_offset, little_endian, value_to_set, id);
199+
return ecma_op_dataview_get_set_view_value (this_arg,
200+
arguments_list_p[0],
201+
arguments_list_p[2],
202+
arguments_list_p[1],
203+
id);
201204
}
202205
case ECMA_DATAVIEW_PROTOTYPE_GET_INT8:
203206
case ECMA_DATAVIEW_PROTOTYPE_GET_UINT8:
204207
{
205208
ecma_typedarray_type_t id = (ecma_typedarray_type_t) (builtin_routine_id - ECMA_DATAVIEW_PROTOTYPE_GET_INT8);
206209

207-
return ecma_op_dataview_get_set_view_value (this_arg, byte_offset, ECMA_VALUE_FALSE, ECMA_VALUE_EMPTY, id);
210+
return ecma_op_dataview_get_set_view_value (this_arg,
211+
arguments_list_p[0],
212+
ECMA_VALUE_FALSE,
213+
ECMA_VALUE_EMPTY,
214+
id);
208215
}
209216
default:
210217
{
211218
JERRY_ASSERT (builtin_routine_id == ECMA_DATAVIEW_PROTOTYPE_SET_INT8
212219
|| builtin_routine_id == ECMA_DATAVIEW_PROTOTYPE_SET_UINT8);
213-
ecma_value_t value_to_set = arguments_number > 1 ? arguments_list_p[1] : ECMA_VALUE_UNDEFINED;
214220
ecma_typedarray_type_t id = (ecma_typedarray_type_t) (builtin_routine_id - ECMA_DATAVIEW_PROTOTYPE_SET_INT8);
215221

216-
return ecma_op_dataview_get_set_view_value (this_arg, byte_offset, ECMA_VALUE_FALSE, value_to_set, id);
222+
return ecma_op_dataview_get_set_view_value (this_arg,
223+
arguments_list_p[0],
224+
ECMA_VALUE_FALSE,
225+
arguments_list_p[1],
226+
id);
217227
}
218228
}
219229
} /* ecma_builtin_dataview_prototype_dispatch_routine */

jerry-core/ecma/builtin-objects/ecma-builtin-date-prototype.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -631,8 +631,7 @@ ecma_builtin_date_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< b
631631
#if JERRY_ESNEXT
632632
if (JERRY_UNLIKELY (builtin_routine_id == ECMA_DATE_PROTOTYPE_TO_PRIMITIVE))
633633
{
634-
ecma_value_t argument = arguments_number > 0 ? arguments_list[0] : ECMA_VALUE_UNDEFINED;
635-
return ecma_builtin_date_prototype_to_primitive (this_arg, argument);
634+
return ecma_builtin_date_prototype_to_primitive (this_arg, arguments_list[0]);
636635
}
637636
#endif /* JERRY_ESNEXT */
638637

jerry-core/ecma/builtin-objects/ecma-builtin-error-prototype.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,8 +159,7 @@ ecma_builtin_error_prototype_dispatch_routine (uint8_t builtin_routine_id, /**<
159159
* routine */
160160
uint32_t arguments_number) /**< length of arguments' list */
161161
{
162-
JERRY_UNUSED (arguments_number);
163-
JERRY_UNUSED (arguments_list_p);
162+
JERRY_UNUSED_2 (arguments_number, arguments_list_p);
164163

165164
switch (builtin_routine_id)
166165
{

jerry-core/ecma/builtin-objects/ecma-builtin-global.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -598,9 +598,7 @@ ecma_builtin_global_dispatch_routine (uint8_t builtin_routine_id, /**< built-in
598598
* passed to routine */
599599
uint32_t arguments_number) /**< length of arguments' list */
600600
{
601-
JERRY_UNUSED (this_arg);
602-
JERRY_UNUSED (arguments_list_p);
603-
JERRY_UNUSED (arguments_number);
601+
JERRY_UNUSED_2 (this_arg, arguments_number);
604602

605603
ecma_value_t routine_arg_1 = arguments_list_p[0];
606604

jerry-core/ecma/builtin-objects/ecma-builtin-iterator-prototype.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,7 @@ ecma_builtin_iterator_prototype_dispatch_routine (uint8_t builtin_routine_id, /*
8383
* passed to routine */
8484
uint32_t arguments_number) /**< length of arguments' list */
8585
{
86-
JERRY_UNUSED (arguments_list_p);
87-
JERRY_UNUSED (arguments_number);
86+
JERRY_UNUSED_2 (arguments_list_p, arguments_number);
8887

8988
switch (builtin_routine_id)
9089
{

0 commit comments

Comments
 (0)