mirror of
https://github.com/jerryscript-project/jerryscript.git
synced 2026-02-07 16:41:21 +00:00
Fix Symbol properties descriptors. (#3581)
Symbol properites descriptors had invalid values Fixes #3578 JerryScript-DCO-1.0-Signed-off-by: Rafal Walczyna r.walczyna@samsung.com
This commit is contained in:
parent
6430d1a3a3
commit
20300189cb
@ -76,8 +76,10 @@ ROUTINE (LIT_MAGIC_STRING_FILL, ECMA_ARRAY_PROTOTYPE_FILL, 3, 1)
|
||||
ROUTINE (LIT_MAGIC_STRING_COPY_WITHIN, ECMA_ARRAY_PROTOTYPE_COPY_WITHIN, NON_FIXED, 2)
|
||||
ROUTINE (LIT_MAGIC_STRING_ENTRIES, ECMA_ARRAY_PROTOTYPE_ENTRIES, 0, 0)
|
||||
ROUTINE (LIT_MAGIC_STRING_KEYS, ECMA_ARRAY_PROTOTYPE_KEYS, 0, 0)
|
||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_VALUES, LIT_INTERNAL_MAGIC_STRING_ARRAY_PROTOTYPE_VALUES)
|
||||
INTRINSIC_PROPERTY (LIT_GLOBAL_SYMBOL_ITERATOR, LIT_INTERNAL_MAGIC_STRING_ARRAY_PROTOTYPE_VALUES)
|
||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_VALUES, LIT_INTERNAL_MAGIC_STRING_ARRAY_PROTOTYPE_VALUES,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
INTRINSIC_PROPERTY (LIT_GLOBAL_SYMBOL_ITERATOR, LIT_INTERNAL_MAGIC_STRING_ARRAY_PROTOTYPE_VALUES,
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
|
||||
#endif /* ENABLED (JERRY_ES2015) */
|
||||
|
||||
#endif /* ENABLED (JERRY_BUILTIN_ARRAY) */
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
#endif /* !SYMBOL_VALUE */
|
||||
|
||||
#ifndef INTRINSIC_PROPERTY
|
||||
#define INTRINSIC_PROPERTY(name, magic_string_id)
|
||||
#define INTRINSIC_PROPERTY(name, magic_string_id, prop_attributes)
|
||||
#endif /* !INTRINSIC_PROPERTY */
|
||||
|
||||
#ifndef ACCESSOR_BUILTIN_FUNCTION_OBJECT
|
||||
|
||||
@ -182,11 +182,11 @@ const ecma_builtin_property_descriptor_t PROPERTY_DESCRIPTOR_LIST_NAME[] =
|
||||
ECMA_PROPERTY_FIXED, \
|
||||
desc_magic_string_id \
|
||||
},
|
||||
#define INTRINSIC_PROPERTY(name, magic_string_id) \
|
||||
#define INTRINSIC_PROPERTY(name, magic_string_id, prop_attributes) \
|
||||
{ \
|
||||
name, \
|
||||
ECMA_BUILTIN_PROPERTY_INTRINSIC_PROPERTY, \
|
||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE, \
|
||||
prop_attributes, \
|
||||
magic_string_id \
|
||||
},
|
||||
#define ACCESSOR_BUILTIN_FUNCTION(name, getter_builtin_id, setter_builtin_id, prop_attributes) \
|
||||
|
||||
@ -39,47 +39,58 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
|
||||
|
||||
/* ECMA-262 v6, 19.4.2.2 */
|
||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_HAS_INSTANCE,
|
||||
LIT_GLOBAL_SYMBOL_HAS_INSTANCE)
|
||||
LIT_GLOBAL_SYMBOL_HAS_INSTANCE,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
/* ECMA-262 v6, 19.4.2.3 */
|
||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_IS_CONCAT_SPREADABLE,
|
||||
LIT_GLOBAL_SYMBOL_IS_CONCAT_SPREADABLE)
|
||||
LIT_GLOBAL_SYMBOL_IS_CONCAT_SPREADABLE,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
/* ECMA-262 v6, 19.4.2.4 */
|
||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_ITERATOR,
|
||||
LIT_GLOBAL_SYMBOL_ITERATOR)
|
||||
LIT_GLOBAL_SYMBOL_ITERATOR,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
/* ECMA-262 v6, 19.4.2.6 */
|
||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_MATCH,
|
||||
LIT_GLOBAL_SYMBOL_MATCH)
|
||||
LIT_GLOBAL_SYMBOL_MATCH,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
/* ECMA-262 v6, 19.4.2.8 */
|
||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_REPLACE,
|
||||
LIT_GLOBAL_SYMBOL_REPLACE)
|
||||
LIT_GLOBAL_SYMBOL_REPLACE,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
/* ECMA-262 v6, 19.4.2.9 */
|
||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_SEARCH,
|
||||
LIT_GLOBAL_SYMBOL_SEARCH)
|
||||
LIT_GLOBAL_SYMBOL_SEARCH,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
/* ECMA-262 v6, 19.4.2.10 */
|
||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_SPECIES,
|
||||
LIT_GLOBAL_SYMBOL_SPECIES)
|
||||
LIT_GLOBAL_SYMBOL_SPECIES,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
/* ECMA-262 v6, 19.4.2.11 */
|
||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_SPLIT,
|
||||
LIT_GLOBAL_SYMBOL_SPLIT)
|
||||
LIT_GLOBAL_SYMBOL_SPLIT,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
/* ECMA-262 v6, 19.4.2.12 */
|
||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_TO_PRIMITIVE,
|
||||
LIT_GLOBAL_SYMBOL_TO_PRIMITIVE)
|
||||
LIT_GLOBAL_SYMBOL_TO_PRIMITIVE,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
/* ECMA-262 v6, 19.4.2.13 */
|
||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_TO_STRING_TAG,
|
||||
LIT_GLOBAL_SYMBOL_TO_STRING_TAG)
|
||||
LIT_GLOBAL_SYMBOL_TO_STRING_TAG,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
/* ECMA-262 v6, 19.4.2.14 */
|
||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_UNSCOPABLES,
|
||||
LIT_GLOBAL_SYMBOL_UNSCOPABLES)
|
||||
LIT_GLOBAL_SYMBOL_UNSCOPABLES,
|
||||
ECMA_PROPERTY_FIXED)
|
||||
|
||||
/* Routine properties:
|
||||
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
|
||||
|
||||
@ -85,6 +85,11 @@ var a = ['hasInstance',
|
||||
a.forEach (function (e) {
|
||||
assert (Symbol[e].toString() === ('Symbol(Symbol.' + e +')'));
|
||||
assert (typeof Symbol[e] === 'symbol');
|
||||
/* Check for property descriptor ES 6 19.4.2.2 - 19.4.2.14 */
|
||||
var desc = Object.getOwnPropertyDescriptor(Symbol, e)
|
||||
assert (desc.writable === false);
|
||||
assert (desc.enumerable === false);
|
||||
assert (desc.configurable === false);
|
||||
});
|
||||
|
||||
var obj = {};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user