From 5a4bf13aa243c6614b67f51cc10d53a581c862b4 Mon Sep 17 00:00:00 2001 From: Orkenyi Virag Date: Thu, 22 Jul 2021 15:58:51 +0200 Subject: [PATCH] Add custom dispatcher to every builtin object for consistency JerryScript-DCO-1.0-Signed-off-by: Orkenyi Virag orkvi@inf.u-szeged.hu --- .../ecma-builtin-aggregateerror-prototype.c | 23 +++ .../ecma-builtin-aggregateerror.c | 21 +++ .../ecma-builtin-array-iterator-prototype.c | 5 - ...ecma-builtin-array-prototype-unscopables.c | 23 +++ .../ecma-builtin-array-prototype.c | 5 - .../ecma/builtin-objects/ecma-builtin-array.c | 5 - .../ecma-builtin-arraybuffer-prototype.c | 42 +++++ .../ecma-builtin-arraybuffer-prototype.inc.h | 4 +- .../ecma-builtin-arraybuffer.c | 42 ++++- .../ecma-builtin-arraybuffer.inc.h | 4 +- .../ecma-builtin-async-function-prototype.c | 22 +++ .../ecma-builtin-async-function.c | 21 +++ .../ecma-builtin-async-generator-function.c | 22 +++ .../ecma-builtin-async-generator-prototype.c | 5 - .../ecma-builtin-async-generator.c | 21 +++ .../ecma-builtin-async-iterator-prototype.c | 5 - .../ecma-builtin-bigint-prototype.c | 5 - .../builtin-objects/ecma-builtin-bigint.c | 21 +++ .../ecma-builtin-boolean-prototype.c | 5 - .../builtin-objects/ecma-builtin-boolean.c | 21 +++ .../ecma-builtin-dataview-prototype.c | 5 - .../builtin-objects/ecma-builtin-dataview.c | 21 +++ .../ecma-builtin-date-prototype.c | 5 - .../ecma/builtin-objects/ecma-builtin-date.c | 5 - .../ecma-builtin-error-prototype.c | 5 - .../ecma/builtin-objects/ecma-builtin-error.c | 21 +++ .../ecma-builtin-evalerror-prototype.c | 21 +++ .../builtin-objects/ecma-builtin-evalerror.c | 21 +++ .../ecma-builtin-function-prototype.c | 5 - .../builtin-objects/ecma-builtin-function.c | 21 +++ .../ecma-builtin-generator-function.c | 21 +++ .../ecma-builtin-generator-prototype.c | 5 - .../builtin-objects/ecma-builtin-generator.c | 21 +++ .../builtin-objects/ecma-builtin-global.c | 5 - ...a-builtin-internal-routines-template.inc.h | 152 ------------------ .../builtin-objects/ecma-builtin-intrinsic.c | 5 - .../ecma-builtin-iterator-prototype.c | 5 - .../ecma/builtin-objects/ecma-builtin-json.c | 5 - .../ecma-builtin-map-iterator-prototype.c | 5 - .../ecma-builtin-map-prototype.c | 4 - .../ecma/builtin-objects/ecma-builtin-map.c | 38 ++++- .../builtin-objects/ecma-builtin-map.inc.h | 2 +- .../ecma/builtin-objects/ecma-builtin-math.c | 5 - .../ecma-builtin-number-prototype.c | 5 - .../builtin-objects/ecma-builtin-number.c | 28 +++- .../ecma-builtin-object-prototype.c | 5 - .../builtin-objects/ecma-builtin-object.c | 5 - .../ecma-builtin-promise-prototype.c | 5 - .../builtin-objects/ecma-builtin-promise.c | 5 - .../ecma/builtin-objects/ecma-builtin-proxy.c | 5 - .../ecma-builtin-rangeerror-prototype.c | 22 +++ .../builtin-objects/ecma-builtin-rangeerror.c | 21 +++ .../ecma-builtin-referenceerror-prototype.c | 22 +++ .../ecma-builtin-referenceerror.c | 21 +++ .../builtin-objects/ecma-builtin-reflect.c | 5 - .../ecma-builtin-regexp-prototype.c | 5 - ...builtin-regexp-string-iterator-prototype.c | 42 +++++ ...tin-regexp-string-iterator-prototype.inc.h | 2 +- .../builtin-objects/ecma-builtin-regexp.c | 40 ++++- .../builtin-objects/ecma-builtin-regexp.inc.h | 2 +- .../ecma-builtin-set-iterator-prototype.c | 5 - .../ecma-builtin-set-prototype.c | 4 - .../ecma/builtin-objects/ecma-builtin-set.c | 38 ++++- .../builtin-objects/ecma-builtin-set.inc.h | 2 +- ...cma-builtin-shared-arraybuffer-prototype.c | 46 ++++++ ...builtin-shared-arraybuffer-prototype.inc.h | 4 +- .../ecma-builtin-shared-arraybuffer.c | 38 ++++- .../ecma-builtin-shared-arraybuffer.inc.h | 2 +- .../ecma-builtin-string-iterator-prototype.c | 5 - .../ecma-builtin-string-prototype.c | 5 - .../builtin-objects/ecma-builtin-string.c | 5 - .../ecma-builtin-symbol-prototype.c | 5 - .../builtin-objects/ecma-builtin-symbol.c | 43 +++++ .../builtin-objects/ecma-builtin-symbol.inc.h | 4 +- .../ecma-builtin-syntaxerror-prototype.c | 22 +++ .../ecma-builtin-syntaxerror.c | 21 +++ .../ecma-builtin-type-error-thrower.c | 21 +++ .../ecma-builtin-typeerror-prototype.c | 21 +++ .../builtin-objects/ecma-builtin-typeerror.c | 21 +++ .../ecma-builtin-urierror-prototype.c | 21 +++ .../builtin-objects/ecma-builtin-urierror.c | 21 +++ .../ecma-builtin-weakmap-prototype.c | 4 - .../builtin-objects/ecma-builtin-weakmap.c | 21 +++ .../ecma-builtin-weakref-prototype.c | 8 - .../builtin-objects/ecma-builtin-weakref.c | 21 +++ .../ecma-builtin-weakset-prototype.c | 4 - .../builtin-objects/ecma-builtin-weakset.c | 20 +++ .../ecma-builtin-bigint64array-prototype.c | 23 +++ .../typedarray/ecma-builtin-bigint64array.c | 21 +++ .../ecma-builtin-biguint64array-prototype.c | 23 +++ .../typedarray/ecma-builtin-biguint64array.c | 21 +++ .../ecma-builtin-float32array-prototype.c | 23 +++ .../typedarray/ecma-builtin-float32array.c | 21 +++ .../ecma-builtin-float64array-prototype.c | 23 +++ .../typedarray/ecma-builtin-float64array.c | 21 +++ .../ecma-builtin-int16array-prototype.c | 23 +++ .../typedarray/ecma-builtin-int16array.c | 21 +++ .../ecma-builtin-int32array-prototype.c | 23 +++ .../typedarray/ecma-builtin-int32array.c | 21 +++ .../ecma-builtin-int8array-prototype.c | 23 +++ .../typedarray/ecma-builtin-int8array.c | 21 +++ .../ecma-builtin-typedarray-prototype.c | 5 - .../typedarray/ecma-builtin-typedarray.c | 45 +++++- .../typedarray/ecma-builtin-typedarray.inc.h | 6 +- .../ecma-builtin-uint16array-prototype.c | 23 +++ .../typedarray/ecma-builtin-uint16array.c | 21 +++ .../ecma-builtin-uint32array-prototype.c | 23 +++ .../typedarray/ecma-builtin-uint32array.c | 21 +++ .../ecma-builtin-uint8array-prototype.c | 23 +++ .../typedarray/ecma-builtin-uint8array.c | 21 +++ ...ecma-builtin-uint8clampedarray-prototype.c | 23 +++ .../ecma-builtin-uint8clampedarray.c | 21 +++ 112 files changed, 1537 insertions(+), 400 deletions(-) diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror-prototype.c index 84956daffd..2ff1101696 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror-prototype.c @@ -34,4 +34,27 @@ #define BUILTIN_UNDERSCORED_ID aggregate_error_prototype #include "ecma-builtin-internal-routines-template.inc.h" +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_aggregate_error_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide + * routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed + * to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_aggregate_error_prototype_dispatch_routine */ + #endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror.c b/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror.c index e1c2561817..244c15fbdb 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror.c @@ -104,6 +104,27 @@ ecma_builtin_aggregate_error_dispatch_construct (const ecma_value_t *arguments_l return result; } /* ecma_builtin_aggregate_error_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_aggregate_error_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_aggregate_error_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-array-iterator-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-array-iterator-prototype.c index 3c0c49bdba..f72eee447f 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-array-iterator-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-array-iterator-prototype.c @@ -24,11 +24,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype-unscopables.c b/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype-unscopables.c index 2caad899a1..5bafcf1242 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype-unscopables.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype-unscopables.c @@ -25,4 +25,27 @@ #define BUILTIN_UNDERSCORED_ID array_prototype_unscopables #include "ecma-builtin-internal-routines-template.inc.h" +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_array_prototype_unscopables_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide + * routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed + * to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_array_prototype_unscopables_dispatch_routine */ + #endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype.c index 211d5f1764..49152e8488 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype.c @@ -35,11 +35,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-array.c b/jerry-core/ecma/builtin-objects/ecma-builtin-array.c index 59abb4481b..fa459df75f 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-array.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-array.c @@ -34,11 +34,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-arraybuffer-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-arraybuffer-prototype.c index d1aee322b9..2ebff6925b 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-arraybuffer-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-arraybuffer-prototype.c @@ -32,6 +32,16 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" +/** + * List of built-in routine identifiers. + */ +enum +{ + ECMA_ARRAYBUFFER_PROTOTYPE_ROUTINE_START = 0, + ECMA_ARRAYBUFFER_PROTOTYPE_SLICE, + ECMA_ARRAYBUFFER_PROTOTYPE_BYTELENGTH_GETTER, +}; + #define BUILTIN_INC_HEADER_NAME "ecma-builtin-arraybuffer-prototype.inc.h" #define BUILTIN_UNDERSCORED_ID arraybuffer_prototype #include "ecma-builtin-internal-routines-template.inc.h" @@ -107,6 +117,38 @@ ecma_builtin_arraybuffer_prototype_object_slice (ecma_value_t this_arg, /**< thi return ecma_builtin_arraybuffer_slice (this_arg, argument_list_p, arguments_number); } /* ecma_builtin_arraybuffer_prototype_object_slice */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_arraybuffer_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide + *routine + *identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + switch (builtin_routine_id) + { + case ECMA_ARRAYBUFFER_PROTOTYPE_SLICE: + { + return ecma_builtin_arraybuffer_prototype_object_slice (this_arg, arguments_list_p, arguments_number); + } + case ECMA_ARRAYBUFFER_PROTOTYPE_BYTELENGTH_GETTER: + { + return ecma_builtin_arraybuffer_prototype_bytelength_getter (this_arg); + } + default: + { + JERRY_UNREACHABLE (); + } + } +} /* ecma_builtin_arraybuffer_prototype_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-arraybuffer-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-arraybuffer-prototype.inc.h index 80463446f2..52b9db202a 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-arraybuffer-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-arraybuffer-prototype.inc.h @@ -28,7 +28,7 @@ OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR, ECMA_BUILTIN_ID_ARRAYBUFFER, ECMA_PR /* Readonly accessor properties */ ACCESSOR_READ_ONLY (LIT_MAGIC_STRING_BYTE_LENGTH_UL, - ecma_builtin_arraybuffer_prototype_bytelength_getter, + ECMA_ARRAYBUFFER_PROTOTYPE_BYTELENGTH_GETTER, ECMA_PROPERTY_FLAG_CONFIGURABLE) /* ECMA-262 v6, 24.1.4.4 */ @@ -36,7 +36,7 @@ STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, LIT_MAGIC_STRING_ARRAY_BUFFER_UL, /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ -ROUTINE (LIT_MAGIC_STRING_SLICE, ecma_builtin_arraybuffer_prototype_object_slice, NON_FIXED, 2) +ROUTINE (LIT_MAGIC_STRING_SLICE, ECMA_ARRAYBUFFER_PROTOTYPE_SLICE, NON_FIXED, 2) #endif /* JERRY_BUILTIN_TYPEDARRAY */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-arraybuffer.c b/jerry-core/ecma/builtin-objects/ecma-builtin-arraybuffer.c index 1ad9d9bfe4..ff140c4443 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-arraybuffer.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-arraybuffer.c @@ -29,6 +29,16 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" +/** + * List of built-in routine identifiers. + */ +enum +{ + ECMA_ARRAYBUFFER_ROUTINE_START = 0, + ECMA_ARRAYBUFFER_OBJECT_IS_VIEW, + ECMA_ARRAYBUFFER_SPECIES_GET, +}; + #define BUILTIN_INC_HEADER_NAME "ecma-builtin-arraybuffer.inc.h" #define BUILTIN_UNDERSCORED_ID arraybuffer #include "ecma-builtin-internal-routines-template.inc.h" @@ -94,16 +104,36 @@ ecma_builtin_arraybuffer_dispatch_construct (const ecma_value_t *arguments_list_ } /* ecma_builtin_arraybuffer_dispatch_construct */ /** - * 24.1.3.3 get ArrayBuffer [ @@species ] accessor + * Dispatcher of the built-in's routines * - * @return ecma_value - * returned value must be freed with ecma_free_value + * @return ecma value + * Returned value must be freed with ecma_free_value. */ ecma_value_t -ecma_builtin_arraybuffer_species_get (ecma_value_t this_value) /**< This Value */ +ecma_builtin_arraybuffer_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ { - return ecma_copy_value (this_value); -} /* ecma_builtin_arraybuffer_species_get */ + JERRY_UNUSED (arguments_number); + + switch (builtin_routine_id) + { + case ECMA_ARRAYBUFFER_OBJECT_IS_VIEW: + { + return ecma_builtin_arraybuffer_object_is_view (this_arg, arguments_list_p[0]); + } + case ECMA_ARRAYBUFFER_SPECIES_GET: + { + return ecma_copy_value (this_arg); + } + default: + { + JERRY_UNREACHABLE (); + } + } +} /* ecma_builtin_arraybuffer_dispatch_routine */ /** * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-arraybuffer.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-arraybuffer.inc.h index 6fe1a93681..4024fec5ba 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-arraybuffer.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-arraybuffer.inc.h @@ -37,10 +37,10 @@ STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_ARRAY_BUFFER_UL, ECMA_PROP * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ /* ES2015 24.1.3.1 */ -ROUTINE (LIT_MAGIC_STRING_IS_VIEW_UL, ecma_builtin_arraybuffer_object_is_view, 1, 1) +ROUTINE (LIT_MAGIC_STRING_IS_VIEW_UL, ECMA_ARRAYBUFFER_OBJECT_IS_VIEW, 1, 1) /* ES2015 24.1.3.3 */ -ACCESSOR_READ_ONLY (LIT_GLOBAL_SYMBOL_SPECIES, ecma_builtin_arraybuffer_species_get, ECMA_PROPERTY_FLAG_CONFIGURABLE) +ACCESSOR_READ_ONLY (LIT_GLOBAL_SYMBOL_SPECIES, ECMA_ARRAYBUFFER_SPECIES_GET, ECMA_PROPERTY_FLAG_CONFIGURABLE) #endif /* JERRY_BUILTIN_TYPEDARRAY */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-async-function-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-async-function-prototype.c index 150bb95321..a9d5076f20 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-async-function-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-async-function-prototype.c @@ -34,6 +34,28 @@ * @{ */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_async_function_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide + * routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_async_function_prototype_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-async-function.c b/jerry-core/ecma/builtin-objects/ecma-builtin-async-function.c index 115af43c37..6ca3d1272d 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-async-function.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-async-function.c @@ -63,6 +63,27 @@ ecma_builtin_async_function_dispatch_construct (const ecma_value_t *arguments_li return ecma_builtin_async_function_dispatch_call (arguments_list_p, arguments_list_len); } /* ecma_builtin_async_function_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_async_function_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_async_function_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-function.c b/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-function.c index ad2fcd67d8..dbd323fa05 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-function.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-function.c @@ -65,6 +65,28 @@ ecma_builtin_async_generator_function_dispatch_construct (const ecma_value_t *ar return ecma_builtin_async_generator_function_dispatch_call (arguments_list_p, arguments_list_len); } /* ecma_builtin_async_generator_function_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_async_generator_function_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide + * routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_async_generator_function_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-prototype.c index 0d710f26ed..dbe98b1e84 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-prototype.c @@ -31,11 +31,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator.c b/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator.c index 2f5651b11f..697ce262af 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator.c @@ -34,6 +34,27 @@ * @{ */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_async_generator_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_async_generator_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-async-iterator-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-async-iterator-prototype.c index ec65c76575..f5c1028ba8 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-async-iterator-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-async-iterator-prototype.c @@ -22,11 +22,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-bigint-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-bigint-prototype.c index 3c32e7245f..684d716e06 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-bigint-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-bigint-prototype.c @@ -21,11 +21,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-bigint.c b/jerry-core/ecma/builtin-objects/ecma-builtin-bigint.c index 1c7e9f0cc8..8083c3915d 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-bigint.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-bigint.c @@ -71,6 +71,27 @@ ecma_builtin_bigint_dispatch_construct (const ecma_value_t *arguments_list_p, /* return ecma_raise_type_error (ECMA_ERR_MSG ("BigInt function is not a constructor")); } /* ecma_builtin_bigint_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_bigint_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_bigint_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-boolean-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-boolean-prototype.c index cd175dd4cf..89a1d673d9 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-boolean-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-boolean-prototype.c @@ -30,11 +30,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-boolean.c b/jerry-core/ecma/builtin-objects/ecma-builtin-boolean.c index 603d6104be..75d19821bc 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-boolean.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-boolean.c @@ -90,6 +90,27 @@ ecma_builtin_boolean_dispatch_construct (const ecma_value_t *arguments_list_p, / } } /* ecma_builtin_boolean_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_boolean_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_boolean_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-dataview-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-dataview-prototype.c index edebf7b73c..6926328f33 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-dataview-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-dataview-prototype.c @@ -27,11 +27,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-dataview.c b/jerry-core/ecma/builtin-objects/ecma-builtin-dataview.c index 6e86c6dc29..ceecd9ad1a 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-dataview.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-dataview.c @@ -62,6 +62,27 @@ ecma_builtin_dataview_dispatch_construct (const ecma_value_t *arguments_list_p, return ecma_op_dataview_create (arguments_list_p, arguments_list_len); } /* ecma_builtin_dataview_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_dataview_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_dataview_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-date-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-date-prototype.c index 2a3120bc06..f1894cffd2 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-date-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-date-prototype.c @@ -30,11 +30,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * Checks whether the function uses UTC time zone. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-date.c b/jerry-core/ecma/builtin-objects/ecma-builtin-date.c index cad9534c8f..8d8fe51a48 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-date.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-date.c @@ -32,11 +32,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-error-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-error-prototype.c index 861d822668..debdda8568 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-error-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-error-prototype.c @@ -30,11 +30,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-error.c b/jerry-core/ecma/builtin-objects/ecma-builtin-error.c index 1f8deddaf6..8cfe4c4c33 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-error.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-error.c @@ -90,6 +90,27 @@ ecma_builtin_error_dispatch_construct (const ecma_value_t *arguments_list_p, /** #endif /* JERRY_ESNEXT */ } /* ecma_builtin_error_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_error_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_error_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-evalerror-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-evalerror-prototype.c index 3758803326..897112a0ab 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-evalerror-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-evalerror-prototype.c @@ -34,4 +34,25 @@ #define BUILTIN_UNDERSCORED_ID eval_error_prototype #include "ecma-builtin-internal-routines-template.inc.h" +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_eval_error_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_eval_error_prototype_dispatch_routine */ + #endif /* JERRY_BUILTIN_ERRORS */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-evalerror.c b/jerry-core/ecma/builtin-objects/ecma-builtin-evalerror.c index 3804420d96..9192457ba2 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-evalerror.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-evalerror.c @@ -92,6 +92,27 @@ ecma_builtin_eval_error_dispatch_construct (const ecma_value_t *arguments_list_p #endif /* JERRY_ESNEXT */ } /* ecma_builtin_eval_error_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_eval_error_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_eval_error_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.c index 44e303473b..a4ac6b2da8 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.c @@ -33,11 +33,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-function.c b/jerry-core/ecma/builtin-objects/ecma-builtin-function.c index 7c8e1dfde3..e6c40586c4 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-function.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-function.c @@ -70,6 +70,27 @@ ecma_builtin_function_dispatch_construct (const ecma_value_t *arguments_list_p, return ecma_op_create_dynamic_function (arguments_list_p, arguments_list_len, ECMA_PARSE_NO_OPTS); } /* ecma_builtin_function_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_function_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_function_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-generator-function.c b/jerry-core/ecma/builtin-objects/ecma-builtin-generator-function.c index 14907dd17a..abc8c09818 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-generator-function.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-generator-function.c @@ -63,6 +63,27 @@ ecma_builtin_generator_function_dispatch_construct (const ecma_value_t *argument return ecma_builtin_generator_function_dispatch_call (arguments_list_p, arguments_list_len); } /* ecma_builtin_generator_function_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_generator_function_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_generator_function_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-generator-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-generator-prototype.c index 815e939304..6d6fddf985 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-generator-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-generator-prototype.c @@ -29,11 +29,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-generator.c b/jerry-core/ecma/builtin-objects/ecma-builtin-generator.c index 29045609c4..604e650324 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-generator.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-generator.c @@ -34,6 +34,27 @@ * @{ */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_generator_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_generator_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-global.c b/jerry-core/ecma/builtin-objects/ecma-builtin-global.c index f02303848e..dc0aff58d1 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-global.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-global.c @@ -34,11 +34,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-internal-routines-template.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-internal-routines-template.inc.h index be175c23a8..3b5215c613 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-internal-routines-template.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-internal-routines-template.inc.h @@ -30,83 +30,10 @@ #define PROPERTY_DESCRIPTOR_LIST_NAME PASTE (PASTE (ecma_builtin_, BUILTIN_UNDERSCORED_ID), _property_descriptor_list) #define DISPATCH_ROUTINE_ROUTINE_NAME PASTE (PASTE (ecma_builtin_, BUILTIN_UNDERSCORED_ID), _dispatch_routine) -#ifndef BUILTIN_CUSTOM_DISPATCH - -#define ROUTINE_ARG(n) , ecma_value_t arg##n -#define ROUTINE_ARG_LIST_0 ecma_value_t this_arg -#define ROUTINE_ARG_LIST_1 ROUTINE_ARG_LIST_0 ROUTINE_ARG (1) -#define ROUTINE_ARG_LIST_2 ROUTINE_ARG_LIST_1 ROUTINE_ARG (2) -#define ROUTINE_ARG_LIST_3 ROUTINE_ARG_LIST_2 ROUTINE_ARG (3) -#define ROUTINE_ARG_LIST_NON_FIXED ROUTINE_ARG_LIST_0, const ecma_value_t *arguments_list_p, uint32_t arguments_list_len -#define ROUTINE(name, c_function_name, args_number, length_prop_value) \ - static ecma_value_t c_function_name (ROUTINE_ARG_LIST_##args_number); -#define ROUTINE_CONFIGURABLE_ONLY(name, c_function_name, args_number, length_prop_value) \ - static ecma_value_t c_function_name (ROUTINE_ARG_LIST_##args_number); -#define ROUTINE_WITH_FLAGS(name, c_function_name, args_number, length_prop_value, flags) \ - static ecma_value_t c_function_name (ROUTINE_ARG_LIST_##args_number); -#define ACCESSOR_READ_WRITE(name, c_getter_func_name, c_setter_func_name, prop_attributes) \ - static ecma_value_t c_getter_func_name (ROUTINE_ARG_LIST_0); \ - static ecma_value_t c_setter_func_name (ROUTINE_ARG_LIST_1); -#define ACCESSOR_READ_ONLY(name, c_getter_func_name, prop_attributes) \ - static ecma_value_t c_getter_func_name (ROUTINE_ARG_LIST_0); -#include BUILTIN_INC_HEADER_NAME -#undef ROUTINE_ARG_LIST_NON_FIXED -#undef ROUTINE_ARG_LIST_3 -#undef ROUTINE_ARG_LIST_2 -#undef ROUTINE_ARG_LIST_1 -#undef ROUTINE_ARG_LIST_0 -#undef ROUTINE_ARG - -/** - * List of built-in routine identifiers. - */ -enum -{ - PASTE (ECMA_ROUTINE_START_, BUILTIN_UNDERSCORED_ID) = 0, -#define ROUTINE(name, c_function_name, args_number, length_prop_value) ECMA_ROUTINE_##name##c_function_name, -#define ROUTINE_CONFIGURABLE_ONLY(name, c_function_name, args_number, length_prop_value) \ - ECMA_ROUTINE_##name##c_function_name, -#define ROUTINE_WITH_FLAGS(name, c_function_name, args_number, length_prop_value, flags) \ - ECMA_ROUTINE_##name##c_function_name, -#define ACCESSOR_READ_WRITE(name, c_getter_func_name, c_setter_func_name, prop_attributes) \ - ECMA_ACCESSOR_##name##c_getter_func_name, ECMA_ACCESSOR_##name##c_setter_func_name, -#define ACCESSOR_READ_ONLY(name, c_getter_func_name, prop_attributes) ECMA_ACCESSOR_##name##c_getter_func_name, -#include BUILTIN_INC_HEADER_NAME -}; - -#endif /* !BUILTIN_CUSTOM_DISPATCH */ - /** * Built-in property list of the built-in object. */ const ecma_builtin_property_descriptor_t PROPERTY_DESCRIPTOR_LIST_NAME[] = { -#ifndef BUILTIN_CUSTOM_DISPATCH -#define ROUTINE(name, c_function_name, args_number, length_prop_value) \ - { name, \ - ECMA_BUILTIN_PROPERTY_ROUTINE, \ - ECMA_PROPERTY_BUILT_IN_CONFIGURABLE_WRITABLE, \ - ECMA_ROUTINE_VALUE (ECMA_ROUTINE_##name##c_function_name, length_prop_value) }, -#define ROUTINE_CONFIGURABLE_ONLY(name, c_function_name, args_number, length_prop_value) \ - { name, \ - ECMA_BUILTIN_PROPERTY_ROUTINE, \ - ECMA_PROPERTY_BUILT_IN_CONFIGURABLE, \ - ECMA_ROUTINE_VALUE (ECMA_ROUTINE_##name##c_function_name, length_prop_value) }, -#define ROUTINE_WITH_FLAGS(name, c_function_name, args_number, length_prop_value, prop_attributes) \ - { name, \ - ECMA_BUILTIN_PROPERTY_ROUTINE, \ - (prop_attributes) | ECMA_PROPERTY_FLAG_BUILT_IN, \ - ECMA_ROUTINE_VALUE (ECMA_ROUTINE_##name##c_function_name, length_prop_value) }, -#define ACCESSOR_READ_ONLY(name, c_getter_func_name, prop_attributes) \ - { name, \ - ECMA_BUILTIN_PROPERTY_ACCESSOR_READ_ONLY, \ - (prop_attributes) | ECMA_PROPERTY_FLAG_BUILT_IN, \ - ECMA_ACCESSOR_##name##c_getter_func_name }, -#define ACCESSOR_READ_WRITE(name, c_getter_func_name, c_setter_func_name, prop_attributes) \ - { name, \ - ECMA_BUILTIN_PROPERTY_ACCESSOR_READ_WRITE, \ - (prop_attributes) | ECMA_PROPERTY_FLAG_BUILT_IN, \ - ECMA_ACCESSOR_READ_WRITE (ECMA_ACCESSOR_##name##c_getter_func_name, ECMA_ACCESSOR_##name##c_setter_func_name) }, -#else /* BUILTIN_CUSTOM_DISPATCH */ #define ROUTINE(name, c_function_name, args_number, length_prop_value) \ { name, \ ECMA_BUILTIN_PROPERTY_ROUTINE, \ @@ -132,7 +59,6 @@ const ecma_builtin_property_descriptor_t PROPERTY_DESCRIPTOR_LIST_NAME[] = { ECMA_BUILTIN_PROPERTY_ACCESSOR_READ_WRITE, \ (prop_attributes) | ECMA_PROPERTY_FLAG_BUILT_IN, \ ECMA_ACCESSOR_READ_WRITE (c_getter_func_name, c_setter_func_name) }, -#endif /* !BUILTIN_CUSTOM_DISPATCH */ #define OBJECT_VALUE(name, obj_builtin_id, prop_attributes) \ { name, ECMA_BUILTIN_PROPERTY_OBJECT, (prop_attributes) | ECMA_PROPERTY_FLAG_BUILT_IN, obj_builtin_id }, #define SIMPLE_VALUE(name, simple_value, prop_attributes) \ @@ -155,85 +81,7 @@ const ecma_builtin_property_descriptor_t PROPERTY_DESCRIPTOR_LIST_NAME[] = { { LIT_MAGIC_STRING__COUNT, ECMA_BUILTIN_PROPERTY_END, 0, 0 } }; -#ifndef BUILTIN_CUSTOM_DISPATCH - -/** - * Dispatcher of the built-in's routines - * - * @return ecma value - * Returned value must be freed with ecma_free_value. - */ -ecma_value_t -DISPATCH_ROUTINE_ROUTINE_NAME (uint8_t builtin_routine_id, /**< built-in wide routine - identifier */ - ecma_value_t this_arg_value, /**< 'this' argument - value */ - const ecma_value_t arguments_list[], /**< list of arguments - passed to routine */ - uint32_t arguments_number) /**< length of - * arguments' list */ -{ - /* the arguments may be unused for some built-ins */ - JERRY_UNUSED (this_arg_value); - JERRY_UNUSED (arguments_list); - JERRY_UNUSED (arguments_number); - - switch (builtin_routine_id) - { -#define ROUTINE_ARG(n) (arguments_list[n - 1]) -#define ROUTINE_ARG_LIST_0 -#define ROUTINE_ARG_LIST_1 , ROUTINE_ARG (1) -#define ROUTINE_ARG_LIST_2 ROUTINE_ARG_LIST_1, ROUTINE_ARG (2) -#define ROUTINE_ARG_LIST_3 ROUTINE_ARG_LIST_2, ROUTINE_ARG (3) -#define ROUTINE_ARG_LIST_NON_FIXED , arguments_list, arguments_number -#define ROUTINE(name, c_function_name, args_number, length_prop_value) \ - case ECMA_ROUTINE_##name##c_function_name: \ - { \ - return c_function_name (this_arg_value ROUTINE_ARG_LIST_##args_number); \ - } -#define ROUTINE_CONFIGURABLE_ONLY(name, c_function_name, args_number, length_prop_value) \ - case ECMA_ROUTINE_##name##c_function_name: \ - { \ - return c_function_name (this_arg_value ROUTINE_ARG_LIST_##args_number); \ - } -#define ROUTINE_WITH_FLAGS(name, c_function_name, args_number, length_prop_value, flags) \ - case ECMA_ROUTINE_##name##c_function_name: \ - { \ - return c_function_name (this_arg_value ROUTINE_ARG_LIST_##args_number); \ - } -#define ACCESSOR_READ_WRITE(name, c_getter_func_name, c_setter_func_name, prop_attributes) \ - case ECMA_ACCESSOR_##name##c_getter_func_name: \ - { \ - return c_getter_func_name (this_arg_value); \ - } \ - case ECMA_ACCESSOR_##name##c_setter_func_name: \ - { \ - return c_setter_func_name (this_arg_value ROUTINE_ARG_LIST_1); \ - } -#define ACCESSOR_READ_ONLY(name, c_getter_func_name, prop_attributes) \ - case ECMA_ACCESSOR_##name##c_getter_func_name: \ - { \ - return c_getter_func_name (this_arg_value); \ - } -#include BUILTIN_INC_HEADER_NAME -#undef ROUTINE_ARG -#undef ROUTINE_ARG_LIST_0 -#undef ROUTINE_ARG_LIST_1 -#undef ROUTINE_ARG_LIST_2 -#undef ROUTINE_ARG_LIST_3 -#undef ROUTINE_ARG_LIST_NON_FIXED - - default: - { - JERRY_UNREACHABLE (); - } - } -} /* DISPATCH_ROUTINE_ROUTINE_NAME */ - -#endif /* !BUILTIN_CUSTOM_DISPATCH */ - #undef BUILTIN_INC_HEADER_NAME -#undef BUILTIN_CUSTOM_DISPATCH #undef BUILTIN_UNDERSCORED_ID #undef DISPATCH_ROUTINE_ROUTINE_NAME #undef ECMA_BUILTIN_PROPERTY_NAME_INDEX diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-intrinsic.c b/jerry-core/ecma/builtin-objects/ecma-builtin-intrinsic.c index fc11a6be4b..f62978b159 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-intrinsic.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-intrinsic.c @@ -30,11 +30,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-iterator-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-iterator-prototype.c index 1bcc916633..50191769a4 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-iterator-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-iterator-prototype.c @@ -22,11 +22,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-json.c b/jerry-core/ecma/builtin-objects/ecma-builtin-json.c index ef2a7dbd00..e4a2c1b8d1 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-json.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-json.c @@ -36,11 +36,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-map-iterator-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-map-iterator-prototype.c index 9471a450af..f296db7173 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-map-iterator-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-map-iterator-prototype.c @@ -22,11 +22,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-map-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-map-prototype.c index d7a10cc9d4..532aeeed95 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-map-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-map-prototype.c @@ -20,10 +20,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH #define BUILTIN_INC_HEADER_NAME "ecma-builtin-map-prototype.inc.h" #define BUILTIN_UNDERSCORED_ID map_prototype #include "ecma-builtin-internal-routines-template.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-map.c b/jerry-core/ecma/builtin-objects/ecma-builtin-map.c index f79cccd5ec..853bf95fe5 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-map.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-map.c @@ -22,6 +22,15 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" +/** + * List of built-in routine identifiers. + */ +enum +{ + ECMA_BUILTIN_MAP_ROUTINE_START = 0, + ECMA_BUILTIN_MAP_SPECES_GET, +}; + #define BUILTIN_INC_HEADER_NAME "ecma-builtin-map.inc.h" #define BUILTIN_UNDERSCORED_ID map #include "ecma-builtin-internal-routines-template.inc.h" @@ -66,16 +75,33 @@ ecma_builtin_map_dispatch_construct (const ecma_value_t *arguments_list_p, /**< } /* ecma_builtin_map_dispatch_construct */ /** - * 23.1.2.2 get Map [ @@species ] accessor + * Dispatcher of the built-in's routines * - * @return ecma_value - * returned value must be freed with ecma_free_value + * @return ecma value + * Returned value must be freed with ecma_free_value. */ ecma_value_t -ecma_builtin_map_species_get (ecma_value_t this_value) /**< This Value */ +ecma_builtin_map_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ { - return ecma_copy_value (this_value); -} /* ecma_builtin_map_species_get */ + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + + switch (builtin_routine_id) + { + case ECMA_BUILTIN_MAP_SPECES_GET: + { + return ecma_copy_value (this_arg); + } + default: + { + JERRY_UNREACHABLE (); + } + } +} /* ecma_builtin_map_dispatch_routine */ /** * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-map.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-map.inc.h index e1ff9c0075..c05e99b95d 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-map.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-map.inc.h @@ -37,7 +37,7 @@ STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_MAP_UL, ECMA_PROPERTY_FLAG OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, ECMA_BUILTIN_ID_MAP_PROTOTYPE, ECMA_PROPERTY_FIXED) /* ECMA-262 v6, 23.1.2.2 */ -ACCESSOR_READ_ONLY (LIT_GLOBAL_SYMBOL_SPECIES, ecma_builtin_map_species_get, ECMA_PROPERTY_FLAG_CONFIGURABLE) +ACCESSOR_READ_ONLY (LIT_GLOBAL_SYMBOL_SPECIES, ECMA_BUILTIN_MAP_SPECES_GET, ECMA_PROPERTY_FLAG_CONFIGURABLE) #endif /* JERRY_BUILTIN_CONTAINER */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-math.c b/jerry-core/ecma/builtin-objects/ecma-builtin-math.c index a9e737ecf5..a6930b2237 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-math.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-math.c @@ -38,11 +38,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-number-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-number-prototype.c index 6b2bdd5293..8ac9d34aa7 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-number-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-number-prototype.c @@ -34,11 +34,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-number.c b/jerry-core/ecma/builtin-objects/ecma-builtin-number.c index 6626368c0c..0639b6ce1e 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-number.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-number.c @@ -34,10 +34,6 @@ #include "ecma-builtins-internal.h" #if JERRY_ESNEXT -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH /** * List of built-in routine identifiers. @@ -239,8 +235,30 @@ ecma_builtin_number_dispatch_routine (uint8_t builtin_routine_id, /**< built-in } } /* ecma_builtin_number_dispatch_routine */ -#endif /* JERRY_ESNEXT */ +#else /* !JERRY_ESNEXT */ + +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_number_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + JERRY_UNREACHABLE (); +} /* ecma_builtin_number_dispatch_routine */ + +#endif /* JERRY_ESNEXT */ /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-object-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-object-prototype.c index 7bdf27daad..147fdc7ae9 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-object-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-object-prototype.c @@ -32,11 +32,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-object.c b/jerry-core/ecma/builtin-objects/ecma-builtin-object.c index 6f7da09998..bdc4058d79 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-object.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-object.c @@ -39,11 +39,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-promise-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-promise-prototype.c index 252512d679..9cd46725ac 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-promise-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-promise-prototype.c @@ -21,11 +21,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-promise.c b/jerry-core/ecma/builtin-objects/ecma-builtin-promise.c index 4de450bf83..8e9ff83b2d 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-promise.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-promise.c @@ -32,11 +32,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-proxy.c b/jerry-core/ecma/builtin-objects/ecma-builtin-proxy.c index 1fe6ac2384..8fd762ff27 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-proxy.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-proxy.c @@ -27,11 +27,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-rangeerror-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-rangeerror-prototype.c index f72ac2c220..21cd8aa48d 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-rangeerror-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-rangeerror-prototype.c @@ -34,4 +34,26 @@ #define BUILTIN_UNDERSCORED_ID range_error_prototype #include "ecma-builtin-internal-routines-template.inc.h" +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_range_error_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide + * routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_range_error_prototype_dispatch_routine */ + #endif /* JERRY_BUILTIN_ERRORS */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-rangeerror.c b/jerry-core/ecma/builtin-objects/ecma-builtin-rangeerror.c index 83ae4feb98..6d96c5affa 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-rangeerror.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-rangeerror.c @@ -92,6 +92,27 @@ ecma_builtin_range_error_dispatch_construct (const ecma_value_t *arguments_list_ #endif /* JERRY_ESNEXT */ } /* ecma_builtin_range_error_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_range_error_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_range_error_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-referenceerror-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-referenceerror-prototype.c index 5212d6bfe9..e93410e51a 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-referenceerror-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-referenceerror-prototype.c @@ -34,4 +34,26 @@ #define BUILTIN_UNDERSCORED_ID reference_error_prototype #include "ecma-builtin-internal-routines-template.inc.h" +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_reference_error_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide + * routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_reference_error_prototype_dispatch_routine */ + #endif /* JERRY_BUILTIN_ERRORS */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-referenceerror.c b/jerry-core/ecma/builtin-objects/ecma-builtin-referenceerror.c index 5c983555c5..54eabfdc85 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-referenceerror.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-referenceerror.c @@ -92,6 +92,27 @@ ecma_builtin_reference_error_dispatch_construct (const ecma_value_t *arguments_l #endif /* JERRY_ESNEXT */ } /* ecma_builtin_reference_error_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_reference_error_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_reference_error_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-reflect.c b/jerry-core/ecma/builtin-objects/ecma-builtin-reflect.c index 32c32dc719..d6aac638e5 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-reflect.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-reflect.c @@ -31,11 +31,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-prototype.c index 12b3b08ec5..f4815b2c76 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-prototype.c @@ -36,11 +36,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-string-iterator-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-string-iterator-prototype.c index d2d0d56ece..ed676dee6c 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-string-iterator-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-string-iterator-prototype.c @@ -25,6 +25,15 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" +/** + * List of built-in routine identifiers. + */ +enum +{ + ECMA_REGEXP_STRING_ITERATOR_PROTOTYPE_ROUTINE_START = 0, + ECMA_REGEXP_STRING_ITERATOR_PROTOTYPE_OBJECT_NEXT, +}; + #define BUILTIN_INC_HEADER_NAME "ecma-builtin-regexp-string-iterator-prototype.inc.h" #define BUILTIN_UNDERSCORED_ID regexp_string_iterator_prototype #include "ecma-builtin-internal-routines-template.inc.h" @@ -179,6 +188,39 @@ ecma_builtin_regexp_string_iterator_prototype_object_next (ecma_value_t this_val return result; } /* ecma_builtin_regexp_string_iterator_prototype_object_next */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_regexp_string_iterator_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide + *routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of + * arguments + * passed to + * routine */ + uint32_t arguments_number) /**< length of + * arguments' list */ +{ + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + + switch (builtin_routine_id) + { + case ECMA_REGEXP_STRING_ITERATOR_PROTOTYPE_OBJECT_NEXT: + { + return ecma_builtin_regexp_string_iterator_prototype_object_next (this_arg); + } + default: + { + JERRY_UNREACHABLE (); + } + } +} /* ecma_builtin_regexp_string_iterator_prototype_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-string-iterator-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-string-iterator-prototype.inc.h index d2eebddb7b..83631d82ed 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-string-iterator-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-string-iterator-prototype.inc.h @@ -27,7 +27,7 @@ STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ -ROUTINE (LIT_MAGIC_STRING_NEXT, ecma_builtin_regexp_string_iterator_prototype_object_next, 0, 0) +ROUTINE (LIT_MAGIC_STRING_NEXT, ECMA_REGEXP_STRING_ITERATOR_PROTOTYPE_OBJECT_NEXT, 0, 0) #endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.c b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.c index e999042940..8cc0599aa4 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.c @@ -29,6 +29,15 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" +/** + * List of built-in routine identifiers. + */ +enum +{ + ECMA_BUILTIN_REGEXP_ROUTINE_START = 0, + ECMA_BUILTIN_REGEXP_SPECES_GET, +}; + #define BUILTIN_INC_HEADER_NAME "ecma-builtin-regexp.inc.h" #define BUILTIN_UNDERSCORED_ID regexp #include "ecma-builtin-internal-routines-template.inc.h" @@ -216,19 +225,34 @@ ecma_builtin_regexp_dispatch_construct (const ecma_value_t *arguments_list_p, /* return ecma_builtin_regexp_dispatch_helper (arguments_list_p, arguments_list_len); } /* ecma_builtin_regexp_dispatch_construct */ -#if JERRY_ESNEXT /** - * 21.2.4.2 get RegExp [ @@species ] accessor + * Dispatcher of the built-in's routines * - * @return ecma_value - * returned value must be freed with ecma_free_value + * @return ecma value + * Returned value must be freed with ecma_free_value. */ ecma_value_t -ecma_builtin_regexp_species_get (ecma_value_t this_value) /**< This Value */ +ecma_builtin_regexp_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ { - return ecma_copy_value (this_value); -} /* ecma_builtin_regexp_species_get */ -#endif /* JERRY_ESNEXT */ + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + + switch (builtin_routine_id) + { + case ECMA_BUILTIN_REGEXP_SPECES_GET: + { + return ecma_copy_value (this_arg); + } + default: + { + JERRY_UNREACHABLE (); + } + } +} /* ecma_builtin_regexp_dispatch_routine */ /** * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.inc.h index 882e42caf8..309f4c8760 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.inc.h @@ -30,7 +30,7 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, ECMA_BUILTIN_ID_REGEXP_PROTOTYPE, ECMA STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_REGEXP_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) /* ECMA-262 v6, 21.2.4.2 */ -ACCESSOR_READ_ONLY (LIT_GLOBAL_SYMBOL_SPECIES, ecma_builtin_regexp_species_get, ECMA_PROPERTY_FLAG_CONFIGURABLE) +ACCESSOR_READ_ONLY (LIT_GLOBAL_SYMBOL_SPECIES, ECMA_BUILTIN_REGEXP_SPECES_GET, ECMA_PROPERTY_FLAG_CONFIGURABLE) #endif /* JERRY_ESNEXT */ #endif /* JERRY_BUILTIN_REGEXP */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-set-iterator-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-set-iterator-prototype.c index e435626b46..c4738fcffb 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-set-iterator-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-set-iterator-prototype.c @@ -22,11 +22,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-set-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-set-prototype.c index 8ff2687cdb..71a9d8fe31 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-set-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-set-prototype.c @@ -20,10 +20,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH #define BUILTIN_INC_HEADER_NAME "ecma-builtin-set-prototype.inc.h" #define BUILTIN_UNDERSCORED_ID set_prototype #include "ecma-builtin-internal-routines-template.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-set.c b/jerry-core/ecma/builtin-objects/ecma-builtin-set.c index 8210cc94f5..02206b6228 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-set.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-set.c @@ -22,6 +22,15 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" +/** + * List of built-in routine identifiers. + */ +enum +{ + ECMA_BUILTIN_SET_ROUTINE_START = 0, + ECMA_BUILTIN_SET_SPECIES_GET, +}; + #define BUILTIN_INC_HEADER_NAME "ecma-builtin-set.inc.h" #define BUILTIN_UNDERSCORED_ID set #include "ecma-builtin-internal-routines-template.inc.h" @@ -66,16 +75,33 @@ ecma_builtin_set_dispatch_construct (const ecma_value_t *arguments_list_p, /**< } /* ecma_builtin_set_dispatch_construct */ /** - * 23.2.2.2 get Set [ @@species ] accessor + * Dispatcher of the built-in's routines * - * @return ecma_value - * returned value must be freed with ecma_free_value + * @return ecma value + * Returned value must be freed with ecma_free_value. */ ecma_value_t -ecma_builtin_set_species_get (ecma_value_t this_value) /**< This Value */ +ecma_builtin_set_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ { - return ecma_copy_value (this_value); -} /* ecma_builtin_set_species_get */ + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + + switch (builtin_routine_id) + { + case ECMA_BUILTIN_SET_SPECIES_GET: + { + return ecma_copy_value (this_arg); + } + default: + { + JERRY_UNREACHABLE (); + } + } +} /* ecma_builtin_set_dispatch_routine */ /** * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-set.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-set.inc.h index 559b4ccb69..de5e0007b3 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-set.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-set.inc.h @@ -37,7 +37,7 @@ STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_SET_UL, ECMA_PROPERTY_FLAG OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, ECMA_BUILTIN_ID_SET_PROTOTYPE, ECMA_PROPERTY_FIXED) /* ECMA-262 v6, 23.2.2.2 */ -ACCESSOR_READ_ONLY (LIT_GLOBAL_SYMBOL_SPECIES, ecma_builtin_set_species_get, ECMA_PROPERTY_FLAG_CONFIGURABLE) +ACCESSOR_READ_ONLY (LIT_GLOBAL_SYMBOL_SPECIES, ECMA_BUILTIN_SET_SPECIES_GET, ECMA_PROPERTY_FLAG_CONFIGURABLE) #endif /* JERRY_BUILTIN_CONTAINER */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-shared-arraybuffer-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-shared-arraybuffer-prototype.c index dc6fc22f17..a8f49f23c9 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-shared-arraybuffer-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-shared-arraybuffer-prototype.c @@ -33,6 +33,16 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" +/** + * List of built-in routine identifiers. + */ +enum +{ + ECMA_BUILTIN_SHARED_ARRYBUFFER_PROTOTYPE_ROUTINE_START = 0, + ECMA_BUILTIN_SHARED_ARRYBUFFER_PROTOTYPE_BYTELENGTH_GETTER, + ECMA_BUILTIN_SHARED_ARRYBUFFER_PROTOTYPE_OBJECT_SLICE, +}; + #define BUILTIN_INC_HEADER_NAME "ecma-builtin-shared-arraybuffer-prototype.inc.h" #define BUILTIN_UNDERSCORED_ID shared_arraybuffer_prototype #include "ecma-builtin-internal-routines-template.inc.h" @@ -104,6 +114,42 @@ ecma_builtin_shared_arraybuffer_prototype_object_slice (ecma_value_t this_arg, / return ecma_builtin_arraybuffer_slice (this_arg, argument_list_p, arguments_number); } /* ecma_builtin_shared_arraybuffer_prototype_object_slice */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_shared_arraybuffer_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide + *routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of + * arguments + * passed to + * routine */ + uint32_t arguments_number) /**< length of + * arguments' list */ +{ + JERRY_UNUSED (arguments_number); + + switch (builtin_routine_id) + { + case ECMA_BUILTIN_SHARED_ARRYBUFFER_PROTOTYPE_BYTELENGTH_GETTER: + { + return ecma_builtin_shared_arraybuffer_prototype_bytelength_getter (this_arg); + } + case ECMA_BUILTIN_SHARED_ARRYBUFFER_PROTOTYPE_OBJECT_SLICE: + { + return ecma_builtin_shared_arraybuffer_prototype_object_slice (this_arg, arguments_list_p, arguments_number); + } + default: + { + JERRY_UNREACHABLE (); + } + } +} /* ecma_builtin_shared_arraybuffer_prototype_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-shared-arraybuffer-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-shared-arraybuffer-prototype.inc.h index c7b0b9eb06..196282073f 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-shared-arraybuffer-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-shared-arraybuffer-prototype.inc.h @@ -28,7 +28,7 @@ OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR, ECMA_BUILTIN_ID_SHARED_ARRAYBUFFER, /* Readonly accessor properties */ ACCESSOR_READ_ONLY (LIT_MAGIC_STRING_BYTE_LENGTH_UL, - ecma_builtin_shared_arraybuffer_prototype_bytelength_getter, + ECMA_BUILTIN_SHARED_ARRYBUFFER_PROTOTYPE_BYTELENGTH_GETTER, ECMA_PROPERTY_FLAG_CONFIGURABLE) /* ECMA-262 v11, 24.2.4.4 */ @@ -36,7 +36,7 @@ STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, LIT_MAGIC_STRING_SHARED_ARRAY_BUF /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ -ROUTINE (LIT_MAGIC_STRING_SLICE, ecma_builtin_shared_arraybuffer_prototype_object_slice, NON_FIXED, 2) +ROUTINE (LIT_MAGIC_STRING_SLICE, ECMA_BUILTIN_SHARED_ARRYBUFFER_PROTOTYPE_OBJECT_SLICE, NON_FIXED, 2) #endif /* JERRY_BUILTIN_SHAREDARRAYBUFFER */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-shared-arraybuffer.c b/jerry-core/ecma/builtin-objects/ecma-builtin-shared-arraybuffer.c index 473287ec49..e49626aee2 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-shared-arraybuffer.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-shared-arraybuffer.c @@ -29,6 +29,15 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" +/** + * List of built-in routine identifiers. + */ +enum +{ + ECMA_BUILTIN_SHARED_ARRYBUFFER_ROUTINE_START = 0, + ECMA_BUILTIN_SHARED_ARRYBUFFER_SPECIES_GET, +}; + #define BUILTIN_INC_HEADER_NAME "ecma-builtin-shared-arraybuffer.inc.h" #define BUILTIN_UNDERSCORED_ID shared_arraybuffer #include "ecma-builtin-internal-routines-template.inc.h" @@ -76,16 +85,33 @@ ecma_builtin_shared_arraybuffer_dispatch_construct (const ecma_value_t *argument } /* ecma_builtin_shared_arraybuffer_dispatch_construct */ /** - * 24.2.3.2 get SharedArrayBuffer [ @@species ] accessor + * Dispatcher of the built-in's routines * - * @return ecma_value - * returned value must be freed with ecma_free_value + * @return ecma value + * Returned value must be freed with ecma_free_value. */ ecma_value_t -ecma_builtin_shared_arraybuffer_species_get (ecma_value_t this_value) /**< This Value */ +ecma_builtin_shared_arraybuffer_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ { - return ecma_copy_value (this_value); -} /* ecma_builtin_shared_arraybuffer_species_get */ + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + + switch (builtin_routine_id) + { + case ECMA_BUILTIN_SHARED_ARRYBUFFER_SPECIES_GET: + { + return ecma_copy_value (this_arg); + } + default: + { + JERRY_UNREACHABLE (); + } + } +} /* ecma_builtin_shared_arraybuffer_dispatch_routine */ /** * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-shared-arraybuffer.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-shared-arraybuffer.inc.h index 8a7c73a7f4..becbe3e004 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-shared-arraybuffer.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-shared-arraybuffer.inc.h @@ -38,7 +38,7 @@ STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_SHARED_ARRAY_BUFFER_UL, EC /* ES11 24.1.3.3 */ ACCESSOR_READ_ONLY (LIT_GLOBAL_SYMBOL_SPECIES, - ecma_builtin_shared_arraybuffer_species_get, + ECMA_BUILTIN_SHARED_ARRYBUFFER_SPECIES_GET, ECMA_PROPERTY_FLAG_CONFIGURABLE) #endif /* JERRY_BUILTIN_SHAREDARRAYBUFFER */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-string-iterator-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-string-iterator-prototype.c index a939a8886a..26be28039a 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-string-iterator-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-string-iterator-prototype.c @@ -22,11 +22,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-string-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-string-prototype.c index dafde43ed7..d60e144964 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-string-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-string-prototype.c @@ -43,11 +43,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-string.c b/jerry-core/ecma/builtin-objects/ecma-builtin-string.c index 206889ba56..71fb393a56 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-string.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-string.c @@ -34,11 +34,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-symbol-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-symbol-prototype.c index c508148b1d..96a3fa37ac 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-symbol-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-symbol-prototype.c @@ -30,11 +30,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.c b/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.c index 646a4daa86..217a428458 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.c @@ -32,6 +32,16 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" +/** + * List of built-in routine identifiers. + */ +enum +{ + ECMA_BUILTIN_SYMBOL_ROUTINE_START = 0, + ECMA_BUILTIN_SYMBOL_FOR, + ECMA_BUILTIN_SYMBOL_KEY_FOR, +}; + #define BUILTIN_INC_HEADER_NAME "ecma-builtin-symbol.inc.h" #define BUILTIN_UNDERSCORED_ID symbol #include "ecma-builtin-internal-routines-template.inc.h" @@ -248,6 +258,39 @@ ecma_builtin_symbol_key_for (ecma_value_t this_arg, /**< this argument */ return ecma_builtin_symbol_for_helper (symbol); } /* ecma_builtin_symbol_key_for */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_symbol_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + + switch (builtin_routine_id) + { + case ECMA_BUILTIN_SYMBOL_KEY_FOR: + { + return ecma_builtin_symbol_key_for (this_arg, arguments_list_p[0]); + } + case ECMA_BUILTIN_SYMBOL_FOR: + { + return ecma_builtin_symbol_for (this_arg, arguments_list_p[0]); + } + default: + { + JERRY_UNREACHABLE (); + } + } +} /* ecma_builtin_symbol_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.inc.h index 1d34b3a41f..b72bffe361 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.inc.h @@ -76,8 +76,8 @@ SYMBOL_VALUE (LIT_MAGIC_STRING_MATCH_ALL, LIT_GLOBAL_SYMBOL_MATCH_ALL) /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ -ROUTINE (LIT_MAGIC_STRING_FOR, ecma_builtin_symbol_for, 1, 1) -ROUTINE (LIT_MAGIC_STRING_KEY_FOR, ecma_builtin_symbol_key_for, 1, 1) +ROUTINE (LIT_MAGIC_STRING_FOR, ECMA_BUILTIN_SYMBOL_FOR, 1, 1) +ROUTINE (LIT_MAGIC_STRING_KEY_FOR, ECMA_BUILTIN_SYMBOL_KEY_FOR, 1, 1) #endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-syntaxerror-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-syntaxerror-prototype.c index 2e5e7b8c61..1eb4e9d54a 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-syntaxerror-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-syntaxerror-prototype.c @@ -34,4 +34,26 @@ #define BUILTIN_UNDERSCORED_ID syntax_error_prototype #include "ecma-builtin-internal-routines-template.inc.h" +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_syntax_error_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide + * routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_syntax_error_prototype_dispatch_routine */ + #endif /* JERRY_BUILTIN_ERRORS */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-syntaxerror.c b/jerry-core/ecma/builtin-objects/ecma-builtin-syntaxerror.c index 6227ef600b..a49b63b787 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-syntaxerror.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-syntaxerror.c @@ -92,6 +92,27 @@ ecma_builtin_syntax_error_dispatch_construct (const ecma_value_t *arguments_list #endif /* JERRY_ESNEXT */ } /* ecma_builtin_syntax_error_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_syntax_error_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_syntax_error_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-type-error-thrower.c b/jerry-core/ecma/builtin-objects/ecma-builtin-type-error-thrower.c index 3e2f9df37b..ca9ac43973 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-type-error-thrower.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-type-error-thrower.c @@ -76,6 +76,27 @@ ecma_builtin_type_error_thrower_dispatch_construct (const ecma_value_t *argument return ecma_builtin_type_error_thrower_dispatch_call (arguments_list_p, arguments_list_len); } /* ecma_builtin_type_error_thrower_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_type_error_thrower_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_type_error_thrower_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-typeerror-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-typeerror-prototype.c index 9e9971a1b8..3e04fd1f9a 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-typeerror-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-typeerror-prototype.c @@ -34,4 +34,25 @@ #define BUILTIN_UNDERSCORED_ID type_error_prototype #include "ecma-builtin-internal-routines-template.inc.h" +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_type_error_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_type_error_prototype_dispatch_routine */ + #endif /* JERRY_BUILTIN_ERRORS */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-typeerror.c b/jerry-core/ecma/builtin-objects/ecma-builtin-typeerror.c index a16fce508d..c14fb2fee5 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-typeerror.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-typeerror.c @@ -92,6 +92,27 @@ ecma_builtin_type_error_dispatch_construct (const ecma_value_t *arguments_list_p #endif /* JERRY_ESNEXT */ } /* ecma_builtin_type_error_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_type_error_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_type_error_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-urierror-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-urierror-prototype.c index 26acbaba73..ab20f94048 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-urierror-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-urierror-prototype.c @@ -34,4 +34,25 @@ #define BUILTIN_UNDERSCORED_ID uri_error_prototype #include "ecma-builtin-internal-routines-template.inc.h" +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_uri_error_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_uri_error_prototype_dispatch_routine */ + #endif /* JERRY_BUILTIN_ERRORS */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-urierror.c b/jerry-core/ecma/builtin-objects/ecma-builtin-urierror.c index 52d7a2b6ca..330d856ec4 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-urierror.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-urierror.c @@ -92,6 +92,27 @@ ecma_builtin_uri_error_dispatch_construct (const ecma_value_t *arguments_list_p, #endif /* JERRY_ESNEXT */ } /* ecma_builtin_uri_error_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_uri_error_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_uri_error_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-weakmap-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-weakmap-prototype.c index 2a8d6768f2..dcee6b6d2e 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-weakmap-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-weakmap-prototype.c @@ -20,10 +20,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH #define BUILTIN_INC_HEADER_NAME "ecma-builtin-weakmap-prototype.inc.h" #define BUILTIN_UNDERSCORED_ID weakmap_prototype #include "ecma-builtin-internal-routines-template.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-weakmap.c b/jerry-core/ecma/builtin-objects/ecma-builtin-weakmap.c index 76dcfedf36..098a80f820 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-weakmap.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-weakmap.c @@ -65,6 +65,27 @@ ecma_builtin_weakmap_dispatch_construct (const ecma_value_t *arguments_list_p, / ECMA_BUILTIN_ID_WEAKMAP_PROTOTYPE); } /* ecma_builtin_weakmap_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_weakmap_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_weakmap_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-weakref-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-weakref-prototype.c index be72d0665b..4fff330064 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-weakref-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-weakref-prototype.c @@ -21,11 +21,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ @@ -35,9 +30,6 @@ enum ECMA_BUILTIN_WEAKREF_PROTOTYPE_OBJECT_DEREF }; -/** - * This object has a custom dispatch function. - */ #define BUILTIN_INC_HEADER_NAME "ecma-builtin-weakref-prototype.inc.h" #define BUILTIN_UNDERSCORED_ID weakref_prototype #include "ecma-builtin-internal-routines-template.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-weakref.c b/jerry-core/ecma/builtin-objects/ecma-builtin-weakref.c index 286c76e8fa..0f994a8b8e 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-weakref.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-weakref.c @@ -87,6 +87,27 @@ ecma_builtin_weakref_dispatch_construct (const ecma_value_t *arguments_list_p, / return ecma_make_object_value (object_p); } /* ecma_builtin_weakref_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_weakref_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_weakref_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-weakset-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-weakset-prototype.c index 370c5047b0..2077188811 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-weakset-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-weakset-prototype.c @@ -20,10 +20,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH #define BUILTIN_INC_HEADER_NAME "ecma-builtin-weakset-prototype.inc.h" #define BUILTIN_UNDERSCORED_ID weakset_prototype #include "ecma-builtin-internal-routines-template.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-weakset.c b/jerry-core/ecma/builtin-objects/ecma-builtin-weakset.c index 1bd04ec463..cd39ed44b9 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-weakset.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-weakset.c @@ -65,6 +65,26 @@ ecma_builtin_weakset_dispatch_construct (const ecma_value_t *arguments_list_p, / ECMA_BUILTIN_ID_WEAKSET_PROTOTYPE); } /* ecma_builtin_weakset_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_weakset_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_weakset_dispatch_routine */ /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-bigint64array-prototype.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-bigint64array-prototype.c index 3b33e03355..14d5133ae0 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-bigint64array-prototype.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-bigint64array-prototype.c @@ -35,6 +35,29 @@ * @{ */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_bigint64array_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide + * routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed + * to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_bigint64array_prototype_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-bigint64array.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-bigint64array.c index 1f8b29f6bc..12d224d9e5 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-bigint64array.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-bigint64array.c @@ -69,6 +69,27 @@ ecma_builtin_bigint64array_dispatch_construct (const ecma_value_t *arguments_lis return ecma_typedarray_helper_dispatch_construct (arguments_list_p, arguments_list_len, ECMA_BIGINT64_ARRAY); } /* ecma_builtin_bigint64array_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_bigint64array_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_bigint64array_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-biguint64array-prototype.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-biguint64array-prototype.c index 9844fbd530..85af585e74 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-biguint64array-prototype.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-biguint64array-prototype.c @@ -35,6 +35,29 @@ * @{ */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_biguint64array_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide + * routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed + * to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_biguint64array_prototype_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-biguint64array.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-biguint64array.c index 214fa716db..3dd6b6ea45 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-biguint64array.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-biguint64array.c @@ -69,6 +69,27 @@ ecma_builtin_biguint64array_dispatch_construct (const ecma_value_t *arguments_li return ecma_typedarray_helper_dispatch_construct (arguments_list_p, arguments_list_len, ECMA_BIGUINT64_ARRAY); } /* ecma_builtin_biguint64array_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_biguint64array_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_biguint64array_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-float32array-prototype.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-float32array-prototype.c index 1e6a604102..eaf32afb59 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-float32array-prototype.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-float32array-prototype.c @@ -34,6 +34,29 @@ * @{ */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_float32array_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide + * routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed + * to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_float32array_prototype_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-float32array.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-float32array.c index b69cc4c046..aa8fd39a8b 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-float32array.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-float32array.c @@ -68,6 +68,27 @@ ecma_builtin_float32array_dispatch_construct (const ecma_value_t *arguments_list return ecma_typedarray_helper_dispatch_construct (arguments_list_p, arguments_list_len, ECMA_FLOAT32_ARRAY); } /* ecma_builtin_float32array_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_float32array_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_float32array_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-float64array-prototype.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-float64array-prototype.c index 205d23a785..1a44a6037f 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-float64array-prototype.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-float64array-prototype.c @@ -35,6 +35,29 @@ * @{ */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_float64array_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide + * routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed + * to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_float64array_prototype_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-float64array.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-float64array.c index 997fb5a7b3..7fc1ae74ed 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-float64array.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-float64array.c @@ -69,6 +69,27 @@ ecma_builtin_float64array_dispatch_construct (const ecma_value_t *arguments_list return ecma_typedarray_helper_dispatch_construct (arguments_list_p, arguments_list_len, ECMA_FLOAT64_ARRAY); } /* ecma_builtin_float64array_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_float64array_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_float64array_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int16array-prototype.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int16array-prototype.c index 1b9c435b0f..fe1da31800 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int16array-prototype.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int16array-prototype.c @@ -34,6 +34,29 @@ * @{ */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_int16array_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide + * routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed + * to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_int16array_prototype_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int16array.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int16array.c index 6945114a31..ee8a1a5d76 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int16array.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int16array.c @@ -68,6 +68,27 @@ ecma_builtin_int16array_dispatch_construct (const ecma_value_t *arguments_list_p return ecma_typedarray_helper_dispatch_construct (arguments_list_p, arguments_list_len, ECMA_INT16_ARRAY); } /* ecma_builtin_int16array_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_int16array_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_int16array_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int32array-prototype.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int32array-prototype.c index 36fc847062..885c513220 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int32array-prototype.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int32array-prototype.c @@ -34,6 +34,29 @@ * @{ */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_int32array_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide + * routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed + * to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_int32array_prototype_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int32array.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int32array.c index d3d899c1fe..0b9b95894d 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int32array.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int32array.c @@ -68,6 +68,27 @@ ecma_builtin_int32array_dispatch_construct (const ecma_value_t *arguments_list_p return ecma_typedarray_helper_dispatch_construct (arguments_list_p, arguments_list_len, ECMA_INT32_ARRAY); } /* ecma_builtin_int32array_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_int32array_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_int32array_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int8array-prototype.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int8array-prototype.c index 8221f30900..0e349084d7 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int8array-prototype.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int8array-prototype.c @@ -34,6 +34,29 @@ * @{ */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_int8array_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide + * routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed + * to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_int8array_prototype_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int8array.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int8array.c index 87ea168cc8..53f33fa181 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int8array.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-int8array.c @@ -68,6 +68,27 @@ ecma_builtin_int8array_dispatch_construct (const ecma_value_t *arguments_list_p, return ecma_typedarray_helper_dispatch_construct (arguments_list_p, arguments_list_len, ECMA_INT8_ARRAY); } /* ecma_builtin_int8array_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_int8array_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_int8array_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray-prototype.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray-prototype.c index b93c429c56..04f9550eed 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray-prototype.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray-prototype.c @@ -43,11 +43,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -/** - * This object has a custom dispatch function. - */ -#define BUILTIN_CUSTOM_DISPATCH - /** * List of built-in routine identifiers. */ diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray.c index 898492fa84..85e0e1af04 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray.c @@ -28,6 +28,17 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" +/** + * List of built-in routine identifiers. + */ +enum +{ + ECMA_BUILTIN_TYPEDARRAY_ROUTINE_START = 0, + ECMA_BUILTIN_TYPEDARRAY_OF, + ECMA_BUILTIN_TYPEDARRAY_FROM, + ECMA_BUILTIN_TYPEDARRAY_SPECIES_GET, +}; + #define BUILTIN_INC_HEADER_NAME "ecma-builtin-typedarray.inc.h" #define BUILTIN_UNDERSCORED_ID typedarray #include "ecma-builtin-internal-routines-template.inc.h" @@ -187,16 +198,38 @@ ecma_builtin_typedarray_dispatch_construct (const ecma_value_t *arguments_list_p } /* ecma_builtin_typedarray_dispatch_construct */ /** - * 22.2.2.4 get %TypedArray% [ @@species ] accessor + * Dispatcher of the built-in's routines * - * @return ecma_value - * returned value must be freed with ecma_free_value + * @return ecma value + * Returned value must be freed with ecma_free_value. */ ecma_value_t -ecma_builtin_typedarray_species_get (ecma_value_t this_value) /**< This Value */ +ecma_builtin_typedarray_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ { - return ecma_copy_value (this_value); -} /* ecma_builtin_typedarray_species_get */ + switch (builtin_routine_id) + { + case ECMA_BUILTIN_TYPEDARRAY_FROM: + { + return ecma_builtin_typedarray_from (this_arg, arguments_list_p, arguments_number); + } + case ECMA_BUILTIN_TYPEDARRAY_OF: + { + return ecma_builtin_typedarray_of (this_arg, arguments_list_p, arguments_number); + } + case ECMA_BUILTIN_TYPEDARRAY_SPECIES_GET: + { + return ecma_copy_value (this_arg); + } + default: + { + JERRY_UNREACHABLE (); + } + } +} /* ecma_builtin_typedarray_dispatch_routine */ /** * @} diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray.inc.h b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray.inc.h index bc8ab47db4..6a9f7c6466 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray.inc.h +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray.inc.h @@ -35,13 +35,13 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE, * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ /* ES2015 22.2.2.1 */ -ROUTINE (LIT_MAGIC_STRING_FROM, ecma_builtin_typedarray_from, NON_FIXED, 1) +ROUTINE (LIT_MAGIC_STRING_FROM, ECMA_BUILTIN_TYPEDARRAY_FROM, NON_FIXED, 1) /* ES2015 22.2.2.2 */ -ROUTINE (LIT_MAGIC_STRING_OF, ecma_builtin_typedarray_of, NON_FIXED, 0) +ROUTINE (LIT_MAGIC_STRING_OF, ECMA_BUILTIN_TYPEDARRAY_OF, NON_FIXED, 0) /* ES2015 22.2.2.4 */ -ACCESSOR_READ_ONLY (LIT_GLOBAL_SYMBOL_SPECIES, ecma_builtin_typedarray_species_get, ECMA_PROPERTY_FLAG_CONFIGURABLE) +ACCESSOR_READ_ONLY (LIT_GLOBAL_SYMBOL_SPECIES, ECMA_BUILTIN_TYPEDARRAY_SPECIES_GET, ECMA_PROPERTY_FLAG_CONFIGURABLE) #endif /* JERRY_BUILTIN_TYPEDARRAY */ diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint16array-prototype.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint16array-prototype.c index 691da4ba87..4066852c95 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint16array-prototype.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint16array-prototype.c @@ -34,6 +34,29 @@ * @{ */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_uint16array_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide + * routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed + * to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_uint16array_prototype_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint16array.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint16array.c index db0367ddec..c507f084dc 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint16array.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint16array.c @@ -68,6 +68,27 @@ ecma_builtin_uint16array_dispatch_construct (const ecma_value_t *arguments_list_ return ecma_typedarray_helper_dispatch_construct (arguments_list_p, arguments_list_len, ECMA_UINT16_ARRAY); } /* ecma_builtin_uint16array_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_uint16array_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_uint16array_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint32array-prototype.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint32array-prototype.c index 4b5e384220..05d0a00447 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint32array-prototype.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint32array-prototype.c @@ -34,6 +34,29 @@ * @{ */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_uint32array_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide + * routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed + * to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_uint32array_prototype_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint32array.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint32array.c index 51abd555fd..717cb1fd9f 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint32array.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint32array.c @@ -70,6 +70,27 @@ ecma_builtin_uint32array_dispatch_construct (const ecma_value_t *arguments_list_ return ecma_typedarray_helper_dispatch_construct (arguments_list_p, arguments_list_len, ECMA_UINT32_ARRAY); } /* ecma_builtin_uint32array_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_uint32array_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_uint32array_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint8array-prototype.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint8array-prototype.c index 8a8edb4a15..4f9cd8e08f 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint8array-prototype.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint8array-prototype.c @@ -34,6 +34,29 @@ * @{ */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_uint8array_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide + * routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed + * to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_uint8array_prototype_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint8array.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint8array.c index d646611c22..8420401705 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint8array.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint8array.c @@ -68,6 +68,27 @@ ecma_builtin_uint8array_dispatch_construct (const ecma_value_t *arguments_list_p return ecma_typedarray_helper_dispatch_construct (arguments_list_p, arguments_list_len, ECMA_UINT8_ARRAY); } /* ecma_builtin_uint8array_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_uint8array_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_uint8array_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint8clampedarray-prototype.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint8clampedarray-prototype.c index 534014b146..d95663e19a 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint8clampedarray-prototype.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint8clampedarray-prototype.c @@ -34,6 +34,29 @@ * @{ */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_uint8clampedarray_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide + * routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed + * to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_uint8clampedarray_prototype_dispatch_routine */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint8clampedarray.c b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint8clampedarray.c index f3678f473d..24a235289e 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint8clampedarray.c +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-uint8clampedarray.c @@ -70,6 +70,27 @@ ecma_builtin_uint8clampedarray_dispatch_construct (const ecma_value_t *arguments return ecma_typedarray_helper_dispatch_construct (arguments_list_p, arguments_list_len, ECMA_UINT8_CLAMPED_ARRAY); } /* ecma_builtin_uint8clampedarray_dispatch_construct */ +/** + * Dispatcher of the built-in's routines + * + * @return ecma value + * Returned value must be freed with ecma_free_value. + */ +ecma_value_t +ecma_builtin_uint8clampedarray_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wide routine identifier */ + ecma_value_t this_arg, /**< 'this' argument value */ + const ecma_value_t arguments_list_p[], /**< list of arguments + * passed to routine */ + uint32_t arguments_number) /**< length of arguments' list */ +{ + JERRY_UNUSED (this_arg); + JERRY_UNUSED (arguments_number); + JERRY_UNUSED (arguments_list_p); + JERRY_UNUSED (builtin_routine_id); + + JERRY_UNREACHABLE (); +} /* ecma_builtin_uint8clampedarray_dispatch_routine */ + /** * @} * @}