Skip to content

Commit 378d7f7

Browse files
committed
Improve builtin-property construction.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
1 parent 7818644 commit 378d7f7

38 files changed

+520
-763
lines changed

jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype.inc.h

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@
2323
#endif /* !OBJECT_ID */
2424

2525
#ifndef OBJECT_VALUE
26-
# define OBJECT_VALUE(name, obj_getter, prop_writable, prop_enumerable, prop_configurable)
26+
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
2727
#endif /* !OBJECT_VALUE */
2828

2929
#ifndef NUMBER_VALUE
30-
# define NUMBER_VALUE(name, number_value, prop_writable, prop_enumerable, prop_configurable)
30+
# define NUMBER_VALUE(name, number_value, prop_attributes)
3131
#endif /* !NUMBER_VALUE */
3232

3333
#ifndef ROUTINE
@@ -42,20 +42,16 @@ OBJECT_ID (ECMA_BUILTIN_ID_ARRAY_PROTOTYPE)
4242

4343
// 15.4.4.1
4444
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
45-
ecma_builtin_get (ECMA_BUILTIN_ID_ARRAY),
46-
ECMA_PROPERTY_WRITABLE,
47-
ECMA_PROPERTY_NOT_ENUMERABLE,
48-
ECMA_PROPERTY_CONFIGURABLE)
45+
ECMA_BUILTIN_ID_ARRAY,
46+
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
4947

5048
/* Number properties:
5149
* (property name, object pointer getter) */
5250

5351
// 15.4.4
5452
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
5553
0,
56-
ECMA_PROPERTY_WRITABLE,
57-
ECMA_PROPERTY_NOT_ENUMERABLE,
58-
ECMA_PROPERTY_NOT_CONFIGURABLE)
54+
ECMA_PROPERTY_FLAG_WRITABLE)
5955

6056
/* Routine properties:
6157
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
@@ -86,6 +82,5 @@ ROUTINE (LIT_MAGIC_STRING_REDUCE_RIGHT_UL, ecma_builtin_array_prototype_object_r
8682
#undef NUMBER_VALUE
8783
#undef STRING_VALUE
8884
#undef OBJECT_VALUE
89-
#undef CP_UNIMPLEMENTED_VALUE
9085
#undef ROUTINE
9186

jerry-core/ecma/builtin-objects/ecma-builtin-array.inc.h

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@
2222
#endif /* !OBJECT_ID */
2323

2424
#ifndef OBJECT_VALUE
25-
# define OBJECT_VALUE(name, obj_getter, prop_writable, prop_enumerable, prop_configurable)
25+
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
2626
#endif /* !OBJECT_VALUE */
2727

2828
#ifndef NUMBER_VALUE
29-
# define NUMBER_VALUE(name, number_value, prop_writable, prop_enumerable, prop_configurable)
29+
# define NUMBER_VALUE(name, number_value, prop_attributes)
3030
#endif /* !NUMBER_VALUE */
3131

3232
#ifndef ROUTINE
@@ -41,20 +41,16 @@ OBJECT_ID (ECMA_BUILTIN_ID_ARRAY)
4141

4242
// 15.4.3.1
4343
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
44-
ecma_builtin_get (ECMA_BUILTIN_ID_ARRAY_PROTOTYPE),
45-
ECMA_PROPERTY_NOT_WRITABLE,
46-
ECMA_PROPERTY_NOT_ENUMERABLE,
47-
ECMA_PROPERTY_NOT_CONFIGURABLE)
44+
ECMA_BUILTIN_ID_ARRAY_PROTOTYPE,
45+
ECMA_PROPERTY_FIXED)
4846

4947
/* Number properties:
5048
* (property name, object pointer getter) */
5149

5250
// 15.4.3
5351
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
5452
1,
55-
ECMA_PROPERTY_NOT_WRITABLE,
56-
ECMA_PROPERTY_NOT_ENUMERABLE,
57-
ECMA_PROPERTY_NOT_CONFIGURABLE)
53+
ECMA_PROPERTY_FIXED)
5854

5955
/* Routine properties:
6056
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
@@ -65,6 +61,5 @@ ROUTINE (LIT_MAGIC_STRING_IS_ARRAY_UL, ecma_builtin_array_object_is_array, 1, 1)
6561
#undef NUMBER_VALUE
6662
#undef STRING_VALUE
6763
#undef OBJECT_VALUE
68-
#undef CP_UNIMPLEMENTED_VALUE
6964
#undef ROUTINE
7065

jerry-core/ecma/builtin-objects/ecma-builtin-boolean-prototype.inc.h

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
#endif /* !OBJECT_ID */
2323

2424
#ifndef OBJECT_VALUE
25-
# define OBJECT_VALUE(name, obj_getter, prop_writable, prop_enumerable, prop_configurable)
25+
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
2626
#endif /* !OBJECT_VALUE */
2727

2828
#ifndef ROUTINE
@@ -37,10 +37,8 @@ OBJECT_ID (ECMA_BUILTIN_ID_BOOLEAN_PROTOTYPE)
3737

3838
// 15.6.4.1
3939
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
40-
ecma_builtin_get (ECMA_BUILTIN_ID_BOOLEAN),
41-
ECMA_PROPERTY_WRITABLE,
42-
ECMA_PROPERTY_NOT_ENUMERABLE,
43-
ECMA_PROPERTY_CONFIGURABLE)
40+
ECMA_BUILTIN_ID_BOOLEAN,
41+
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
4442

4543
/* Routine properties:
4644
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
@@ -52,5 +50,4 @@ ROUTINE (LIT_MAGIC_STRING_VALUE_OF_UL, ecma_builtin_boolean_prototype_object_va
5250
#undef NUMBER_VALUE
5351
#undef STRING_VALUE
5452
#undef OBJECT_VALUE
55-
#undef CP_UNIMPLEMENTED_VALUE
5653
#undef ROUTINE

jerry-core/ecma/builtin-objects/ecma-builtin-boolean.inc.h

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@
2222
#endif /* !OBJECT_ID */
2323

2424
#ifndef OBJECT_VALUE
25-
# define OBJECT_VALUE(name, obj_getter, prop_writable, prop_enumerable, prop_configurable)
25+
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
2626
#endif /* !OBJECT_VALUE */
2727

2828
#ifndef NUMBER_VALUE
29-
# define NUMBER_VALUE(name, number_value, prop_writable, prop_enumerable, prop_configurable)
29+
# define NUMBER_VALUE(name, number_value, prop_attributes)
3030
#endif /* !NUMBER_VALUE */
3131

3232
#ifndef ROUTINE
@@ -41,25 +41,20 @@ OBJECT_ID (ECMA_BUILTIN_ID_BOOLEAN)
4141

4242
// 15.6.3.1
4343
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
44-
ecma_builtin_get (ECMA_BUILTIN_ID_BOOLEAN_PROTOTYPE),
45-
ECMA_PROPERTY_NOT_WRITABLE,
46-
ECMA_PROPERTY_NOT_ENUMERABLE,
47-
ECMA_PROPERTY_NOT_CONFIGURABLE)
44+
ECMA_BUILTIN_ID_BOOLEAN_PROTOTYPE,
45+
ECMA_PROPERTY_FIXED)
4846

4947
/* Number properties:
5048
* (property name, object pointer getter) */
5149

5250
// 15.6.3
5351
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
5452
1,
55-
ECMA_PROPERTY_NOT_WRITABLE,
56-
ECMA_PROPERTY_NOT_ENUMERABLE,
57-
ECMA_PROPERTY_NOT_CONFIGURABLE)
53+
ECMA_PROPERTY_FIXED)
5854

5955
#undef OBJECT_ID
6056
#undef SIMPLE_VALUE
6157
#undef NUMBER_VALUE
6258
#undef STRING_VALUE
6359
#undef OBJECT_VALUE
64-
#undef CP_UNIMPLEMENTED_VALUE
6560
#undef ROUTINE

jerry-core/ecma/builtin-objects/ecma-builtin-compact-profile-error.inc.h

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
#endif /* !OBJECT_ID */
2323

2424
#ifndef NUMBER_VALUE
25-
# define NUMBER_VALUE(name, number_value, prop_writable, prop_enumerable, prop_configurable)
25+
# define NUMBER_VALUE(name, number_value, prop_attributes)
2626
#endif /* !NUMBER_VALUE */
2727

2828
/* Object identifier */
@@ -33,14 +33,11 @@ OBJECT_ID (ECMA_BUILTIN_ID_COMPACT_PROFILE_ERROR)
3333

3434
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
3535
0,
36-
ECMA_PROPERTY_NOT_WRITABLE,
37-
ECMA_PROPERTY_NOT_ENUMERABLE,
38-
ECMA_PROPERTY_NOT_CONFIGURABLE)
36+
ECMA_PROPERTY_FIXED)
3937

4038
#undef OBJECT_ID
4139
#undef SIMPLE_VALUE
4240
#undef NUMBER_VALUE
4341
#undef STRING_VALUE
4442
#undef OBJECT_VALUE
45-
#undef CP_UNIMPLEMENTED_VALUE
4643
#undef ROUTINE

jerry-core/ecma/builtin-objects/ecma-builtin-date-prototype.inc.h

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
#endif /* !OBJECT_ID */
2424

2525
#ifndef OBJECT_VALUE
26-
# define OBJECT_VALUE(name, obj_getter, prop_writable, prop_enumerable, prop_configurable)
26+
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
2727
#endif /* !OBJECT_VALUE */
2828

2929
#ifndef ROUTINE
@@ -34,10 +34,8 @@
3434
OBJECT_ID (ECMA_BUILTIN_ID_DATE_PROTOTYPE)
3535

3636
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
37-
ecma_builtin_get (ECMA_BUILTIN_ID_DATE),
38-
ECMA_PROPERTY_WRITABLE,
39-
ECMA_PROPERTY_NOT_ENUMERABLE,
40-
ECMA_PROPERTY_CONFIGURABLE)
37+
ECMA_BUILTIN_ID_DATE,
38+
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
4139

4240
ROUTINE (LIT_MAGIC_STRING_TO_STRING_UL, ecma_builtin_date_prototype_to_string, 0, 0)
4341
ROUTINE (LIT_MAGIC_STRING_TO_DATE_STRING_UL, ecma_builtin_date_prototype_to_date_string, 0, 0)
@@ -96,5 +94,4 @@ ROUTINE (LIT_MAGIC_STRING_TO_GMT_STRING_UL, ecma_builtin_date_prototype_to_utc_s
9694
#undef NUMBER_VALUE
9795
#undef STRING_VALUE
9896
#undef OBJECT_VALUE
99-
#undef CP_UNIMPLEMENTED_VALUE
10097
#undef ROUTINE

jerry-core/ecma/builtin-objects/ecma-builtin-date.inc.h

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@
2323
#endif /* !OBJECT_ID */
2424

2525
#ifndef OBJECT_VALUE
26-
# define OBJECT_VALUE(name, obj_getter, prop_writable, prop_enumerable, prop_configurable)
26+
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
2727
#endif /* !OBJECT_VALUE */
2828

2929
#ifndef NUMBER_VALUE
30-
# define NUMBER_VALUE(name, number_value, prop_writable, prop_enumerable, prop_configurable)
30+
# define NUMBER_VALUE(name, number_value, prop_attributes)
3131
#endif /* !NUMBER_VALUE */
3232

3333
#ifndef ROUTINE
@@ -39,16 +39,12 @@ OBJECT_ID (ECMA_BUILTIN_ID_DATE)
3939

4040
// ECMA-262 v5, 15.9.4.1
4141
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
42-
ecma_builtin_get (ECMA_BUILTIN_ID_DATE_PROTOTYPE),
43-
ECMA_PROPERTY_NOT_WRITABLE,
44-
ECMA_PROPERTY_NOT_ENUMERABLE,
45-
ECMA_PROPERTY_NOT_CONFIGURABLE)
42+
ECMA_BUILTIN_ID_DATE_PROTOTYPE,
43+
ECMA_PROPERTY_FIXED)
4644

4745
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
4846
7,
49-
ECMA_PROPERTY_NOT_WRITABLE,
50-
ECMA_PROPERTY_NOT_ENUMERABLE,
51-
ECMA_PROPERTY_NOT_CONFIGURABLE)
47+
ECMA_PROPERTY_FIXED)
5248

5349
ROUTINE (LIT_MAGIC_STRING_PARSE, ecma_builtin_date_parse, 1, 1)
5450
ROUTINE (LIT_MAGIC_STRING_UTC_U, ecma_builtin_date_utc, NON_FIXED, 7)
@@ -59,5 +55,4 @@ ROUTINE (LIT_MAGIC_STRING_NOW, ecma_builtin_date_now, 0, 0)
5955
#undef NUMBER_VALUE
6056
#undef STRING_VALUE
6157
#undef OBJECT_VALUE
62-
#undef CP_UNIMPLEMENTED_VALUE
6358
#undef ROUTINE

jerry-core/ecma/builtin-objects/ecma-builtin-error-prototype.inc.h

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@
2222
#endif /* !OBJECT_ID */
2323

2424
#ifndef STRING_VALUE
25-
# define STRING_VALUE(name, magic_string_id, prop_writable, prop_enumerable, prop_configurable)
25+
# define STRING_VALUE(name, magic_string_id, prop_attributes)
2626
#endif /* !STRING_VALUE */
2727

2828
#ifndef OBJECT_VALUE
29-
# define OBJECT_VALUE(name, obj_getter, prop_writable, prop_enumerable, prop_configurable)
29+
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
3030
#endif /* !OBJECT_VALUE */
3131

3232
#ifndef ROUTINE
@@ -41,24 +41,18 @@ OBJECT_ID (ECMA_BUILTIN_ID_ERROR_PROTOTYPE)
4141

4242
// 15.11.4.1
4343
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
44-
ecma_builtin_get (ECMA_BUILTIN_ID_ERROR),
45-
ECMA_PROPERTY_WRITABLE,
46-
ECMA_PROPERTY_NOT_ENUMERABLE,
47-
ECMA_PROPERTY_CONFIGURABLE)
44+
ECMA_BUILTIN_ID_ERROR,
45+
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
4846

4947
// 15.11.4.2
5048
STRING_VALUE (LIT_MAGIC_STRING_NAME,
5149
LIT_MAGIC_STRING_ERROR_UL,
52-
ECMA_PROPERTY_WRITABLE,
53-
ECMA_PROPERTY_NOT_ENUMERABLE,
54-
ECMA_PROPERTY_CONFIGURABLE)
50+
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
5551

5652
// 15.11.4.3
5753
STRING_VALUE (LIT_MAGIC_STRING_MESSAGE,
5854
LIT_MAGIC_STRING__EMPTY,
59-
ECMA_PROPERTY_WRITABLE,
60-
ECMA_PROPERTY_NOT_ENUMERABLE,
61-
ECMA_PROPERTY_CONFIGURABLE)
55+
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
6256

6357
/* Routine properties:
6458
* (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
@@ -69,5 +63,4 @@ ROUTINE (LIT_MAGIC_STRING_TO_STRING_UL, ecma_builtin_error_prototype_object_to_s
6963
#undef NUMBER_VALUE
7064
#undef STRING_VALUE
7165
#undef OBJECT_VALUE
72-
#undef CP_UNIMPLEMENTED_VALUE
7366
#undef ROUTINE

jerry-core/ecma/builtin-objects/ecma-builtin-error.inc.h

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,15 @@
2222
#endif /* !OBJECT_ID */
2323

2424
#ifndef NUMBER_VALUE
25-
# define NUMBER_VALUE(name, number_value, prop_writable, prop_enumerable, prop_configurable)
25+
# define NUMBER_VALUE(name, number_value, prop_attributes)
2626
#endif /* !NUMBER_VALUE */
2727

2828
#ifndef STRING_VALUE
29-
# define STRING_VALUE(name, magic_string_id, prop_writable, prop_enumerable, prop_configurable)
29+
# define STRING_VALUE(name, magic_string_id, prop_attributes)
3030
#endif /* !STRING_VALUE */
3131

3232
#ifndef OBJECT_VALUE
33-
# define OBJECT_VALUE(name, obj_getter, prop_writable, prop_enumerable, prop_configurable)
33+
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
3434
#endif /* !OBJECT_VALUE */
3535

3636
/* Object identifier */
@@ -42,24 +42,19 @@ OBJECT_ID (ECMA_BUILTIN_ID_ERROR)
4242
// 15.11.3
4343
NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH,
4444
1,
45-
ECMA_PROPERTY_NOT_WRITABLE,
46-
ECMA_PROPERTY_NOT_ENUMERABLE,
47-
ECMA_PROPERTY_NOT_CONFIGURABLE)
45+
ECMA_PROPERTY_FIXED)
4846

4947
/* Object properties:
5048
* (property name, object pointer getter) */
5149

5250
// 15.7.3.1
5351
OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE,
54-
ecma_builtin_get (ECMA_BUILTIN_ID_ERROR_PROTOTYPE),
55-
ECMA_PROPERTY_NOT_WRITABLE,
56-
ECMA_PROPERTY_NOT_ENUMERABLE,
57-
ECMA_PROPERTY_NOT_CONFIGURABLE)
52+
ECMA_BUILTIN_ID_ERROR_PROTOTYPE,
53+
ECMA_PROPERTY_FIXED)
5854

5955
#undef OBJECT_ID
6056
#undef SIMPLE_VALUE
6157
#undef NUMBER_VALUE
6258
#undef STRING_VALUE
6359
#undef OBJECT_VALUE
64-
#undef CP_UNIMPLEMENTED_VALUE
6560
#undef ROUTINE

jerry-core/ecma/builtin-objects/ecma-builtin-evalerror-prototype.inc.h

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@
2222
#endif /* !OBJECT_ID */
2323

2424
#ifndef STRING_VALUE
25-
# define STRING_VALUE(name, magic_string_id, prop_writable, prop_enumerable, prop_configurable)
25+
# define STRING_VALUE(name, magic_string_id, prop_attributes)
2626
#endif /* !STRING_VALUE */
2727

2828
#ifndef OBJECT_VALUE
29-
# define OBJECT_VALUE(name, obj_getter, prop_writable, prop_enumerable, prop_configurable)
29+
# define OBJECT_VALUE(name, obj_builtin_id, prop_attributes)
3030
#endif /* !OBJECT_VALUE */
3131

3232
/* Object identifier */
@@ -37,29 +37,22 @@ OBJECT_ID (ECMA_BUILTIN_ID_EVAL_ERROR_PROTOTYPE)
3737

3838
// 15.11.7.8
3939
OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR,
40-
ecma_builtin_get (ECMA_BUILTIN_ID_EVAL_ERROR),
41-
ECMA_PROPERTY_WRITABLE,
42-
ECMA_PROPERTY_NOT_ENUMERABLE,
43-
ECMA_PROPERTY_CONFIGURABLE)
40+
ECMA_BUILTIN_ID_EVAL_ERROR,
41+
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
4442

4543
// 15.11.7.9
4644
STRING_VALUE (LIT_MAGIC_STRING_NAME,
4745
LIT_MAGIC_STRING_EVAL_ERROR_UL,
48-
ECMA_PROPERTY_WRITABLE,
49-
ECMA_PROPERTY_NOT_ENUMERABLE,
50-
ECMA_PROPERTY_CONFIGURABLE)
46+
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
5147

5248
// 15.11.7.10
5349
STRING_VALUE (LIT_MAGIC_STRING_MESSAGE,
5450
LIT_MAGIC_STRING__EMPTY,
55-
ECMA_PROPERTY_WRITABLE,
56-
ECMA_PROPERTY_NOT_ENUMERABLE,
57-
ECMA_PROPERTY_CONFIGURABLE)
51+
ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
5852

5953
#undef OBJECT_ID
6054
#undef SIMPLE_VALUE
6155
#undef NUMBER_VALUE
6256
#undef STRING_VALUE
6357
#undef OBJECT_VALUE
64-
#undef CP_UNIMPLEMENTED_VALUE
6558
#undef ROUTINE

0 commit comments

Comments
 (0)