JERRY_BUILTIN_xxx macros should depend on JERRY_ESNEXT (#3920)

JERRY_BUILTIN_xxx (ES2015+) features don't build without enabling
JERRY_ESNEXT macro, this invalid configuration shouldn't be allowed.
Additionally remove unnecessary JERRY_ESNEXT ifdef guards.

JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác oszi@inf.u-szeged.hu
This commit is contained in:
Csaba Osztrogonác
2020-06-30 13:54:50 +02:00
committed by GitHub
parent c0b594fa69
commit 122480aa61
13 changed files with 27 additions and 70 deletions
+16 -1
View File
@@ -559,6 +559,21 @@
|| ((JERRY_MODULE_SYSTEM != 0) && (JERRY_MODULE_SYSTEM != 1)) || ((JERRY_MODULE_SYSTEM != 0) && (JERRY_MODULE_SYSTEM != 1))
# error "Invalid value for JERRY_MODULE_SYSTEM macro." # error "Invalid value for JERRY_MODULE_SYSTEM macro."
#endif #endif
#if (JERRY_ESNEXT == 0) \
&& ((JERRY_BUILTIN_DATAVIEW == 1) \
|| (JERRY_BUILTIN_MAP == 1) \
|| (JERRY_BUILTIN_SET == 1) \
|| (JERRY_BUILTIN_WEAKMAP == 1) \
|| (JERRY_BUILTIN_WEAKSET == 1) \
|| (JERRY_BUILTIN_PROMISE == 1) \
|| (JERRY_BUILTIN_PROXY == 1) \
|| (JERRY_BUILTIN_REFLECT == 1) \
|| (JERRY_BUILTIN_TYPEDARRAY == 1))
# error "JERRY_ESNEXT should be enabled too to enable JERRY_BUILTIN_xxxxx macro."
#endif
#if (JERRY_ESNEXT == 0) && (JERRY_MODULE_SYSTEM == 1)
# error "JERRY_ESNEXT should be enabled too to enable JERRY_MODULE_SYSTEM macro."
#endif
/** /**
* Internal options. * Internal options.
@@ -685,7 +700,7 @@
#endif #endif
/** /**
* Resource name relatey types into a single guard * Resource name related types into a single guard
*/ */
#if ENABLED (JERRY_LINE_INFO) || ENABLED (JERRY_ERROR_MESSAGES) || ENABLED (JERRY_MODULE_SYSTEM) #if ENABLED (JERRY_LINE_INFO) || ENABLED (JERRY_ERROR_MESSAGES) || ENABLED (JERRY_MODULE_SYSTEM)
# define JERRY_RESOURCE_NAME 1 # define JERRY_RESOURCE_NAME 1
@@ -33,12 +33,10 @@ ACCESSOR_READ_ONLY (LIT_MAGIC_STRING_BYTE_LENGTH_UL,
ecma_builtin_arraybuffer_prototype_bytelength_getter, ecma_builtin_arraybuffer_prototype_bytelength_getter,
ECMA_PROPERTY_FLAG_CONFIGURABLE) ECMA_PROPERTY_FLAG_CONFIGURABLE)
#if ENABLED (JERRY_ESNEXT)
/* ECMA-262 v6, 24.1.4.4 */ /* ECMA-262 v6, 24.1.4.4 */
STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG,
LIT_MAGIC_STRING_ARRAY_BUFFER_UL, LIT_MAGIC_STRING_ARRAY_BUFFER_UL,
ECMA_PROPERTY_FLAG_CONFIGURABLE) ECMA_PROPERTY_FLAG_CONFIGURABLE)
#endif /* ENABLED (JERRY_ESNEXT) */
/* Routine properties: /* Routine properties:
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
@@ -29,12 +29,10 @@ OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
ECMA_BUILTIN_ID_DATAVIEW, ECMA_BUILTIN_ID_DATAVIEW,
ECMA_PROPERTY_CONFIGURABLE_WRITABLE) ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
#if ENABLED (JERRY_ESNEXT)
/* ECMA-262 v6, 23.2.4.21 */ /* ECMA-262 v6, 23.2.4.21 */
STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG,
LIT_MAGIC_STRING_DATAVIEW_UL, LIT_MAGIC_STRING_DATAVIEW_UL,
ECMA_PROPERTY_FLAG_CONFIGURABLE) ECMA_PROPERTY_FLAG_CONFIGURABLE)
#endif /* ENABLED (JERRY_ESNEXT) */
/* Routine properties: /* Routine properties:
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
@@ -29,12 +29,10 @@ OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
ECMA_BUILTIN_ID_MAP, ECMA_BUILTIN_ID_MAP,
ECMA_PROPERTY_CONFIGURABLE_WRITABLE) ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
#if ENABLED (JERRY_ESNEXT)
/* ECMA-262 v6, 23.1.3.13 */ /* ECMA-262 v6, 23.1.3.13 */
STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG,
LIT_MAGIC_STRING_MAP_UL, LIT_MAGIC_STRING_MAP_UL,
ECMA_PROPERTY_FLAG_CONFIGURABLE) ECMA_PROPERTY_FLAG_CONFIGURABLE)
#endif /* ENABLED (JERRY_ESNEXT) */
/* Routine properties: /* Routine properties:
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
@@ -44,12 +42,10 @@ ROUTINE (LIT_MAGIC_STRING_FOR_EACH_UL, ECMA_CONTAINER_ROUTINE_FOREACH, 2, 1)
ROUTINE (LIT_MAGIC_STRING_GET, ECMA_CONTAINER_ROUTINE_GET, 1, 1) ROUTINE (LIT_MAGIC_STRING_GET, ECMA_CONTAINER_ROUTINE_GET, 1, 1)
ROUTINE (LIT_MAGIC_STRING_HAS, ECMA_CONTAINER_ROUTINE_HAS, 1, 1) ROUTINE (LIT_MAGIC_STRING_HAS, ECMA_CONTAINER_ROUTINE_HAS, 1, 1)
ROUTINE (LIT_MAGIC_STRING_SET, ECMA_CONTAINER_ROUTINE_SET, 2, 2) ROUTINE (LIT_MAGIC_STRING_SET, ECMA_CONTAINER_ROUTINE_SET, 2, 2)
#if ENABLED (JERRY_ESNEXT)
ROUTINE (LIT_MAGIC_STRING_ENTRIES, ECMA_CONTAINER_ROUTINE_ENTRIES, 0, 0) ROUTINE (LIT_MAGIC_STRING_ENTRIES, ECMA_CONTAINER_ROUTINE_ENTRIES, 0, 0)
ROUTINE (LIT_MAGIC_STRING_VALUES, ECMA_CONTAINER_ROUTINE_VALUES, 0, 0) ROUTINE (LIT_MAGIC_STRING_VALUES, ECMA_CONTAINER_ROUTINE_VALUES, 0, 0)
ROUTINE (LIT_MAGIC_STRING_KEYS, ECMA_CONTAINER_ROUTINE_KEYS, 0, 0) ROUTINE (LIT_MAGIC_STRING_KEYS, ECMA_CONTAINER_ROUTINE_KEYS, 0, 0)
ROUTINE (LIT_GLOBAL_SYMBOL_ITERATOR, ECMA_CONTAINER_ROUTINE_ENTRIES, 0, 0) ROUTINE (LIT_GLOBAL_SYMBOL_ITERATOR, ECMA_CONTAINER_ROUTINE_ENTRIES, 0, 0)
#endif /* ENABLED (JERRY_ESNEXT) */
/* ECMA-262 v6, 23.1.3.10 */ /* ECMA-262 v6, 23.1.3.10 */
ACCESSOR_READ_ONLY (LIT_MAGIC_STRING_SIZE, ACCESSOR_READ_ONLY (LIT_MAGIC_STRING_SIZE,
@@ -24,12 +24,10 @@ OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
ECMA_BUILTIN_ID_PROMISE, ECMA_BUILTIN_ID_PROMISE,
ECMA_PROPERTY_CONFIGURABLE_WRITABLE) ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
#if ENABLED (JERRY_ESNEXT)
/* ECMA-262 v6, 25.4.5.4 */ /* ECMA-262 v6, 25.4.5.4 */
STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG,
LIT_MAGIC_STRING_PROMISE_UL, LIT_MAGIC_STRING_PROMISE_UL,
ECMA_PROPERTY_FLAG_CONFIGURABLE) ECMA_PROPERTY_FLAG_CONFIGURABLE)
#endif /* ENABLED (JERRY_ESNEXT) */
ROUTINE (LIT_MAGIC_STRING_THEN, ecma_builtin_promise_prototype_then, 2, 2) ROUTINE (LIT_MAGIC_STRING_THEN, ecma_builtin_promise_prototype_then, 2, 2)
ROUTINE (LIT_MAGIC_STRING_CATCH, ecma_builtin_promise_prototype_catch, 1, 1) ROUTINE (LIT_MAGIC_STRING_CATCH, ecma_builtin_promise_prototype_catch, 1, 1)
@@ -37,7 +37,6 @@
* \addtogroup set ECMA Set object built-in * \addtogroup set ECMA Set object built-in
* @{ * @{
*/ */
#if ENABLED (JERRY_ESNEXT)
/** /**
* Dispatcher of the built-in's routines * Dispatcher of the built-in's routines
* *
@@ -58,11 +57,10 @@ ecma_builtin_set_prototype_dispatch_routine (uint16_t builtin_routine_id, /**< b
arguments_list_p, arguments_list_p,
LIT_MAGIC_STRING_SET_UL); LIT_MAGIC_STRING_SET_UL);
} /* ecma_builtin_set_prototype_dispatch_routine */ } /* ecma_builtin_set_prototype_dispatch_routine */
#endif /* ENABLED (JERRY_ES2015) */
/** /**
* @} * @}
* @} * @}
* @} * @}
*/ */
#endif /* ENABLED (JERRY_ESNEXT) */ #endif /* ENABLED (JERRY_BUILTIN_SET) */
@@ -29,12 +29,10 @@ OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
ECMA_BUILTIN_ID_SET, ECMA_BUILTIN_ID_SET,
ECMA_PROPERTY_CONFIGURABLE_WRITABLE) ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
#if ENABLED (JERRY_ESNEXT)
/* ECMA-262 v6, 23.1.3.13 */ /* ECMA-262 v6, 23.1.3.13 */
STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG,
LIT_MAGIC_STRING_SET_UL, LIT_MAGIC_STRING_SET_UL,
ECMA_PROPERTY_FLAG_CONFIGURABLE) ECMA_PROPERTY_FLAG_CONFIGURABLE)
#endif /* ENABLED (JERRY_ESNEXT) */
/* Routine properties: /* Routine properties:
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
@@ -43,7 +41,6 @@ ROUTINE (LIT_MAGIC_STRING_ADD, ECMA_CONTAINER_ROUTINE_ADD, 1, 1)
ROUTINE (LIT_MAGIC_STRING_DELETE, ECMA_CONTAINER_ROUTINE_DELETE, 1, 1) ROUTINE (LIT_MAGIC_STRING_DELETE, ECMA_CONTAINER_ROUTINE_DELETE, 1, 1)
ROUTINE (LIT_MAGIC_STRING_FOR_EACH_UL, ECMA_CONTAINER_ROUTINE_FOREACH, 2, 1) ROUTINE (LIT_MAGIC_STRING_FOR_EACH_UL, ECMA_CONTAINER_ROUTINE_FOREACH, 2, 1)
ROUTINE (LIT_MAGIC_STRING_HAS, ECMA_CONTAINER_ROUTINE_HAS, 1, 1) ROUTINE (LIT_MAGIC_STRING_HAS, ECMA_CONTAINER_ROUTINE_HAS, 1, 1)
#if ENABLED (JERRY_ESNEXT)
ROUTINE (LIT_MAGIC_STRING_ENTRIES, ECMA_CONTAINER_ROUTINE_ENTRIES, 0, 0) ROUTINE (LIT_MAGIC_STRING_ENTRIES, ECMA_CONTAINER_ROUTINE_ENTRIES, 0, 0)
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_VALUES, LIT_INTERNAL_MAGIC_STRING_SET_PROTOTYPE_KEYS, INTRINSIC_PROPERTY (LIT_MAGIC_STRING_VALUES, LIT_INTERNAL_MAGIC_STRING_SET_PROTOTYPE_KEYS,
ECMA_PROPERTY_CONFIGURABLE_WRITABLE) ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
@@ -52,8 +49,6 @@ INTRINSIC_PROPERTY (LIT_GLOBAL_SYMBOL_ITERATOR, LIT_INTERNAL_MAGIC_STRING_SET_PR
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_KEYS, LIT_INTERNAL_MAGIC_STRING_SET_PROTOTYPE_KEYS, INTRINSIC_PROPERTY (LIT_MAGIC_STRING_KEYS, LIT_INTERNAL_MAGIC_STRING_SET_PROTOTYPE_KEYS,
ECMA_PROPERTY_CONFIGURABLE_WRITABLE) ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
#endif /* ENABLED (JERRY_ESNEXT) */
ACCESSOR_READ_ONLY (LIT_MAGIC_STRING_SIZE, ACCESSOR_READ_ONLY (LIT_MAGIC_STRING_SIZE,
ECMA_CONTAINER_ROUTINE_SIZE_GETTER, ECMA_CONTAINER_ROUTINE_SIZE_GETTER,
ECMA_PROPERTY_FLAG_CONFIGURABLE) ECMA_PROPERTY_FLAG_CONFIGURABLE)
@@ -147,7 +147,6 @@ 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.")); return ecma_raise_type_error (ECMA_ERR_MSG ("Argument 'this' is not a TypedArray."));
} /* ecma_builtin_typedarray_prototype_length_getter */ } /* ecma_builtin_typedarray_prototype_length_getter */
#if ENABLED (JERRY_ESNEXT)
/** /**
* The %TypedArray%.prototype[Symbol.toStringTag] accessor * The %TypedArray%.prototype[Symbol.toStringTag] accessor
* *
@@ -167,7 +166,6 @@ 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))); 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 */ } /* ecma_builtin_typedarray_prototype_to_string_tag_getter */
#endif /* ENABLED (JERRY_ESNEXT) */
/** /**
* Type of routine. * Type of routine.
@@ -332,8 +330,6 @@ ecma_builtin_typedarray_prototype_for_each (ecma_value_t this_arg, /**< this arg
TYPEDARRAY_ROUTINE_FOREACH); TYPEDARRAY_ROUTINE_FOREACH);
} /* ecma_builtin_typedarray_prototype_for_each */ } /* ecma_builtin_typedarray_prototype_for_each */
#if ENABLED (JERRY_ESNEXT)
/** /**
* Helper function for typedArray.prototype object's {'keys', 'values', 'entries', '@@iterator'} * Helper function for typedArray.prototype object's {'keys', 'values', 'entries', '@@iterator'}
* routines common parts. * routines common parts.
@@ -415,8 +411,6 @@ ecma_builtin_typedarray_prototype_entries (ecma_value_t this_arg) /**< this argu
return ecma_builtin_typedarray_iterators_helper (this_arg, ECMA_ITERATOR_KEYS_VALUES); return ecma_builtin_typedarray_iterators_helper (this_arg, ECMA_ITERATOR_KEYS_VALUES);
} /* ecma_builtin_typedarray_prototype_entries */ } /* ecma_builtin_typedarray_prototype_entries */
#endif /* ENABLED (JERRY_ESNEXT) */
/** /**
* The %TypedArray%.prototype object's 'map' routine * The %TypedArray%.prototype object's 'map' routine
* *
@@ -45,12 +45,10 @@ ACCESSOR_READ_ONLY (LIT_MAGIC_STRING_LENGTH,
ecma_builtin_typedarray_prototype_length_getter, ecma_builtin_typedarray_prototype_length_getter,
ECMA_PROPERTY_FLAG_CONFIGURABLE) ECMA_PROPERTY_FLAG_CONFIGURABLE)
#if ENABLED (JERRY_ESNEXT)
/* ECMA-262 v6, 23.1.3.13 */ /* ECMA-262 v6, 23.1.3.13 */
ACCESSOR_READ_ONLY (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, ACCESSOR_READ_ONLY (LIT_GLOBAL_SYMBOL_TO_STRING_TAG,
ecma_builtin_typedarray_prototype_to_string_tag_getter, ecma_builtin_typedarray_prototype_to_string_tag_getter,
ECMA_PROPERTY_FLAG_CONFIGURABLE) ECMA_PROPERTY_FLAG_CONFIGURABLE)
#endif /* ENABLED (JERRY_ESNEXT) */
/* Routine properties: /* Routine properties:
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
@@ -75,16 +73,11 @@ ROUTINE (LIT_MAGIC_STRING_LAST_INDEX_OF_UL, ecma_builtin_typedarray_prototype_la
ROUTINE (LIT_MAGIC_STRING_COPY_WITHIN, ecma_builtin_typedarray_prototype_copy_within, NON_FIXED, 2) ROUTINE (LIT_MAGIC_STRING_COPY_WITHIN, ecma_builtin_typedarray_prototype_copy_within, NON_FIXED, 2)
ROUTINE (LIT_MAGIC_STRING_SLICE, ecma_builtin_typedarray_prototype_slice, NON_FIXED, 2) ROUTINE (LIT_MAGIC_STRING_SLICE, ecma_builtin_typedarray_prototype_slice, NON_FIXED, 2)
ROUTINE (LIT_MAGIC_STRING_TO_LOCALE_STRING_UL, ecma_builtin_typedarray_prototype_to_locale_string, 0, 0) ROUTINE (LIT_MAGIC_STRING_TO_LOCALE_STRING_UL, ecma_builtin_typedarray_prototype_to_locale_string, 0, 0)
#if ENABLED (JERRY_ESNEXT)
ROUTINE (LIT_MAGIC_STRING_KEYS, ecma_builtin_typedarray_prototype_keys, 0, 0) ROUTINE (LIT_MAGIC_STRING_KEYS, ecma_builtin_typedarray_prototype_keys, 0, 0)
ROUTINE (LIT_MAGIC_STRING_VALUES, ecma_builtin_typedarray_prototype_values, 0, 0) ROUTINE (LIT_MAGIC_STRING_VALUES, ecma_builtin_typedarray_prototype_values, 0, 0)
ROUTINE (LIT_MAGIC_STRING_ENTRIES, ecma_builtin_typedarray_prototype_entries, 0, 0) ROUTINE (LIT_MAGIC_STRING_ENTRIES, ecma_builtin_typedarray_prototype_entries, 0, 0)
ROUTINE (LIT_GLOBAL_SYMBOL_ITERATOR, ecma_builtin_typedarray_prototype_values, 0, 0) ROUTINE (LIT_GLOBAL_SYMBOL_ITERATOR, ecma_builtin_typedarray_prototype_values, 0, 0)
#endif /* ENABLED (JERRY_ESNEXT) */
#endif /* ENABLED (JERRY_BUILTIN_TYPEDARRAY) */ #endif /* ENABLED (JERRY_BUILTIN_TYPEDARRAY) */
#include "ecma-builtin-helpers-macro-undefs.inc.h" #include "ecma-builtin-helpers-macro-undefs.inc.h"
+2 -4
View File
@@ -179,12 +179,10 @@ ecma_op_object_get_own_property (ecma_object_t *object_p, /**< the object */
/* ES2015 9.4.5.1 */ /* ES2015 9.4.5.1 */
if (ecma_object_is_typedarray (object_p)) if (ecma_object_is_typedarray (object_p))
{ {
#if ENABLED (JERRY_ESNEXT)
if (ecma_prop_name_is_symbol (property_name_p)) if (ecma_prop_name_is_symbol (property_name_p))
{ {
break; break;
} }
#endif /* ENABLED (JERRY_ESNEXT) */
uint32_t array_index = ecma_string_get_array_index (property_name_p); uint32_t array_index = ecma_string_get_array_index (property_name_p);
@@ -2167,12 +2165,12 @@ ecma_op_object_get_property_names (ecma_object_t *obj_p, /**< object */
{ {
case ECMA_OBJECT_TYPE_PSEUDO_ARRAY: case ECMA_OBJECT_TYPE_PSEUDO_ARRAY:
{ {
#if ENABLED (JERRY_BUILTIN_TYPEDARRAY) #if ENABLED (JERRY_BUILTIN_TYPEDARRAY)
if (ecma_object_is_typedarray (obj_p)) if (ecma_object_is_typedarray (obj_p))
{ {
ecma_op_typedarray_list_lazy_property_names (obj_p, prop_names_p); ecma_op_typedarray_list_lazy_property_names (obj_p, prop_names_p);
} }
#endif /* ENABLED (JERRY_BUILTIN_TYPEDARRAY) */ #endif /* ENABLED (JERRY_BUILTIN_TYPEDARRAY) */
break; break;
} }
case ECMA_OBJECT_TYPE_FUNCTION: case ECMA_OBJECT_TYPE_FUNCTION:
+8 -2
View File
@@ -413,7 +413,10 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SYMBOL, "symbol")
|| ENABLED (JERRY_BUILTIN_JSON) || ENABLED (JERRY_BUILTIN_JSON)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_JSON_UL, "toJSON") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_JSON_UL, "toJSON")
#endif #endif
#if ENABLED (JERRY_ESNEXT) #if ENABLED (JERRY_BUILTIN_MAP) \
|| ENABLED (JERRY_BUILTIN_SET) \
|| ENABLED (JERRY_BUILTIN_TYPEDARRAY) \
|| ENABLED (JERRY_ESNEXT)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_VALUES, "values") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_VALUES, "values")
#endif #endif
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BOOLEAN_UL, "Boolean") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BOOLEAN_UL, "Boolean")
@@ -445,7 +448,10 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_COMPILE, "compile")
|| ENABLED (JERRY_MODULE_SYSTEM) || ENABLED (JERRY_MODULE_SYSTEM)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_DEFAULT, "default") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_DEFAULT, "default")
#endif #endif
#if ENABLED (JERRY_ESNEXT) #if ENABLED (JERRY_BUILTIN_MAP) \
|| ENABLED (JERRY_BUILTIN_SET) \
|| ENABLED (JERRY_BUILTIN_TYPEDARRAY) \
|| ENABLED (JERRY_ESNEXT)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ENTRIES, "entries") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ENTRIES, "entries")
#endif #endif
#if ENABLED (JERRY_BUILTIN_ARRAY) \ #if ENABLED (JERRY_BUILTIN_ARRAY) \
-4
View File
@@ -463,13 +463,11 @@ parser_module_parse_import_clause (parser_context_t *context_p) /**< parser cont
parser_raise_error (context_p, PARSER_ERR_IDENTIFIER_EXPECTED); parser_raise_error (context_p, PARSER_ERR_IDENTIFIER_EXPECTED);
} }
#if ENABLED (JERRY_ESNEXT)
if (context_p->next_scanner_info_p->source_p == context_p->source_p) if (context_p->next_scanner_info_p->source_p == context_p->source_p)
{ {
JERRY_ASSERT (context_p->next_scanner_info_p->type == SCANNER_TYPE_ERR_REDECLARED); JERRY_ASSERT (context_p->next_scanner_info_p->type == SCANNER_TYPE_ERR_REDECLARED);
parser_raise_error (context_p, PARSER_ERR_VARIABLE_REDECLARED); parser_raise_error (context_p, PARSER_ERR_VARIABLE_REDECLARED);
} }
#endif /* ENABLED (JERRY_ESNEXT) */
ecma_string_t *import_name_p = NULL; ecma_string_t *import_name_p = NULL;
ecma_string_t *local_name_p = NULL; ecma_string_t *local_name_p = NULL;
@@ -490,13 +488,11 @@ parser_module_parse_import_clause (parser_context_t *context_p) /**< parser cont
parser_raise_error (context_p, PARSER_ERR_IDENTIFIER_EXPECTED); parser_raise_error (context_p, PARSER_ERR_IDENTIFIER_EXPECTED);
} }
#if ENABLED (JERRY_ESNEXT)
if (context_p->next_scanner_info_p->source_p == context_p->source_p) if (context_p->next_scanner_info_p->source_p == context_p->source_p)
{ {
JERRY_ASSERT (context_p->next_scanner_info_p->type == SCANNER_TYPE_ERR_REDECLARED); JERRY_ASSERT (context_p->next_scanner_info_p->type == SCANNER_TYPE_ERR_REDECLARED);
parser_raise_error (context_p, PARSER_ERR_VARIABLE_REDECLARED); parser_raise_error (context_p, PARSER_ERR_VARIABLE_REDECLARED);
} }
#endif /* ENABLED (JERRY_ESNEXT) */
lexer_construct_literal_object (context_p, &context_p->token.lit_location, LEXER_NEW_IDENT_LITERAL); lexer_construct_literal_object (context_p, &context_p->token.lit_location, LEXER_NEW_IDENT_LITERAL);
-28
View File
@@ -1483,12 +1483,8 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */
{ {
lexer_lit_location_t *literal_p = scanner_add_literal (context_p, scanner_context_p); lexer_lit_location_t *literal_p = scanner_add_literal (context_p, scanner_context_p);
#if ENABLED (JERRY_ESNEXT)
scanner_detect_invalid_let (context_p, literal_p); scanner_detect_invalid_let (context_p, literal_p);
literal_p->type |= SCANNER_LITERAL_IS_LOCAL | SCANNER_LITERAL_NO_REG; literal_p->type |= SCANNER_LITERAL_IS_LOCAL | SCANNER_LITERAL_NO_REG;
#else /* !ENABLED (JERRY_ESNEXT) */
literal_p->type |= SCANNER_LITERAL_IS_VAR | SCANNER_LITERAL_NO_REG;
#endif /* ENABLED (JERRY_ESNEXT) */
lexer_next_token (context_p); lexer_next_token (context_p);
@@ -1522,12 +1518,8 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */
lexer_lit_location_t *literal_p = scanner_add_literal (context_p, scanner_context_p); lexer_lit_location_t *literal_p = scanner_add_literal (context_p, scanner_context_p);
#if ENABLED (JERRY_ESNEXT)
scanner_detect_invalid_let (context_p, literal_p); scanner_detect_invalid_let (context_p, literal_p);
literal_p->type |= SCANNER_LITERAL_IS_LOCAL | SCANNER_LITERAL_NO_REG; literal_p->type |= SCANNER_LITERAL_IS_LOCAL | SCANNER_LITERAL_NO_REG;
#else /* !ENABLED (JERRY_ESNEXT) */
literal_p->type |= SCANNER_LITERAL_IS_VAR | SCANNER_LITERAL_NO_REG;
#endif /* ENABLED (JERRY_ESNEXT) */
lexer_next_token (context_p); lexer_next_token (context_p);
} }
@@ -1543,9 +1535,7 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */
scanner_raise_error (context_p); scanner_raise_error (context_p);
} }
#if ENABLED (JERRY_ESNEXT)
const uint8_t *source_p = context_p->source_p; const uint8_t *source_p = context_p->source_p;
#endif /* ENABLED (JERRY_ESNEXT) */
if (lexer_check_next_character (context_p, LIT_CHAR_LOWERCASE_A)) if (lexer_check_next_character (context_p, LIT_CHAR_LOWERCASE_A))
{ {
@@ -1564,14 +1554,11 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */
scanner_raise_error (context_p); scanner_raise_error (context_p);
} }
#if ENABLED (JERRY_ESNEXT)
source_p = context_p->source_p; source_p = context_p->source_p;
#endif /* ENABLED (JERRY_ESNEXT) */
} }
lexer_lit_location_t *literal_p = scanner_add_literal (context_p, scanner_context_p); lexer_lit_location_t *literal_p = scanner_add_literal (context_p, scanner_context_p);
#if ENABLED (JERRY_ESNEXT)
if (literal_p->type & (SCANNER_LITERAL_IS_ARG if (literal_p->type & (SCANNER_LITERAL_IS_ARG
| SCANNER_LITERAL_IS_VAR | SCANNER_LITERAL_IS_VAR
| SCANNER_LITERAL_IS_LOCAL)) | SCANNER_LITERAL_IS_LOCAL))
@@ -1586,9 +1573,6 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */
} }
literal_p->type |= SCANNER_LITERAL_IS_LOCAL | SCANNER_LITERAL_NO_REG; literal_p->type |= SCANNER_LITERAL_IS_LOCAL | SCANNER_LITERAL_NO_REG;
#else /* !ENABLED (JERRY_ESNEXT) */
literal_p->type |= SCANNER_LITERAL_IS_VAR | SCANNER_LITERAL_NO_REG;
#endif /* ENABLED (JERRY_ESNEXT) */
lexer_next_token (context_p); lexer_next_token (context_p);
@@ -1649,16 +1633,12 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */
{ {
lexer_lit_location_t *location_p = scanner_add_literal (context_p, scanner_context_p); lexer_lit_location_t *location_p = scanner_add_literal (context_p, scanner_context_p);
#if ENABLED (JERRY_ESNEXT)
if (location_p->type & SCANNER_LITERAL_IS_LOCAL if (location_p->type & SCANNER_LITERAL_IS_LOCAL
&& !(location_p->type & SCANNER_LITERAL_IS_FUNC)) && !(location_p->type & SCANNER_LITERAL_IS_FUNC))
{ {
scanner_raise_redeclaration_error (context_p); scanner_raise_redeclaration_error (context_p);
} }
location_p->type |= SCANNER_LITERAL_IS_FUNC | SCANNER_LITERAL_IS_LET; location_p->type |= SCANNER_LITERAL_IS_FUNC | SCANNER_LITERAL_IS_LET;
#else /* !ENABLED (JERRY_ESNEXT) */
location_p->type |= SCANNER_LITERAL_IS_VAR | SCANNER_LITERAL_IS_FUNC;
#endif /* ENABLED (JERRY_ESNEXT) */
lexer_next_token (context_p); lexer_next_token (context_p);
} }
@@ -1668,11 +1648,7 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */
location_p = scanner_add_custom_literal (context_p, location_p = scanner_add_custom_literal (context_p,
scanner_context_p->active_literal_pool_p, scanner_context_p->active_literal_pool_p,
&lexer_default_literal); &lexer_default_literal);
#if ENABLED (JERRY_ESNEXT)
location_p->type |= SCANNER_LITERAL_IS_FUNC | SCANNER_LITERAL_IS_LET; location_p->type |= SCANNER_LITERAL_IS_FUNC | SCANNER_LITERAL_IS_LET;
#else /* !ENABLED (JERRY_ESNEXT) */
location_p->type |= SCANNER_LITERAL_IS_VAR | SCANNER_LITERAL_IS_FUNC;
#endif /* ENABLED (JERRY_ESNEXT) */
} }
scanner_push_literal_pool (context_p, scanner_context_p, SCANNER_LITERAL_POOL_FUNCTION); scanner_push_literal_pool (context_p, scanner_context_p, SCANNER_LITERAL_POOL_FUNCTION);
@@ -1681,7 +1657,6 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */
scanner_context_p->mode = SCAN_MODE_FUNCTION_ARGUMENTS; scanner_context_p->mode = SCAN_MODE_FUNCTION_ARGUMENTS;
return SCAN_KEEP_TOKEN; return SCAN_KEEP_TOKEN;
} }
#if ENABLED (JERRY_ESNEXT)
if (context_p->token.type == LEXER_KEYW_CLASS) if (context_p->token.type == LEXER_KEYW_CLASS)
{ {
scanner_push_class_declaration (context_p, scanner_context_p, SCAN_STACK_CLASS_STATEMENT); scanner_push_class_declaration (context_p, scanner_context_p, SCAN_STACK_CLASS_STATEMENT);
@@ -1703,7 +1678,6 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */
literal_p->type |= SCANNER_LITERAL_IS_LET | SCANNER_LITERAL_NO_REG; literal_p->type |= SCANNER_LITERAL_IS_LET | SCANNER_LITERAL_NO_REG;
return SCAN_KEEP_TOKEN; return SCAN_KEEP_TOKEN;
} }
#endif /* ENABLED (JERRY_ESNEXT) */
/* Assignment expression. */ /* Assignment expression. */
lexer_lit_location_t *location_p; lexer_lit_location_t *location_p;
@@ -1803,11 +1777,9 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */
switch (context_p->token.type) switch (context_p->token.type)
{ {
#if ENABLED (JERRY_ESNEXT)
case LEXER_KEYW_CLASS: case LEXER_KEYW_CLASS:
case LEXER_KEYW_LET: case LEXER_KEYW_LET:
case LEXER_KEYW_CONST: case LEXER_KEYW_CONST:
#endif /* ENABLED (JERRY_ESNEXT) */
case LEXER_KEYW_VAR: case LEXER_KEYW_VAR:
{ {
scanner_context_p->active_literal_pool_p->status_flags |= SCANNER_LITERAL_POOL_IN_EXPORT; scanner_context_p->active_literal_pool_p->status_flags |= SCANNER_LITERAL_POOL_IN_EXPORT;