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:
@@ -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_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_ENTRIES, ECMA_ARRAY_PROTOTYPE_ENTRIES, 0, 0)
|
||||||
ROUTINE (LIT_MAGIC_STRING_KEYS, ECMA_ARRAY_PROTOTYPE_KEYS, 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_MAGIC_STRING_VALUES, LIT_INTERNAL_MAGIC_STRING_ARRAY_PROTOTYPE_VALUES,
|
||||||
INTRINSIC_PROPERTY (LIT_GLOBAL_SYMBOL_ITERATOR, 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_ES2015) */
|
||||||
|
|
||||||
#endif /* ENABLED (JERRY_BUILTIN_ARRAY) */
|
#endif /* ENABLED (JERRY_BUILTIN_ARRAY) */
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
#endif /* !SYMBOL_VALUE */
|
#endif /* !SYMBOL_VALUE */
|
||||||
|
|
||||||
#ifndef INTRINSIC_PROPERTY
|
#ifndef INTRINSIC_PROPERTY
|
||||||
#define INTRINSIC_PROPERTY(name, magic_string_id)
|
#define INTRINSIC_PROPERTY(name, magic_string_id, prop_attributes)
|
||||||
#endif /* !INTRINSIC_PROPERTY */
|
#endif /* !INTRINSIC_PROPERTY */
|
||||||
|
|
||||||
#ifndef ACCESSOR_BUILTIN_FUNCTION_OBJECT
|
#ifndef ACCESSOR_BUILTIN_FUNCTION_OBJECT
|
||||||
|
|||||||
@@ -182,11 +182,11 @@ const ecma_builtin_property_descriptor_t PROPERTY_DESCRIPTOR_LIST_NAME[] =
|
|||||||
ECMA_PROPERTY_FIXED, \
|
ECMA_PROPERTY_FIXED, \
|
||||||
desc_magic_string_id \
|
desc_magic_string_id \
|
||||||
},
|
},
|
||||||
#define INTRINSIC_PROPERTY(name, magic_string_id) \
|
#define INTRINSIC_PROPERTY(name, magic_string_id, prop_attributes) \
|
||||||
{ \
|
{ \
|
||||||
name, \
|
name, \
|
||||||
ECMA_BUILTIN_PROPERTY_INTRINSIC_PROPERTY, \
|
ECMA_BUILTIN_PROPERTY_INTRINSIC_PROPERTY, \
|
||||||
ECMA_PROPERTY_CONFIGURABLE_WRITABLE, \
|
prop_attributes, \
|
||||||
magic_string_id \
|
magic_string_id \
|
||||||
},
|
},
|
||||||
#define ACCESSOR_BUILTIN_FUNCTION(name, getter_builtin_id, setter_builtin_id, prop_attributes) \
|
#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 */
|
/* ECMA-262 v6, 19.4.2.2 */
|
||||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_HAS_INSTANCE,
|
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 */
|
/* ECMA-262 v6, 19.4.2.3 */
|
||||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_IS_CONCAT_SPREADABLE,
|
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 */
|
/* ECMA-262 v6, 19.4.2.4 */
|
||||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_ITERATOR,
|
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_ITERATOR,
|
||||||
LIT_GLOBAL_SYMBOL_ITERATOR)
|
LIT_GLOBAL_SYMBOL_ITERATOR,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
/* ECMA-262 v6, 19.4.2.6 */
|
/* ECMA-262 v6, 19.4.2.6 */
|
||||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_MATCH,
|
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_MATCH,
|
||||||
LIT_GLOBAL_SYMBOL_MATCH)
|
LIT_GLOBAL_SYMBOL_MATCH,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
/* ECMA-262 v6, 19.4.2.8 */
|
/* ECMA-262 v6, 19.4.2.8 */
|
||||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_REPLACE,
|
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_REPLACE,
|
||||||
LIT_GLOBAL_SYMBOL_REPLACE)
|
LIT_GLOBAL_SYMBOL_REPLACE,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
/* ECMA-262 v6, 19.4.2.9 */
|
/* ECMA-262 v6, 19.4.2.9 */
|
||||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_SEARCH,
|
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_SEARCH,
|
||||||
LIT_GLOBAL_SYMBOL_SEARCH)
|
LIT_GLOBAL_SYMBOL_SEARCH,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
/* ECMA-262 v6, 19.4.2.10 */
|
/* ECMA-262 v6, 19.4.2.10 */
|
||||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_SPECIES,
|
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_SPECIES,
|
||||||
LIT_GLOBAL_SYMBOL_SPECIES)
|
LIT_GLOBAL_SYMBOL_SPECIES,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
/* ECMA-262 v6, 19.4.2.11 */
|
/* ECMA-262 v6, 19.4.2.11 */
|
||||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_SPLIT,
|
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_SPLIT,
|
||||||
LIT_GLOBAL_SYMBOL_SPLIT)
|
LIT_GLOBAL_SYMBOL_SPLIT,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
/* ECMA-262 v6, 19.4.2.12 */
|
/* ECMA-262 v6, 19.4.2.12 */
|
||||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_TO_PRIMITIVE,
|
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 */
|
/* ECMA-262 v6, 19.4.2.13 */
|
||||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_TO_STRING_TAG,
|
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 */
|
/* ECMA-262 v6, 19.4.2.14 */
|
||||||
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_UNSCOPABLES,
|
INTRINSIC_PROPERTY (LIT_MAGIC_STRING_UNSCOPABLES,
|
||||||
LIT_GLOBAL_SYMBOL_UNSCOPABLES)
|
LIT_GLOBAL_SYMBOL_UNSCOPABLES,
|
||||||
|
ECMA_PROPERTY_FIXED)
|
||||||
|
|
||||||
/* 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) */
|
||||||
|
|||||||
@@ -85,6 +85,11 @@ var a = ['hasInstance',
|
|||||||
a.forEach (function (e) {
|
a.forEach (function (e) {
|
||||||
assert (Symbol[e].toString() === ('Symbol(Symbol.' + e +')'));
|
assert (Symbol[e].toString() === ('Symbol(Symbol.' + e +')'));
|
||||||
assert (typeof Symbol[e] === 'symbol');
|
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 = {};
|
var obj = {};
|
||||||
|
|||||||
Reference in New Issue
Block a user