diff options
author | Hyukwoo Park <hyukwoo.park@samsung.com> | 2020-02-14 18:25:26 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-14 10:25:26 +0100 |
commit | 54e4de39ab77537f987ea5f1a2e630e68503afce (patch) | |
tree | 589196cb768dcdd5fe443274f189eee98a729b0b | |
parent | 4d67ac3225f1f79e6f6e481eb2294dd642557d30 (diff) |
Fix attributes of length property for builtin objects (#3556)
* length property has the attributes {[[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true} based on ECMA-262 v6, 19.2.4.1
JerryScript-DCO-1.0-Signed-off-by: HyukWoo Park hyukwoo.park@samsung.com
34 files changed, 140 insertions, 58 deletions
diff --git a/jerry-core/ecma/base/ecma-globals.h b/jerry-core/ecma/base/ecma-globals.h index 5d371837..789d79c2 100644 --- a/jerry-core/ecma/base/ecma-globals.h +++ b/jerry-core/ecma/base/ecma-globals.h @@ -399,6 +399,15 @@ typedef enum #define ECMA_PROPERTY_FIXED 0 /** + * Default flag of length property. + */ +#if ENABLED (JERRY_ES2015) +#define ECMA_PROPERTY_FLAG_DEFAULT_LENGTH ECMA_PROPERTY_FLAG_CONFIGURABLE +#else /* !ENABLED (JERRY_ES2015) */ +#define ECMA_PROPERTY_FLAG_DEFAULT_LENGTH ECMA_PROPERTY_FIXED +#endif /* ENABLED (JERRY_ES2015) */ + +/** * Shift for property name part. */ #define ECMA_PROPERTY_NAME_TYPE_SHIFT (ECMA_PROPERTY_FLAG_SHIFT + 4) diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-array.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-array.inc.h index 43ff947b..ff1df5f0 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-array.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-array.inc.h @@ -32,10 +32,9 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, /* Number properties: * (property name, object pointer getter) */ -/* ECMA-262 v5, 15.4.3 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) /* 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-arraybuffer.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-arraybuffer.inc.h index c2c7e26b..a3b162f3 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-arraybuffer.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-arraybuffer.inc.h @@ -26,7 +26,7 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_CONFIGURABLE) /* Object properties: * (property name, object pointer getter) */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-boolean.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-boolean.inc.h index a26f129d..dd5132b9 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-boolean.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-boolean.inc.h @@ -32,10 +32,9 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, /* Number properties: * (property name, object pointer getter) */ -/* ECMA-262 v5, 15.6.3 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) #endif /* ENABLED (JERRY_BUILTIN_BOOLEAN) */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-dataview.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-dataview.inc.h index 75fbc688..0732f6c6 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-dataview.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-dataview.inc.h @@ -27,7 +27,7 @@ /* ECMA-262 v6, 23.1.2 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 3, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_CONFIGURABLE) /* ECMA-262 v6, 23.1 */ STRING_VALUE (LIT_MAGIC_STRING_NAME, diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-date.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-date.inc.h index fc38bf56..f805b779 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-date.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-date.inc.h @@ -28,7 +28,7 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 7, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) ROUTINE (LIT_MAGIC_STRING_PARSE, ecma_builtin_date_parse, 1, 1) ROUTINE (LIT_MAGIC_STRING_UTC_U, ecma_builtin_date_utc, NON_FIXED, 7) diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-error.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-error.inc.h index 3fbddac2..e965de49 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-error.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-error.inc.h @@ -22,10 +22,9 @@ /* Number properties: * (property name, number value, writable, enumerable, configurable) */ -/* ECMA-262 v5, 15.11.3 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) /* Object properties: * (property name, object pointer getter) */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-evalerror.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-evalerror.inc.h index c6d7626b..f2fd2682 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-evalerror.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-evalerror.inc.h @@ -24,10 +24,9 @@ /* Number properties: * (property name, number value, writable, enumerable, configurable) */ -/* ECMA-262 v5, 15.11.3 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) /* Object properties: * (property name, object pointer getter) */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.inc.h index c5d8b1db..94f0e870 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.inc.h @@ -30,10 +30,9 @@ OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR, /* Number properties: * (property name, object pointer getter) */ -/* ECMA-262 v5, 15.3.4 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 0, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) /* 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-function.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-function.inc.h index c6a4a7bd..ede26615 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-function.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-function.inc.h @@ -30,9 +30,8 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, /* Number properties: * (property name, object pointer getter) */ -/* ECMA-262 v5, 15.3.3.2 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-generator-function.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-generator-function.inc.h index bbae8b2d..d4e8c4bc 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-generator-function.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-generator-function.inc.h @@ -26,7 +26,7 @@ STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_GENERATOR_FUNCTION_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -/* ECMA-262 v6, 25.2.2 */ +/* ECMA-262 v6, 25.2.2.1 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, ECMA_PROPERTY_FLAG_CONFIGURABLE) diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-map.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-map.inc.h index da6951fc..2b09c9c0 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-map.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-map.inc.h @@ -27,7 +27,7 @@ /* ECMA-262 v6, 23.1.2 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 0, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_CONFIGURABLE) /* ECMA-262 v6, 23.1 */ STRING_VALUE (LIT_MAGIC_STRING_NAME, diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-number.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-number.inc.h index a2b23ced..8088655d 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-number.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-number.inc.h @@ -24,10 +24,9 @@ /* Number properties: * (property name, number value, writable, enumerable, configurable) */ -/* ECMA-262 v5, 15.7.3 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) /* ECMA-262 v5, 15.7.3.4 */ NUMBER_VALUE (LIT_MAGIC_STRING_NAN, 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 139931a9..fde4c7ec 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-object.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-object.inc.h @@ -22,10 +22,9 @@ /* Number properties: * (property name, number value, writable, enumerable, configurable) */ -/* ECMA-262 v5, 15.2.3 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) /* Object properties: * (property name, object pointer getter) */ 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 e4190984..555caf64 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 @@ -24,10 +24,6 @@ OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR, ECMA_BUILTIN_ID_PROMISE, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) -NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, - 1, - ECMA_PROPERTY_FLAG_WRITABLE) - #if ENABLED (JERRY_ES2015) /* ECMA-262 v6, 25.4.5.4 */ STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-promise.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-promise.inc.h index 9eebf799..117e50bf 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-promise.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-promise.inc.h @@ -26,7 +26,7 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_CONFIGURABLE) /* Object properties: * (property name, object pointer getter) */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-rangeerror.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-rangeerror.inc.h index b1da135d..f29b8250 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-rangeerror.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-rangeerror.inc.h @@ -24,10 +24,9 @@ /* Number properties: * (property name, number value, writable, enumerable, configurable) */ -/* ECMA-262 v5, 15.11.3 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) /* Object properties: * (property name, object pointer getter) */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-referenceerror.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-referenceerror.inc.h index 077a93d3..ff0638f3 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-referenceerror.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-referenceerror.inc.h @@ -24,10 +24,9 @@ /* Number properties: * (property name, number value, writable, enumerable, configurable) */ -/* ECMA-262 v5, 15.11.3 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) /* Object properties: * (property name, object pointer getter) */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.inc.h index 2001f1c1..bbc0be6c 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.inc.h @@ -21,10 +21,9 @@ #if ENABLED (JERRY_BUILTIN_REGEXP) -/* ECMA-262 v5, 15.10.5 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 2, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) /* ECMA-262 v5, 15.10.5.1 */ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-set.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-set.inc.h index 227bb344..dc63bd69 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-set.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-set.inc.h @@ -27,7 +27,7 @@ /* ECMA-262 v6, 23.2.2 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 0, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_CONFIGURABLE) /* ECMA-262 v6, 23.1 */ STRING_VALUE (LIT_MAGIC_STRING_NAME, diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-string.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-string.inc.h index 3f5d5469..d3e8d88b 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-string.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-string.inc.h @@ -24,10 +24,9 @@ /* Number properties: * (property name, number value, writable, enumerable, configurable) */ -/* ECMA-262 v5, 15.5.3 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) /* Object properties: * (property name, object pointer getter) */ 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 9fe804a6..a3a5b4e6 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 @@ -28,10 +28,6 @@ OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR, ECMA_BUILTIN_ID_SYMBOL, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) -NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, - 0, - ECMA_PROPERTY_FLAG_WRITABLE) - ROUTINE (LIT_MAGIC_STRING_TO_STRING_UL, ecma_builtin_symbol_prototype_object_to_string, 0, 0) ROUTINE (LIT_MAGIC_STRING_VALUE_OF_UL, ecma_builtin_symbol_prototype_object_value_of, 0, 0) ROUTINE_CONFIGURABLE_ONLY (LIT_GLOBAL_SYMBOL_TO_PRIMITIVE, 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 24736b53..294907f2 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.inc.h @@ -27,7 +27,7 @@ /* ECMA-262 v6, 19.4.2 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 0, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_CONFIGURABLE) /* Object properties: * (property name, object pointer getter) */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-syntaxerror.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-syntaxerror.inc.h index 3585aea9..848b1bcd 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-syntaxerror.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-syntaxerror.inc.h @@ -24,10 +24,9 @@ /* Number properties: * (property name, number value, writable, enumerable, configurable) */ -/* ECMA-262 v5, 15.11.3 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) /* Object properties: * (property name, object pointer getter) */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-typeerror.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-typeerror.inc.h index 587c4e76..5c5b42a2 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-typeerror.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-typeerror.inc.h @@ -24,10 +24,9 @@ /* Number properties: * (property name, number value, writable, enumerable, configurable) */ -/* ECMA-262 v5, 15.11.3 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) /* Object properties: * (property name, object pointer getter) */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-urierror.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-urierror.inc.h index c0d555be..84845b6d 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-urierror.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-urierror.inc.h @@ -24,10 +24,9 @@ /* Number properties: * (property name, number value, writable, enumerable, configurable) */ -/* ECMA-262 v5, 15.11.3 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) /* Object properties: * (property name, object pointer getter) */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-weakmap.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-weakmap.inc.h index 5abc2e36..a27be6bc 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-weakmap.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-weakmap.inc.h @@ -27,7 +27,7 @@ /* ECMA-262 v6, 23.3.2 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 0, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_CONFIGURABLE) /* ECMA-262 v6, 23.1 */ STRING_VALUE (LIT_MAGIC_STRING_NAME, diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-weakset.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-weakset.inc.h index a4f1be66..6fc3a749 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-weakset.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-weakset.inc.h @@ -27,7 +27,7 @@ /* ECMA-262 v6, 23.4.2 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 0, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_CONFIGURABLE) /* ECMA-262 v6, 23.4 */ STRING_VALUE (LIT_MAGIC_STRING_NAME, diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray-template.inc.h b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray-template.inc.h index f1ba7406..f4e16127 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray-template.inc.h +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray-template.inc.h @@ -32,7 +32,7 @@ /* ES2015 22.2.5 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 3, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_CONFIGURABLE) /* ES2015 22.2.5.1 */ NUMBER_VALUE (LIT_MAGIC_STRING_BYTES_PER_ELEMENT_U, @@ -40,11 +40,6 @@ NUMBER_VALUE (LIT_MAGIC_STRING_BYTES_PER_ELEMENT_U, ECMA_PROPERTY_FIXED) /* ES2015 22.2.5 */ -NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, - 3, - ECMA_PROPERTY_FIXED) - -/* ES2015 22.2.5 */ STRING_VALUE (LIT_MAGIC_STRING_NAME, TYPEDARRAY_MAGIC_STRING_ID, ECMA_PROPERTY_FIXED) diff --git a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray.inc.h b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray.inc.h index 6a05ba53..e46a1852 100644 --- a/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray.inc.h +++ b/jerry-core/ecma/builtin-objects/typedarray/ecma-builtin-typedarray.inc.h @@ -24,7 +24,7 @@ /* ES2015 22.2.2 */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 3, - ECMA_PROPERTY_FIXED) + ECMA_PROPERTY_FLAG_CONFIGURABLE) /* ES2015 22.2.2 */ STRING_VALUE (LIT_MAGIC_STRING_NAME, diff --git a/tests/jerry-test-suite/es2015/25/25.04/25.04.05/25.04.05-001.js b/tests/jerry-test-suite/es2015/25/25.04/25.04.05/25.04.05-001.js index 0b3218aa..b5f194be 100644 --- a/tests/jerry-test-suite/es2015/25/25.04/25.04.05/25.04.05-001.js +++ b/tests/jerry-test-suite/es2015/25/25.04/25.04.05/25.04.05-001.js @@ -13,4 +13,4 @@ * limitations under the License. */ -assert (Promise.prototype.length === 1); +assert (Promise.length === 1); diff --git a/tests/jerry-test-suite/es51-profile-list b/tests/jerry-test-suite/es51-profile-list index 42d0ceda..353ea4a1 100644 --- a/tests/jerry-test-suite/es51-profile-list +++ b/tests/jerry-test-suite/es51-profile-list @@ -1110,7 +1110,6 @@ ./15/15.03/15.03.03/15.03.03.01/15.03.03.01-002.js ./15/15.03/15.03.03/15.03.03.01/15.03.03.01-003.js ./15/15.03/15.03.03/15.03.03.01/15.03.03.01-004.js -./15/15.03/15.03.03/15.03.03.02/15.03.03.02-001.js ./15/15.03/15.03.04/15.03.04.02/15.03.04.02-001.js ./15/15.03/15.03.04/15.03.04.02/15.03.04.02-002.js ./15/15.03/15.03.04/15.03.04.02/15.03.04.02-003.js diff --git a/tests/jerry/es2015/length-property.js b/tests/jerry/es2015/length-property.js new file mode 100644 index 00000000..9625aafa --- /dev/null +++ b/tests/jerry/es2015/length-property.js @@ -0,0 +1,102 @@ +/* Copyright JS Foundation and other contributors, http://js.foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +var builtin_objects = [ + Array, + ArrayBuffer, + Boolean, + DataView, + Date, + Error, + EvalError, + Function, + Map, + Number, + Object, + Promise, + RangeError, + ReferenceError, + RegExp, + Set, + String, + Symbol, + SyntaxError, + TypeError, + URIError, + WeakMap, + WeakSet, +]; + +var builtin_prototypes = [Function.prototype] + +var builtin_typedArrays = [ + Float32Array, + Float64Array, + Int16Array, + Int32Array, + Int8Array, + Uint16Array, + Uint32Array, + Uint8Array, + Uint8ClampedArray, +]; + + +(function () { + /* each length property is configurable */ + var desc; + + for (obj of builtin_objects) { + desc = Object.getOwnPropertyDescriptor(obj, 'length'); + assert(desc.writable === false); + assert(desc.enumerable === false); + assert(desc.configurable === true); + } + + for (proto of builtin_prototypes) { + desc = Object.getOwnPropertyDescriptor(proto, 'length'); + assert(desc.writable === false); + assert(desc.enumerable === false); + assert(desc.configurable === true); + } + + for (ta of builtin_typedArrays) { + desc = Object.getOwnPropertyDescriptor(ta, 'length'); + assert(desc.writable === false); + assert(desc.enumerable === false); + assert(desc.configurable === true); + } +})(); + +(function () { + /* each length property can be deleted */ + for (obj of builtin_objects) { + assert(obj.hasOwnProperty('length') === true); + assert(delete obj.length); + assert(obj.hasOwnProperty('length') === false); + } + + for (proto of builtin_prototypes) { + assert(proto.hasOwnProperty('length') === true); + assert(delete proto.length); + assert(proto.hasOwnProperty('length') === false); + } + + for (ta of builtin_typedArrays) { + assert(ta.hasOwnProperty('length') === true); + assert(delete ta.length); + assert(ta.hasOwnProperty('length') === false); + } +})(); diff --git a/tests/jerry-test-suite/15/15.03/15.03.03/15.03.03.02/15.03.03.02-001.js b/tests/jerry/es5.1/func-length.js index 16056111..b8df0170 100644 --- a/tests/jerry-test-suite/15/15.03/15.03.03/15.03.03.02/15.03.03.02-001.js +++ b/tests/jerry/es5.1/func-length.js @@ -16,4 +16,4 @@ var desc = Object.getOwnPropertyDescriptor(Function, "length"); assert(desc.value === 1 && desc.writable === false && desc.enumerable === false && - desc.configurable === false);
\ No newline at end of file + desc.configurable === false); |