From 3b73562fa5250bc9853fc9b4f200cfaba4e96ed2 Mon Sep 17 00:00:00 2001 From: Robert Fancsik Date: Thu, 24 Oct 2019 14:44:51 +0200 Subject: [PATCH] Revise ES2015 feature guards (#3240) All the basic language element guards are merged into JERRY_ES2015 macro guard. JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik frobert@inf.u-szeged.hu --- jerry-core/api/jerry-snapshot.c | 12 +- jerry-core/api/jerry.c | 26 ++-- jerry-core/config.h | 66 +-------- jerry-core/ecma/base/ecma-gc.c | 12 +- jerry-core/ecma/base/ecma-globals.h | 12 +- jerry-core/ecma/base/ecma-helpers-string.c | 16 +-- jerry-core/ecma/base/ecma-helpers-value.c | 38 ++--- jerry-core/ecma/base/ecma-helpers.c | 12 +- jerry-core/ecma/base/ecma-helpers.h | 22 +-- jerry-core/ecma/base/ecma-literal-storage.c | 8 +- .../ecma-builtin-array-iterator-prototype.c | 4 - .../ecma-builtin-array-prototype.c | 30 ++-- .../ecma-builtin-arraybuffer-prototype.inc.h | 4 +- .../ecma-builtin-dataview-prototype.inc.h | 4 +- .../builtin-objects/ecma-builtin-global.c | 4 +- .../builtin-objects/ecma-builtin-global.inc.h | 4 +- .../ecma-builtin-helpers-macro-defines.inc.h | 4 +- .../ecma-builtin-helpers-macro-undefs.inc.h | 4 +- .../builtin-objects/ecma-builtin-helpers.c | 8 +- ...a-builtin-internal-routines-template.inc.h | 4 +- .../builtin-objects/ecma-builtin-json.inc.h | 4 +- .../ecma-builtin-map-iterator-prototype.c | 4 - .../ecma-builtin-map-prototype.inc.h | 4 +- .../builtin-objects/ecma-builtin-math.inc.h | 4 +- .../builtin-objects/ecma-builtin-object.c | 8 +- .../builtin-objects/ecma-builtin-object.inc.h | 4 +- .../ecma-builtin-promise-prototype.inc.h | 4 +- .../ecma-builtin-set-iterator-prototype.c | 4 - .../ecma-builtin-set-prototype.inc.h | 4 +- .../ecma-builtin-string-iterator-prototype.c | 4 - .../builtin-objects/ecma-builtin-string.c | 8 +- .../ecma-builtin-symbol-prototype.c | 4 +- .../ecma-builtin-symbol-prototype.inc.h | 4 +- .../builtin-objects/ecma-builtin-symbol.c | 4 +- .../builtin-objects/ecma-builtin-symbol.inc.h | 4 +- .../builtin-objects/ecma-builtins-internal.h | 4 +- .../ecma/builtin-objects/ecma-builtins.c | 12 +- .../ecma/builtin-objects/ecma-builtins.inc.h | 4 +- .../ecma-builtin-typedarray-prototype.c | 4 +- .../ecma-builtin-typedarray-prototype.inc.h | 4 +- .../ecma/operations/ecma-array-object.c | 8 +- .../ecma/operations/ecma-array-object.h | 4 +- jerry-core/ecma/operations/ecma-comparison.c | 12 +- .../ecma/operations/ecma-container-object.c | 4 +- jerry-core/ecma/operations/ecma-conversion.c | 24 ++-- jerry-core/ecma/operations/ecma-eval.c | 4 +- jerry-core/ecma/operations/ecma-exceptions.c | 4 +- .../ecma/operations/ecma-function-object.c | 106 +++++++------- .../ecma/operations/ecma-function-object.h | 15 +- .../ecma/operations/ecma-get-put-value.c | 8 +- jerry-core/ecma/operations/ecma-objects.c | 68 ++++----- jerry-core/ecma/operations/ecma-objects.h | 4 +- jerry-core/ecma/operations/ecma-reference.c | 14 +- jerry-core/ecma/operations/ecma-reference.h | 4 +- .../ecma/operations/ecma-symbol-object.c | 9 +- .../ecma/operations/ecma-symbol-object.h | 4 +- .../ecma/operations/ecma-typedarray-object.c | 8 +- jerry-core/jcontext/jcontext.h | 4 +- jerry-core/lit/lit-magic-strings.inc.h | 38 ++--- jerry-core/parser/js/byte-code.h | 6 +- jerry-core/parser/js/js-lexer.c | 90 ++++++------ jerry-core/parser/js/js-lexer.h | 18 ++- jerry-core/parser/js/js-parser-expr.c | 125 ++++++++--------- jerry-core/parser/js/js-parser-internal.h | 48 +++---- jerry-core/parser/js/js-parser-statm.c | 107 +++++++------- jerry-core/parser/js/js-parser-util.c | 87 +++++------- jerry-core/parser/js/js-parser.c | 82 +++++------ jerry-core/parser/js/js-parser.h | 32 ++--- jerry-core/parser/js/js-scanner-util.c | 4 +- jerry-core/parser/js/js-scanner.c | 130 +++++++----------- jerry-core/parser/js/js-scanner.h | 4 +- jerry-core/profiles/README.md | 43 ++---- .../vm/opcodes-ecma-relational-equality.c | 4 +- jerry-core/vm/vm-stack.c | 8 +- jerry-core/vm/vm-stack.h | 8 +- jerry-core/vm/vm.c | 52 +++---- jerry-core/vm/vm.h | 56 ++++---- 77 files changed, 725 insertions(+), 911 deletions(-) diff --git a/jerry-core/api/jerry-snapshot.c b/jerry-core/api/jerry-snapshot.c index a343c66df..ce12cb2f5 100644 --- a/jerry-core/api/jerry-snapshot.c +++ b/jerry-core/api/jerry-snapshot.c @@ -45,9 +45,9 @@ snapshot_get_global_flags (bool has_regex, /**< regex literal is present */ #if ENABLED (JERRY_BUILTIN_REGEXP) flags |= (has_regex ? JERRY_SNAPSHOT_HAS_REGEX_LITERAL : 0); #endif /* ENABLED (JERRY_BUILTIN_REGEXP) */ -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) flags |= (has_class ? JERRY_SNAPSHOT_HAS_CLASS_LITERAL : 0); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ return flags; } /* snapshot_get_global_flags */ @@ -63,9 +63,9 @@ snapshot_check_global_flags (uint32_t global_flags) /**< global flags */ #if ENABLED (JERRY_BUILTIN_REGEXP) global_flags &= (uint32_t) ~JERRY_SNAPSHOT_HAS_REGEX_LITERAL; #endif /* ENABLED (JERRY_BUILTIN_REGEXP) */ -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) global_flags &= (uint32_t) ~JERRY_SNAPSHOT_HAS_CLASS_LITERAL; -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ return global_flags == snapshot_get_global_flags (false, false); } /* snapshot_check_global_flags */ @@ -160,12 +160,12 @@ snapshot_add_compiled_code (ecma_compiled_code_t *compiled_code_p, /**< compiled uint8_t *copied_code_start_p = snapshot_buffer_p + globals_p->snapshot_buffer_write_offset; ecma_compiled_code_t *copied_code_p = (ecma_compiled_code_t *) copied_code_start_p; -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if (compiled_code_p->status_flags & CBC_CODE_FLAGS_CONSTRUCTOR) { globals_p->class_found = true; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ #if ENABLED (JERRY_BUILTIN_REGEXP) if (!(compiled_code_p->status_flags & CBC_CODE_FLAGS_FUNCTION)) diff --git a/jerry-core/api/jerry.c b/jerry-core/api/jerry.c index 0aa0db7dc..e691fc342 100644 --- a/jerry-core/api/jerry.c +++ b/jerry-core/api/jerry.c @@ -811,12 +811,12 @@ jerry_value_is_symbol (const jerry_value_t value) /**< api value */ { jerry_assert_api_available (); -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) return ecma_is_value_symbol (value); -#else /* !ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#else /* !ENABLED (JERRY_ES2015) */ JERRY_UNUSED (value); return false; -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ } /* jerry_value_is_symbol */ /** @@ -870,12 +870,12 @@ jerry_value_get_type (const jerry_value_t value) /**< input value to check */ { return JERRY_TYPE_STRING; } -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) case LIT_MAGIC_STRING_SYMBOL: { return JERRY_TYPE_SYMBOL; } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ case LIT_MAGIC_STRING_FUNCTION: { return JERRY_TYPE_FUNCTION; @@ -940,9 +940,9 @@ jerry_is_feature_enabled (const jerry_feature_t feature) /**< feature to check * #if ENABLED (JERRY_ES2015_BUILTIN_PROMISE) || feature == JERRY_FEATURE_PROMISE #endif /* ENABLED (JERRY_ES2015_BUILTIN_PROMISE) */ -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) || feature == JERRY_FEATURE_SYMBOL -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ #if ENABLED (JERRY_ES2015_BUILTIN_TYPEDARRAY) || feature == JERRY_FEATURE_TYPEDARRAY #endif /* ENABLED (JERRY_ES2015_BUILTIN_TYPEDARRAY) */ @@ -1638,11 +1638,11 @@ jerry_create_symbol (const jerry_value_t value) /**< api value */ return jerry_throw (ecma_raise_type_error (ECMA_ERR_MSG (wrong_args_msg_p))); } -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) return jerry_return (ecma_op_create_symbol (&value, 1)); -#else /* !ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#else /* !ENABLED (JERRY_ES2015) */ return jerry_throw (ecma_raise_type_error (ECMA_ERR_MSG ("Symbol is not supported."))); -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ } /* jerry_create_symbol */ /** @@ -3092,7 +3092,7 @@ jerry_get_symbol_descriptive_string (const jerry_value_t symbol) /**< symbol val { jerry_assert_api_available (); -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) if (!ecma_is_value_symbol (symbol)) { return jerry_throw (ecma_raise_type_error (ECMA_ERR_MSG (wrong_args_msg_p))); @@ -3100,11 +3100,11 @@ jerry_get_symbol_descriptive_string (const jerry_value_t symbol) /**< symbol val /* Note: This operation cannot throw an error */ return ecma_get_symbol_descriptive_string (symbol); -#else /* !ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#else /* !ENABLED (JERRY_ES2015) */ JERRY_UNUSED (symbol); return jerry_throw (ecma_raise_type_error (ECMA_ERR_MSG ("Symbol is not supported."))); -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ } /** jerry_get_symbol_descriptive_string */ /** diff --git a/jerry-core/config.h b/jerry-core/config.h index ba23e2952..8563c8127 100644 --- a/jerry-core/config.h +++ b/jerry-core/config.h @@ -105,48 +105,16 @@ #ifndef JERRY_ES2015_BUILTIN_REFLECT # define JERRY_ES2015_BUILTIN_REFLECT JERRY_ES2015 -#endif /* !defined (JERRY_ES2016_BUILTIN_REFLECT) */ - -#ifndef JERRY_ES2015_BUILTIN_SYMBOL -# define JERRY_ES2015_BUILTIN_SYMBOL JERRY_ES2015 -#endif /* !defined (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* !defined (JERRY_ES2015_BUILTIN_REFLECT) */ #ifndef JERRY_ES2015_BUILTIN_TYPEDARRAY # define JERRY_ES2015_BUILTIN_TYPEDARRAY JERRY_ES2015 #endif /* !defined (JERRY_ES2015_BUILTIN_TYPEDARRAY) */ -#ifndef JERRY_ES2015_ARROW_FUNCTION -# define JERRY_ES2015_ARROW_FUNCTION JERRY_ES2015 -#endif /* !defined (JERRY_ES2015_ARROW_FUNCTION) */ - -#ifndef JERRY_ES2015_CLASS -# define JERRY_ES2015_CLASS JERRY_ES2015 -#endif /* !defined (JERRY_ES2015_CLASS) */ - -#ifndef JERRY_ES2015_FOR_OF -# define JERRY_ES2015_FOR_OF JERRY_ES2015 -#endif /* !defined (JERRY_ES2015_FOR_OF) */ - -#ifndef JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER -# define JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER JERRY_ES2015 -#endif /* !defined (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) */ - -#ifndef JERRY_ES2015_FUNCTION_REST_PARAMETER -# define JERRY_ES2015_FUNCTION_REST_PARAMETER JERRY_ES2015 -#endif /* !defined (JERRY_ES2015_FUNCTION_REST_PARAMETER) */ - -#ifndef JERRY_ES2015_OBJECT_INITIALIZER -# define JERRY_ES2015_OBJECT_INITIALIZER JERRY_ES2015 -#endif /* !defined (JERRY_ES2015_OBJECT_INITIALIZER) */ - #ifndef JERRY_ES2015_MODULE_SYSTEM # define JERRY_ES2015_MODULE_SYSTEM JERRY_ES2015 #endif /* !defined (JERRY_ES2015_MODULE_SYSTEM) */ -#ifndef JERRY_ES2015_TEMPLATE_STRINGS -# define JERRY_ES2015_TEMPLATE_STRINGS JERRY_ES2015 -#endif /* !defined (JERRY_ES2015_TEMPLATE_STRINGS) */ - /** * Engine internal and misc configurations. */ @@ -539,10 +507,6 @@ || ((JERRY_ES2015 != 0) && (JERRY_ES2015 != 1)) # error "Invalid value for JERRY_ES2015 macro." #endif -#if !defined (JERRY_ES2015_ARROW_FUNCTION) \ -|| ((JERRY_ES2015_ARROW_FUNCTION != 0) && (JERRY_ES2015_ARROW_FUNCTION != 1)) -# error "Invalid value for JERRY_ES2015_ARROW_FUNCTION macro." -#endif #if !defined (JERRY_ES2015_BUILTIN) \ || ((JERRY_ES2015_BUILTIN != 0) && (JERRY_ES2015_BUILTIN != 1)) # error "Invalid value for JERRY_ES2015_BUILTIN macro." @@ -571,42 +535,14 @@ || ((JERRY_ES2015_BUILTIN_PROMISE != 0) && (JERRY_ES2015_BUILTIN_PROMISE != 1)) # error "Invalid value for JERRY_ES2015_BUILTIN_PROMISE macro." #endif -#if !defined (JERRY_ES2015_BUILTIN_SYMBOL) \ -|| ((JERRY_ES2015_BUILTIN_SYMBOL != 0) && (JERRY_ES2015_BUILTIN_SYMBOL != 1)) -# error "Invalid value for JERRY_ES2015_BUILTIN_SYMBOL macro." -#endif #if !defined (JERRY_ES2015_BUILTIN_TYPEDARRAY) \ || ((JERRY_ES2015_BUILTIN_TYPEDARRAY != 0) && (JERRY_ES2015_BUILTIN_TYPEDARRAY != 1)) # error "Invalid value for JERRY_ES2015_BUILTIN_TYPEDARRAY macro." #endif -#if !defined (JERRY_ES2015_CLASS) \ -|| ((JERRY_ES2015_CLASS != 0) && (JERRY_ES2015_CLASS != 1)) -# error "Invalid value for JERRY_ES2015_CLASS macro." -#endif -#if !defined (JERRY_ES2015_FOR_OF) \ -|| ((JERRY_ES2015_FOR_OF != 0) && (JERRY_ES2015_FOR_OF != 1)) -# error "Invalid value for JERRY_ES2015_FOR_OF macro." -#endif -#if !defined (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) \ -|| ((JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER != 0) && (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER != 1)) -# error "Invalid value for JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER macro." -#endif -#if !defined (JERRY_ES2015_FUNCTION_REST_PARAMETER) \ -|| ((JERRY_ES2015_FUNCTION_REST_PARAMETER != 0) && (JERRY_ES2015_FUNCTION_REST_PARAMETER != 1)) -# error "Invalid value for JERRY_ES2015_FUNCTION_REST_PARAMETER macro." -#endif -#if !defined (JERRY_ES2015_OBJECT_INITIALIZER) \ -|| ((JERRY_ES2015_OBJECT_INITIALIZER != 0) && (JERRY_ES2015_OBJECT_INITIALIZER != 1)) -# error "Invalid value for JERRY_ES2015_OBJECT_INITIALIZER macro." -#endif #if !defined (JERRY_ES2015_MODULE_SYSTEM) \ || ((JERRY_ES2015_MODULE_SYSTEM != 0) && (JERRY_ES2015_MODULE_SYSTEM != 1)) # error "Invalid value for JERRY_ES2015_MODULE_SYSTEM macro." #endif -#if !defined (JERRY_ES2015_TEMPLATE_STRINGS) \ -|| ((JERRY_ES2015_TEMPLATE_STRINGS != 0) && (JERRY_ES2015_TEMPLATE_STRINGS != 1)) -# error "Invalid value for JERRY_ES2015_TEMPLATE_STRINGS macro." -#endif /** * Internal options. diff --git a/jerry-core/ecma/base/ecma-gc.c b/jerry-core/ecma/base/ecma-gc.c index ba4c23b47..293ed7f8d 100644 --- a/jerry-core/ecma/base/ecma-gc.c +++ b/jerry-core/ecma/base/ecma-gc.c @@ -496,7 +496,7 @@ ecma_gc_mark (ecma_object_t *object_p) /**< object to mark from */ } break; } -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) case ECMA_OBJECT_TYPE_ARROW_FUNCTION: { ecma_arrow_function_t *arrow_func_p = (ecma_arrow_function_t *) object_p; @@ -510,7 +510,7 @@ ecma_gc_mark (ecma_object_t *object_p) /**< object to mark from */ } break; } -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ default: { break; @@ -724,9 +724,9 @@ ecma_gc_free_object (ecma_object_t *object_p) /**< object to free */ switch (ext_object_p->u.class_prop.class_id) { -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) case LIT_MAGIC_STRING_SYMBOL_UL: -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ case LIT_MAGIC_STRING_STRING_UL: case LIT_MAGIC_STRING_NUMBER_UL: { @@ -860,7 +860,7 @@ ecma_gc_free_object (ecma_object_t *object_p) /**< object to free */ return; } -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) if (object_type == ECMA_OBJECT_TYPE_ARROW_FUNCTION) { ecma_arrow_function_t *arrow_func_p = (ecma_arrow_function_t *) object_p; @@ -885,7 +885,7 @@ ecma_gc_free_object (ecma_object_t *object_p) /**< object to free */ #endif /* ENABLED (JERRY_SNAPSHOT_EXEC) */ return; } -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ if (object_type == ECMA_OBJECT_TYPE_PSEUDO_ARRAY) { diff --git a/jerry-core/ecma/base/ecma-globals.h b/jerry-core/ecma/base/ecma-globals.h index aa55b2ee6..40306c988 100644 --- a/jerry-core/ecma/base/ecma-globals.h +++ b/jerry-core/ecma/base/ecma-globals.h @@ -327,9 +327,9 @@ typedef enum * that are not indices */ ECMA_LIST_ENUMERABLE = (1 << 1), /**< exclude non-enumerable properties */ ECMA_LIST_PROTOTYPE = (1 << 2), /**< list properties from prototype chain */ -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) ECMA_LIST_SYMBOLS = (1 << 3), /**< list symbol properties only */ -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ ECMA_LIST_CONVERT_FAST_ARRAYS = (1 << 4), /**< after listing the properties convert * the fast access mode array back to normal array */ } ecma_list_properties_options_t; @@ -607,9 +607,9 @@ typedef enum ECMA_OBJECT_TYPE_ARRAY = 4, /**< Array object (15.4) */ ECMA_OBJECT_TYPE_BOUND_FUNCTION = 5, /**< Function objects (15.3), created through 15.3.4.5 routine */ ECMA_OBJECT_TYPE_PSEUDO_ARRAY = 6, /**< Array-like object, such as Arguments object (10.6) */ -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) ECMA_OBJECT_TYPE_ARROW_FUNCTION = 7, /**< arrow function objects */ -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ /* Types between 13-15 cannot have a built-in flag. See ecma_lexical_environment_type_t. */ @@ -913,7 +913,7 @@ typedef struct #endif /* ENABLED (JERRY_SNAPSHOT_EXEC) */ -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) /** * Description of arrow function objects. @@ -939,7 +939,7 @@ typedef struct #endif /* ENABLED (JERRY_SNAPSHOT_EXEC) */ -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ #if ENABLED (JERRY_ES2015_BUILTIN_MAP) || ENABLED (JERRY_ES2015_BUILTIN_SET) /** diff --git a/jerry-core/ecma/base/ecma-helpers-string.c b/jerry-core/ecma/base/ecma-helpers-string.c index 9a3c7a1ad..97378ccac 100644 --- a/jerry-core/ecma/base/ecma-helpers-string.c +++ b/jerry-core/ecma/base/ecma-helpers-string.c @@ -204,7 +204,7 @@ ecma_new_ecma_string_from_magic_string_ex_id (lit_magic_string_ex_id_t id) /**< return string_desc_p; } /* ecma_new_ecma_string_from_magic_string_ex_id */ -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /** * Allocate new ecma-string and fill it with reference to the symbol descriptor * @@ -238,7 +238,7 @@ ecma_prop_name_is_symbol (ecma_string_t *string_p) /**< ecma-string */ return (!ECMA_IS_DIRECT_STRING (string_p) && ECMA_STRING_GET_CONTAINER (string_p) == ECMA_STRING_CONTAINER_SYMBOL); } /* ecma_prop_name_is_symbol */ -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ #if ENABLED (JERRY_ES2015_BUILTIN_MAP) || ENABLED (JERRY_ES2015_BUILTIN_SET) /** @@ -910,7 +910,7 @@ ecma_destroy_ecma_string (ecma_string_t *string_p) /**< ecma-string */ ((ecma_ascii_string_t *) string_p)->size + sizeof (ecma_ascii_string_t)); return; } -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) case ECMA_STRING_CONTAINER_SYMBOL: { ecma_extended_string_t * symbol_p = (ecma_extended_string_t *) string_p; @@ -918,7 +918,7 @@ ecma_destroy_ecma_string (ecma_string_t *string_p) /**< ecma-string */ ecma_dealloc_extended_string (symbol_p); return; } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ #if ENABLED (JERRY_ES2015_BUILTIN_MAP) || ENABLED (JERRY_ES2015_BUILTIN_SET) case ECMA_STRING_CONTAINER_MAP_KEY: { @@ -1809,12 +1809,12 @@ ecma_compare_ecma_strings (const ecma_string_t *string1_p, /**< ecma-string */ return true; } -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) if (string1_container == ECMA_STRING_CONTAINER_SYMBOL) { return false; } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ #if ENABLED (JERRY_ES2015_BUILTIN_MAP) if (string1_container == ECMA_STRING_CONTAINER_MAP_KEY) @@ -1863,12 +1863,12 @@ ecma_compare_ecma_non_direct_strings (const ecma_string_t *string1_p, /**< ecma- return true; } -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) if (string1_container == ECMA_STRING_CONTAINER_SYMBOL) { return false; } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ #if ENABLED (JERRY_ES2015_BUILTIN_MAP) if (string1_container == ECMA_STRING_CONTAINER_MAP_KEY) diff --git a/jerry-core/ecma/base/ecma-helpers-value.c b/jerry-core/ecma/base/ecma-helpers-value.c index 90373327b..f42ae6ba9 100644 --- a/jerry-core/ecma/base/ecma-helpers-value.c +++ b/jerry-core/ecma/base/ecma-helpers-value.c @@ -311,7 +311,7 @@ ecma_is_value_string (ecma_value_t value) /**< ecma value */ return ((value & (ECMA_VALUE_TYPE_MASK - 0x4)) == ECMA_TYPE_STRING); } /* ecma_is_value_string */ -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /** * Check if the value is symbol. * @@ -323,7 +323,7 @@ ecma_is_value_symbol (ecma_value_t value) /**< ecma value */ { return (ecma_get_value_type_field (value) == ECMA_TYPE_SYMBOL); } /* ecma_is_value_symbol */ -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * Check if the value can be property name. @@ -334,11 +334,11 @@ ecma_is_value_symbol (ecma_value_t value) /**< ecma value */ inline bool JERRY_ATTR_CONST JERRY_ATTR_ALWAYS_INLINE ecma_is_value_prop_name (ecma_value_t value) /**< ecma value */ { -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) return ecma_is_value_string (value) || ecma_is_value_symbol (value); -#else /* !ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#else /* !ENABLED (JERRY_ES2015) */ return ecma_is_value_string (value); -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ } /* ecma_is_value_prop_name */ /** @@ -547,9 +547,9 @@ inline ecma_value_t JERRY_ATTR_PURE JERRY_ATTR_ALWAYS_INLINE ecma_make_string_value (const ecma_string_t *ecma_string_p) /**< string to reference in value */ { JERRY_ASSERT (ecma_string_p != NULL); -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) JERRY_ASSERT (!ecma_prop_name_is_symbol ((ecma_string_t *) ecma_string_p)); -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ if ((((uintptr_t) ecma_string_p) & ECMA_VALUE_TYPE_MASK) != 0) { @@ -559,7 +559,7 @@ ecma_make_string_value (const ecma_string_t *ecma_string_p) /**< string to refer return ecma_pointer_to_ecma_value (ecma_string_p) | ECMA_TYPE_STRING; } /* ecma_make_string_value */ -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /** * Symbol value constructor * @@ -573,7 +573,7 @@ ecma_make_symbol_value (const ecma_string_t *ecma_symbol_p) /**< symbol to refer return ecma_pointer_to_ecma_value (ecma_symbol_p) | ECMA_TYPE_SYMBOL; } /* ecma_make_symbol_value */ -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * Property-name value constructor @@ -585,12 +585,12 @@ ecma_make_prop_name_value (const ecma_string_t *ecma_prop_name_p) /**< property { JERRY_ASSERT (ecma_prop_name_p != NULL); -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) if (ecma_prop_name_is_symbol ((ecma_string_t *) ecma_prop_name_p)) { return ecma_make_symbol_value (ecma_prop_name_p); } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ return ecma_make_string_value (ecma_prop_name_p); } /* ecma_make_prop_name_value */ @@ -705,7 +705,7 @@ ecma_get_string_from_value (ecma_value_t value) /**< ecma value */ return (ecma_string_t *) ecma_get_pointer_from_ecma_value (value); } /* ecma_get_string_from_value */ -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /** * Get pointer to ecma-string from ecma value * @@ -718,7 +718,7 @@ ecma_get_symbol_from_value (ecma_value_t value) /**< ecma value */ return (ecma_string_t *) ecma_get_pointer_from_ecma_value (value); } /* ecma_get_symbol_from_value */ -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * Get pointer to a property name from ecma value @@ -798,13 +798,13 @@ ecma_copy_value (ecma_value_t value) /**< value description */ ecma_ref_ecma_string (ecma_get_string_from_value (value)); return value; } -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) case ECMA_TYPE_SYMBOL: { ecma_ref_ecma_string (ecma_get_symbol_from_value (value)); return value; } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ case ECMA_TYPE_OBJECT: { ecma_ref_object (ecma_get_object_from_value (value)); @@ -995,13 +995,13 @@ ecma_free_value (ecma_value_t value) /**< value description */ ecma_deref_ecma_string (string_p); break; } -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) case ECMA_TYPE_SYMBOL: { ecma_deref_ecma_string (ecma_get_symbol_from_value (value)); break; } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ case ECMA_TYPE_OBJECT: { ecma_deref_object (ecma_get_object_from_value (value)); @@ -1101,12 +1101,12 @@ ecma_get_typeof_lit_id (ecma_value_t value) /**< input ecma value */ { ret_value = LIT_MAGIC_STRING_STRING; } -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) else if (ecma_is_value_symbol (value)) { ret_value = LIT_MAGIC_STRING_SYMBOL; } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ else { JERRY_ASSERT (ecma_is_value_object (value)); diff --git a/jerry-core/ecma/base/ecma-helpers.c b/jerry-core/ecma/base/ecma-helpers.c index 2d5470738..15fcca8f6 100644 --- a/jerry-core/ecma/base/ecma-helpers.c +++ b/jerry-core/ecma/base/ecma-helpers.c @@ -138,12 +138,12 @@ ecma_create_object_lex_env (ecma_object_t *outer_lexical_environment_p, /**< out ecma_object_t *binding_obj_p, /**< binding object */ ecma_lexical_environment_type_t type) /**< type of the new lexical environment */ { -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) JERRY_ASSERT (type == ECMA_LEXICAL_ENVIRONMENT_THIS_OBJECT_BOUND || type == ECMA_LEXICAL_ENVIRONMENT_SUPER_OBJECT_BOUND); -#else /* !ENABLED (JERRY_ES2015_CLASS) */ +#else /* !ENABLED (JERRY_ES2015) */ JERRY_ASSERT (type == ECMA_LEXICAL_ENVIRONMENT_THIS_OBJECT_BOUND); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ JERRY_ASSERT (binding_obj_p != NULL && !ecma_is_lexical_environment (binding_obj_p)); @@ -308,12 +308,12 @@ ecma_get_lex_env_binding_object (const ecma_object_t *object_p) /**< object-boun { JERRY_ASSERT (object_p != NULL); JERRY_ASSERT (ecma_is_lexical_environment (object_p)); -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) JERRY_ASSERT (ecma_get_lex_env_type (object_p) == ECMA_LEXICAL_ENVIRONMENT_THIS_OBJECT_BOUND || ecma_get_lex_env_type (object_p) == ECMA_LEXICAL_ENVIRONMENT_SUPER_OBJECT_BOUND); -#else /* !ENABLED (JERRY_ES2015_CLASS) */ +#else /* !ENABLED (JERRY_ES2015) */ JERRY_ASSERT (ecma_get_lex_env_type (object_p) == ECMA_LEXICAL_ENVIRONMENT_THIS_OBJECT_BOUND); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ return ECMA_GET_NON_NULL_POINTER (ecma_object_t, object_p->u1.bound_object_cp); } /* ecma_get_lex_env_binding_object */ diff --git a/jerry-core/ecma/base/ecma-helpers.h b/jerry-core/ecma/base/ecma-helpers.h index a4fbde471..3b87521fb 100644 --- a/jerry-core/ecma/base/ecma-helpers.h +++ b/jerry-core/ecma/base/ecma-helpers.h @@ -147,17 +147,17 @@ typedef enum */ #define ECMA_BOOL_TO_BITFIELD(x) ((x) ? 1 : 0) -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /** * JERRY_ASSERT compatible macro for checking whether the given ecma-value is symbol */ #define ECMA_ASSERT_VALUE_IS_SYMBOL(value) (ecma_is_value_symbol ((value))) -#else /* !ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#else /* !ENABLED (JERRY_ES2015) */ /** * JERRY_ASSERT compatible macro for checking whether the given ecma-value is symbol */ #define ECMA_ASSERT_VALUE_IS_SYMBOL(value) (false) -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ /* ecma-helpers-value.c */ bool JERRY_ATTR_CONST ecma_is_value_direct (ecma_value_t value); @@ -176,9 +176,9 @@ bool JERRY_ATTR_CONST ecma_are_values_integer_numbers (ecma_value_t first_value, bool JERRY_ATTR_CONST ecma_is_value_float_number (ecma_value_t value); bool JERRY_ATTR_CONST ecma_is_value_number (ecma_value_t value); bool JERRY_ATTR_CONST ecma_is_value_string (ecma_value_t value); -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) bool JERRY_ATTR_CONST ecma_is_value_symbol (ecma_value_t value); -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ bool JERRY_ATTR_CONST ecma_is_value_prop_name (ecma_value_t value); bool JERRY_ATTR_CONST ecma_is_value_direct_string (ecma_value_t value); bool JERRY_ATTR_CONST ecma_is_value_non_direct_string (ecma_value_t value); @@ -195,9 +195,9 @@ ecma_value_t ecma_make_number_value (ecma_number_t ecma_number); ecma_value_t ecma_make_int32_value (int32_t int32_number); ecma_value_t ecma_make_uint32_value (uint32_t uint32_number); ecma_value_t JERRY_ATTR_PURE ecma_make_string_value (const ecma_string_t *ecma_string_p); -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) ecma_value_t JERRY_ATTR_PURE ecma_make_symbol_value (const ecma_string_t *ecma_symbol_p); -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ ecma_value_t JERRY_ATTR_PURE ecma_make_prop_name_value (const ecma_string_t *ecma_prop_name_p); ecma_value_t JERRY_ATTR_PURE ecma_make_magic_string_value (lit_magic_string_id_t id); ecma_value_t JERRY_ATTR_PURE ecma_make_object_value (const ecma_object_t *object_p); @@ -207,9 +207,9 @@ ecma_number_t JERRY_ATTR_PURE ecma_get_float_from_value (ecma_value_t value); ecma_number_t * ecma_get_pointer_from_float_value (ecma_value_t value); ecma_number_t JERRY_ATTR_PURE ecma_get_number_from_value (ecma_value_t value); ecma_string_t JERRY_ATTR_PURE *ecma_get_string_from_value (ecma_value_t value); -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) ecma_string_t JERRY_ATTR_PURE *ecma_get_symbol_from_value (ecma_value_t value); -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ ecma_string_t JERRY_ATTR_PURE *ecma_get_prop_name_from_value (ecma_value_t value); ecma_object_t JERRY_ATTR_PURE *ecma_get_object_from_value (ecma_value_t value); ecma_error_reference_t JERRY_ATTR_PURE *ecma_get_error_reference_from_value (ecma_value_t value); @@ -227,10 +227,10 @@ void ecma_free_number (ecma_value_t value); lit_magic_string_id_t ecma_get_typeof_lit_id (ecma_value_t value); /* ecma-helpers-string.c */ -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) ecma_string_t *ecma_new_symbol_from_descriptor_string (ecma_value_t string_desc); bool ecma_prop_name_is_symbol (ecma_string_t *string_p); -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ #if ENABLED (JERRY_ES2015_BUILTIN_MAP) || ENABLED (JERRY_ES2015_BUILTIN_SET) ecma_string_t *ecma_new_map_key_string (ecma_value_t value); bool ecma_prop_name_is_map_key (ecma_string_t *string_p); diff --git a/jerry-core/ecma/base/ecma-literal-storage.c b/jerry-core/ecma/base/ecma-literal-storage.c index 83ac43b27..305f80ec0 100644 --- a/jerry-core/ecma/base/ecma-literal-storage.c +++ b/jerry-core/ecma/base/ecma-literal-storage.c @@ -25,7 +25,7 @@ * @{ */ -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /** * Free symbol list */ @@ -53,7 +53,7 @@ ecma_free_symbol_list (jmem_cpointer_t symbol_list_cp) /**< symbol list */ symbol_list_cp = next_item_cp; } } /* ecma_free_symbol_list */ -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * Free string list @@ -115,9 +115,9 @@ ecma_free_number_list (jmem_cpointer_t number_list_cp) /**< string list */ void ecma_finalize_lit_storage (void) { -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) ecma_free_symbol_list (JERRY_CONTEXT (symbol_list_first_cp)); -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ ecma_free_string_list (JERRY_CONTEXT (string_list_first_cp)); ecma_free_number_list (JERRY_CONTEXT (number_list_first_cp)); } /* ecma_finalize_lit_storage */ 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 ab3c17464..c678d7640 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 @@ -20,10 +20,6 @@ #if ENABLED (JERRY_ES2015_BUILTIN_ITERATOR) -#if !ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) -#error "Iterator builtin requires ES2015 symbol builtin" -#endif /* !ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" 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 0117e4614..6f5bcaf34 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype.c @@ -224,17 +224,17 @@ ecma_builtin_array_prototype_object_concat (const ecma_value_t args[], /**< argu ecma_object_t *obj_p) /**< array object */ { /* 2. */ -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) ecma_value_t new_array = ecma_op_create_array_object_by_constructor (NULL, 0, false, obj_p); if (ECMA_IS_VALUE_ERROR (new_array)) { return new_array; } -#else /* !ENABLED (JERRY_ES2015_CLASS) */ +#else /* !ENABLED (JERRY_ES2015) */ ecma_value_t new_array = ecma_op_create_array_object (NULL, 0, false); JERRY_ASSERT (!ECMA_IS_VALUE_ERROR (new_array)); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ ecma_object_t *new_array_p = ecma_get_object_from_value (new_array); uint32_t new_length = 0; @@ -800,17 +800,17 @@ ecma_builtin_array_prototype_object_slice (ecma_value_t arg1, /**< start */ JERRY_ASSERT (start <= len && end <= len); -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) ecma_value_t new_array = ecma_op_create_array_object_by_constructor (NULL, 0, false, obj_p); if (ECMA_IS_VALUE_ERROR (new_array)) { return new_array; } -#else /* !ENABLED (JERRY_ES2015_CLASS) */ +#else /* !ENABLED (JERRY_ES2015) */ ecma_value_t new_array = ecma_op_create_array_object (NULL, 0, false); JERRY_ASSERT (!ECMA_IS_VALUE_ERROR (new_array)); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ ecma_object_t *new_array_p = ecma_get_object_from_value (new_array); @@ -1120,17 +1120,17 @@ ecma_builtin_array_prototype_object_splice (const ecma_value_t args[], /**< argu ecma_object_t *obj_p, /**< array object */ uint32_t len) /**< array object's length */ { -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) ecma_value_t new_array = ecma_op_create_array_object_by_constructor (NULL, 0, false, obj_p); if (ECMA_IS_VALUE_ERROR (new_array)) { return new_array; } -#else /* !ENABLED (JERRY_ES2015_CLASS) */ +#else /* !ENABLED (JERRY_ES2015) */ ecma_value_t new_array = ecma_op_create_array_object (NULL, 0, false); JERRY_ASSERT (!ECMA_IS_VALUE_ERROR (new_array)); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ ecma_object_t *new_array_p = ecma_get_object_from_value (new_array); @@ -1674,17 +1674,17 @@ ecma_builtin_array_prototype_object_map (ecma_value_t arg1, /**< callbackfn */ } /* 6. */ -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) ecma_value_t new_array = ecma_op_create_array_object_by_constructor (NULL, 0, false, obj_p); if (ECMA_IS_VALUE_ERROR (new_array)) { return new_array; } -#else /* !ENABLED (JERRY_ES2015_CLASS) */ +#else /* !ENABLED (JERRY_ES2015) */ ecma_value_t new_array = ecma_op_create_array_object (NULL, 0, false); JERRY_ASSERT (!ECMA_IS_VALUE_ERROR (new_array)); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ ecma_object_t *new_array_p = ecma_get_object_from_value (new_array); @@ -1767,17 +1767,17 @@ ecma_builtin_array_prototype_object_filter (ecma_value_t arg1, /**< callbackfn * } /* 6. */ -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) ecma_value_t new_array = ecma_op_create_array_object_by_constructor (NULL, 0, false, obj_p); if (ECMA_IS_VALUE_ERROR (new_array)) { return new_array; } -#else /* !ENABLED (JERRY_ES2015_CLASS) */ +#else /* !ENABLED (JERRY_ES2015) */ ecma_value_t new_array = ecma_op_create_array_object (NULL, 0, false); JERRY_ASSERT (!ECMA_IS_VALUE_ERROR (new_array)); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ ecma_object_t *new_array_p = ecma_get_object_from_value (new_array); 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 852e356ef..20fd26eb2 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 @@ -33,12 +33,12 @@ ACCESSOR_READ_ONLY (LIT_MAGIC_STRING_BYTE_LENGTH_UL, ecma_builtin_arraybuffer_prototype_bytelength_getter, ECMA_PROPERTY_FIXED) -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /* ECMA-262 v6, 24.1.4.4 */ STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, LIT_MAGIC_STRING_ARRAY_BUFFER_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-dataview-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-dataview-prototype.inc.h index 3dd9efde1..0e7866457 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-dataview-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-dataview-prototype.inc.h @@ -29,12 +29,12 @@ OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR, ECMA_BUILTIN_ID_DATAVIEW, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /* ECMA-262 v6, 23.2.4.21 */ STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, LIT_MAGIC_STRING_DATAVIEW_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-global.c b/jerry-core/ecma/builtin-objects/ecma-builtin-global.c index 0b8ef2833..027dd2073 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-global.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-global.c @@ -100,12 +100,12 @@ ecma_builtin_global_object_eval (ecma_value_t x) /**< routine's first argument * parse_opts |= ECMA_PARSE_STRICT_MODE; } -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if (vm_is_direct_eval_form_call ()) { parse_opts |= ECMA_GET_SUPER_EVAL_PARSER_OPTS (); } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ /* steps 2 to 8 */ return ecma_op_eval (ecma_get_string_from_value (x), parse_opts); diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-global.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-global.inc.h index 03170f3a2..8ad00c038 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-global.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-global.inc.h @@ -219,12 +219,12 @@ OBJECT_VALUE (LIT_MAGIC_STRING_SET_UL, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) #endif /* ENABLED (JERRY_ES2015_BUILTIN_SET) */ -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /* ECMA-262 v6, 19.4.1.1 */ OBJECT_VALUE (LIT_MAGIC_STRING_SYMBOL_UL, ECMA_BUILTIN_ID_SYMBOL, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ #if ENABLED (JERRY_ES2015_BUILTIN_DATAVIEW) /* ECMA-262 v6, 23.1.1.1 */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-macro-defines.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-macro-defines.inc.h index ce51a3805..88f0d582f 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-macro-defines.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-macro-defines.inc.h @@ -25,11 +25,11 @@ #define STRING_VALUE(name, magic_string_id, prop_attributes) #endif /* !STRING_VALUE */ -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) #ifndef SYMBOL_VALUE #define SYMBOL_VALUE(name, desc_string_id) #endif /* !SYMBOL_VALUE */ -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ #ifndef OBJECT_VALUE #define OBJECT_VALUE(name, obj_builtin_id, prop_attributes) diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-macro-undefs.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-macro-undefs.inc.h index 7ba34e36f..1810c6743 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-macro-undefs.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-macro-undefs.inc.h @@ -16,9 +16,9 @@ #undef SIMPLE_VALUE #undef NUMBER_VALUE #undef STRING_VALUE -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) #undef SYMBOL_VALUE -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ #undef OBJECT_VALUE #undef ROUTINE #undef ROUTINE_CONFIGURABLE_ONLY diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-helpers.c b/jerry-core/ecma/builtin-objects/ecma-builtin-helpers.c index 6cf9262be..b544971f9 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-helpers.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-helpers.c @@ -35,7 +35,7 @@ * @{ */ -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /** * Helper function for Object.prototype.toString routine when * the @@toStringTag property is present @@ -96,7 +96,7 @@ ecma_builtin_helper_object_to_string_tag_helper (ecma_value_t tag_value) /**< st return ecma_make_string_value (ret_string_p); } /* ecma_builtin_helper_object_to_string_tag_helper */ -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * Common implementation of the Object.prototype.toString routine @@ -140,7 +140,7 @@ ecma_builtin_helper_object_to_string (const ecma_value_t this_arg) /**< this arg type_string = ecma_object_get_class_name (obj_p); -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) ecma_value_t tag_value = ecma_op_object_get_by_symbol_id (obj_p, LIT_MAGIC_STRING_TO_STRING_TAG); if (ECMA_IS_VALUE_ERROR (tag_value)) @@ -156,7 +156,7 @@ ecma_builtin_helper_object_to_string (const ecma_value_t this_arg) /**< this arg } ecma_free_value (tag_value); -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ ecma_deref_object (obj_p); } 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 ab8ec8029..1efe72fef 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 @@ -174,7 +174,7 @@ const ecma_builtin_property_descriptor_t PROPERTY_DESCRIPTOR_LIST_NAME[] = prop_attributes, \ magic_string_id \ }, -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) #define SYMBOL_VALUE(name, desc_string_id) \ { \ name, \ @@ -182,7 +182,7 @@ const ecma_builtin_property_descriptor_t PROPERTY_DESCRIPTOR_LIST_NAME[] = ECMA_PROPERTY_FIXED, \ desc_string_id \ }, -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ #define ACCESSOR_READ_WRITE(name, c_getter_name, c_setter_name, prop_attributes) \ { \ name, \ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-json.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-json.inc.h index 11446b832..bc1a21e1d 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-json.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-json.inc.h @@ -21,12 +21,12 @@ #if ENABLED (JERRY_BUILTIN_JSON) -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /* ECMA-262 v6, 24.3.3 */ STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, LIT_MAGIC_STRING_JSON_U, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ 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 aea9071bb..b2e893210 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 @@ -19,10 +19,6 @@ #if ENABLED (JERRY_ES2015_BUILTIN_MAP) -#if !ENABLED (JERRY_ES2015_BUILTIN_ITERATOR) -#error "Map iterator builtin requires ES2015 iterator builtin" -#endif /* !ENABLED (JERRY_ES2015_BUILTIN_ITERATOR) */ - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-map-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-map-prototype.inc.h index c7d7bc7cb..9d8fe0dcd 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-map-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-map-prototype.inc.h @@ -29,12 +29,12 @@ OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR, ECMA_BUILTIN_ID_MAP, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /* ECMA-262 v6, 23.1.3.13 */ STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, LIT_MAGIC_STRING_MAP_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-math.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-math.inc.h index f889b5477..73be98512 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-math.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-math.inc.h @@ -64,12 +64,12 @@ NUMBER_VALUE (LIT_MAGIC_STRING_SQRT2_U, ECMA_BUILTIN_NUMBER_SQRT2, ECMA_PROPERTY_FIXED) -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /* ECMA-262 v6, 20.2.1.9 */ STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, LIT_MAGIC_STRING_MATH_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-object.c b/jerry-core/ecma/builtin-objects/ecma-builtin-object.c index bf12b61fb..293871a5c 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-object.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-object.c @@ -293,7 +293,7 @@ ecma_builtin_object_object_get_own_property_names (ecma_object_t *obj_p) /**< ro return ecma_builtin_helper_object_get_properties (obj_p, ECMA_LIST_NO_OPTS); } /* ecma_builtin_object_object_get_own_property_names */ -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /** * The Object object's 'getOwnPropertySymbols' routine * @@ -308,7 +308,7 @@ ecma_builtin_object_object_get_own_property_symbols (ecma_object_t *obj_p) /**< { return ecma_builtin_helper_object_get_properties (obj_p, ECMA_LIST_SYMBOLS); } /* ecma_builtin_object_object_get_own_property_symbols */ -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * The Object object's 'seal' routine @@ -984,12 +984,12 @@ ecma_builtin_object_dispatch_routine (uint16_t builtin_routine_id, /**< built-in { return ecma_builtin_object_object_get_own_property_names (obj_p); } -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) case ECMA_OBJECT_ROUTINE_GET_OWN_PROPERTY_SYMBOLS: { return ecma_builtin_object_object_get_own_property_symbols (obj_p); } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ case ECMA_OBJECT_ROUTINE_KEYS: { return ecma_builtin_object_object_keys (obj_p); diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-object.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-object.inc.h index 457a28233..703d2f984 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-object.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-object.inc.h @@ -39,9 +39,9 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ ROUTINE (LIT_MAGIC_STRING_GET_PROTOTYPE_OF_UL, ECMA_OBJECT_ROUTINE_GET_PROTOTYPE_OF, 1, 1) ROUTINE (LIT_MAGIC_STRING_GET_OWN_PROPERTY_NAMES_UL, ECMA_OBJECT_ROUTINE_GET_OWN_PROPERTY_NAMES, 1, 1) -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) ROUTINE (LIT_MAGIC_STRING_GET_OWN_PROPERTY_SYMBOLS_UL, ECMA_OBJECT_ROUTINE_GET_OWN_PROPERTY_SYMBOLS, 1, 1) -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ ROUTINE (LIT_MAGIC_STRING_SEAL, ECMA_OBJECT_ROUTINE_SEAL, 1, 1) ROUTINE (LIT_MAGIC_STRING_FREEZE, ECMA_OBJECT_ROUTINE_FREEZE, 1, 1) ROUTINE (LIT_MAGIC_STRING_PREVENT_EXTENSIONS_UL, ECMA_OBJECT_ROUTINE_PREVENT_EXTENSIONS, 1, 1) diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-promise-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-promise-prototype.inc.h index 872fab5da..e4190984e 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-promise-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-promise-prototype.inc.h @@ -28,12 +28,12 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, ECMA_PROPERTY_FLAG_WRITABLE) -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /* ECMA-262 v6, 25.4.5.4 */ STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, LIT_MAGIC_STRING_PROMISE_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ ROUTINE (LIT_MAGIC_STRING_THEN, ecma_builtin_promise_prototype_then, 2, 2) ROUTINE (LIT_MAGIC_STRING_CATCH, ecma_builtin_promise_prototype_catch, 1, 1) 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 6a0f5d141..b629771b2 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 @@ -19,10 +19,6 @@ #if ENABLED (JERRY_ES2015_BUILTIN_SET) -#if !ENABLED (JERRY_ES2015_BUILTIN_ITERATOR) -#error "Set iterator builtin requires ES2015 iterator builtin" -#endif /* !ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-set-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-set-prototype.inc.h index a0356127a..271c64253 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-set-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-set-prototype.inc.h @@ -29,12 +29,12 @@ OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR, ECMA_BUILTIN_ID_SET, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /* ECMA-262 v6, 23.1.3.13 */ STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, LIT_MAGIC_STRING_SET_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ 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 d2bab9cef..da4f93ff4 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 @@ -19,10 +19,6 @@ #if ENABLED (JERRY_ES2015_BUILTIN_ITERATOR) -#if !ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) -#error "Iterator builtin requires ES2015 symbol builtin" -#endif /* !ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-string.c b/jerry-core/ecma/builtin-objects/ecma-builtin-string.c index ddb5da9ff..901b0a119 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-string.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-string.c @@ -22,9 +22,9 @@ #include "ecma-helpers.h" #include "ecma-objects.h" #include "ecma-string-object.h" -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) #include "ecma-symbol-object.h" -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ #include "ecma-try-catch-macro.h" #include "jrt.h" @@ -130,13 +130,13 @@ ecma_builtin_string_dispatch_call (const ecma_value_t *arguments_list_p, /**< ar { ret_value = ecma_make_magic_string_value (LIT_MAGIC_STRING__EMPTY); } -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /* 2.a */ else if (ecma_is_value_symbol (arguments_list_p[0])) { ret_value = ecma_get_symbol_descriptive_string (arguments_list_p[0]); } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ /* 2.b */ else { 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 5dfd259c7..6ed001634 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-symbol-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-symbol-prototype.c @@ -25,7 +25,7 @@ #include "ecma-try-catch-macro.h" #include "jrt.h" -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" @@ -95,4 +95,4 @@ ecma_builtin_symbol_prototype_object_to_primitive (ecma_value_t this_arg) /**< t * @} */ -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-symbol-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-symbol-prototype.inc.h index 8301f78b8..9fe804a6a 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-symbol-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-symbol-prototype.inc.h @@ -19,7 +19,7 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /* Object properties: * (property name, object pointer getter) */ @@ -44,6 +44,6 @@ STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, LIT_MAGIC_STRING_SYMBOL_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.c b/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.c index 68c28cf81..446a184cd 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.c @@ -27,7 +27,7 @@ #include "jcontext.h" #include "jrt.h" -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" @@ -243,4 +243,4 @@ ecma_builtin_symbol_key_for (ecma_value_t this_arg, /**< this argument */ * @} */ -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ 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 b9a33ffde..2628ec058 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.inc.h @@ -19,7 +19,7 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /* Number properties: * (property name, number value, writable, enumerable, configurable) */ @@ -86,6 +86,6 @@ SYMBOL_VALUE (LIT_MAGIC_STRING_UNSCOPABLES, 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 /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtins-internal.h b/jerry-core/ecma/builtin-objects/ecma-builtins-internal.h index c82672bd9..aaa842caa 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtins-internal.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtins-internal.h @@ -31,9 +31,9 @@ typedef enum ECMA_BUILTIN_PROPERTY_SIMPLE, /**< simple value property */ ECMA_BUILTIN_PROPERTY_NUMBER, /**< number value property */ ECMA_BUILTIN_PROPERTY_STRING, /**< string value property */ -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) ECMA_BUILTIN_PROPERTY_SYMBOL, /**< symbol value property */ -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ ECMA_BUILTIN_PROPERTY_OBJECT, /**< builtin object property */ ECMA_BUILTIN_PROPERTY_ROUTINE, /**< routine property */ ECMA_BUILTIN_PROPERTY_ACCESSOR_READ_WRITE, /**< full accessor property */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtins.c b/jerry-core/ecma/builtin-objects/ecma-builtins.c index 00927a53b..809812505 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtins.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtins.c @@ -658,7 +658,7 @@ ecma_builtin_try_to_instantiate_property (ecma_object_t *object_p, /**< object * lit_magic_string_id_t magic_string_id = ecma_get_string_magic (string_p); -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) if (JERRY_UNLIKELY (ecma_prop_name_is_symbol (string_p))) { if (string_p->u.hash & ECMA_GLOBAL_SYMBOL_FLAG) @@ -666,7 +666,7 @@ ecma_builtin_try_to_instantiate_property (ecma_object_t *object_p, /**< object * magic_string_id = (string_p->u.hash >> ECMA_GLOBAL_SYMBOL_SHIFT); } } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ if (magic_string_id == LIT_MAGIC_STRING__COUNT) { @@ -791,7 +791,7 @@ ecma_builtin_try_to_instantiate_property (ecma_object_t *object_p, /**< object * value = ecma_make_magic_string_value ((lit_magic_string_id_t) curr_property_p->value); break; } -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) case ECMA_BUILTIN_PROPERTY_SYMBOL: { lit_magic_string_id_t symbol_desc_id = (lit_magic_string_id_t) curr_property_p->magic_string_id; @@ -809,7 +809,7 @@ ecma_builtin_try_to_instantiate_property (ecma_object_t *object_p, /**< object * value = ecma_make_symbol_value (symbol_p); break; } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ case ECMA_BUILTIN_PROPERTY_OBJECT: { ecma_object_t *builtin_object_p = ecma_builtin_get ((ecma_builtin_id_t) curr_property_p->value); @@ -950,14 +950,14 @@ ecma_builtin_list_lazy_property_names (ecma_object_t *object_p, /**< a built-in index = 0; } -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /* Builtin symbol properties are internal magic strings which must not be listed */ if (curr_property_p->magic_string_id > LIT_NON_INTERNAL_MAGIC_STRING__COUNT) { curr_property_p++; continue; } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ ecma_string_t *name_p = ecma_get_magic_string ((lit_magic_string_id_t) curr_property_p->magic_string_id); diff --git a/jerry-core/ecma/builtin-objects/ecma-builtins.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtins.inc.h index d9f73293b..0ee7f21e8 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtins.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtins.inc.h @@ -472,7 +472,7 @@ BUILTIN_ROUTINE (ECMA_BUILTIN_ID_SET, #endif /* ENABLED (JERRY_ES2015_BUILTIN_SET) */ -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /* The Symbol prototype object (ECMA-262 v6, 19.4.2.7) */ BUILTIN (ECMA_BUILTIN_ID_SYMBOL_PROTOTYPE, @@ -488,7 +488,7 @@ BUILTIN_ROUTINE (ECMA_BUILTIN_ID_SYMBOL, true, symbol) -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ #if ENABLED (JERRY_ES2015_BUILTIN_ITERATOR) /* The %IteratorPrototype% object (ECMA-262 v6, 25.1.2) */ BUILTIN (ECMA_BUILTIN_ID_ITERATOR_PROTOTYPE, 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 e5e13c1b3..74fea2da6 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 @@ -147,7 +147,7 @@ ecma_builtin_typedarray_prototype_length_getter (ecma_value_t this_arg) /**< thi return ecma_raise_type_error (ECMA_ERR_MSG ("Argument 'this' is not a TypedArray.")); } /* ecma_builtin_typedarray_prototype_length_getter */ -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /** * The %TypedArray%.prototype[Symbol.toStringTag] accessor * @@ -167,7 +167,7 @@ ecma_builtin_typedarray_prototype_to_string_tag_getter (ecma_value_t this_arg) / return ecma_make_magic_string_value (ecma_object_get_class_name (ecma_get_object_from_value (this_arg))); } /* ecma_builtin_typedarray_prototype_to_string_tag_getter */ -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * Type of routine. diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray-prototype.inc.h b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray-prototype.inc.h index 7ca5b43af..7bc02dcc0 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray-prototype.inc.h @@ -45,12 +45,12 @@ ACCESSOR_READ_ONLY (LIT_MAGIC_STRING_LENGTH, ecma_builtin_typedarray_prototype_length_getter, ECMA_PROPERTY_FIXED) -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /* ECMA-262 v6, 23.1.3.13 */ ACCESSOR_READ_ONLY (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, ecma_builtin_typedarray_prototype_to_string_tag_getter, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ diff --git a/jerry-core/ecma/operations/ecma-array-object.c b/jerry-core/ecma/operations/ecma-array-object.c index cc6b57cf5..439fbefe1 100644 --- a/jerry-core/ecma/operations/ecma-array-object.c +++ b/jerry-core/ecma/operations/ecma-array-object.c @@ -505,12 +505,12 @@ ecma_fast_array_get_property_names (ecma_object_t *object_p, /**< fast access mo ecma_collection_t *ret_p = ecma_new_collection (); -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) if (opts & ECMA_LIST_SYMBOLS) { return ret_p; } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ uint32_t length = ext_obj_p->u.array.length; @@ -649,7 +649,7 @@ ecma_op_create_array_object (const ecma_value_t *arguments_list_p, /**< list of return ecma_make_object_value (object_p); } /* ecma_op_create_array_object */ -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) /** * Array object creation with custom prototype. * @@ -680,7 +680,7 @@ ecma_op_create_array_object_by_constructor (const ecma_value_t *arguments_list_p arguments_list_len, is_treat_single_arg_as_length); } /* ecma_op_create_array_object_by_constructor */ -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * Low level delete of array items from new_length to old_length diff --git a/jerry-core/ecma/operations/ecma-array-object.h b/jerry-core/ecma/operations/ecma-array-object.h index 8a89e5e2b..a718d2a27 100644 --- a/jerry-core/ecma/operations/ecma-array-object.h +++ b/jerry-core/ecma/operations/ecma-array-object.h @@ -75,11 +75,11 @@ ecma_value_t ecma_op_create_array_object (const ecma_value_t *arguments_list_p, ecma_length_t arguments_list_len, bool is_treat_single_arg_as_length); -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) ecma_value_t ecma_op_create_array_object_by_constructor (const ecma_value_t *arguments_list_p, ecma_length_t arguments_list_len, bool is_treat_single_arg_as_length, ecma_object_t *object_p); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ ecma_value_t ecma_op_array_object_set_length (ecma_object_t *object_p, ecma_value_t new_value, uint32_t flags); diff --git a/jerry-core/ecma/operations/ecma-comparison.c b/jerry-core/ecma/operations/ecma-comparison.c index 886a60048..04d367d3a 100644 --- a/jerry-core/ecma/operations/ecma-comparison.c +++ b/jerry-core/ecma/operations/ecma-comparison.c @@ -130,12 +130,12 @@ ecma_op_abstract_equality_compare (ecma_value_t x, /**< first operand */ y = tmp; } -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) if (ecma_is_value_symbol (x)) { return ECMA_VALUE_FALSE; } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ if (ecma_is_value_boolean (y)) { @@ -153,9 +153,9 @@ ecma_op_abstract_equality_compare (ecma_value_t x, /**< first operand */ if (ecma_is_value_object (x)) { if (ecma_is_value_string (y) -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) || ecma_is_value_symbol (y) -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ || ecma_is_value_number (y)) { /* 9. */ @@ -210,10 +210,10 @@ ecma_op_strict_equality_compare (ecma_value_t x, /**< first operand */ { if (ecma_is_value_direct (x) || ecma_is_value_direct (y) -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) || ecma_is_value_symbol (x) || ecma_is_value_symbol (y) -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ || ecma_is_value_object (x) || ecma_is_value_object (y)) { diff --git a/jerry-core/ecma/operations/ecma-container-object.c b/jerry-core/ecma/operations/ecma-container-object.c index 3c60dcb6f..49b75159b 100644 --- a/jerry-core/ecma/operations/ecma-container-object.c +++ b/jerry-core/ecma/operations/ecma-container-object.c @@ -63,7 +63,7 @@ ecma_op_container_create (const ecma_value_t *arguments_list_p, /**< arguments l ecma_value_t set_value = ecma_make_object_value (object_p); -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) if (arguments_list_len == 0) { return set_value; @@ -176,7 +176,7 @@ ecma_op_container_create (const ecma_value_t *arguments_list_p, /**< arguments l ecma_free_value (iter); -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ return set_value; } /* ecma_op_container_create */ diff --git a/jerry-core/ecma/operations/ecma-conversion.c b/jerry-core/ecma/operations/ecma-conversion.c index c528a9254..345d45362 100644 --- a/jerry-core/ecma/operations/ecma-conversion.c +++ b/jerry-core/ecma/operations/ecma-conversion.c @@ -150,12 +150,12 @@ ecma_op_same_value (ecma_value_t x, /**< ecma value */ { return (ecma_is_value_true (x) == ecma_is_value_true (y)); } -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) else if (ecma_is_value_symbol (x)) { return x == y; } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ else { JERRY_ASSERT (is_x_object); @@ -315,12 +315,12 @@ ecma_op_to_number (ecma_value_t value) /**< ecma value */ ecma_string_t *str_p = ecma_get_string_from_value (value); return ecma_make_number_value (ecma_string_to_number (str_p)); } -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) if (ecma_is_value_symbol (value)) { return ecma_raise_type_error (ECMA_ERR_MSG ("Cannot convert a Symbol value to a number.")); } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ if (ecma_is_value_object (value)) { @@ -416,12 +416,12 @@ ecma_get_number (ecma_value_t value, /**< ecma value*/ return ECMA_VALUE_EMPTY; } -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) if (ecma_is_value_symbol (value)) { return ecma_raise_type_error (ECMA_ERR_MSG ("Cannot convert a Symbol value to a number.")); } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ JERRY_ASSERT (ecma_is_value_boolean (value)); @@ -491,13 +491,13 @@ ecma_to_op_string_helper (ecma_value_t value) /**< ecma value */ { return ecma_get_magic_string (LIT_MAGIC_STRING_NULL); } -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) else if (ecma_is_value_symbol (value)) { ecma_raise_type_error (ECMA_ERR_MSG ("Cannot convert a Symbol value to a string.")); return NULL; } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ JERRY_ASSERT (ecma_is_value_boolean (value)); if (ecma_is_value_true (value)) @@ -544,14 +544,14 @@ ecma_op_to_prop_name (ecma_value_t value) /**< ecma value */ { ecma_check_value_type_is_spec_defined (value); -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) if (ecma_is_value_symbol (value)) { ecma_string_t *symbol_p = ecma_get_symbol_from_value (value); ecma_ref_ecma_string (symbol_p); return symbol_p; } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ return ecma_to_op_string_helper (value); } /* ecma_op_to_prop_name */ @@ -582,12 +582,12 @@ ecma_op_to_object (ecma_value_t value) /**< ecma value */ { return ecma_copy_value (value); } -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) else if (ecma_is_value_symbol (value)) { return ecma_op_create_symbol_object (value); } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ else { if (ecma_is_value_undefined (value) diff --git a/jerry-core/ecma/operations/ecma-eval.c b/jerry-core/ecma/operations/ecma-eval.c index fba05dbb5..b47804d54 100644 --- a/jerry-core/ecma/operations/ecma-eval.c +++ b/jerry-core/ecma/operations/ecma-eval.c @@ -97,9 +97,9 @@ ecma_op_eval_chars_buffer (const lit_utf8_byte_t *code_p, /**< code characters b JERRY_CONTEXT (resource_name) = ecma_make_magic_string_value (LIT_MAGIC_STRING_RESOURCE_EVAL); #endif /* ENABLED (JERRY_LINE_INFO) || ENABLED (JERRY_ERROR_MESSAGES) */ -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) ECMA_CLEAR_SUPER_EVAL_PARSER_OPTS (); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ ecma_value_t parse_status = parser_parse_script (NULL, 0, diff --git a/jerry-core/ecma/operations/ecma-exceptions.c b/jerry-core/ecma/operations/ecma-exceptions.c index 19c013c6b..cfd45c208 100644 --- a/jerry-core/ecma/operations/ecma-exceptions.c +++ b/jerry-core/ecma/operations/ecma-exceptions.c @@ -293,13 +293,13 @@ ecma_raise_standard_error_with_format (ecma_standard_error_t error_type, /**< er lit_magic_string_id_t class_name = ecma_object_get_class_name (arg_object_p); arg_string_p = ecma_get_magic_string (class_name); } -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) else if (ecma_is_value_symbol (arg_val)) { ecma_value_t symbol_desc_value = ecma_get_symbol_descriptive_string (arg_val); arg_string_p = ecma_get_string_from_value (symbol_desc_value); } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ else { ecma_value_t str_val = ecma_op_to_string (arg_val); diff --git a/jerry-core/ecma/operations/ecma-function-object.c b/jerry-core/ecma/operations/ecma-function-object.c index d1296f352..1c86db375 100644 --- a/jerry-core/ecma/operations/ecma-function-object.c +++ b/jerry-core/ecma/operations/ecma-function-object.c @@ -43,11 +43,11 @@ inline bool JERRY_ATTR_ALWAYS_INLINE ecma_is_normal_or_arrow_function (ecma_object_type_t type) /**< object type */ { -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) return (type == ECMA_OBJECT_TYPE_FUNCTION || type == ECMA_OBJECT_TYPE_ARROW_FUNCTION); -#else /* !ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#else /* !ENABLED (JERRY_ES2015) */ return (type == ECMA_OBJECT_TYPE_FUNCTION); -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ } /* ecma_is_normal_or_arrow_function */ /** @@ -74,9 +74,9 @@ ecma_op_is_callable (ecma_value_t value) /**< ecma value */ ecma_object_type_t type = ecma_get_object_type (obj_p); return (type == ECMA_OBJECT_TYPE_FUNCTION -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) || type == ECMA_OBJECT_TYPE_ARROW_FUNCTION -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ || type == ECMA_OBJECT_TYPE_EXTERNAL_FUNCTION || type == ECMA_OBJECT_TYPE_BOUND_FUNCTION); } /* ecma_op_is_callable */ @@ -186,7 +186,7 @@ ecma_op_create_function_object (ecma_object_t *scope_p, /**< function's scope */ return func_p; } /* ecma_op_create_function_object */ -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) /** * Arrow function object creation operation. @@ -239,7 +239,7 @@ ecma_op_create_arrow_function_object (ecma_object_t *scope_p, /**< function's sc return func_p; } /* ecma_op_create_arrow_function_object */ -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * External function object creation operation. @@ -296,7 +296,7 @@ ecma_op_function_get_compiled_code (ecma_extended_object_t *function_p) /**< fun #endif /* ENABLED (JERRY_SNAPSHOT_EXEC) */ } /* ecma_op_function_get_compiled_code */ -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) /** * Get compiled code of an arrow function object. @@ -322,9 +322,9 @@ ecma_op_arrow_function_get_compiled_code (ecma_arrow_function_t *arrow_function_ #endif /* ENABLED (JERRY_SNAPSHOT_EXEC) */ } /* ecma_op_arrow_function_get_compiled_code */ -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) /** * Helper function for implicit class constructors [[HasInstance]] check. * @@ -388,7 +388,7 @@ ecma_op_implicit_class_constructor_has_instance (ecma_object_t *func_obj_p, /**< return ECMA_VALUE_FALSE; } /* ecma_op_implicit_class_constructor_has_instance */ -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * 15.3.5.3 implementation of [[HasInstance]] for Function objects @@ -416,12 +416,12 @@ ecma_op_function_has_instance (ecma_object_t *func_obj_p, /**< Function object * /* 1. 3. */ ecma_extended_object_t *ext_function_p = (ecma_extended_object_t *) func_obj_p; -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if (JERRY_UNLIKELY (ext_function_p->u.bound_function.args_len_or_this == ECMA_VALUE_IMPLICIT_CONSTRUCTOR)) { return ecma_op_implicit_class_constructor_has_instance (func_obj_p, value); } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ func_obj_p = ECMA_GET_INTERNAL_VALUE_POINTER (ecma_object_t, ext_function_p->u.bound_function.target_function); @@ -474,12 +474,12 @@ ecma_op_function_has_instance (ecma_object_t *func_obj_p, /**< Function object * } /* ecma_op_function_has_instance */ -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) /** * Indicates whether the class has been invoked with 'new'. */ #define ECMA_CLASS_CONSTRUCT_FLAG ((uintptr_t) 0x01u) -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * Sets the construct flag in the arguments list pointer. @@ -492,9 +492,9 @@ ecma_op_function_set_construct_flag (const ecma_value_t *arguments_list_p) /**< /* Any ecma value list must be aligned to 4 byte. */ JERRY_ASSERT ((((uintptr_t) arguments_list_p) & 0x3) == 0); -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) arguments_list_p = (const ecma_value_t *)(((uintptr_t) arguments_list_p) | ECMA_CLASS_CONSTRUCT_FLAG); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ return arguments_list_p; } /* ecma_op_function_set_construct_flag */ @@ -507,9 +507,9 @@ ecma_op_function_set_construct_flag (const ecma_value_t *arguments_list_p) /**< static inline const ecma_value_t * JERRY_ATTR_ALWAYS_INLINE ecma_op_function_clear_construct_flag (const ecma_value_t *arguments_list_p) /**< modified arguments list pointer */ { -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) arguments_list_p = (const ecma_value_t *)(((uintptr_t) arguments_list_p) & ~ECMA_CLASS_CONSTRUCT_FLAG); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ return arguments_list_p; } /* ecma_op_function_clear_construct_flag */ @@ -522,15 +522,15 @@ ecma_op_function_clear_construct_flag (const ecma_value_t *arguments_list_p) /** static inline bool JERRY_ATTR_ALWAYS_INLINE ecma_op_function_has_construct_flag (const ecma_value_t *arguments_list_p) /**< modified arguments list pointer */ { -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) return (((uintptr_t) arguments_list_p) & ECMA_CLASS_CONSTRUCT_FLAG); -#else /* !ENABLED (JERRY_ES2015_CLASS) */ +#else /* !ENABLED (JERRY_ES2015) */ JERRY_UNUSED (arguments_list_p); return false; -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ } /* ecma_op_function_has_construct_flag */ -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) /** * Returns the closest declarative lexical enviroment to the super object bound lexical enviroment. * @@ -689,7 +689,7 @@ ecma_op_set_class_prototype (ecma_value_t completion_value, /**< completion_valu completion_obj_p->u2.prototype_cp = prototype_obj_cp; } /* ecma_op_set_class_prototype */ -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * [[Call]] implementation for Function objects, @@ -746,14 +746,14 @@ ecma_op_function_call (ecma_object_t *func_obj_p, /**< Function object */ const ecma_compiled_code_t *bytecode_data_p = ecma_op_function_get_compiled_code (ext_func_p); -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) bool is_class_constructor = (bytecode_data_p->status_flags & CBC_CODE_FLAGS_CONSTRUCTOR) != 0; if (is_class_constructor && !ecma_op_function_has_construct_flag (arguments_list_p)) { return ecma_raise_type_error (ECMA_ERR_MSG ("Class constructor cannot be invoked without 'new'.")); } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ bool is_strict = (bytecode_data_p->status_flags & CBC_CODE_FLAGS_STRICT_MODE) != 0; bool is_no_lex_env = (bytecode_data_p->status_flags & CBC_CODE_FLAGS_LEXICAL_ENV_NOT_NEEDED) != 0; @@ -796,12 +796,12 @@ ecma_op_function_call (ecma_object_t *func_obj_p, /**< Function object */ arguments_list_len, bytecode_data_p); } -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if (JERRY_UNLIKELY (is_class_constructor)) { ecma_op_set_class_this_binding (local_env_p, this_binding); } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ } ecma_value_t ret_value = vm_run (bytecode_data_p, @@ -843,7 +843,7 @@ ecma_op_function_call (ecma_object_t *func_obj_p, /**< Function object */ #endif /* ENABLED (JERRY_DEBUGGER) */ return ret_value; } -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) case ECMA_OBJECT_TYPE_ARROW_FUNCTION: { /* Entering Function Code (ES2015, 9.2.1) */ @@ -881,7 +881,7 @@ ecma_op_function_call (ecma_object_t *func_obj_p, /**< Function object */ return ret_value; } -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ default: { JERRY_ASSERT (ecma_get_object_type (func_obj_p) == ECMA_OBJECT_TYPE_BOUND_FUNCTION); @@ -907,7 +907,7 @@ ecma_op_function_call (ecma_object_t *func_obj_p, /**< Function object */ if (!ecma_is_value_integer_number (args_len_or_this)) { -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if (JERRY_UNLIKELY (args_len_or_this == ECMA_VALUE_IMPLICIT_CONSTRUCTOR)) { if (!ecma_op_function_has_construct_flag (arguments_list_p)) @@ -921,11 +921,11 @@ ecma_op_function_call (ecma_object_t *func_obj_p, /**< Function object */ } else { -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ this_arg_value = args_len_or_this; -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ args_length = 1; } @@ -943,9 +943,9 @@ ecma_op_function_call (ecma_object_t *func_obj_p, /**< Function object */ } else { -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) arguments_list_p = ecma_op_function_clear_construct_flag (arguments_list_p); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ JERRY_ASSERT (!ecma_op_function_has_construct_flag (arguments_list_p)); args_length--; @@ -1026,12 +1026,12 @@ ecma_op_function_construct (ecma_object_t *func_obj_p, /**< Function object */ /* 5. */ if (args_length == 1) { -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if (args_len_or_this == ECMA_VALUE_IMPLICIT_CONSTRUCTOR && ecma_is_value_undefined (this_arg_value)) { break; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ func_obj_p = target_func_obj_p; continue; } @@ -1060,12 +1060,12 @@ ecma_op_function_construct (ecma_object_t *func_obj_p, /**< Function object */ ecma_object_type_t type = ecma_get_object_type (func_obj_p); -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) if (JERRY_UNLIKELY (type == ECMA_OBJECT_TYPE_ARROW_FUNCTION)) { return ecma_raise_type_error (ECMA_ERR_MSG ("Arrow functions have no constructor.")); } -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ if (JERRY_UNLIKELY (type == ECMA_OBJECT_TYPE_FUNCTION && ecma_get_object_is_builtin (func_obj_p))) { @@ -1078,12 +1078,12 @@ ecma_op_function_construct (ecma_object_t *func_obj_p, /**< Function object */ arguments_list_p, arguments_list_len); -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if (!ecma_is_value_undefined (this_arg_value) && !ECMA_IS_VALUE_ERROR (ret_value)) { ecma_op_set_class_prototype (ret_value, this_arg_value); } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ return ret_value; } @@ -1137,7 +1137,7 @@ ecma_op_function_construct (ecma_object_t *func_obj_p, /**< Function object */ arguments_list_len); break; } -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) case ECMA_OBJECT_TYPE_BOUND_FUNCTION: { JERRY_ASSERT (!ecma_op_function_has_construct_flag (arguments_list_p)); @@ -1161,12 +1161,12 @@ ecma_op_function_construct (ecma_object_t *func_obj_p, /**< Function object */ ret_value = ecma_raise_type_error (ECMA_ERR_MSG ("Super constructor null is not a constructor.")); break; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ default: { JERRY_ASSERT (type == ECMA_OBJECT_TYPE_EXTERNAL_FUNCTION); -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) ecma_extended_object_t *ext_func_obj_p = (ecma_extended_object_t *) func_obj_p; if (ext_func_obj_p->u.external_handler_cb == ecma_op_function_implicit_constructor_handler_cb) @@ -1174,7 +1174,7 @@ ecma_op_function_construct (ecma_object_t *func_obj_p, /**< Function object */ ret_value = ECMA_VALUE_UNDEFINED; break; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ ret_value = ecma_op_function_call (func_obj_p, this_arg_value, @@ -1258,7 +1258,7 @@ ecma_op_function_try_to_lazy_instantiate_property (ecma_object_t *object_p, /**< || ecma_compare_ecma_string_to_magic_id (property_name_p, LIT_MAGIC_STRING_ARGUMENTS)) { const ecma_compiled_code_t *bytecode_data_p; -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) if (ecma_get_object_type (object_p) == ECMA_OBJECT_TYPE_ARROW_FUNCTION) { ecma_arrow_function_t *arrow_func_p = (ecma_arrow_function_t *) object_p; @@ -1266,12 +1266,12 @@ ecma_op_function_try_to_lazy_instantiate_property (ecma_object_t *object_p, /**< } else { -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ ecma_extended_object_t *ext_func_p = (ecma_extended_object_t *) object_p; bytecode_data_p = ecma_op_function_get_compiled_code (ext_func_p); -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) } -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ if (bytecode_data_p->status_flags & CBC_CODE_FLAGS_STRICT_MODE) { @@ -1433,7 +1433,7 @@ ecma_op_function_list_lazy_property_names (ecma_object_t *object_p, /**< functio const ecma_compiled_code_t *bytecode_data_p; -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) if (ecma_get_object_type (object_p) == ECMA_OBJECT_TYPE_ARROW_FUNCTION) { bytecode_data_p = ecma_op_arrow_function_get_compiled_code ((ecma_arrow_function_t *) object_p); @@ -1442,9 +1442,9 @@ ecma_op_function_list_lazy_property_names (ecma_object_t *object_p, /**< functio { bytecode_data_p = ecma_op_function_get_compiled_code ((ecma_extended_object_t *) object_p); } -#else /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#else /* ENABLED (JERRY_ES2015) */ bytecode_data_p = ecma_op_function_get_compiled_code ((ecma_extended_object_t *) object_p); -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ if (bytecode_data_p->status_flags & CBC_CODE_FLAGS_STRICT_MODE) { diff --git a/jerry-core/ecma/operations/ecma-function-object.h b/jerry-core/ecma/operations/ecma-function-object.h index b5be3358f..435bda111 100644 --- a/jerry-core/ecma/operations/ecma-function-object.h +++ b/jerry-core/ecma/operations/ecma-function-object.h @@ -34,11 +34,6 @@ bool ecma_is_constructor (ecma_value_t value); ecma_object_t * ecma_op_create_function_object (ecma_object_t *scope_p, const ecma_compiled_code_t *bytecode_data_p); -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) -ecma_object_t * -ecma_op_create_arrow_function_object (ecma_object_t *scope_p, const ecma_compiled_code_t *bytecode_data_p, - ecma_value_t this_binding); -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ ecma_object_t * ecma_op_create_external_function_object (ecma_external_handler_t handler_cb); @@ -46,7 +41,7 @@ ecma_op_create_external_function_object (ecma_external_handler_t handler_cb); const ecma_compiled_code_t * ecma_op_function_get_compiled_code (ecma_extended_object_t *function_p); -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) void ecma_op_set_super_called (ecma_object_t *lex_env_p); @@ -67,12 +62,14 @@ ecma_op_function_implicit_constructor_handler_cb (const ecma_value_t function_ob void ecma_op_set_class_prototype (ecma_value_t completion_value, ecma_value_t this_arg); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +ecma_object_t * +ecma_op_create_arrow_function_object (ecma_object_t *scope_p, const ecma_compiled_code_t *bytecode_data_p, + ecma_value_t this_binding); + const ecma_compiled_code_t * ecma_op_arrow_function_get_compiled_code (ecma_arrow_function_t *arrow_function_p); -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ ecma_value_t ecma_op_function_has_instance (ecma_object_t *func_obj_p, ecma_value_t value); diff --git a/jerry-core/ecma/operations/ecma-get-put-value.c b/jerry-core/ecma/operations/ecma-get-put-value.c index 44b7f73da..ca419a96d 100644 --- a/jerry-core/ecma/operations/ecma-get-put-value.c +++ b/jerry-core/ecma/operations/ecma-get-put-value.c @@ -65,12 +65,12 @@ ecma_op_get_value_lex_env_base (ecma_object_t *lex_env_p, /**< lexical environme } break; } -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) case ECMA_LEXICAL_ENVIRONMENT_SUPER_OBJECT_BOUND: { break; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ default: { JERRY_ASSERT (ecma_get_lex_env_type (lex_env_p) == ECMA_LEXICAL_ENVIRONMENT_THIS_OBJECT_BOUND); @@ -214,12 +214,12 @@ ecma_op_put_value_lex_env_base (ecma_object_t *lex_env_p, /**< lexical environme } break; } -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) case ECMA_LEXICAL_ENVIRONMENT_SUPER_OBJECT_BOUND: { break; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ default: { JERRY_ASSERT (ecma_get_lex_env_type (lex_env_p) == ECMA_LEXICAL_ENVIRONMENT_THIS_OBJECT_BOUND); diff --git a/jerry-core/ecma/operations/ecma-objects.c b/jerry-core/ecma/operations/ecma-objects.c index e0d95373b..b68fc571b 100644 --- a/jerry-core/ecma/operations/ecma-objects.c +++ b/jerry-core/ecma/operations/ecma-objects.c @@ -173,12 +173,12 @@ ecma_op_object_get_own_property (ecma_object_t *object_p, /**< the object */ /* ES2015 9.4.5.1 */ if (ecma_is_typedarray (ecma_make_object_value (object_p))) { -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) if (ecma_prop_name_is_symbol (property_name_p)) { break; } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ uint32_t array_index = ecma_string_get_array_index (property_name_p); @@ -250,7 +250,7 @@ ecma_op_object_get_own_property (ecma_object_t *object_p, /**< the object */ /* Get length virtual property. */ const ecma_compiled_code_t *bytecode_data_p; -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) if (type != ECMA_OBJECT_TYPE_ARROW_FUNCTION) { ecma_extended_object_t *ext_func_p = (ecma_extended_object_t *) object_p; @@ -261,10 +261,10 @@ ecma_op_object_get_own_property (ecma_object_t *object_p, /**< the object */ ecma_arrow_function_t *arrow_func_p = (ecma_arrow_function_t *) object_p; bytecode_data_p = ecma_op_arrow_function_get_compiled_code (arrow_func_p); } -#else /* !ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#else /* !ENABLED (JERRY_ES2015) */ ecma_extended_object_t *ext_func_p = (ecma_extended_object_t *) object_p; bytecode_data_p = ecma_op_function_get_compiled_code (ext_func_p); -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ uint32_t len; if (bytecode_data_p->status_flags & CBC_CODE_FLAGS_UINT16_ARGUMENTS) @@ -542,12 +542,12 @@ ecma_op_object_find_own (ecma_value_t base_value, /**< base value */ /* ES2015 9.4.5.4 */ if (ecma_is_typedarray (ecma_make_object_value (object_p))) { -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) if (ecma_prop_name_is_symbol (property_name_p)) { break; } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ uint32_t array_index = ecma_string_get_array_index (property_name_p); @@ -602,7 +602,7 @@ ecma_op_object_find_own (ecma_value_t base_value, /**< base value */ /* Get length virtual property. */ const ecma_compiled_code_t *bytecode_data_p; -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) if (type != ECMA_OBJECT_TYPE_ARROW_FUNCTION) { ecma_extended_object_t *ext_func_p = (ecma_extended_object_t *) object_p; @@ -613,10 +613,10 @@ ecma_op_object_find_own (ecma_value_t base_value, /**< base value */ ecma_arrow_function_t *arrow_func_p = (ecma_arrow_function_t *) object_p; bytecode_data_p = ecma_op_arrow_function_get_compiled_code (arrow_func_p); } -#else /* !ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#else /* !ENABLED (JERRY_ES2015) */ ecma_extended_object_t *ext_func_p = (ecma_extended_object_t *) object_p; bytecode_data_p = ecma_op_function_get_compiled_code (ext_func_p); -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ uint32_t len; if (bytecode_data_p->status_flags & CBC_CODE_FLAGS_UINT16_ARGUMENTS) @@ -847,7 +847,7 @@ ecma_op_object_get_by_magic_id (ecma_object_t *object_p, /**< the object */ return ecma_op_object_get (object_p, ecma_get_magic_string (property_id)); } /* ecma_op_object_get_by_magic_id */ -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /** * [[Get]] operation of ecma object where the property is a well-known symbol * @@ -919,7 +919,7 @@ ecma_op_get_method_by_symbol_id (ecma_value_t value, /**< ecma value */ /* 6. */ return func; } /* ecma_op_get_method_by_symbol_id */ -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * [[Put]] ecma general object's operation specialized for uint32_ property index @@ -1072,12 +1072,12 @@ ecma_op_object_put (ecma_object_t *object_p, /**< the object */ /* ES2015 9.4.5.5 */ if (ecma_is_typedarray (ecma_make_object_value (object_p))) { -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) if (ecma_prop_name_is_symbol (property_name_p)) { break; } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ uint32_t array_index = ecma_string_get_array_index (property_name_p); @@ -1447,9 +1447,9 @@ ecma_op_object_define_own_property (ecma_object_t *obj_p, /**< the object */ case ECMA_OBJECT_TYPE_GENERAL: case ECMA_OBJECT_TYPE_CLASS: case ECMA_OBJECT_TYPE_FUNCTION: -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) case ECMA_OBJECT_TYPE_ARROW_FUNCTION: -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ case ECMA_OBJECT_TYPE_EXTERNAL_FUNCTION: case ECMA_OBJECT_TYPE_BOUND_FUNCTION: { @@ -1485,14 +1485,14 @@ ecma_op_object_define_own_property (ecma_object_t *obj_p, /**< the object */ /* ES2015 9.4.5.3 */ if (ecma_is_typedarray (ecma_make_object_value (obj_p))) { -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) if (ecma_prop_name_is_symbol (property_name_p)) { return ecma_op_general_object_define_own_property (obj_p, property_name_p, property_desc_p); } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ uint32_t array_index = ecma_string_get_array_index (property_name_p); if (array_index != ECMA_STRING_NOT_ARRAY_INDEX) @@ -1717,9 +1717,9 @@ ecma_op_object_get_property_names (ecma_object_t *obj_p, /**< object */ const bool is_enumerable_only = (opts & ECMA_LIST_ENUMERABLE) != 0; const bool is_array_indices_only = (opts & ECMA_LIST_ARRAY_INDICES) != 0; const bool is_with_prototype_chain = (opts & ECMA_LIST_PROTOTYPE) != 0; -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) const bool is_symbols_only = (opts & ECMA_LIST_SYMBOLS) != 0; -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ const size_t bitmap_row_size = sizeof (uint32_t) * JERRY_BITSINBYTE; const size_t names_hashes_bitmap_size = ECMA_OBJECT_HASH_BITMAP_SIZE / bitmap_row_size; @@ -1736,10 +1736,10 @@ ecma_op_object_get_property_names (ecma_object_t *obj_p, /**< object */ ecma_collection_t *prop_names_p = ecma_new_collection (); -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) if (JERRY_LIKELY (!is_symbols_only)) { -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ if (obj_is_builtin) { @@ -1763,9 +1763,9 @@ ecma_op_object_get_property_names (ecma_object_t *obj_p, /**< object */ break; } case ECMA_OBJECT_TYPE_FUNCTION: - #if ENABLED (JERRY_ES2015_ARROW_FUNCTION) + #if ENABLED (JERRY_ES2015) case ECMA_OBJECT_TYPE_ARROW_FUNCTION: - #endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ + #endif /* ENABLED (JERRY_ES2015) */ { ecma_op_function_list_lazy_property_names (obj_p, is_enumerable_only, @@ -1817,9 +1817,9 @@ ecma_op_object_get_property_names (ecma_object_t *obj_p, /**< object */ } } } -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ ecma_value_t *buffer_p = prop_names_p->buffer_p; @@ -1831,10 +1831,10 @@ ecma_op_object_get_property_names (ecma_object_t *obj_p, /**< object */ { ecma_string_t *name_p = ecma_get_string_from_value (buffer_p[i]); -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /* Symbols are never lazy listed */ JERRY_ASSERT (!ecma_prop_name_is_symbol (name_p)); -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ uint8_t hash = (uint8_t) ecma_string_hash (name_p); uint32_t bitmap_row = (uint32_t) (hash / bitmap_row_size); @@ -1938,7 +1938,7 @@ ecma_op_object_get_property_names (ecma_object_t *obj_p, /**< object */ if (!(is_enumerable_only && !ecma_is_property_enumerable (*property_p))) { - #if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) + #if ENABLED (JERRY_ES2015) /* If is_symbols_only is false and prop_name is symbol we should skip the current property e.g. for-in. @@ -1949,7 +1949,7 @@ ecma_op_object_get_property_names (ecma_object_t *obj_p, /**< object */ ecma_deref_ecma_string (name_p); continue; } - #endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ + #endif /* ENABLED (JERRY_ES2015) */ uint8_t hash = (uint8_t) ecma_string_hash (name_p); uint32_t bitmap_row = (uint32_t) (hash / bitmap_row_size); @@ -2220,9 +2220,9 @@ ecma_object_check_class_name_is_object (ecma_object_t *obj_p) /**< object */ || ecma_builtin_is (obj_p, ECMA_BUILTIN_ID_SET_ITERATOR_PROTOTYPE) #endif /* ENABLED (JERRY_ES2015_BUILTIN_ITERATOR) */ #endif /* ENABLED (JERRY_ES2015_BUILTIN_SET) */ -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) || ecma_builtin_is (obj_p, ECMA_BUILTIN_ID_SYMBOL_PROTOTYPE) -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ #if ENABLED (JERRY_ES2015_BUILTIN_DATAVIEW) || ecma_builtin_is (obj_p, ECMA_BUILTIN_ID_DATAVIEW_PROTOTYPE) #endif /* ENABLED (JERRY_ES2015_BUILTIN_DATAVIEW) */ @@ -2298,9 +2298,9 @@ ecma_object_get_class_name (ecma_object_t *obj_p) /**< object */ break; } case ECMA_OBJECT_TYPE_FUNCTION: -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) case ECMA_OBJECT_TYPE_ARROW_FUNCTION: -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ case ECMA_OBJECT_TYPE_EXTERNAL_FUNCTION: case ECMA_OBJECT_TYPE_BOUND_FUNCTION: { diff --git a/jerry-core/ecma/operations/ecma-objects.h b/jerry-core/ecma/operations/ecma-objects.h index c416ed2bd..dcd7979ec 100644 --- a/jerry-core/ecma/operations/ecma-objects.h +++ b/jerry-core/ecma/operations/ecma-objects.h @@ -37,10 +37,10 @@ ecma_value_t ecma_op_object_find_by_number_index (ecma_object_t *object_p, ecma_ ecma_value_t ecma_op_object_get_own_data_prop (ecma_object_t *object_p, ecma_string_t *property_name_p); ecma_value_t ecma_op_object_get (ecma_object_t *object_p, ecma_string_t *property_name_p); ecma_value_t ecma_op_object_get_by_magic_id (ecma_object_t *object_p, lit_magic_string_id_t property_id); -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) ecma_value_t ecma_op_object_get_by_symbol_id (ecma_object_t *object_p, lit_magic_string_id_t property_id); ecma_value_t ecma_op_get_method_by_symbol_id (ecma_value_t value, lit_magic_string_id_t property_id); -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ ecma_value_t ecma_op_object_put (ecma_object_t *object_p, ecma_string_t *property_name_p, ecma_value_t value, bool is_throw); ecma_value_t ecma_op_object_put_by_uint32_index (ecma_object_t *object_p, uint32_t index, diff --git a/jerry-core/ecma/operations/ecma-reference.c b/jerry-core/ecma/operations/ecma-reference.c index 30ecf3aaa..124f17b9c 100644 --- a/jerry-core/ecma/operations/ecma-reference.c +++ b/jerry-core/ecma/operations/ecma-reference.c @@ -46,13 +46,13 @@ ecma_op_resolve_reference_base (ecma_object_t *lex_env_p, /**< starting lexical while (true) { -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if (ecma_get_lex_env_type (lex_env_p) == ECMA_LEXICAL_ENVIRONMENT_SUPER_OBJECT_BOUND) { JERRY_ASSERT (lex_env_p->u2.outer_reference_cp != JMEM_CP_NULL); lex_env_p = ECMA_GET_NON_NULL_POINTER (ecma_object_t, lex_env_p->u2.outer_reference_cp); } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ if (ecma_op_has_binding (lex_env_p, name_p)) { @@ -68,7 +68,7 @@ ecma_op_resolve_reference_base (ecma_object_t *lex_env_p, /**< starting lexical } } /* ecma_op_resolve_reference_base */ -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) /** * Resolve super reference. * @@ -91,7 +91,7 @@ ecma_op_resolve_super_reference_value (ecma_object_t *lex_env_p) /**< starting l lex_env_p = ECMA_GET_NON_NULL_POINTER (ecma_object_t, lex_env_p->u2.outer_reference_cp); } } /* ecma_op_resolve_super_reference_value */ -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * Resolve value corresponding to reference. @@ -158,11 +158,11 @@ ecma_op_resolve_reference_value (ecma_object_t *lex_env_p, /**< starting lexical } else { -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) JERRY_ASSERT (lex_env_type == ECMA_LEXICAL_ENVIRONMENT_SUPER_OBJECT_BOUND); -#else /* !ENABLED (JERRY_ES2015_CLASS) */ +#else /* !ENABLED (JERRY_ES2015) */ JERRY_UNREACHABLE (); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ } if (lex_env_p->u2.outer_reference_cp == JMEM_CP_NULL) diff --git a/jerry-core/ecma/operations/ecma-reference.h b/jerry-core/ecma/operations/ecma-reference.h index 37409edb5..f974c7b57 100644 --- a/jerry-core/ecma/operations/ecma-reference.h +++ b/jerry-core/ecma/operations/ecma-reference.h @@ -28,9 +28,9 @@ ecma_object_t *ecma_op_resolve_reference_base (ecma_object_t *lex_env_p, ecma_string_t *name_p); ecma_value_t ecma_op_resolve_reference_value (ecma_object_t *lex_env_p, ecma_string_t *name_p); -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) ecma_object_t *ecma_op_resolve_super_reference_value (ecma_object_t *lex_env_p); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * @} diff --git a/jerry-core/ecma/operations/ecma-symbol-object.c b/jerry-core/ecma/operations/ecma-symbol-object.c index 818cdf951..1e881c19b 100644 --- a/jerry-core/ecma/operations/ecma-symbol-object.c +++ b/jerry-core/ecma/operations/ecma-symbol-object.c @@ -23,7 +23,7 @@ #include "ecma-objects-general.h" #include "ecma-symbol-object.h" -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) /** \addtogroup ecma ECMA * @{ @@ -83,12 +83,7 @@ ecma_op_create_symbol_object (const ecma_value_t value) /**< symbol value */ { JERRY_ASSERT (ecma_is_value_symbol (value)); -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) ecma_object_t *prototype_obj_p = ecma_builtin_get (ECMA_BUILTIN_ID_SYMBOL_PROTOTYPE); -#else /* !ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ - ecma_object_t *prototype_obj_p = ecma_builtin_get (ECMA_BUILTIN_ID_OBJECT_PROTOTYPE); -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ - ecma_object_t *object_p = ecma_create_object (prototype_obj_p, sizeof (ecma_extended_object_t), ECMA_OBJECT_TYPE_CLASS); @@ -178,7 +173,7 @@ ecma_symbol_to_string_helper (ecma_value_t this_arg, /**< this argument value */ return ecma_raise_type_error (ECMA_ERR_MSG ("Argument 'this' is must be a Symbol.")); } /* ecma_symbol_to_string_helper */ -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * @} diff --git a/jerry-core/ecma/operations/ecma-symbol-object.h b/jerry-core/ecma/operations/ecma-symbol-object.h index b5721da38..a86d87748 100644 --- a/jerry-core/ecma/operations/ecma-symbol-object.h +++ b/jerry-core/ecma/operations/ecma-symbol-object.h @@ -16,7 +16,7 @@ #ifndef ECMA_SYMBOL_H #define ECMA_SYMBOL_H -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) #include "ecma-globals.h" /** \addtogroup ecma ECMA @@ -44,7 +44,7 @@ ecma_symbol_to_string_helper (ecma_value_t this_arg, bool is_to_string); ecma_value_t ecma_get_symbol_descriptive_string (ecma_value_t symbol_value); -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * @} * @} diff --git a/jerry-core/ecma/operations/ecma-typedarray-object.c b/jerry-core/ecma/operations/ecma-typedarray-object.c index 31e3c6a0d..d4509a0cc 100644 --- a/jerry-core/ecma/operations/ecma-typedarray-object.c +++ b/jerry-core/ecma/operations/ecma-typedarray-object.c @@ -1157,7 +1157,7 @@ ecma_op_create_typedarray_with_type_and_length (ecma_object_t *obj_p, /**< Typed { JERRY_ASSERT (ecma_is_typedarray (ecma_make_object_value (obj_p))); -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) ecma_value_t constructor_value = ecma_op_object_get_by_magic_id (obj_p, LIT_MAGIC_STRING_CONSTRUCTOR); if (ECMA_IS_VALUE_ERROR (constructor_value) @@ -1178,7 +1178,7 @@ ecma_op_create_typedarray_with_type_and_length (ecma_object_t *obj_p, /**< Typed { return constructor_prototype; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ ecma_typedarray_type_t typedarray_id = ecma_get_typedarray_id (obj_p); ecma_object_t *proto_p = ecma_builtin_get (ecma_typedarray_helper_get_prototype_id (typedarray_id)); @@ -1189,13 +1189,13 @@ ecma_op_create_typedarray_with_type_and_length (ecma_object_t *obj_p, /**< Typed element_size_shift, typedarray_id); -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) ecma_object_t *constructor_prototype_object_p = ecma_get_object_from_value (constructor_prototype); ecma_object_t *new_obj_p = ecma_get_object_from_value (new_obj); ECMA_SET_NON_NULL_POINTER (new_obj_p->u2.prototype_cp, constructor_prototype_object_p); ecma_deref_object (constructor_prototype_object_p); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ return new_obj; } /* ecma_op_create_typedarray_with_type_and_length */ diff --git a/jerry-core/jcontext/jcontext.h b/jerry-core/jcontext/jcontext.h index 4d5feb6c5..16f29aaf7 100644 --- a/jerry-core/jcontext/jcontext.h +++ b/jerry-core/jcontext/jcontext.h @@ -137,9 +137,9 @@ struct jerry_context_t const lit_utf8_byte_t * const *lit_magic_string_ex_array; /**< array of external magic strings */ const lit_utf8_size_t *lit_magic_string_ex_sizes; /**< external magic string lengths */ jmem_cpointer_t string_list_first_cp; /**< first item of the literal string list */ -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) jmem_cpointer_t symbol_list_first_cp; /**< first item of the global symbol list */ -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ jmem_cpointer_t number_list_first_cp; /**< first item of the literal number list */ jmem_cpointer_t ecma_global_lex_env_cp; /**< global lexical environment */ diff --git a/jerry-core/lit/lit-magic-strings.inc.h b/jerry-core/lit/lit-magic-strings.inc.h index 66d6affc0..58cd55bdc 100644 --- a/jerry-core/lit/lit-magic-strings.inc.h +++ b/jerry-core/lit/lit-magic-strings.inc.h @@ -19,7 +19,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING__EMPTY, "") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SPACE_CHAR, " ") -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_RIGHT_PAREN, ")") #endif #if ENABLED (JERRY_ES2015_MODULE_SYSTEM) @@ -66,7 +66,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ALL, "all") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_COS, "cos") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_EXP, "exp") #endif -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FOR, "for") #endif LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET, "get") @@ -217,7 +217,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_INPUT, "input") #endif LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_IS_NAN, "isNaN") #if ENABLED (JERRY_BUILTIN_REGEXP) && ENABLED (JERRY_BUILTIN_STRING) \ -|| ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +|| ENABLED (JERRY_ES2015) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_MATCH, "match") #endif #if ENABLED (JERRY_BUILTIN_DATE) \ @@ -236,7 +236,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SHIFT, "shift") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SLICE, "slice") #endif #if ENABLED (JERRY_BUILTIN_STRING) \ -|| ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +|| ENABLED (JERRY_ES2015) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SPLIT, "split") #endif #if ENABLED (JERRY_BUILTIN_MATH) && ENABLED (JERRY_ES2015_BUILTIN) @@ -253,7 +253,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_NUMBER_UL, "Number") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_OBJECT_UL, "Object") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REGEXP_UL, "RegExp") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_STRING_UL, "String") -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SYMBOL_UL, "Symbol") #endif #if ENABLED (JERRY_ES2015_BUILTIN) @@ -297,7 +297,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GLOBAL, "global") #if ENABLED (JERRY_ES2015_BUILTIN_TYPEDARRAY) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_IS_VIEW_UL, "isView") #endif -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_KEY_FOR, "keyFor") #endif LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_LENGTH, "length") @@ -317,7 +317,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REJECT, "reject") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REPEAT, "repeat") #endif #if ENABLED (JERRY_BUILTIN_REGEXP) && ENABLED (JERRY_BUILTIN_STRING) \ -|| ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +|| ENABLED (JERRY_ES2015) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SEARCH, "search") #endif #if !ENABLED (JERRY_ES2015) && ENABLED (JERRY_BUILTIN_REGEXP) \ @@ -332,7 +332,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_STRING, "string") #if ENABLED (JERRY_BUILTIN_ANNEXB) && ENABLED (JERRY_BUILTIN_STRING) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SUBSTR, "substr") #endif -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SYMBOL, "symbol") #endif #if ENABLED (JERRY_BUILTIN_DATE) \ @@ -355,7 +355,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REFLECT_UL, "Reflect") #if ENABLED (JERRY_BUILTIN_MATH) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SQRT1_2_U, "SQRT1_2") #endif -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SYMBOL_LEFT_PAREN_UL, "Symbol(") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SYMBOL_DOT_UL, "Symbol.") #endif @@ -400,7 +400,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_IS_ARRAY_UL, "isArray") #endif LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_MESSAGE, "message") #if ENABLED (JERRY_BUILTIN_REGEXP) && ENABLED (JERRY_BUILTIN_STRING) \ -|| ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +|| ENABLED (JERRY_ES2015) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REPLACE, "replace") #endif #if ENABLED (JERRY_ES2015_BUILTIN_PROMISE) @@ -422,7 +422,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET_TIME_UL, "setTime") #if ENABLED (JERRY_BUILTIN_ANNEXB) && ENABLED (JERRY_BUILTIN_DATE) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET_YEAR_UL, "setYear") #endif -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SPECIES, "species") #endif #if ENABLED (JERRY_BUILTIN_NUMBER) @@ -463,8 +463,8 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_INCLUDES, "includes") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_IS_FINITE, "isFinite") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_IS_FROZEN_UL, "isFrozen") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_IS_SEALED_UL, "isSealed") -#if ENABLED (JERRY_ES2015_BUILTIN_ITERATOR) \ -|| ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) \ +|| ENABLED (JERRY_ES2015_BUILTIN_ITERATOR) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ITERATOR, "iterator") #endif LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_PARSE_INT, "parseInt") @@ -616,7 +616,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_FULL_YEAR_UL, "getFullYear") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_UTC_HOURS_UL, "getUTCHours") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_UTC_MONTH_UL, "getUTCMonth") #endif -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_HAS_INSTANCE, "hasInstance") #endif #if ENABLED (JERRY_BUILTIN_ARRAY) \ @@ -645,7 +645,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_LOWER_CASE_UL, "toLowerCase") #if ENABLED (JERRY_BUILTIN_NUMBER) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_PRECISION_UL, "toPrecision") #endif -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_PRIMITIVE, "toPrimitive") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_STRING_TAG, "toStringTag") #endif @@ -655,7 +655,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_UTC_STRING_UL, "toUTCString") #if ENABLED (JERRY_BUILTIN_STRING) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_UPPER_CASE_UL, "toUpperCase") #endif -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_UNSCOPABLES, "unscopables") #endif #if ENABLED (JERRY_ES2015_BUILTIN_TYPEDARRAY) @@ -751,7 +751,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ENCODE_URI_COMPONENT, "encodeURIComponent #if ENABLED (JERRY_BUILTIN_DATE) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_UTC_MILLISECONDS_UL, "getUTCMilliseconds") #endif -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_IS_CONCAT_SPREADABLE, "isConcatSpreadable") #endif #if ENABLED (JERRY_BUILTIN_DATE) @@ -761,7 +761,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_LOCALE_TIME_STRING_UL, "toLocaleTimeSt #endif LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_OWN_PROPERTY_NAMES_UL, "getOwnPropertyNames") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_PROPERTY_IS_ENUMERABLE_UL, "propertyIsEnumerable") -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_OWN_PROPERTY_SYMBOLS_UL, "getOwnPropertySymbols") #endif LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_OWN_PROPERTY_DESCRIPTOR_UL, "getOwnPropertyDescriptor") @@ -886,7 +886,7 @@ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (17, LIT_MAGIC_STRING_PREVENT_EXTENSIONS LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (18, LIT_MAGIC_STRING_DECODE_URI_COMPONENT) LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (19, LIT_MAGIC_STRING_GET_OWN_PROPERTY_NAMES_UL) LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (20, LIT_MAGIC_STRING_PROPERTY_IS_ENUMERABLE_UL) -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (21, LIT_MAGIC_STRING_GET_OWN_PROPERTY_SYMBOLS_UL) #else LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (21, LIT_MAGIC_STRING_GET_OWN_PROPERTY_DESCRIPTOR_UL) diff --git a/jerry-core/parser/js/byte-code.h b/jerry-core/parser/js/byte-code.h index efbc569b8..aa1c1a819 100644 --- a/jerry-core/parser/js/byte-code.h +++ b/jerry-core/parser/js/byte-code.h @@ -64,19 +64,19 @@ #define CBC_HAS_POP_STACK_BYTE_ARG (CBC_HAS_BYTE_ARG | CBC_POP_STACK_BYTE_ARG) -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) /** * Checks whether the current opcode is a super constructor call */ #define CBC_SUPER_CALL_OPERATION(opcode) \ ((opcode) >= PARSER_TO_EXT_OPCODE (CBC_EXT_SUPER_CALL) \ && (opcode) <= PARSER_TO_EXT_OPCODE (CBC_EXT_SUPER_CALL_BLOCK)) -#else /* !ENABLED (JERRY_ES2015_CLASS) */ +#else /* !ENABLED (JERRY_ES2015) */ /** * Checks whether the current opcode is a super constructor call */ #define CBC_SUPER_CALL_OPERATION(opcode) false -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ /* Debug macro. */ #define CBC_ARGS_EQ(op, types) \ diff --git a/jerry-core/parser/js/js-lexer.c b/jerry-core/parser/js/js-lexer.c index 17ae12514..e7575060c 100644 --- a/jerry-core/parser/js/js-lexer.c +++ b/jerry-core/parser/js/js-lexer.c @@ -311,7 +311,7 @@ lexer_skip_spaces (parser_context_t *context_p) /**< context */ } } /* lexer_skip_spaces */ -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) /** * Skip all the continuous empty statements. */ @@ -329,7 +329,7 @@ lexer_skip_empty_statements (parser_context_t *context_p) /**< context */ context_p->token.flags = (uint8_t) (context_p->token.flags | LEXER_NO_SKIP_SPACES); } /* lexer_skip_empty_statements */ -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * Keyword data. @@ -661,12 +661,12 @@ lexer_parse_string (parser_context_t *context_p) /**< context */ size_t length = 0; uint8_t has_escape = false; -#if ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) +#if ENABLED (JERRY_ES2015) if (str_end_character == LIT_CHAR_RIGHT_BRACE) { str_end_character = LIT_CHAR_GRAVE_ACCENT; } -#endif /* ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) */ +#endif /* ENABLED (JERRY_ES2015) */ while (true) { @@ -809,7 +809,7 @@ lexer_parse_string (parser_context_t *context_p) /**< context */ continue; } } -#if ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) +#if ENABLED (JERRY_ES2015) else if (str_end_character == LIT_CHAR_GRAVE_ACCENT && source_p[0] == LIT_CHAR_DOLLAR_SIGN && source_p + 1 < source_end_p && @@ -818,7 +818,7 @@ lexer_parse_string (parser_context_t *context_p) /**< context */ source_p++; break; } -#endif /* ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) */ +#endif /* ENABLED (JERRY_ES2015) */ if (*source_p >= LEXER_UTF8_4BYTE_START) { @@ -837,7 +837,7 @@ lexer_parse_string (parser_context_t *context_p) /**< context */ /* Subtract -1 because column is increased below. */ column--; } -#if ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) +#if ENABLED (JERRY_ES2015) else if (str_end_character == LIT_CHAR_GRAVE_ACCENT) { /* Newline (without backslash) is part of the string. */ @@ -872,7 +872,7 @@ lexer_parse_string (parser_context_t *context_p) /**< context */ continue; } } -#endif /* ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) */ +#endif /* ENABLED (JERRY_ES2015) */ else if (*source_p == LIT_CHAR_CR || *source_p == LIT_CHAR_LF || (*source_p == LEXER_NEWLINE_LS_PS_BYTE_1 && LEXER_NEWLINE_LS_PS_BYTE_23 (source_p))) @@ -899,12 +899,12 @@ lexer_parse_string (parser_context_t *context_p) /**< context */ parser_raise_error (context_p, PARSER_ERR_STRING_TOO_LONG); } -#if ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) +#if ENABLED (JERRY_ES2015) context_p->token.type = ((str_end_character != LIT_CHAR_GRAVE_ACCENT) ? LEXER_LITERAL : LEXER_TEMPLATE_LITERAL); -#else /* !ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) */ +#else /* !ENABLED (JERRY_ES2015) */ context_p->token.type = LEXER_LITERAL; -#endif /* ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) */ +#endif /* ENABLED (JERRY_ES2015) */ /* Fill literal data. */ context_p->token.lit_location.char_p = string_start_p; @@ -1188,7 +1188,7 @@ lexer_next_token (parser_context_t *context_p) /**< context */ return; } -#if ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) +#if ENABLED (JERRY_ES2015) if (length >= 3 && context_p->source_p[1] == LIT_CHAR_DOT && context_p->source_p[2] == LIT_CHAR_DOT) @@ -1197,7 +1197,7 @@ lexer_next_token (parser_context_t *context_p) /**< context */ length = 3; break; } -#endif /* ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) */ +#endif /* ENABLED (JERRY_ES2015) */ context_p->token.type = LEXER_DOT; length = 1; @@ -1301,14 +1301,14 @@ lexer_next_token (parser_context_t *context_p) /**< context */ break; } -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) if (context_p->source_p[1] == (uint8_t) LIT_CHAR_GREATER_THAN) { context_p->token.type = LEXER_ARROW; length = 2; break; } -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ } context_p->token.type = LEXER_ASSIGN; @@ -1363,9 +1363,9 @@ lexer_next_token (parser_context_t *context_p) /**< context */ case LIT_CHAR_SINGLE_QUOTE: case LIT_CHAR_DOUBLE_QUOTE: -#if ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) +#if ENABLED (JERRY_ES2015) case LIT_CHAR_GRAVE_ACCENT: -#endif /* ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) */ +#endif /* ENABLED (JERRY_ES2015) */ { lexer_parse_string (context_p); return; @@ -1406,7 +1406,7 @@ lexer_check_next_character (parser_context_t *context_p, /**< context */ && context_p->source_p[0] == (uint8_t) character); } /* lexer_check_next_character */ -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) /** * Checks whether the next token is a type used for detecting arrow functions. @@ -1428,7 +1428,7 @@ lexer_check_arrow (parser_context_t *context_p) /**< context */ && context_p->source_p[1] == (uint8_t) LIT_CHAR_GREATER_THAN); } /* lexer_check_arrow */ -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * Search or append the string to the literal pool. @@ -1604,12 +1604,12 @@ lexer_construct_literal_object (parser_context_t *context_p, /**< context */ { uint8_t str_end_character = source_p[-1]; -#if ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) +#if ENABLED (JERRY_ES2015) if (str_end_character == LIT_CHAR_RIGHT_BRACE) { str_end_character = LIT_CHAR_GRAVE_ACCENT; } -#endif /* ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) */ +#endif /* ENABLED (JERRY_ES2015) */ while (true) { @@ -1745,7 +1745,7 @@ lexer_construct_literal_object (parser_context_t *context_p, /**< context */ continue; } } -#if ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) +#if ENABLED (JERRY_ES2015) else if (str_end_character == LIT_CHAR_GRAVE_ACCENT && source_p[0] == LIT_CHAR_DOLLAR_SIGN && source_p[1] == LIT_CHAR_LEFT_BRACE) @@ -1754,7 +1754,7 @@ lexer_construct_literal_object (parser_context_t *context_p, /**< context */ JERRY_ASSERT (source_p < context_p->source_end_p); break; } -#endif /* ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) */ +#endif /* ENABLED (JERRY_ES2015) */ if (*source_p >= LEXER_UTF8_4BYTE_START) { @@ -2033,7 +2033,7 @@ lexer_construct_function_object (parser_context_t *context_p, /**< context */ result_index = context_p->literal_count; context_p->literal_count++; -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) if (!(extra_status_flags & PARSER_IS_ARROW_FUNCTION)) { compiled_code_p = parser_parse_function (context_p, extra_status_flags); @@ -2042,9 +2042,9 @@ lexer_construct_function_object (parser_context_t *context_p, /**< context */ { compiled_code_p = parser_parse_arrow_function (context_p, extra_status_flags); } -#else /* !ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#else /* !ENABLED (JERRY_ES2015) */ compiled_code_p = parser_parse_function (context_p, extra_status_flags); -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ literal_p->u.bytecode_p = compiled_code_p; literal_p->type = LEXER_FUNCTION_LITERAL; @@ -2326,7 +2326,7 @@ lexer_expect_identifier (parser_context_t *context_p, /**< context */ context_p->status_flags &= (uint32_t) ~(PARSER_MODULE_DEFAULT_CLASS_OR_FUNC); return; } -#endif +#endif /* ENABLED (JERRY_ES2015_MODULE_SYSTEM) */ parser_raise_error (context_p, PARSER_ERR_IDENTIFIER_EXPECTED); } /* lexer_expect_identifier */ @@ -2340,11 +2340,11 @@ lexer_expect_object_literal_id (parser_context_t *context_p, /**< context */ { lexer_skip_spaces (context_p); -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) int is_class_method = ((ident_opts & LEXER_OBJ_IDENT_CLASS_METHOD) && !(ident_opts & LEXER_OBJ_IDENT_ONLY_IDENTIFIERS) && (context_p->token.type != LEXER_KEYW_STATIC)); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ context_p->token.line = context_p->line; context_p->token.column = context_p->column; @@ -2364,10 +2364,10 @@ lexer_expect_object_literal_id (parser_context_t *context_p, /**< context */ context_p->token.flags = (uint8_t) (context_p->token.flags | LEXER_NO_SKIP_SPACES); if (context_p->source_p < context_p->source_end_p -#if ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if ENABLED (JERRY_ES2015) && context_p->source_p[0] != LIT_CHAR_COMMA && context_p->source_p[0] != LIT_CHAR_RIGHT_BRACE -#endif /* ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#endif /* ENABLED (JERRY_ES2015) */ && context_p->source_p[0] != LIT_CHAR_COLON) { if (lexer_compare_literal_to_string (context_p, "get", 3)) @@ -2383,13 +2383,13 @@ lexer_expect_object_literal_id (parser_context_t *context_p, /**< context */ } } -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if (is_class_method && lexer_compare_literal_to_string (context_p, "static", 6)) { context_p->token.type = LEXER_KEYW_STATIC; return; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ create_literal_object = true; } @@ -2399,7 +2399,7 @@ lexer_expect_object_literal_id (parser_context_t *context_p, /**< context */ lexer_parse_string (context_p); create_literal_object = true; } -#if ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if ENABLED (JERRY_ES2015) else if (context_p->source_p[0] == LIT_CHAR_LEFT_SQUARE) { context_p->source_p += 1; @@ -2414,7 +2414,7 @@ lexer_expect_object_literal_id (parser_context_t *context_p, /**< context */ } return; } -#endif /* ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#endif /* ENABLED (JERRY_ES2015) */ else if (!(ident_opts & LEXER_OBJ_IDENT_ONLY_IDENTIFIERS) && context_p->source_p[0] == LIT_CHAR_RIGHT_BRACE) { context_p->token.type = LEXER_RIGHT_BRACE; @@ -2443,13 +2443,13 @@ lexer_expect_object_literal_id (parser_context_t *context_p, /**< context */ if (create_literal_object) { -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if (is_class_method && lexer_compare_literal_to_string (context_p, "constructor", 11)) { context_p->token.type = LEXER_CLASS_CONSTRUCTOR; return; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ lexer_construct_literal_object (context_p, &context_p->token.lit_location, @@ -2485,10 +2485,10 @@ lexer_scan_identifier (parser_context_t *context_p, /**< context */ context_p->token.flags = (uint8_t) (context_p->token.flags | LEXER_NO_SKIP_SPACES); if (context_p->source_p < context_p->source_end_p -#if ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if ENABLED (JERRY_ES2015) && context_p->source_p[0] != LIT_CHAR_COMMA && context_p->source_p[0] != LIT_CHAR_RIGHT_BRACE -#endif /* ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#endif /* ENABLED (JERRY_ES2015) */ && context_p->source_p[0] != LIT_CHAR_COLON) { if (lexer_compare_literal_to_string (context_p, "get", 3)) @@ -2509,23 +2509,23 @@ lexer_scan_identifier (parser_context_t *context_p, /**< context */ lexer_next_token (context_p); if (context_p->token.type == LEXER_LITERAL -#if ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if ENABLED (JERRY_ES2015) || context_p->token.type == LEXER_LEFT_SQUARE -#endif /* ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#endif /* ENABLED (JERRY_ES2015) */ || context_p->token.type == LEXER_RIGHT_BRACE) { return; } } -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if (ident_opts & LEXER_SCAN_CLASS_PROPERTY) { lexer_next_token (context_p); if (context_p->token.type == LEXER_LITERAL -#if ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if ENABLED (JERRY_ES2015) || context_p->token.type == LEXER_LEFT_SQUARE -#endif /* ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#endif /* ENABLED (JERRY_ES2015) */ || context_p->token.type == LEXER_RIGHT_BRACE || context_p->token.type == LEXER_SEMICOLON || ((ident_opts & LEXER_SCAN_CLASS_LEFT_PAREN) && context_p->token.type == LEXER_LEFT_PAREN)) @@ -2533,7 +2533,7 @@ lexer_scan_identifier (parser_context_t *context_p, /**< context */ return; } } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ parser_raise_error (context_p, PARSER_ERR_IDENTIFIER_EXPECTED); } /* lexer_scan_identifier */ diff --git a/jerry-core/parser/js/js-lexer.h b/jerry-core/parser/js/js-lexer.h index 79f762284..04e159850 100644 --- a/jerry-core/parser/js/js-lexer.h +++ b/jerry-core/parser/js/js-lexer.h @@ -39,12 +39,10 @@ typedef enum LEXER_LIT_TRUE, /**< true (not a keyword!) */ LEXER_LIT_FALSE, /**< false (not a keyword!) */ LEXER_LIT_NULL, /**< null (not a keyword!) */ -#if ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) +#if ENABLED (JERRY_ES2015) LEXER_TEMPLATE_LITERAL, /**< multi segment template literal */ -#endif /* ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) */ -#if ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) LEXER_THREE_DOTS, /**< ... (rest or spread operator) */ -#endif /* ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) */ +#endif /* ENABLED (JERRY_ES2015) */ /* Unary operators * IMPORTANT: update CBC_UNARY_OP_TOKEN_TO_OPCODE and @@ -121,9 +119,9 @@ typedef enum LEXER_SEMICOLON, /**< ";" */ LEXER_COLON, /**< ":" */ LEXER_COMMA, /**< "," */ -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) LEXER_ARROW, /**< "=>" */ -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ LEXER_KEYW_BREAK, /**< break */ LEXER_KEYW_DO, /**< do */ @@ -153,10 +151,10 @@ typedef enum LEXER_COMMA_SEP_LIST, /**< comma separated bracketed expression list */ LEXER_SCAN_SWITCH, /**< special value for switch pre-scan */ LEXER_CLASS_CONSTRUCTOR, /**< special value for class constructor method */ -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) LEXER_FOR_IN_OF, /**< special value during for in/of statmenet scanning */ LEXER_LITERAL_OF, /**< 'of' literal */ -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* ENABLED (JERRY_ES2015) */ #if !ENABLED (JERRY_ES2015) /* Future reserved words: these keywords @@ -263,10 +261,10 @@ typedef enum LEXER_SCAN_IDENT_NO_OPTS = (1u << 0), /**< no options */ LEXER_SCAN_IDENT_PROPERTY = (1u << 1), /**< scan valid property names */ LEXER_SCAN_IDENT_NO_KEYW = (1u << 2), /**< don't scan keywords (e.g. get/set) */ -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) LEXER_SCAN_CLASS_PROPERTY = (1u << 3), /**< scan valid class property names */ LEXER_SCAN_CLASS_LEFT_PAREN = (1u << 4), /**< also parse left parenthesis */ -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ } lexer_scan_ident_opts_t; /** diff --git a/jerry-core/parser/js/js-parser-expr.c b/jerry-core/parser/js/js-parser-expr.c index 96d52514a..a4db37045 100644 --- a/jerry-core/parser/js/js-parser-expr.c +++ b/jerry-core/parser/js/js-parser-expr.c @@ -256,7 +256,7 @@ parser_parse_array_literal (parser_context_t *context_p) /**< context */ } } /* parser_parse_array_literal */ -#if !ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if !ENABLED (JERRY_ES2015) /** * Object literal item types. */ @@ -353,14 +353,9 @@ parser_append_object_literal_item (parser_context_t *context_p, /**< context */ context_p->stack_top_uint8 = PARSER_OBJECT_PROPERTY_BOTH_ACCESSORS; } } /* parser_append_object_literal_item */ -#endif /* !ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ - -#if ENABLED (JERRY_ES2015_CLASS) - -#if !ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) -#error "Class support requires ES2015 object literal support" -#endif /* !ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#endif /* !ENABLED (JERRY_ES2015) */ +#if ENABLED (JERRY_ES2015) /** * Description of "get" literal string. */ @@ -676,9 +671,9 @@ parser_parse_class (parser_context_t *context_p, /**< context */ lexer_next_token (context_p); } /* parser_parse_class */ -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ -#if ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if ENABLED (JERRY_ES2015) /** * Parse object initializer method definition. * @@ -700,7 +695,7 @@ parser_parse_object_method (parser_context_t *context_p) /**< context */ lexer_next_token (context_p); } /* parser_parse_object_method */ -#endif /* ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * Parse object literal. @@ -712,9 +707,9 @@ parser_parse_object_literal (parser_context_t *context_p) /**< context */ parser_emit_cbc (context_p, CBC_CREATE_OBJECT); -#if !ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if !ENABLED (JERRY_ES2015) parser_stack_push_uint8 (context_p, PARSER_OBJECT_PROPERTY_START); -#endif /* !ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#endif /* !ENABLED (JERRY_ES2015) */ while (true) { @@ -732,25 +727,25 @@ parser_parse_object_literal (parser_context_t *context_p) /**< context */ uint32_t status_flags; cbc_ext_opcode_t opcode; uint16_t literal_index, function_literal_index; -#if !ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if !ENABLED (JERRY_ES2015) parser_object_literal_item_types_t item_type; -#endif /* !ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#endif /* !ENABLED (JERRY_ES2015) */ if (context_p->token.type == LEXER_PROPERTY_GETTER) { status_flags = PARSER_IS_FUNCTION | PARSER_IS_CLOSURE | PARSER_IS_PROPERTY_GETTER; opcode = CBC_EXT_SET_GETTER; -#if !ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if !ENABLED (JERRY_ES2015) item_type = PARSER_OBJECT_PROPERTY_GETTER; -#endif /* !ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#endif /* !ENABLED (JERRY_ES2015) */ } else { status_flags = PARSER_IS_FUNCTION | PARSER_IS_CLOSURE | PARSER_IS_PROPERTY_SETTER; opcode = CBC_EXT_SET_SETTER; -#if !ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if !ENABLED (JERRY_ES2015) item_type = PARSER_OBJECT_PROPERTY_SETTER; -#endif /* !ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#endif /* !ENABLED (JERRY_ES2015) */ } lexer_expect_object_literal_id (context_p, LEXER_OBJ_IDENT_ONLY_IDENTIFIERS); @@ -758,25 +753,25 @@ parser_parse_object_literal (parser_context_t *context_p) /**< context */ /* This assignment is a nop for computed getters/setters. */ literal_index = context_p->lit_object.index; -#if ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if ENABLED (JERRY_ES2015) if (context_p->token.type == LEXER_RIGHT_SQUARE) { opcode = ((opcode == CBC_EXT_SET_GETTER) ? CBC_EXT_SET_COMPUTED_GETTER : CBC_EXT_SET_COMPUTED_SETTER); } -#else /* !ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#else /* !ENABLED (JERRY_ES2015) */ parser_append_object_literal_item (context_p, literal_index, item_type); -#endif /* ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#endif /* ENABLED (JERRY_ES2015) */ parser_flush_cbc (context_p); function_literal_index = lexer_construct_function_object (context_p, status_flags); -#if ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if ENABLED (JERRY_ES2015) if (opcode >= CBC_EXT_SET_COMPUTED_GETTER) { literal_index = function_literal_index; } -#endif /* ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#endif /* ENABLED (JERRY_ES2015) */ parser_emit_cbc_literal (context_p, CBC_PUSH_LITERAL, @@ -789,7 +784,7 @@ parser_parse_object_literal (parser_context_t *context_p) /**< context */ lexer_next_token (context_p); break; } -#if ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if ENABLED (JERRY_ES2015) case LEXER_RIGHT_SQUARE: { lexer_next_token (context_p); @@ -821,23 +816,23 @@ parser_parse_object_literal (parser_context_t *context_p) /**< context */ } break; } -#endif /* ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#endif /* ENABLED (JERRY_ES2015) */ default: { uint16_t literal_index = context_p->lit_object.index; -#if ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if ENABLED (JERRY_ES2015) parser_line_counter_t start_line = context_p->token.line; parser_line_counter_t start_column = context_p->token.column; -#else /* !ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#else /* !ENABLED (JERRY_ES2015) */ parser_append_object_literal_item (context_p, literal_index, PARSER_OBJECT_PROPERTY_VALUE); -#endif /* ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#endif /* ENABLED (JERRY_ES2015) */ lexer_next_token (context_p); -#if ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if ENABLED (JERRY_ES2015) if (context_p->token.type == LEXER_LEFT_PAREN) { parser_parse_object_method (context_p); @@ -876,7 +871,7 @@ parser_parse_object_literal (parser_context_t *context_p) /**< context */ lexer_next_token (context_p); break; } -#endif /* ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#endif /* ENABLED (JERRY_ES2015) */ if (context_p->token.type != LEXER_COLON) { @@ -910,14 +905,14 @@ parser_parse_object_literal (parser_context_t *context_p) /**< context */ } } -#if !ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if !ENABLED (JERRY_ES2015) while (context_p->stack_top_uint8 != PARSER_OBJECT_PROPERTY_START) { parser_stack_pop (context_p, NULL, 3); } parser_stack_pop_uint8 (context_p); -#endif /* !ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#endif /* !ENABLED (JERRY_ES2015) */ } /* parser_parse_object_literal */ /** @@ -1030,7 +1025,7 @@ parser_parse_function_expression (parser_context_t *context_p, /**< context */ context_p->last_cbc.literal_object_type = LEXER_LITERAL_OBJECT_ANY; } /* parser_parse_function_expression */ -#if ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) +#if ENABLED (JERRY_ES2015) /** * Parse template literal. @@ -1134,7 +1129,7 @@ parser_parse_template_literal (parser_context_t *context_p) /**< context */ return; } /* parser_parse_template_literal */ -#endif /* ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * Parse and record unary operators, and parse the primary literal. @@ -1163,13 +1158,13 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ * they are processed when their closing paren is reached. */ if (context_p->token.type == LEXER_LEFT_PAREN) { -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) if (context_p->next_scanner_info_p->source_p == context_p->source_p) { JERRY_ASSERT (context_p->next_scanner_info_p->type == SCANNER_TYPE_FUNCTION); break; } -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ (*grouping_level_p)++; new_was_seen = 0; } @@ -1190,7 +1185,7 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ /* Parse primary expression. */ switch (context_p->token.type) { -#if ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) +#if ENABLED (JERRY_ES2015) case LEXER_TEMPLATE_LITERAL: { if (context_p->source_p[-1] != LIT_CHAR_GRAVE_ACCENT) @@ -1202,10 +1197,10 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ /* The string is a normal string literal. */ /* FALLTHRU */ } -#endif /* ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) */ +#endif /* ENABLED (JERRY_ES2015) */ case LEXER_LITERAL: { -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) if (context_p->next_scanner_info_p->source_p == context_p->source_p) { JERRY_ASSERT (context_p->next_scanner_info_p->type == SCANNER_TYPE_FUNCTION); @@ -1214,7 +1209,7 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ PARSER_IS_FUNCTION | PARSER_IS_ARROW_FUNCTION); return; } -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ uint8_t type = context_p->token.lit_location.type; @@ -1332,7 +1327,7 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ } case LEXER_KEYW_THIS: { -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if (PARSER_IS_CLASS_CONSTRUCTOR_SUPER (context_p->status_flags)) { if (context_p->status_flags & PARSER_CLASS_IMPLICIT_SUPER) @@ -1346,11 +1341,11 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ } else { -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ parser_emit_cbc (context_p, CBC_PUSH_THIS); -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ break; } case LEXER_LIT_TRUE: @@ -1368,7 +1363,7 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ parser_emit_cbc (context_p, CBC_PUSH_NULL); break; } -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) case LEXER_KEYW_CLASS: { parser_parse_class (context_p, false); @@ -1412,8 +1407,6 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ parser_raise_error (context_p, PARSER_ERR_UNEXPECTED_SUPER_REFERENCE); } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) case LEXER_LEFT_PAREN: { JERRY_ASSERT (context_p->next_scanner_info_p->source_p == context_p->source_p @@ -1424,7 +1417,7 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ PARSER_IS_FUNCTION | PARSER_IS_ARROW_FUNCTION | PARSER_ARROW_PARSE_ARGS); return; } -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ default: { parser_raise_error (context_p, PARSER_ERR_PRIMARY_EXP_EXPECTED); @@ -1441,15 +1434,15 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ static void parser_process_unary_expression (parser_context_t *context_p) /**< context */ { -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) /* Track to see if a property was accessed or not */ bool property_accessed = false; -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ /* Parse postfix part of a primary expression. */ while (true) { -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if (context_p->token.type == LEXER_DOT || context_p->token.type == LEXER_LEFT_SQUARE) { if (property_accessed) @@ -1464,7 +1457,7 @@ parser_process_unary_expression (parser_context_t *context_p) /**< context */ } property_accessed = true; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ /* Since break would only break the switch, we use * continue to continue this loop. Without continue, @@ -1550,12 +1543,12 @@ parser_process_unary_expression (parser_context_t *context_p) /**< context */ opcode = CBC_CALL_PROP; context_p->last_cbc_opcode = PARSER_PUSH_PROP_TO_PUSH_PROP_REFERENCE (context_p->last_cbc_opcode); } -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) else if (context_p->last_cbc_opcode == PARSER_TO_EXT_OPCODE (CBC_EXT_PUSH_CONSTRUCTOR_SUPER)) { opcode = PARSER_TO_EXT_OPCODE (CBC_EXT_SUPER_CALL); } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ else if (JERRY_UNLIKELY ((context_p->status_flags & (PARSER_INSIDE_WITH | PARSER_RESOLVE_BASE_FOR_CALLS)) && PARSER_IS_PUSH_LITERAL (context_p->last_cbc_opcode) && context_p->last_cbc.literal_type == LEXER_IDENT_LITERAL)) @@ -1596,7 +1589,7 @@ parser_process_unary_expression (parser_context_t *context_p) /**< context */ if (is_eval) { -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if (context_p->status_flags & PARSER_CLASS_HAS_SUPER) { parser_flush_cbc (context_p); @@ -1605,20 +1598,20 @@ parser_process_unary_expression (parser_context_t *context_p) /**< context */ } else { -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ parser_emit_cbc (context_p, CBC_EVAL); -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ } -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if ((context_p->status_flags & PARSER_CLASS_SUPER_PROP_REFERENCE) && opcode == CBC_CALL_PROP) { parser_emit_cbc_ext (context_p, CBC_EXT_SUPER_PROP_CALL); context_p->status_flags &= (uint32_t) ~PARSER_CLASS_SUPER_PROP_REFERENCE; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ if (call_arguments <= 1) { @@ -1802,14 +1795,14 @@ parser_append_binary_token (parser_context_t *context_p) /**< context */ parser_stack_push_uint16 (context_p, context_p->last_cbc.literal_index); parser_stack_push_uint8 (context_p, CBC_ASSIGN_PROP_LITERAL); context_p->last_cbc_opcode = PARSER_CBC_UNAVAILABLE; -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if (context_p->status_flags & PARSER_CLASS_SUPER_PROP_REFERENCE) { parser_emit_cbc_ext (context_p, CBC_EXT_SUPER_PROP_ASSIGN); parser_flush_cbc (context_p); } context_p->status_flags &= (uint32_t) ~PARSER_CLASS_SUPER_PROP_REFERENCE; -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ } else { @@ -2126,7 +2119,7 @@ parser_parse_expression (parser_context_t *context_p, /**< context */ parser_stack_push_uint8 (context_p, LEXER_EXPRESSION_START); -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) /* Parsing a new expression: * So save, remove, and at the end restore the super prop reference indicator. * @@ -2213,13 +2206,13 @@ process_unary_expression: parser_push_result (context_p); } -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) /* Restore the super prop ref flag. */ if (has_super_ref) { context_p->status_flags |= (uint32_t) PARSER_CLASS_SUPER_PROP_REFERENCE; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ } /* parser_parse_expression */ /** diff --git a/jerry-core/parser/js/js-parser-internal.h b/jerry-core/parser/js/js-parser-internal.h index 1a4ceb5a1..cafba078e 100644 --- a/jerry-core/parser/js/js-parser-internal.h +++ b/jerry-core/parser/js/js-parser-internal.h @@ -48,29 +48,25 @@ typedef enum PARSER_IS_FUNC_EXPRESSION = (1u << 3), /**< a function expression is parsed */ PARSER_IS_PROPERTY_GETTER = (1u << 4), /**< a property getter function is parsed */ PARSER_IS_PROPERTY_SETTER = (1u << 5), /**< a property setter function is parsed */ -#if ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) - PARSER_FUNCTION_HAS_REST_PARAM = (1u << 6), /**< function has rest parameter */ -#endif /* ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) */ - PARSER_HAS_NON_STRICT_ARG = (1u << 7), /**< the function has arguments which + PARSER_HAS_NON_STRICT_ARG = (1u << 6), /**< the function has arguments which * are not supported in strict mode */ - PARSER_ARGUMENTS_NEEDED = (1u << 8), /**< arguments object must be created */ - PARSER_ARGUMENTS_NOT_NEEDED = (1u << 9), /**< arguments object must NOT be created */ - PARSER_LEXICAL_ENV_NEEDED = (1u << 10), /**< lexical environment object must be created */ - PARSER_INSIDE_WITH = (1u << 12), /**< code block is inside a with statement */ - PARSER_RESOLVE_BASE_FOR_CALLS = (1u << 13), /**< the this object must be resolved when + PARSER_ARGUMENTS_NEEDED = (1u << 7), /**< arguments object must be created */ + PARSER_ARGUMENTS_NOT_NEEDED = (1u << 8), /**< arguments object must NOT be created */ + PARSER_LEXICAL_ENV_NEEDED = (1u << 9), /**< lexical environment object must be created */ + PARSER_INSIDE_WITH = (1u << 10), /**< code block is inside a with statement */ + PARSER_RESOLVE_BASE_FOR_CALLS = (1u << 11), /**< the this object must be resolved when * a function without a base object is called */ - PARSER_HAS_INITIALIZED_VARS = (1u << 14), /**< a CBC_INITIALIZE_VARS instruction must be emitted */ - PARSER_HAS_LATE_LIT_INIT = (1u << 15), /**< allocate memory for this string after + PARSER_HAS_INITIALIZED_VARS = (1u << 12), /**< a CBC_INITIALIZE_VARS instruction must be emitted */ + PARSER_HAS_LATE_LIT_INIT = (1u << 13), /**< allocate memory for this string after * the local parser data is freed */ - PARSER_NO_END_LABEL = (1u << 16), /**< return instruction must be inserted + PARSER_NO_END_LABEL = (1u << 14), /**< return instruction must be inserted * after the last byte code */ - PARSER_DEBUGGER_BREAKPOINT_APPENDED = (1u << 17), /**< pending (unsent) breakpoint + PARSER_DEBUGGER_BREAKPOINT_APPENDED = (1u << 15), /**< pending (unsent) breakpoint * info is available */ -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) + PARSER_FUNCTION_HAS_REST_PARAM = (1u << 16), /**< function has rest parameter */ PARSER_IS_ARROW_FUNCTION = (1u << 18), /**< an arrow function is parsed */ PARSER_ARROW_PARSE_ARGS = (1u << 19), /**< parse the argument list of an arrow function */ -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ -#if ENABLED (JERRY_ES2015_CLASS) /* These four status flags must be in this order. See PARSER_CLASS_PARSE_OPTS_OFFSET. */ PARSER_CLASS_CONSTRUCTOR = (1u << 20), /**< a class constructor is parsed (this value must be kept in * in sync with ECMA_PARSE_CLASS_CONSTRUCTOR) */ @@ -78,7 +74,7 @@ typedef enum PARSER_CLASS_IMPLICIT_SUPER = (1u << 22), /**< class has implicit parent class */ PARSER_CLASS_STATIC_FUNCTION = (1u << 23), /**< this function is a static class method */ PARSER_CLASS_SUPER_PROP_REFERENCE = (1u << 24), /**< super property call or assignment */ -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ #if ENABLED (JERRY_ES2015_MODULE_SYSTEM) PARSER_MODULE_DEFAULT_CLASS_OR_FUNC = (1u << 25), /**< parsing a function or class default export */ PARSER_MODULE_STORE_IDENT = (1u << 26), /**< store identifier of the current export statement */ @@ -106,7 +102,7 @@ typedef enum */ #define PARSER_STRICT_MODE_MASK 0x1 -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) /** * Offset between PARSER_CLASS_CONSTRUCTOR and ECMA_PARSE_CLASS_CONSTRUCTOR */ @@ -147,7 +143,7 @@ typedef enum */ #define PARSER_IS_CLASS_CONSTRUCTOR_SUPER(flag) \ (((flag) & PARSER_CLASS_CONSTRUCTOR_SUPER) == PARSER_CLASS_CONSTRUCTOR_SUPER) -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ /* The maximum of PARSER_CBC_STREAM_PAGE_SIZE is 127. */ #define PARSER_CBC_STREAM_PAGE_SIZE \ @@ -572,12 +568,10 @@ void parser_set_continues_to_current_position (parser_context_t *context_p, pars void lexer_next_token (parser_context_t *context_p); bool lexer_check_next_character (parser_context_t *context_p, lit_utf8_byte_t character); -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) void lexer_skip_empty_statements (parser_context_t *context_p); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) bool lexer_check_arrow (parser_context_t *context_p); -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ void lexer_parse_string (parser_context_t *context_p); void lexer_expect_identifier (parser_context_t *context_p, uint8_t literal_type); void lexer_scan_identifier (parser_context_t *context_p, uint32_t ident_opts); @@ -608,11 +602,11 @@ uint8_t lexer_convert_binary_lvalue_token_to_binary (uint8_t token); void parser_parse_block_expression (parser_context_t *context_p, int options); void parser_parse_expression_statement (parser_context_t *context_p, int options); void parser_parse_expression (parser_context_t *context_p, int options); -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) void parser_parse_class (parser_context_t *context_p, bool is_statement); void parser_parse_super_class_context_start (parser_context_t *context_p); void parser_parse_super_class_context_end (parser_context_t *context_p, bool is_statement); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * @} @@ -686,9 +680,9 @@ void parser_module_add_names_to_node (parser_context_t *context_p, */ ecma_compiled_code_t *parser_parse_function (parser_context_t *context_p, uint32_t status_flags); -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) ecma_compiled_code_t *parser_parse_arrow_function (parser_context_t *context_p, uint32_t status_flags); -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ /* Error management. */ diff --git a/jerry-core/parser/js/js-parser-statm.c b/jerry-core/parser/js/js-parser-statm.c index 45ba780a2..82bd11d04 100644 --- a/jerry-core/parser/js/js-parser-statm.c +++ b/jerry-core/parser/js/js-parser-statm.c @@ -21,13 +21,6 @@ #include "ecma-helpers.h" #include "lit-char-helpers.h" -#if ENABLED (JERRY_ES2015_FOR_OF) -#if !ENABLED (JERRY_ES2015_BUILTIN_ITERATOR) -#error "For of support requires ES2015 iterator support" -#endif /* !ENABLED (JERRY_ES2015_BUILTIN_ITERATOR) */ -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ - - /** \addtogroup parser Parser * @{ * @@ -78,9 +71,9 @@ typedef enum * Break and continue uses another instruction form * when crosses their borders. */ PARSER_STATEMENT_FOR_IN, -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) PARSER_STATEMENT_FOR_OF, -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* ENABLED (JERRY_ES2015) */ PARSER_STATEMENT_WITH, PARSER_STATEMENT_TRY, } parser_statement_type_t; @@ -217,10 +210,10 @@ parser_statement_length (uint8_t type) /**< type of statement */ (uint8_t) (sizeof (parser_for_statement_t) + sizeof (parser_loop_statement_t) + 1), /* PARSER_STATEMENT_FOR_IN */ (uint8_t) (sizeof (parser_for_in_of_statement_t) + sizeof (parser_loop_statement_t) + 1), -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) /* PARSER_STATEMENT_FOR_OF */ (uint8_t) (sizeof (parser_for_in_of_statement_t) + sizeof (parser_loop_statement_t) + 1), -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* ENABLED (JERRY_ES2015) */ /* PARSER_STATEMENT_WITH */ (uint8_t) (sizeof (parser_with_statement_t) + 1), /* PARSER_STATEMENT_TRY */ @@ -579,7 +572,7 @@ parser_parse_with_statement_end (parser_context_t *context_p) /**< context */ } } /* parser_parse_with_statement_end */ -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) /** * Parse super class context like a with statement (starting part). */ @@ -648,7 +641,7 @@ parser_parse_super_class_context_end (parser_context_t *context_p, /**< context parser_set_branch_to_current_position (context_p, &with_statement.branch); } /* parser_parse_super_class_context_end */ -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * Parse do-while statement (ending part). @@ -887,16 +880,16 @@ parser_parse_for_statement_start (parser_context_t *context_p) /**< context */ parser_for_in_of_statement_t for_in_of_statement; scanner_location_t start_location, end_location; -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) JERRY_ASSERT (context_p->next_scanner_info_p->type == SCANNER_TYPE_FOR_IN || context_p->next_scanner_info_p->type == SCANNER_TYPE_FOR_OF); bool is_for_in = (context_p->next_scanner_info_p->type == SCANNER_TYPE_FOR_IN); -#else /* !ENABLED (JERRY_ES2015_FOR_OF) */ +#else /* !ENABLED (JERRY_ES2015) */ JERRY_ASSERT (context_p->next_scanner_info_p->type == SCANNER_TYPE_FOR_IN); bool is_for_in = true; -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* ENABLED (JERRY_ES2015) */ scanner_get_location (&start_location, context_p); scanner_set_location (context_p, &((scanner_location_info_t *) context_p->next_scanner_info_p)->location); @@ -986,11 +979,11 @@ parser_parse_for_statement_start (parser_context_t *context_p) /**< context */ if (context_p->token.type != LEXER_EOS) { -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) parser_raise_error (context_p, is_for_in ? PARSER_ERR_IN_EXPECTED : PARSER_ERR_OF_EXPECTED); -#else /* !ENABLED (JERRY_ES2015_FOR_OF) */ +#else /* !ENABLED (JERRY_ES2015) */ parser_raise_error (context_p, PARSER_ERR_IN_EXPECTED); -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* ENABLED (JERRY_ES2015) */ } parser_flush_cbc (context_p); @@ -1002,12 +995,12 @@ parser_parse_for_statement_start (parser_context_t *context_p) /**< context */ parser_stack_push (context_p, &for_in_of_statement, sizeof (parser_for_in_of_statement_t)); parser_stack_push (context_p, &loop, sizeof (parser_loop_statement_t)); -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) parser_stack_push_uint8 (context_p, is_for_in ? PARSER_STATEMENT_FOR_IN : PARSER_STATEMENT_FOR_OF); -#else /* !ENABLED (JERRY_ES2015_FOR_OF) */ +#else /* !ENABLED (JERRY_ES2015) */ parser_stack_push_uint8 (context_p, PARSER_STATEMENT_FOR_IN); -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* ENABLED (JERRY_ES2015) */ parser_stack_iterator_init (context_p, &context_p->last_statement); return; } @@ -1588,9 +1581,9 @@ parser_parse_break_statement (parser_context_t *context_p) /**< context */ } if (type == PARSER_STATEMENT_FOR_IN -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) || type == PARSER_STATEMENT_FOR_OF -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* ENABLED (JERRY_ES2015) */ || type == PARSER_STATEMENT_WITH || type == PARSER_STATEMENT_TRY) { @@ -1632,9 +1625,9 @@ parser_parse_break_statement (parser_context_t *context_p) /**< context */ } if (type == PARSER_STATEMENT_FOR_IN -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) || type == PARSER_STATEMENT_FOR_OF -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* ENABLED (JERRY_ES2015) */ || type == PARSER_STATEMENT_WITH || type == PARSER_STATEMENT_TRY) { @@ -1646,9 +1639,9 @@ parser_parse_break_statement (parser_context_t *context_p) /**< context */ || type == PARSER_STATEMENT_DO_WHILE || type == PARSER_STATEMENT_WHILE || type == PARSER_STATEMENT_FOR -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) || type == PARSER_STATEMENT_FOR_OF -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* ENABLED (JERRY_ES2015) */ || type == PARSER_STATEMENT_FOR_IN) { parser_loop_statement_t loop; @@ -1723,11 +1716,11 @@ parser_parse_continue_statement (parser_context_t *context_p) /**< context */ continue; } -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) bool is_for_in_of_statement = (type == PARSER_STATEMENT_FOR_IN) || (type == PARSER_STATEMENT_FOR_OF); -#else /* !ENABLED (JERRY_ES2015_FOR_OF) */ +#else /* !ENABLED (JERRY_ES2015) */ bool is_for_in_of_statement = (type == PARSER_STATEMENT_FOR_IN); -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* ENABLED (JERRY_ES2015) */ if (type == PARSER_STATEMENT_WITH || type == PARSER_STATEMENT_TRY @@ -1743,9 +1736,9 @@ parser_parse_continue_statement (parser_context_t *context_p) /**< context */ if (type == PARSER_STATEMENT_DO_WHILE || type == PARSER_STATEMENT_WHILE || type == PARSER_STATEMENT_FOR -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) || type == PARSER_STATEMENT_FOR_OF -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* ENABLED (JERRY_ES2015) */ || type == PARSER_STATEMENT_FOR_IN) { loop_iterator = iterator; @@ -1771,9 +1764,9 @@ parser_parse_continue_statement (parser_context_t *context_p) /**< context */ if (type == PARSER_STATEMENT_DO_WHILE || type == PARSER_STATEMENT_WHILE || type == PARSER_STATEMENT_FOR -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) || type == PARSER_STATEMENT_FOR_OF -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* ENABLED (JERRY_ES2015) */ || type == PARSER_STATEMENT_FOR_IN) { parser_loop_statement_t loop; @@ -2296,9 +2289,9 @@ parser_parse_statements (parser_context_t *context_p) /**< context */ || context_p->stack_top_uint8 == PARSER_STATEMENT_WHILE || context_p->stack_top_uint8 == PARSER_STATEMENT_FOR || context_p->stack_top_uint8 == PARSER_STATEMENT_FOR_IN -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) || context_p->stack_top_uint8 == PARSER_STATEMENT_FOR_OF -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* ENABLED (JERRY_ES2015) */ || context_p->stack_top_uint8 == PARSER_STATEMENT_WITH) { parser_raise_error (context_p, PARSER_ERR_STATEMENT_EXPECTED); @@ -2320,13 +2313,13 @@ parser_parse_statements (parser_context_t *context_p) /**< context */ break; } -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) case LEXER_KEYW_CLASS: { parser_parse_class (context_p, true); goto consume_last_statement; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ #if ENABLED (JERRY_ES2015_MODULE_SYSTEM) case LEXER_KEYW_IMPORT: @@ -2472,7 +2465,7 @@ parser_parse_statements (parser_context_t *context_p) /**< context */ || context_p->token.type == LEXER_SEMICOLON || context_p->token.type == LEXER_RIGHT_BRACE) { -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if (JERRY_UNLIKELY (PARSER_IS_CLASS_CONSTRUCTOR_SUPER (context_p->status_flags))) { if (context_p->status_flags & PARSER_CLASS_IMPLICIT_SUPER) @@ -2487,20 +2480,20 @@ parser_parse_statements (parser_context_t *context_p) /**< context */ } else { -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ parser_emit_cbc (context_p, CBC_RETURN_WITH_BLOCK); -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ break; } parser_parse_expression (context_p, PARSE_EXPR); bool return_with_literal = (context_p->last_cbc_opcode == CBC_PUSH_LITERAL); -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) return_with_literal = return_with_literal && !PARSER_IS_CLASS_CONSTRUCTOR_SUPER (context_p->status_flags); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ if (return_with_literal) { @@ -2508,18 +2501,18 @@ parser_parse_statements (parser_context_t *context_p) /**< context */ } else { -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if (JERRY_UNLIKELY (PARSER_IS_CLASS_CONSTRUCTOR_SUPER (context_p->status_flags))) { parser_emit_cbc_ext (context_p, CBC_EXT_CONSTRUCTOR_RETURN); } else { -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ parser_emit_cbc (context_p, CBC_RETURN); -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ } break; } @@ -2624,7 +2617,7 @@ parser_parse_statements (parser_context_t *context_p) /**< context */ /* There is no lexer_next_token here, since the * next token belongs to the parent context. */ -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if (JERRY_UNLIKELY (PARSER_IS_CLASS_CONSTRUCTOR_SUPER (context_p->status_flags))) { if (context_p->status_flags & PARSER_CLASS_IMPLICIT_SUPER) @@ -2638,7 +2631,7 @@ parser_parse_statements (parser_context_t *context_p) /**< context */ parser_emit_cbc (context_p, CBC_RETURN); parser_flush_cbc (context_p); } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ return; } parser_raise_error (context_p, PARSER_ERR_INVALID_RIGHT_SQUARE); @@ -2715,18 +2708,18 @@ consume_last_statement: } case PARSER_STATEMENT_FOR_IN: -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) case PARSER_STATEMENT_FOR_OF: -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* ENABLED (JERRY_ES2015) */ { parser_for_in_of_statement_t for_in_of_statement; parser_loop_statement_t loop; -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) bool is_for_in = (context_p->stack_top_uint8 == PARSER_STATEMENT_FOR_IN); #else bool is_for_in = true; -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* ENABLED (JERRY_ES2015) */ parser_stack_pop_uint8 (context_p); parser_stack_pop (context_p, &loop, sizeof (parser_loop_statement_t)); @@ -2839,9 +2832,9 @@ parser_free_jumps (parser_stack_iterator_t iterator) /**< iterator position */ case PARSER_STATEMENT_WHILE: case PARSER_STATEMENT_FOR: case PARSER_STATEMENT_FOR_IN: -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) case PARSER_STATEMENT_FOR_OF: -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* ENABLED (JERRY_ES2015) */ { parser_loop_statement_t loop; diff --git a/jerry-core/parser/js/js-parser-util.c b/jerry-core/parser/js/js-parser-util.c index 1802ff5cc..f390d3647 100644 --- a/jerry-core/parser/js/js-parser-util.c +++ b/jerry-core/parser/js/js-parser-util.c @@ -956,24 +956,6 @@ parser_error_to_string (parser_error_t error) /**< error code */ { return "Case statement must be in a switch block."; } -#if ENABLED (JERRY_ES2015_CLASS) - case PARSER_ERR_MULTIPLE_CLASS_CONSTRUCTORS: - { - return "Multiple constructors are not allowed."; - } - case PARSER_ERR_CLASS_CONSTRUCTOR_AS_ACCESSOR: - { - return "Class constructor may not be an accessor."; - } - case PARSER_ERR_CLASS_STATIC_PROTOTYPE: - { - return "Classes may not have a static property called 'prototype'."; - } - case PARSER_ERR_UNEXPECTED_SUPER_REFERENCE: - { - return "Super is not allowed to be used here."; - } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ case PARSER_ERR_LEFT_PAREN_EXPECTED: { return "Expected '(' token."; @@ -990,12 +972,6 @@ parser_error_to_string (parser_error_t error) /**< error code */ { return "Expected ']' token."; } -#if ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) - case PARSER_ERR_RIGHT_BRACE_EXPECTED: - { - return "Expected '}' token."; - } -#endif /* ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) */ case PARSER_ERR_COLON_EXPECTED: { return "Expected ':' token."; @@ -1012,12 +988,6 @@ parser_error_to_string (parser_error_t error) /**< error code */ { return "Expected 'in' token."; } -#if ENABLED (JERRY_ES2015_FOR_OF) - case PARSER_ERR_OF_EXPECTED: - { - return "Expected 'of' token."; - } -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ case PARSER_ERR_WHILE_EXPECTED: { return "While expected for do-while loop."; @@ -1102,24 +1072,6 @@ parser_error_to_string (parser_error_t error) /**< error code */ { return "Duplicated label."; } -#if ((ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER)) \ - || (ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER))) - case PARSER_ERR_DUPLICATED_ARGUMENT_NAMES: - { - return "Duplicated function argument names are not allowed here."; - } -#endif /* ((ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER)) - || (ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER))) */ -#if ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) - case PARSER_ERR_FORMAL_PARAM_AFTER_REST_PARAMETER: - { - return "Rest parameter must be the last formal parameter."; - } - case PARSER_ERR_REST_PARAMETER_DEFAULT_INITIALIZER: - { - return "Rest parameter may not have a default initializer."; - } -#endif /* ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) */ case PARSER_ERR_OBJECT_PROPERTY_REDEFINED: { return "Property of object literal redefined."; @@ -1128,7 +1080,44 @@ parser_error_to_string (parser_error_t error) /**< error code */ { return "Non-strict argument definition."; } - +#if ENABLED (JERRY_ES2015) + case PARSER_ERR_MULTIPLE_CLASS_CONSTRUCTORS: + { + return "Multiple constructors are not allowed."; + } + case PARSER_ERR_CLASS_CONSTRUCTOR_AS_ACCESSOR: + { + return "Class constructor may not be an accessor."; + } + case PARSER_ERR_CLASS_STATIC_PROTOTYPE: + { + return "Classes may not have a static property called 'prototype'."; + } + case PARSER_ERR_UNEXPECTED_SUPER_REFERENCE: + { + return "Super is not allowed to be used here."; + } + case PARSER_ERR_RIGHT_BRACE_EXPECTED: + { + return "Expected '}' token."; + } + case PARSER_ERR_OF_EXPECTED: + { + return "Expected 'of' token."; + } + case PARSER_ERR_DUPLICATED_ARGUMENT_NAMES: + { + return "Duplicated function argument names are not allowed here."; + } + case PARSER_ERR_FORMAL_PARAM_AFTER_REST_PARAMETER: + { + return "Rest parameter must be the last formal parameter."; + } + case PARSER_ERR_REST_PARAMETER_DEFAULT_INITIALIZER: + { + return "Rest parameter may not have a default initializer."; + } +#endif /* ENABLED (JERRY_ES2015) */ #if ENABLED (JERRY_ES2015_MODULE_SYSTEM) case PARSER_ERR_FILE_NOT_FOUND: { diff --git a/jerry-core/parser/js/js-parser.c b/jerry-core/parser/js/js-parser.c index e93eb6c11..6334ce2cb 100644 --- a/jerry-core/parser/js/js-parser.c +++ b/jerry-core/parser/js/js-parser.c @@ -26,10 +26,10 @@ JERRY_STATIC_ASSERT ((int) ECMA_PARSE_STRICT_MODE == (int) PARSER_IS_STRICT, ecma_parse_strict_mode_must_be_equal_to_parser_is_strict); -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) JERRY_STATIC_ASSERT ((ECMA_PARSE_CLASS_CONSTRUCTOR << PARSER_CLASS_PARSE_OPTS_OFFSET) == PARSER_CLASS_CONSTRUCTOR, ecma_class_parse_options_must_be_able_to_be_shifted_to_ecma_general_flags); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ /** \addtogroup parser Parser * @{ @@ -540,12 +540,12 @@ parse_print_literal (ecma_compiled_code_t *compiled_code_p, /**< compiled code * ident_end = args_p->ident_end; } -#if ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) +#if ENABLED (JERRY_ES2015) if (compiled_code_p->status_flags & CBC_CODE_FLAGS_REST_PARAMETER) { argument_end++; } -#endif /* ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) */ +#endif /* ENABLED (JERRY_ES2015) */ if (literal_index < argument_end) { @@ -670,19 +670,17 @@ parse_print_final_cbc (ecma_compiled_code_t *compiled_code_p, /**< compiled code JERRY_DEBUG_MSG (",no_lexical_env"); } -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) if (compiled_code_p->status_flags & CBC_CODE_FLAGS_ARROW_FUNCTION) { JERRY_DEBUG_MSG (",arrow"); } -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ -#if ENABLED (JERRY_ES2015_CLASS) if (compiled_code_p->status_flags & CBC_CODE_FLAGS_CONSTRUCTOR) { JERRY_DEBUG_MSG (",constructor"); } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ JERRY_DEBUG_MSG ("]\n"); @@ -991,12 +989,12 @@ parser_post_processing (parser_context_t *context_p) /**< context */ PARSER_NEXT_BYTE (page_p, offset); length++; -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if (ext_opcode == CBC_EXT_CONSTRUCTOR_RETURN) { last_opcode = CBC_RETURN; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ #if ENABLED (JERRY_LINE_INFO) if (ext_opcode == CBC_EXT_LINE) @@ -1193,13 +1191,13 @@ parser_post_processing (parser_context_t *context_p) /**< context */ compiled_code_p->refs = 1; compiled_code_p->status_flags = CBC_CODE_FLAGS_FUNCTION; -#if ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) +#if ENABLED (JERRY_ES2015) if (context_p->status_flags & PARSER_FUNCTION_HAS_REST_PARAM) { JERRY_ASSERT (context_p->argument_count > 0); context_p->argument_count--; } -#endif /* ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) */ +#endif /* ENABLED (JERRY_ES2015) */ if (needs_uint16_arguments) { @@ -1262,26 +1260,22 @@ parser_post_processing (parser_context_t *context_p) /**< context */ compiled_code_p->status_flags |= CBC_CODE_FLAGS_LEXICAL_ENV_NOT_NEEDED; } -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) if (context_p->status_flags & PARSER_IS_ARROW_FUNCTION) { compiled_code_p->status_flags |= CBC_CODE_FLAGS_ARROW_FUNCTION; } -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ -#if ENABLED (JERRY_ES2015_CLASS) if (context_p->status_flags & PARSER_CLASS_CONSTRUCTOR) { compiled_code_p->status_flags |= CBC_CODE_FLAGS_CONSTRUCTOR; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ -#if ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) if (context_p->status_flags & PARSER_FUNCTION_HAS_REST_PARAM) { compiled_code_p->status_flags |= CBC_CODE_FLAGS_REST_PARAMETER; } -#endif /* ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) */ +#endif /* ENABLED (JERRY_ES2015) */ literal_pool_p = ((ecma_value_t *) byte_code_p) - context_p->register_count; byte_code_p += literal_length; @@ -1617,12 +1611,10 @@ static void parser_parse_function_arguments (parser_context_t *context_p, /**< context */ lexer_token_type_t end_type) /**< expected end type */ { -#if ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) || ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) +#if ENABLED (JERRY_ES2015) bool duplicated_argument_names = false; -#endif /* ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) || ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) */ -#if ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) bool initializer_found = false; -#endif /* ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) */ +#endif /* ENABLED (JERRY_ES2015) */ JERRY_ASSERT (context_p->next_scanner_info_p->type == SCANNER_TYPE_FUNCTION); scanner_create_variables (context_p, sizeof (scanner_function_info_t)); @@ -1634,7 +1626,7 @@ parser_parse_function_arguments (parser_context_t *context_p, /**< context */ while (true) { -#if ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) +#if ENABLED (JERRY_ES2015) if (context_p->status_flags & PARSER_FUNCTION_HAS_REST_PARAM) { parser_raise_error (context_p, PARSER_ERR_FORMAL_PARAM_AFTER_REST_PARAMETER); @@ -1650,7 +1642,7 @@ parser_parse_function_arguments (parser_context_t *context_p, /**< context */ context_p->status_flags |= PARSER_FUNCTION_HAS_REST_PARAM; } -#endif /* ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) */ +#endif /* ENABLED (JERRY_ES2015) */ if (context_p->token.type != LEXER_LITERAL || context_p->token.lit_location.type != LEXER_IDENT_LITERAL) @@ -1670,15 +1662,15 @@ parser_parse_function_arguments (parser_context_t *context_p, /**< context */ if (JERRY_UNLIKELY (context_p->lit_object.literal_p->status_flags & LEXER_FLAG_FUNCTION_ARGUMENT)) { -#if ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) +#if ENABLED (JERRY_ES2015) if (initializer_found) { parser_raise_error (context_p, PARSER_ERR_DUPLICATED_ARGUMENT_NAMES); } -#endif /* ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) */ -#if ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) || ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) +#endif /* ENABLED (JERRY_ES2015) */ +#if ENABLED (JERRY_ES2015) duplicated_argument_names = true; -#endif /* ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) || ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) */ +#endif /* ENABLED (JERRY_ES2015) */ context_p->status_flags |= PARSER_HAS_NON_STRICT_ARG; } @@ -1695,15 +1687,13 @@ parser_parse_function_arguments (parser_context_t *context_p, /**< context */ lexer_next_token (context_p); -#if ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) +#if ENABLED (JERRY_ES2015) if (context_p->token.type == LEXER_ASSIGN) { -#if ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) if (context_p->status_flags & PARSER_FUNCTION_HAS_REST_PARAM) { parser_raise_error (context_p, PARSER_ERR_REST_PARAMETER_DEFAULT_INITIALIZER); } -#endif /* ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) */ parser_branch_t skip_init; @@ -1723,7 +1713,7 @@ parser_parse_function_arguments (parser_context_t *context_p, /**< context */ parser_set_branch_to_current_position (context_p, &skip_init); } -#endif /* ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) */ +#endif /* ENABLED (JERRY_ES2015) */ if (context_p->token.type != LEXER_COMMA) { @@ -1785,9 +1775,9 @@ parser_parse_source (const uint8_t *arg_list_p, /**< function argument list */ context.module_current_node_p = NULL; #endif /* ENABLED (JERRY_ES2015_MODULE_SYSTEM) */ -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) context.status_flags |= PARSER_GET_CLASS_PARSER_OPTS (parse_opts); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ context.stack_depth = 0; context.stack_limit = 0; @@ -2122,13 +2112,13 @@ parser_parse_function (parser_context_t *context_p, /**< context */ #if ENABLED (JERRY_PARSER_DUMP_BYTE_CODE) if (context_p->is_show_opcodes) { -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) JERRY_DEBUG_MSG ("\n--- %s parsing start ---\n\n", (context_p->status_flags & PARSER_CLASS_CONSTRUCTOR) ? "Class constructor" : "Function"); -#else /* !ENABLED (JERRY_ES2015_CLASS) */ +#else /* !ENABLED (JERRY_ES2015) */ JERRY_DEBUG_MSG ("\n--- Function parsing start ---\n\n"); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ } #endif /* ENABLED (JERRY_PARSER_DUMP_BYTE_CODE) */ @@ -2178,25 +2168,25 @@ parser_parse_function (parser_context_t *context_p, /**< context */ lexer_next_token (context_p); -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if ((context_p->status_flags & PARSER_CLASS_CONSTRUCTOR_SUPER) == PARSER_CLASS_CONSTRUCTOR_SUPER) { context_p->status_flags |= PARSER_LEXICAL_ENV_NEEDED; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ parser_parse_statements (context_p); compiled_code_p = parser_post_processing (context_p); #if ENABLED (JERRY_PARSER_DUMP_BYTE_CODE) if (context_p->is_show_opcodes) { -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) JERRY_DEBUG_MSG ("\n--- %s parsing end ---\n\n", (context_p->status_flags & PARSER_CLASS_CONSTRUCTOR) ? "Class constructor" : "Function"); -#else /* !ENABLED (JERRY_ES2015_CLASS) */ +#else /* !ENABLED (JERRY_ES2015) */ JERRY_DEBUG_MSG ("\n--- Function parsing end ---\n\n"); -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ } #endif /* ENABLED (JERRY_PARSER_DUMP_BYTE_CODE) */ @@ -2205,7 +2195,7 @@ parser_parse_function (parser_context_t *context_p, /**< context */ return compiled_code_p; } /* parser_parse_function */ -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) /** * Parse arrow function code @@ -2223,9 +2213,9 @@ parser_parse_arrow_function (parser_context_t *context_p, /**< context */ && (status_flags & PARSER_IS_ARROW_FUNCTION)); parser_save_context (context_p, &saved_context); context_p->status_flags |= status_flags; -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) context_p->status_flags |= saved_context.status_flags & PARSER_CLASS_HAS_SUPER; -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ #if ENABLED (JERRY_PARSER_DUMP_BYTE_CODE) if (context_p->is_show_opcodes) @@ -2301,7 +2291,7 @@ parser_parse_arrow_function (parser_context_t *context_p, /**< context */ return compiled_code_p; } /* parser_parse_arrow_function */ -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * Raise a parse error. diff --git a/jerry-core/parser/js/js-parser.h b/jerry-core/parser/js/js-parser.h index 1bcac2d86..c6284c87c 100644 --- a/jerry-core/parser/js/js-parser.h +++ b/jerry-core/parser/js/js-parser.h @@ -79,28 +79,16 @@ typedef enum PARSER_ERR_MULTIPLE_DEFAULTS_NOT_ALLOWED, /**< multiple default cases are not allowed */ PARSER_ERR_DEFAULT_NOT_IN_SWITCH, /**< default statement is not in switch block */ PARSER_ERR_CASE_NOT_IN_SWITCH, /**< case statement is not in switch block */ -#if ENABLED (JERRY_ES2015_CLASS) - PARSER_ERR_MULTIPLE_CLASS_CONSTRUCTORS, /**< multiple class constructor */ - PARSER_ERR_CLASS_CONSTRUCTOR_AS_ACCESSOR, /**< class constructor cannot be an accessor */ - PARSER_ERR_CLASS_STATIC_PROTOTYPE, /**< static method name 'prototype' is not allowed */ - PARSER_ERR_UNEXPECTED_SUPER_REFERENCE, /**< unexpected super keyword */ -#endif /* ENABLED (JERRY_ES2015_CLASS) */ PARSER_ERR_LEFT_PAREN_EXPECTED, /**< left paren expected */ PARSER_ERR_LEFT_BRACE_EXPECTED, /**< left brace expected */ PARSER_ERR_RIGHT_PAREN_EXPECTED, /**< right paren expected */ PARSER_ERR_RIGHT_SQUARE_EXPECTED, /**< right square expected */ -#if ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) - PARSER_ERR_RIGHT_BRACE_EXPECTED, /**< right brace expected */ -#endif /* ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) */ PARSER_ERR_COLON_EXPECTED, /**< colon expected */ PARSER_ERR_COLON_FOR_CONDITIONAL_EXPECTED, /**< colon expected for conditional expression */ PARSER_ERR_SEMICOLON_EXPECTED, /**< semicolon expected */ PARSER_ERR_IN_EXPECTED, /**< in keyword expected */ -#if ENABLED (JERRY_ES2015_FOR_OF) - PARSER_ERR_OF_EXPECTED, /**< of keyword expected */ -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ PARSER_ERR_WHILE_EXPECTED, /**< while expected for do-while loop */ PARSER_ERR_CATCH_FINALLY_EXPECTED, /**< catch or finally expected */ PARSER_ERR_ARRAY_ITEM_SEPARATOR_EXPECTED, /**< array item separator expected */ @@ -123,15 +111,21 @@ typedef enum PARSER_ERR_INVALID_RETURN, /**< return must be inside a function */ PARSER_ERR_INVALID_RIGHT_SQUARE, /**< right square must terminate a block */ PARSER_ERR_DUPLICATED_LABEL, /**< duplicated label */ -#if ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) || ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) - PARSER_ERR_DUPLICATED_ARGUMENT_NAMES, /**< duplicated argument names */ -#endif /* ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) || ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) */ -#if ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) - PARSER_ERR_FORMAL_PARAM_AFTER_REST_PARAMETER, /**< formal parameter after rest parameter */ - PARSER_ERR_REST_PARAMETER_DEFAULT_INITIALIZER, /**< rest parameter default initializer */ -#endif /* ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) */ PARSER_ERR_OBJECT_PROPERTY_REDEFINED, /**< property of object literal redefined */ +#if ENABLED (JERRY_ES2015) + PARSER_ERR_MULTIPLE_CLASS_CONSTRUCTORS, /**< multiple class constructor */ + PARSER_ERR_CLASS_CONSTRUCTOR_AS_ACCESSOR, /**< class constructor cannot be an accessor */ + PARSER_ERR_CLASS_STATIC_PROTOTYPE, /**< static method name 'prototype' is not allowed */ + PARSER_ERR_UNEXPECTED_SUPER_REFERENCE, /**< unexpected super keyword */ + + PARSER_ERR_RIGHT_BRACE_EXPECTED, /**< right brace expected */ + PARSER_ERR_OF_EXPECTED, /**< of keyword expected */ + + PARSER_ERR_FORMAL_PARAM_AFTER_REST_PARAMETER, /**< formal parameter after rest parameter */ + PARSER_ERR_REST_PARAMETER_DEFAULT_INITIALIZER, /**< rest parameter default initializer */ + PARSER_ERR_DUPLICATED_ARGUMENT_NAMES, /**< duplicated argument names */ +#endif /* ENABLED (JERRY_ES2015) */ #if ENABLED (JERRY_ES2015_MODULE_SYSTEM) PARSER_ERR_FILE_NOT_FOUND, /**< file not found*/ PARSER_ERR_FROM_EXPECTED, /**< from expected */ diff --git a/jerry-core/parser/js/js-scanner-util.c b/jerry-core/parser/js/js-scanner-util.c index 24d6b8eb9..bce4e3728 100644 --- a/jerry-core/parser/js/js-scanner-util.c +++ b/jerry-core/parser/js/js-scanner-util.c @@ -952,9 +952,9 @@ scanner_cleanup (parser_context_t *context_p) /**< context */ } case SCANNER_TYPE_WHILE: case SCANNER_TYPE_FOR_IN: -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) case SCANNER_TYPE_FOR_OF: -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* ENABLED (JERRY_ES2015) */ case SCANNER_TYPE_CASE: { size = sizeof (scanner_location_info_t); diff --git a/jerry-core/parser/js/js-scanner.c b/jerry-core/parser/js/js-scanner.c index 38f1ab8b5..a74178937 100644 --- a/jerry-core/parser/js/js-scanner.c +++ b/jerry-core/parser/js/js-scanner.c @@ -44,14 +44,12 @@ typedef enum SCAN_MODE_STATEMENT_END, /**< scanning statement end */ SCAN_MODE_VAR_STATEMENT, /**< scanning var statement */ SCAN_MODE_FUNCTION_ARGUMENTS, /**< scanning function arguments */ -#if ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) - SCAN_MODE_CONTINUE_FUNCTION_ARGUMENTS, /**< continue scanning function arguments */ -#endif /* ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) */ SCAN_MODE_PROPERTY_NAME, /**< scanning property name */ -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) + SCAN_MODE_CONTINUE_FUNCTION_ARGUMENTS, /**< continue scanning function arguments */ SCAN_MODE_CLASS_DECLARATION, /**< scanning class declaration */ SCAN_MODE_CLASS_METHOD, /**< scanning class method */ -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ } scan_modes_t; /** @@ -87,24 +85,16 @@ typedef enum SCAN_STACK_CATCH_STATEMENT, /**< catch statement */ SCAN_STACK_SQUARE_BRACKETED_EXPRESSION, /**< square bracketed expression group */ SCAN_STACK_OBJECT_LITERAL, /**< object literal group */ -#if ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if ENABLED (JERRY_ES2015) SCAN_STACK_COMPUTED_PROPERTY, /**< computed property name */ -#endif /* ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ -#if ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) SCAN_STACK_TEMPLATE_STRING, /**< template string */ -#endif /* ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) */ -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) SCAN_STACK_ARROW_ARGUMENTS, /**< might be arguments of an arrow function */ SCAN_STACK_ARROW_EXPRESSION, /**< expression body of an arrow function */ -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ -#if ENABLED (JERRY_ES2015_CLASS) SCAN_STACK_CLASS_STATEMENT, /**< class statement */ SCAN_STACK_CLASS_EXPRESSION, /**< class expression */ SCAN_STACK_CLASS_EXTENDS, /**< class extends expression */ -#endif /* ENABLED (JERRY_ES2015_CLASS) */ -#if ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) SCAN_STACK_FUNCTION_PARAMETERS, /**< function parameter initializer */ -#endif /* ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) */ +#endif /* ENABLED (JERRY_ES2015) */ } scan_stack_modes_t; /** @@ -125,13 +115,13 @@ typedef enum /** * Checks whether token type is "of". */ -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) #define SCANNER_IDENTIFIER_IS_OF() (lexer_compare_literal_to_identifier (context_p, "of", 2)) #else #define SCANNER_IDENTIFIER_IS_OF() (false) -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* ENABLED (JERRY_ES2015) */ -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) /** * Init scanning the body of an arrow function. @@ -222,12 +212,10 @@ scanner_process_arrow_arg (parser_context_t *context_p, /**< context */ scanner_context_p->mode = SCAN_MODE_PRIMARY_EXPRESSION; -#if ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) if (context_p->token.type == LEXER_THREE_DOTS) { lexer_next_token (context_p); } -#endif /* ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) */ if (context_p->token.type == LEXER_LITERAL && context_p->token.lit_location.type == LEXER_IDENT_LITERAL) @@ -266,7 +254,7 @@ scanner_process_arrow_arg (parser_context_t *context_p, /**< context */ } } /* scanner_process_arrow_arg */ -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * Scan primary expression. @@ -310,7 +298,7 @@ scanner_scan_primary_expression (parser_context_t *context_p, /**< context */ } case LEXER_LEFT_PAREN: { -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) parser_stack_push_uint8 (context_p, SCAN_STACK_ARROW_ARGUMENTS); scanner_literal_pool_t *literal_pool_p; @@ -327,10 +315,10 @@ scanner_scan_primary_expression (parser_context_t *context_p, /**< context */ scanner_process_arrow_arg (context_p, scanner_context_p); return SCAN_KEEP_TOKEN; -#else +#else /* ENABLED (JERRY_ES2015) */ parser_stack_push_uint8 (context_p, SCAN_STACK_PAREN_EXPRESSION); scanner_context_p->mode = SCAN_MODE_PRIMARY_EXPRESSION; -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ break; } case LEXER_LEFT_SQUARE: @@ -345,7 +333,7 @@ scanner_scan_primary_expression (parser_context_t *context_p, /**< context */ scanner_context_p->mode = SCAN_MODE_PROPERTY_NAME; return SCAN_KEEP_TOKEN; } -#if ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) +#if ENABLED (JERRY_ES2015) case LEXER_TEMPLATE_LITERAL: { if (context_p->source_p[-1] != LIT_CHAR_GRAVE_ACCENT) @@ -358,10 +346,10 @@ scanner_scan_primary_expression (parser_context_t *context_p, /**< context */ /* The string is a normal string literal. */ /* FALLTHRU */ } -#endif /* ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) */ +#endif /* ENABLED (JERRY_ES2015) */ case LEXER_LITERAL: { -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) const uint8_t *source_p = context_p->source_p; if (context_p->token.lit_location.type == LEXER_IDENT_LITERAL @@ -370,7 +358,7 @@ scanner_scan_primary_expression (parser_context_t *context_p, /**< context */ scanner_process_simple_arrow (context_p, scanner_context_p, source_p); return SCAN_KEEP_TOKEN; } -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ if (context_p->token.lit_location.type == LEXER_IDENT_LITERAL) { @@ -387,7 +375,7 @@ scanner_scan_primary_expression (parser_context_t *context_p, /**< context */ scanner_context_p->mode = SCAN_MODE_POST_PRIMARY_EXPRESSION; break; } -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) case LEXER_KEYW_CLASS: { parser_stack_push_uint8 (context_p, SCAN_STACK_CLASS_EXPRESSION); @@ -401,7 +389,7 @@ scanner_scan_primary_expression (parser_context_t *context_p, /**< context */ } break; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ case LEXER_RIGHT_SQUARE: { if (stack_top != SCAN_STACK_SQUARE_BRACKETED_EXPRESSION) @@ -526,7 +514,7 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * scanner_raise_error (context_p); break; } -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) case SCAN_STACK_ARROW_ARGUMENTS: { lexer_next_token (context_p); @@ -537,15 +525,13 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * { break; } -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ -#if ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) case SCAN_STACK_FUNCTION_PARAMETERS: { scanner_context_p->mode = SCAN_MODE_CONTINUE_FUNCTION_ARGUMENTS; parser_stack_pop_uint8 (context_p); return SCAN_NEXT_TOKEN; } -#endif /* ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) */ +#endif /* ENABLED (JERRY_ES2015) */ default: { scanner_context_p->mode = SCAN_MODE_PRIMARY_EXPRESSION; @@ -660,11 +646,11 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * location_info = (scanner_location_info_t *) scanner_insert_info (context_p, for_statement.u.source_p, sizeof (scanner_location_info_t)); -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) location_info->info.type = (type == LEXER_KEYW_IN) ? SCANNER_TYPE_FOR_IN : SCANNER_TYPE_FOR_OF; -#else /* !ENABLED (JERRY_ES2015_FOR_OF) */ +#else /* !ENABLED (JERRY_ES2015) */ location_info->info.type = SCANNER_TYPE_FOR_IN; -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* ENABLED (JERRY_ES2015) */ scanner_get_location (&location_info->location, context_p); @@ -846,7 +832,7 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * parser_stack_pop_uint8 (context_p); return SCAN_NEXT_TOKEN; } -#if ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if ENABLED (JERRY_ES2015) case SCAN_STACK_COMPUTED_PROPERTY: { if (type != LEXER_RIGHT_SQUARE) @@ -886,8 +872,6 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * scanner_context_p->mode = SCAN_MODE_PRIMARY_EXPRESSION; return SCAN_NEXT_TOKEN; } -#endif /* ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ -#if ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) case SCAN_STACK_TEMPLATE_STRING: { if (type != LEXER_RIGHT_BRACE) @@ -910,8 +894,6 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * } return SCAN_NEXT_TOKEN; } -#endif /* ENABLED (JERRY_ES2015_TEMPLATE_STRINGS) */ -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) case SCAN_STACK_ARROW_ARGUMENTS: { if (type != LEXER_RIGHT_PAREN) @@ -929,8 +911,6 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * scanner_context_p->mode = SCAN_MODE_POST_PRIMARY_EXPRESSION; return SCAN_KEEP_TOKEN; } -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ -#if ENABLED (JERRY_ES2015_CLASS) case SCAN_STACK_CLASS_EXTENDS: { if (type != LEXER_LEFT_BRACE) @@ -941,8 +921,6 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * parser_stack_pop_uint8 (context_p); return SCAN_KEEP_TOKEN; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ -#if ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) case SCAN_STACK_FUNCTION_PARAMETERS: { parser_stack_pop_uint8 (context_p); @@ -956,7 +934,7 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * scanner_context_p->mode = SCAN_MODE_CONTINUE_FUNCTION_ARGUMENTS; return SCAN_KEEP_TOKEN; } -#endif /* ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) */ +#endif /* ENABLED (JERRY_ES2015) */ default: { scanner_context_p->mode = SCAN_MODE_STATEMENT_END; @@ -1194,7 +1172,7 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */ parser_stack_push_uint8 (context_p, SCAN_STACK_FUNCTION_STATEMENT); return SCAN_NEXT_TOKEN; } -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) case LEXER_KEYW_CLASS: { lexer_next_token (context_p); @@ -1211,7 +1189,7 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */ parser_stack_push_uint8 (context_p, SCAN_STACK_CLASS_STATEMENT); return SCAN_NEXT_TOKEN; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ #if ENABLED (JERRY_ES2015_MODULE_SYSTEM) case LEXER_KEYW_IMPORT: { @@ -1380,7 +1358,7 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */ scanner_context_p->mode = SCAN_MODE_FUNCTION_ARGUMENTS; return SCAN_KEEP_TOKEN; } -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if (context_p->token.type == LEXER_KEYW_CLASS) { scanner_context_p->mode = SCAN_MODE_CLASS_DECLARATION; @@ -1402,7 +1380,7 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */ location_p->type |= SCANNER_LITERAL_IS_VAR; return SCAN_KEEP_TOKEN; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ /* Assignment expression. */ lexer_lit_location_t *location_p; @@ -1525,7 +1503,7 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */ JERRY_ASSERT (context_p->token.flags & LEXER_NO_SKIP_SPACES); -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) /* The colon needs to be checked first because the parser also checks * it first, and this check skips the spaces which affects source_p. */ if (JERRY_UNLIKELY (lexer_check_arrow (context_p))) @@ -1533,7 +1511,7 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */ scanner_process_simple_arrow (context_p, scanner_context_p, context_p->source_p); return SCAN_KEEP_TOKEN; } -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ scanner_add_reference (context_p, scanner_context_p); @@ -1578,9 +1556,9 @@ scanner_scan_statement_end (parser_context_t *context_p, /**< context */ break; } case SCAN_STACK_BLOCK_STATEMENT: -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) case SCAN_STACK_CLASS_STATEMENT: -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ case SCAN_STACK_FUNCTION_STATEMENT: { if (type != LEXER_RIGHT_BRACE) @@ -1621,14 +1599,14 @@ scanner_scan_statement_end (parser_context_t *context_p, /**< context */ scanner_pop_literal_pool (context_p, scanner_context_p); parser_stack_pop_uint8 (context_p); -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if (context_p->stack_top_uint8 == SCAN_STACK_CLASS_STATEMENT || context_p->stack_top_uint8 == SCAN_STACK_CLASS_EXPRESSION) { scanner_context_p->mode = SCAN_MODE_CLASS_METHOD; return SCAN_KEEP_TOKEN; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ JERRY_ASSERT (context_p->stack_top_uint8 == SCAN_STACK_OBJECT_LITERAL); @@ -1908,7 +1886,7 @@ scanner_scan_all (parser_context_t *context_p, /**< context */ } break; } -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) case SCAN_MODE_CLASS_DECLARATION: { if (context_p->token.type == LEXER_KEYW_EXTENDS) @@ -1966,20 +1944,18 @@ scanner_scan_all (parser_context_t *context_p, /**< context */ } } -#if ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) if (context_p->token.type == LEXER_LEFT_SQUARE) { parser_stack_push_uint8 (context_p, SCAN_STACK_COMPUTED_PROPERTY); scanner_context.mode = SCAN_MODE_PRIMARY_EXPRESSION; break; } -#endif /* ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ scanner_push_literal_pool (context_p, &scanner_context, SCANNER_LITERAL_POOL_FUNCTION); lexer_next_token (context_p); continue; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ case SCAN_MODE_POST_PRIMARY_EXPRESSION: { if (scanner_scan_post_primary_expression (context_p, &scanner_context, type)) @@ -2096,23 +2072,23 @@ scanner_scan_all (parser_context_t *context_p, /**< context */ } lexer_next_token (context_p); -#if ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) +#if ENABLED (JERRY_ES2015) /* FALLTHRU */ } case SCAN_MODE_CONTINUE_FUNCTION_ARGUMENTS: { -#endif /* ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) */ +#endif /* ENABLED (JERRY_ES2015) */ if (context_p->token.type != LEXER_RIGHT_PAREN && context_p->token.type != LEXER_EOS) { while (true) { -#if ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) +#if ENABLED (JERRY_ES2015) if (context_p->token.type == LEXER_THREE_DOTS) { lexer_next_token (context_p); } -#endif /* ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) */ +#endif /* ENABLED (JERRY_ES2015) */ if (context_p->token.type != LEXER_LITERAL || context_p->token.lit_location.type != LEXER_IDENT_LITERAL) @@ -2132,14 +2108,14 @@ scanner_scan_all (parser_context_t *context_p, /**< context */ } } -#if ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) +#if ENABLED (JERRY_ES2015) if (context_p->token.type == LEXER_ASSIGN) { parser_stack_push_uint8 (context_p, SCAN_STACK_FUNCTION_PARAMETERS); scanner_context.mode = SCAN_MODE_PRIMARY_EXPRESSION; break; } -#endif /* ENABLED (JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER) */ +#endif /* ENABLED (JERRY_ES2015) */ if (context_p->token.type == LEXER_EOS && stack_top == SCAN_STACK_SCRIPT_FUNCTION) { @@ -2183,14 +2159,14 @@ scanner_scan_all (parser_context_t *context_p, /**< context */ lexer_scan_identifier (context_p, LEXER_SCAN_IDENT_PROPERTY); -#if ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if ENABLED (JERRY_ES2015) if (context_p->token.type == LEXER_LEFT_SQUARE) { parser_stack_push_uint8 (context_p, SCAN_STACK_COMPUTED_PROPERTY); scanner_context.mode = SCAN_MODE_PRIMARY_EXPRESSION; break; } -#endif /* ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#endif /* ENABLED (JERRY_ES2015) */ if (context_p->token.type == LEXER_RIGHT_BRACE) { @@ -2206,14 +2182,14 @@ scanner_scan_all (parser_context_t *context_p, /**< context */ parser_stack_push_uint8 (context_p, SCAN_STACK_FUNCTION_PROPERTY); -#if ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if ENABLED (JERRY_ES2015) if (context_p->token.type == LEXER_LEFT_SQUARE) { parser_stack_push_uint8 (context_p, SCAN_STACK_COMPUTED_PROPERTY); scanner_context.mode = SCAN_MODE_PRIMARY_EXPRESSION; break; } -#endif /* ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#endif /* ENABLED (JERRY_ES2015) */ if (context_p->token.type != LEXER_LITERAL) { @@ -2227,15 +2203,15 @@ scanner_scan_all (parser_context_t *context_p, /**< context */ JERRY_ASSERT (context_p->token.type == LEXER_LITERAL); -#if ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if ENABLED (JERRY_ES2015) parser_line_counter_t start_line = context_p->token.line; parser_line_counter_t start_column = context_p->token.column; bool is_ident = (context_p->token.lit_location.type == LEXER_IDENT_LITERAL); -#endif /* ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#endif /* ENABLED (JERRY_ES2015) */ lexer_next_token (context_p); -#if ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if ENABLED (JERRY_ES2015) if (context_p->token.type == LEXER_LEFT_PAREN) { scanner_push_literal_pool (context_p, &scanner_context, SCANNER_LITERAL_POOL_FUNCTION); @@ -2277,7 +2253,7 @@ scanner_scan_all (parser_context_t *context_p, /**< context */ scanner_context.mode = SCAN_MODE_POST_PRIMARY_EXPRESSION; break; } -#endif /* ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#endif /* ENABLED (JERRY_ES2015) */ if (context_p->token.type != LEXER_COLON) { @@ -2481,14 +2457,14 @@ scan_completed: print_location = true; break; } -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) case SCANNER_TYPE_FOR_OF: { name_p = "FOR-OF"; print_location = true; break; } -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* ENABLED (JERRY_ES2015) */ case SCANNER_TYPE_SWITCH: { JERRY_DEBUG_MSG (" SWITCH: source:%d\n", diff --git a/jerry-core/parser/js/js-scanner.h b/jerry-core/parser/js/js-scanner.h index 071e0612a..a7985cc83 100644 --- a/jerry-core/parser/js/js-scanner.h +++ b/jerry-core/parser/js/js-scanner.h @@ -39,9 +39,9 @@ typedef enum SCANNER_TYPE_WHILE, /**< while statement */ SCANNER_TYPE_FOR, /**< for statement */ SCANNER_TYPE_FOR_IN, /**< for-in statement */ -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) SCANNER_TYPE_FOR_OF, /**< for-of statement */ -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* ENABLED (JERRY_ES2015) */ SCANNER_TYPE_SWITCH, /**< switch statement */ SCANNER_TYPE_CASE, /**< case statement */ } scanner_info_type_t; diff --git a/jerry-core/profiles/README.md b/jerry-core/profiles/README.md index 1272fa647..6a5aa41cc 100644 --- a/jerry-core/profiles/README.md +++ b/jerry-core/profiles/README.md @@ -29,22 +29,14 @@ Alternatively, if you want to use a custom profile at `/absolute/path/to/my.profile`: ``` -# Turn off every ES2015 feature EXCEPT the arrow functions +# Turn off every ES2015 feature EXCEPT the module system JERRY_ES2015_BUILTIN=0 JERRY_ES2015_BUILTIN_DATAVIEW=0 JERRY_ES2015_BUILTIN_ITERATOR=0 JERRY_ES2015_BUILTIN_MAP=0 JERRY_ES2015_BUILTIN_PROMISE=0 JERRY_ES2015_BUILTIN_SET=0 -JERRY_ES2015_BUILTIN_SYMBOL=0 JERRY_ES2015_BUILTIN_TYPEDARRAY=0 -JERRY_ES2015_CLASS=0 -JERRY_ES2015_FOR_OF=0 -JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER=0 -JERRY_ES2015_FUNCTION_REST_PARAMETER=0 -JERRY_ES2015_MODULE_SYSTEM=0 -JERRY_ES2015_OBJECT_INITIALIZER=0 -JERRY_ES2015_TEMPLATE_STRINGS=0 ``` Run the build script as follows (assuming that you are in the project root @@ -108,8 +100,6 @@ defined to `1`. #### ES6 (ES 2015) features -* `JERRY_ES2015_ARROW_FUNCTION`: - Enables or disables the [arrow functions](http://www.ecma-international.org/ecma-262/6.0/#sec-arrow-function-definitions). * `JERRY_ES2015_BUILTIN`: Enables or disables the built-in updates of the 5.1 standard. There are some differences in those built-ins which available in both [5.1](http://www.ecma-international.org/ecma-262/5.1/) and [2015](http://www.ecma-international.org/ecma-262/6.0/) versions of the standard. JerryScript uses the latest definition by default. * `JERRY_ES2015_BUILTIN_DATAVIEW`: @@ -120,42 +110,29 @@ defined to `1`. Enables or disables the [Map](http://www.ecma-international.org/ecma-262/6.0/#sec-keyed-collection) built-ins. * `JERRY_ES2015_BUILTIN_SET`: Enables or disables the [SET](https://www.ecma-international.org/ecma-262/6.0/#sec-set-objects) built-in. -* `JERRY_ES2015_BUILTIN_SYMBOL`: - Enables or disables the [Symbol](https://www.ecma-international.org/ecma-262/6.0/#sec-symbol-objects) built-in. * `JERRY_ES2015_BUILTIN_PROMISE`: Enables or disables the [Promise](http://www.ecma-international.org/ecma-262/6.0/#sec-promise-objects) built-in. * `JERRY_ES2015_BUILTIN_TYPEDARRAY`: Enables or disables the [ArrayBuffer](http://www.ecma-international.org/ecma-262/6.0/#sec-arraybuffer-objects) and [TypedArray](http://www.ecma-international.org/ecma-262/6.0/#sec-typedarray-objects) built-ins. -* `JERRY_ES2015_CLASS`: - Enables or disables the [class](https://www.ecma-international.org/ecma-262/6.0/#sec-class-definitions) language element. -* `JERRY_ES2015_FOR_OF`: - Enables or disables the [for of](https://www.ecma-international.org/ecma-262/6.0/#sec-for-in-and-for-of-statements) language element. -* `JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER`: - Enables or disables the [default value](http://www.ecma-international.org/ecma-262/6.0/#sec-function-definitions) for formal parameters. -* `JERRY_ES2015_FUNCTION_REST_PARAMETER`: - Enables or disables the [rest parameter](http://www.ecma-international.org/ecma-262/6.0/#sec-function-definitions). * `JERRY_ES2015_MODULE_SYSTEM`: Enables or disable the [module system](http://www.ecma-international.org/ecma-262/6.0/#sec-modules) language element. -* `JERRY_ES2015_OBJECT_INITIALIZER`: - Enables or disables the [enhanced object initializer](http://www.ecma-international.org/ecma-262/6.0/#sec-object-initializer) language element. -* `JERRY_ES2015_TEMPLATE_STRINGS`: - Enables or disables the [template strings](http://www.ecma-international.org/ecma-262/6.0/#sec-static-semantics-templatestrings). * `JERRY_ES2015`: Enables or disable all of the implemented [ECMAScript2015 features](http://www.ecma-international.org/ecma-262/6.0/). + * [arrow functions](http://www.ecma-international.org/ecma-262/6.0/#sec-arrow-function-definitions) language element. + * [symbol](https://www.ecma-international.org/ecma-262/6.0/#sec-symbol-objects) language element. + * [class](https://www.ecma-international.org/ecma-262/6.0/#sec-class-definitions) language element. + * [for of](https://www.ecma-international.org/ecma-262/6.0/#sec-for-in-and-for-of-statements) language element. + * [default value](http://www.ecma-international.org/ecma-262/6.0/#sec-function-definitions) for formal parameters. + * [rest parameter](http://www.ecma-international.org/ecma-262/6.0/#sec-function-definitions) language element. + * [enhanced object initializer](http://www.ecma-international.org/ecma-262/6.0/#sec-object-initializer) language element. + * [template strings](http://www.ecma-international.org/ecma-262/6.0/#sec-static-semantics-templatestrings) language element. This option is evaulated first, any other `JERRY_ES2015_` defines will override that specific entry. Equivalent with setting the following defines to the `JERRY_ES2015` value: - * `JERRY_ES2015_ARROW_FUNCTION` * `JERRY_ES2015_BUILTIN` * `JERRY_ES2015_BUILTIN_DATAVIEW` * `JERRY_ES2015_BUILTIN_ITERATOR` * `JERRY_ES2015_BUILTIN_MAP` * `JERRY_ES2015_BUILTIN_SET` * `JERRY_ES2015_BUILTIN_PROMISE` - * `JERRY_ES2015_BUILTIN_SYMBOL` * `JERRY_ES2015_BUILTIN_TYPEDARRAY` - * `JERRY_ES2015_CLASS` - * `JERRY_ES2015_FOR_OF` - * `JERRY_ES2015_FUNCTION_PARAMETER_INITIALIZER` - * `JERRY_ES2015_FUNCTION_REST_PARAMETER` * `JERRY_ES2015_MODULE_SYSTEM` - * `JERRY_ES2015_OBJECT_INITIALIZER` - * `JERRY_ES2015_TEMPLATE_STRINGS` + diff --git a/jerry-core/vm/opcodes-ecma-relational-equality.c b/jerry-core/vm/opcodes-ecma-relational-equality.c index f8680d07b..0a45ae098 100644 --- a/jerry-core/vm/opcodes-ecma-relational-equality.c +++ b/jerry-core/vm/opcodes-ecma-relational-equality.c @@ -110,7 +110,7 @@ opfunc_instanceof (ecma_value_t left_value, /**< left value */ return ecma_raise_type_error (ECMA_ERR_MSG ("Expected an object in 'instanceof' check.")); } -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) ecma_value_t has_instance_method = ecma_op_get_method_by_symbol_id (right_value, LIT_MAGIC_STRING_HAS_INSTANCE); if (ECMA_IS_VALUE_ERROR (has_instance_method)) { @@ -134,7 +134,7 @@ opfunc_instanceof (ecma_value_t left_value, /**< left value */ return ecma_make_boolean_value (has_instance); } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ ecma_object_t *right_value_obj_p = ecma_get_object_from_value (right_value); return ecma_op_object_has_instance (right_value_obj_p, left_value); diff --git a/jerry-core/vm/vm-stack.c b/jerry-core/vm/vm-stack.c index a00b0c022..14122018a 100644 --- a/jerry-core/vm/vm-stack.c +++ b/jerry-core/vm/vm-stack.c @@ -67,9 +67,9 @@ vm_stack_context_abort (vm_frame_ctx_t *frame_ctx_p, /**< frame context */ /* FALLTHRU */ } case VM_CONTEXT_WITH: -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) case VM_CONTEXT_SUPER_CLASS: -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ { ecma_object_t *lex_env_p = frame_ctx_p->lex_env_p; JERRY_ASSERT (lex_env_p->u2.outer_reference_cp != JMEM_CP_NULL); @@ -80,7 +80,7 @@ vm_stack_context_abort (vm_frame_ctx_t *frame_ctx_p, /**< frame context */ vm_stack_top_p -= PARSER_WITH_CONTEXT_STACK_ALLOCATION; break; } -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) case VM_CONTEXT_FOR_OF: { ecma_free_value (vm_stack_top_p[-2]); @@ -89,7 +89,7 @@ vm_stack_context_abort (vm_frame_ctx_t *frame_ctx_p, /**< frame context */ vm_stack_top_p -= PARSER_FOR_OF_CONTEXT_STACK_ALLOCATION; break; } -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* ENABLED (JERRY_ES2015) */ default: { JERRY_ASSERT (VM_GET_CONTEXT_TYPE (vm_stack_top_p[-1]) == VM_CONTEXT_FOR_IN); diff --git a/jerry-core/vm/vm-stack.h b/jerry-core/vm/vm-stack.h index 331c264b0..d967f368a 100644 --- a/jerry-core/vm/vm-stack.h +++ b/jerry-core/vm/vm-stack.h @@ -40,13 +40,11 @@ typedef enum VM_CONTEXT_TRY, /**< try context */ VM_CONTEXT_CATCH, /**< catch context */ VM_CONTEXT_WITH, /**< with context */ -#if ENABLED (JERRY_ES2015_CLASS) - VM_CONTEXT_SUPER_CLASS, /**< super class context */ -#endif /* ENABLED (JERRY_ES2015_CLASS) */ VM_CONTEXT_FOR_IN, /**< for-in context */ -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) VM_CONTEXT_FOR_OF, /**< for-of context */ -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ + VM_CONTEXT_SUPER_CLASS, /**< super class context */ +#endif /* ENABLED (JERRY_ES2015) */ } vm_stack_context_type_t; ecma_value_t *vm_stack_context_abort (vm_frame_ctx_t *frame_ctx_p, ecma_value_t *vm_stack_top_p); diff --git a/jerry-core/vm/vm.c b/jerry-core/vm/vm.c index 8bd76930e..49fedfb16 100644 --- a/jerry-core/vm/vm.c +++ b/jerry-core/vm/vm.c @@ -88,12 +88,12 @@ vm_op_get_value (ecma_value_t object, /**< base object */ property_name_p = ecma_get_string_from_value (property); } -#if ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) +#if ENABLED (JERRY_ES2015) if (ecma_is_value_symbol (property)) { property_name_p = ecma_get_symbol_from_value (property); } -#endif /* ENABLED (JERRY_ES2015_BUILTIN_SYMBOL) */ +#endif /* ENABLED (JERRY_ES2015) */ if (property_name_p != NULL) { @@ -411,13 +411,13 @@ vm_construct_literal_object (vm_frame_ctx_t *frame_ctx_p, /**< frame context */ ecma_object_t *func_obj_p; -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) if (!(bytecode_p->status_flags & CBC_CODE_FLAGS_ARROW_FUNCTION)) { -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ func_obj_p = ecma_op_create_function_object (frame_ctx_p->lex_env_p, bytecode_p); -#if ENABLED (JERRY_ES2015_ARROW_FUNCTION) +#if ENABLED (JERRY_ES2015) } else { @@ -425,7 +425,7 @@ vm_construct_literal_object (vm_frame_ctx_t *frame_ctx_p, /**< frame context */ bytecode_p, frame_ctx_p->this_binding); } -#endif /* ENABLED (JERRY_ES2015_ARROW_FUNCTION) */ +#endif /* ENABLED (JERRY_ES2015) */ return ecma_make_object_value (func_obj_p); } /* vm_construct_literal_object */ @@ -465,7 +465,7 @@ static const uint8_t vm_error_byte_code_p[] = CBC_EXT_OPCODE, CBC_EXT_ERROR }; -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) /** * 'super(...)' function call handler. */ @@ -540,7 +540,7 @@ vm_super_call (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ frame_ctx_p->stack_top_p = stack_top_p; } /* vm_super_call */ -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ /** * 'Function call' opcode handler. @@ -1199,7 +1199,7 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ *stack_top_p++ = left_value; continue; } -#if ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) +#if ENABLED (JERRY_ES2015) case VM_OC_SET_COMPUTED_PROPERTY: { /* Swap values. */ @@ -1208,7 +1208,7 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ left_value ^= right_value; /* FALLTHRU */ } -#endif /* ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ +#endif /* ENABLED (JERRY_ES2015) */ case VM_OC_SET_PROPERTY: { JERRY_STATIC_ASSERT (VM_OC_NON_STATIC_FLAG == VM_OC_BACKWARD_BRANCH, @@ -1224,7 +1224,7 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ goto error; } -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if (JERRY_UNLIKELY (ecma_compare_ecma_string_to_magic_id (prop_name_p, LIT_MAGIC_STRING_PROTOTYPE)) && !(opcode_data & VM_OC_NON_STATIC_FLAG)) { @@ -1233,9 +1233,9 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ } const int index = (int) (opcode_data >> VM_OC_NON_STATIC_SHIFT) - 2; -#else /* !ENABLED (JERRY_ES2015_CLASS) */ +#else /* !ENABLED (JERRY_ES2015) */ const int index = -1; -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ ecma_object_t *object_p = ecma_get_object_from_value (stack_top_p[index]); @@ -1284,7 +1284,7 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ goto error; } -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) if (JERRY_UNLIKELY (ecma_compare_ecma_string_to_magic_id (prop_name_p, LIT_MAGIC_STRING_PROTOTYPE)) && !(opcode_data & VM_OC_NON_STATIC_FLAG)) { @@ -1293,9 +1293,9 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ } const int index = (int) (opcode_data >> VM_OC_NON_STATIC_SHIFT) - 2; -#else /* !ENABLED (JERRY_ES2015_CLASS) */ +#else /* !ENABLED (JERRY_ES2015) */ const int index = -1; -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ opfunc_set_accessor (VM_OC_GROUP_GET_INDEX (opcode_data) == VM_OC_SET_GETTER, stack_top_p[index], @@ -1312,7 +1312,7 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ *stack_top_p++ = ecma_make_object_value (ecma_op_new_fast_array_object (0)); continue; } -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) case VM_OC_SUPER_CALL: { frame_ctx_p->call_operation = VM_EXEC_SUPER_CALL; @@ -1637,7 +1637,7 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ goto error; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ case VM_OC_PUSH_ELISON: { *stack_top_p++ = ECMA_VALUE_ARRAY_HOLE; @@ -2935,7 +2935,7 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ } continue; } -#if ENABLED (JERRY_ES2015_FOR_OF) +#if ENABLED (JERRY_ES2015) case VM_OC_FOR_OF_CREATE_CONTEXT: { ecma_value_t value = *(--stack_top_p); @@ -3021,7 +3021,7 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ continue; } -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* ENABLED (JERRY_ES2015) */ case VM_OC_TRY: { /* Try opcode simply creates the try context. */ @@ -3547,9 +3547,9 @@ vm_execute (vm_frame_ctx_t *frame_ctx_p, /**< frame context */ frame_ctx_p->stack_top_p = frame_ctx_p->registers_p + register_end; -#if ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) +#if ENABLED (JERRY_ES2015) uint32_t function_call_argument_count = arg_list_len; -#endif /* ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) */ +#endif /* ENABLED (JERRY_ES2015) */ if (arg_list_len > argument_end) { @@ -3573,7 +3573,7 @@ vm_execute (vm_frame_ctx_t *frame_ctx_p, /**< frame context */ } } -#if ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) +#if ENABLED (JERRY_ES2015) if (bytecode_header_p->status_flags & CBC_CODE_FLAGS_REST_PARAMETER) { JERRY_ASSERT (function_call_argument_count >= arg_list_len); @@ -3584,7 +3584,7 @@ vm_execute (vm_frame_ctx_t *frame_ctx_p, /**< frame context */ frame_ctx_p->registers_p[argument_end] = new_array; arg_list_len++; } -#endif /* ENABLED (JERRY_ES2015_FUNCTION_REST_PARAMETER) */ +#endif /* ENABLED (JERRY_ES2015) */ JERRY_CONTEXT (status_flags) &= (uint32_t) ~ECMA_STATUS_DIRECT_EVAL; @@ -3604,13 +3604,13 @@ vm_execute (vm_frame_ctx_t *frame_ctx_p, /**< frame context */ opfunc_call (frame_ctx_p); break; } -#if ENABLED (JERRY_ES2015_CLASS) +#if ENABLED (JERRY_ES2015) case VM_EXEC_SUPER_CALL: { vm_super_call (frame_ctx_p); break; } -#endif /* ENABLED (JERRY_ES2015_CLASS) */ +#endif /* ENABLED (JERRY_ES2015) */ case VM_EXEC_CONSTRUCT: { opfunc_construct (frame_ctx_p); diff --git a/jerry-core/vm/vm.h b/jerry-core/vm/vm.h index b2a2f25d2..103305b23 100644 --- a/jerry-core/vm/vm.h +++ b/jerry-core/vm/vm.h @@ -122,9 +122,7 @@ typedef enum VM_OC_PUSH_OBJECT, /**< push object */ VM_OC_PUSH_NAMED_FUNC_EXPR, /**< push named function expression */ VM_OC_SET_PROPERTY, /**< set property */ -#if ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) - VM_OC_SET_COMPUTED_PROPERTY, /**< set computed property */ -#endif /* ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ + VM_OC_SET_GETTER, /**< set getter */ VM_OC_SET_SETTER, /**< set setter */ VM_OC_PUSH_UNDEFINED_BASE, /**< push undefined base */ @@ -208,17 +206,28 @@ typedef enum VM_OC_FOR_IN_CREATE_CONTEXT, /**< for in create context */ VM_OC_FOR_IN_GET_NEXT, /**< get next */ VM_OC_FOR_IN_HAS_NEXT, /**< has next */ -#if ENABLED (JERRY_ES2015_FOR_OF) - VM_OC_FOR_OF_CREATE_CONTEXT, /**< for of create context */ - VM_OC_FOR_OF_GET_NEXT, /**< get next */ - VM_OC_FOR_OF_HAS_NEXT, /**< has next */ -#endif /* ENABLED (JERRY_ES2015_FOR_OF) */ + VM_OC_TRY, /**< try */ VM_OC_CATCH, /**< catch */ VM_OC_FINALLY, /**< finally */ VM_OC_CONTEXT_END, /**< context end */ VM_OC_JUMP_AND_EXIT_CONTEXT, /**< jump and exit context */ -#if ENABLED (JERRY_ES2015_CLASS) + +#if ENABLED (JERRY_DEBUGGER) + VM_OC_BREAKPOINT_ENABLED, /**< enabled breakpoint for debugger */ + VM_OC_BREAKPOINT_DISABLED, /**< disabled breakpoint for debugger */ +#endif /* ENABLED (JERRY_DEBUGGER) */ +#if ENABLED (JERRY_LINE_INFO) + VM_OC_RESOURCE_NAME, /**< resource name of the current function */ + VM_OC_LINE, /**< line number of the next statement */ +#endif /* ENABLED (JERRY_LINE_INFO) */ +#if ENABLED (JERRY_ES2015) + VM_OC_SET_COMPUTED_PROPERTY, /**< set computed property */ + + VM_OC_FOR_OF_CREATE_CONTEXT, /**< for of create context */ + VM_OC_FOR_OF_GET_NEXT, /**< get next */ + VM_OC_FOR_OF_HAS_NEXT, /**< has next */ + VM_OC_CLASS_HERITAGE, /**< create a super class context */ VM_OC_CLASS_INHERITANCE, /**< inherit properties from the 'super' class */ VM_OC_PUSH_CLASS_CONSTRUCTOR_AND_PROTOTYPE, /**< push class constructor */ @@ -232,15 +241,7 @@ typedef enum VM_OC_PUSH_CONSTRUCTOR_SUPER, /**< push 'super' inside a class constructor */ VM_OC_PUSH_CONSTRUCTOR_THIS, /**< push 'this' inside a class constructor */ VM_OC_CONSTRUCTOR_RET, /**< explicit return from a class constructor */ -#endif /* ENABLED (JERRY_ES2015_CLASS) */ -#if ENABLED (JERRY_DEBUGGER) - VM_OC_BREAKPOINT_ENABLED, /**< enabled breakpoint for debugger */ - VM_OC_BREAKPOINT_DISABLED, /**< disabled breakpoint for debugger */ -#endif /* ENABLED (JERRY_DEBUGGER) */ -#if ENABLED (JERRY_LINE_INFO) - VM_OC_RESOURCE_NAME, /**< resource name of the current function */ - VM_OC_LINE, /**< line number of the next statement */ -#endif /* ENABLED (JERRY_LINE_INFO) */ +#endif /* ENABLED (JERRY_ES2015) */ VM_OC_NONE, /**< a special opcode for unsupported byte codes */ } vm_oc_types; @@ -249,9 +250,6 @@ typedef enum */ typedef enum { -#if !ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) - VM_OC_SET_COMPUTED_PROPERTY = VM_OC_NONE, /**< set computed property is unused */ -#endif /* !ENABLED (JERRY_ES2015_OBJECT_INITIALIZER) */ #if !ENABLED (JERRY_DEBUGGER) VM_OC_BREAKPOINT_ENABLED = VM_OC_NONE, /**< enabled breakpoint for debugger is unused */ VM_OC_BREAKPOINT_DISABLED = VM_OC_NONE, /**< disabled breakpoint for debugger is unused */ @@ -260,7 +258,13 @@ typedef enum VM_OC_RESOURCE_NAME = VM_OC_NONE, /**< resource name of the current function is unused */ VM_OC_LINE = VM_OC_NONE, /**< line number of the next statement is unused */ #endif /* !ENABLED (JERRY_LINE_INFO) */ -#if !ENABLED (JERRY_ES2015_CLASS) +#if !ENABLED (JERRY_ES2015) + VM_OC_SET_COMPUTED_PROPERTY = VM_OC_NONE, /**< set computed property is unused */ + + VM_OC_FOR_OF_CREATE_CONTEXT = VM_OC_NONE, /**< for of create context */ + VM_OC_FOR_OF_GET_NEXT = VM_OC_NONE, /**< get next */ + VM_OC_FOR_OF_HAS_NEXT = VM_OC_NONE, /**< has next */ + VM_OC_CLASS_HERITAGE = VM_OC_NONE, /**< create a super class context */ VM_OC_CLASS_INHERITANCE = VM_OC_NONE, /**< inherit properties from the 'super' class */ VM_OC_PUSH_CLASS_CONSTRUCTOR_AND_PROTOTYPE = VM_OC_NONE, /**< push class constructor */ @@ -274,12 +278,8 @@ typedef enum VM_OC_PUSH_CONSTRUCTOR_SUPER = VM_OC_NONE, /**< push 'super' inside a class constructor */ VM_OC_PUSH_CONSTRUCTOR_THIS = VM_OC_NONE, /**< push 'this' inside a class constructor */ VM_OC_CONSTRUCTOR_RET = VM_OC_NONE, /**< explicit return from a class constructor */ -#endif /* !ENABLED (JERRY_ES2015_CLASS) */ -#if !ENABLED (JERRY_ES2015_FOR_OF) - VM_OC_FOR_OF_CREATE_CONTEXT = VM_OC_NONE, /**< for of create context */ - VM_OC_FOR_OF_GET_NEXT = VM_OC_NONE, /**< get next */ - VM_OC_FOR_OF_HAS_NEXT = VM_OC_NONE, /**< has next */ -#endif /* !ENABLED (JERRY_ES2015_FOR_OF) */ +#endif /* !ENABLED (JERRY_ES2015S) */ + VM_OC_UNUSED = VM_OC_NONE /**< placeholder if the list is empty */ } vm_oc_unused_types;