1/* Copyright JS Foundation and other contributors, http://js.foundation
2 *
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16/*
17 * Global built-in description
18 */
19
20#include "ecma-builtin-helpers-macro-defines.inc.h"
21
22/* Simple value properties:
23 * (property name, simple value, writable, enumerable, configurable) */
24
25/* ECMA-262 v5, 15.1.1.3 */
26SIMPLE_VALUE (LIT_MAGIC_STRING_UNDEFINED,
27              ECMA_VALUE_UNDEFINED,
28              ECMA_PROPERTY_FIXED)
29
30/* Number properties:
31 *  (property name, number value, writable, enumerable, configurable) */
32
33/* ECMA-262 v5, 15.1.1.1 */
34NUMBER_VALUE (LIT_MAGIC_STRING_NAN,
35              ECMA_BUILTIN_NUMBER_NAN,
36              ECMA_PROPERTY_FIXED)
37
38/* ECMA-262 v5, 15.1.1.2 */
39NUMBER_VALUE (LIT_MAGIC_STRING_INFINITY_UL,
40              ECMA_BUILTIN_NUMBER_POSITIVE_INFINITY,
41              ECMA_PROPERTY_FIXED)
42
43/* Object properties:
44 *  (property name, object pointer getter) */
45
46/* ECMA-262 v5, 15.1.4.1 */
47OBJECT_VALUE (LIT_MAGIC_STRING_OBJECT_UL,
48              ECMA_BUILTIN_ID_OBJECT,
49              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
50
51/* ECMA-262 v5, 15.1.4.2 */
52OBJECT_VALUE (LIT_MAGIC_STRING_FUNCTION_UL,
53              ECMA_BUILTIN_ID_FUNCTION,
54              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
55
56/* ECMA-262 v5, 15.1.4.3 */
57#if ENABLED (JERRY_BUILTIN_ARRAY)
58OBJECT_VALUE (LIT_MAGIC_STRING_ARRAY_UL,
59              ECMA_BUILTIN_ID_ARRAY,
60              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
61#endif /* ENABLED (JERRY_BUILTIN_ARRAY) */
62
63#if ENABLED (JERRY_BUILTIN_STRING)
64/* ECMA-262 v5, 15.1.4.4 */
65OBJECT_VALUE (LIT_MAGIC_STRING_STRING_UL,
66              ECMA_BUILTIN_ID_STRING,
67              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
68#endif /* ENABLED (JERRY_BUILTIN_STRING) */
69
70#if ENABLED (JERRY_BUILTIN_BOOLEAN)
71/* ECMA-262 v5, 15.1.4.5 */
72OBJECT_VALUE (LIT_MAGIC_STRING_BOOLEAN_UL,
73              ECMA_BUILTIN_ID_BOOLEAN,
74              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
75#endif /* ENABLED (JERRY_BUILTIN_BOOLEAN) */
76
77#if ENABLED (JERRY_BUILTIN_NUMBER)
78/* ECMA-262 v5, 15.1.4.6 */
79OBJECT_VALUE (LIT_MAGIC_STRING_NUMBER_UL,
80              ECMA_BUILTIN_ID_NUMBER,
81              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
82#endif /* ENABLED (JERRY_BUILTIN_NUMBER) */
83
84#if ENABLED (JERRY_BUILTIN_DATE)
85/* ECMA-262 v5, 15.1.4.7 */
86OBJECT_VALUE (LIT_MAGIC_STRING_DATE_UL,
87              ECMA_BUILTIN_ID_DATE,
88              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
89#endif /* ENABLED (JERRY_BUILTIN_DATE) */
90
91#if ENABLED (JERRY_BUILTIN_REGEXP)
92/* ECMA-262 v5, 15.1.4.8 */
93OBJECT_VALUE (LIT_MAGIC_STRING_REGEXP_UL,
94              ECMA_BUILTIN_ID_REGEXP,
95              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
96#endif /* ENABLED (JERRY_BUILTIN_REGEXP) */
97
98/* ECMA-262 v5, 15.1.4.9 */
99OBJECT_VALUE (LIT_MAGIC_STRING_ERROR_UL,
100              ECMA_BUILTIN_ID_ERROR,
101              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
102
103#if ENABLED (JERRY_BUILTIN_ERRORS)
104
105/* ECMA-262 v5, 15.1.4.10 */
106OBJECT_VALUE (LIT_MAGIC_STRING_EVAL_ERROR_UL,
107              ECMA_BUILTIN_ID_EVAL_ERROR,
108              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
109
110/* ECMA-262 v5, 15.1.4.11 */
111OBJECT_VALUE (LIT_MAGIC_STRING_RANGE_ERROR_UL,
112              ECMA_BUILTIN_ID_RANGE_ERROR,
113              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
114
115/* ECMA-262 v5, 15.1.4.12 */
116OBJECT_VALUE (LIT_MAGIC_STRING_REFERENCE_ERROR_UL,
117              ECMA_BUILTIN_ID_REFERENCE_ERROR,
118              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
119
120/* ECMA-262 v5, 15.1.4.13 */
121OBJECT_VALUE (LIT_MAGIC_STRING_SYNTAX_ERROR_UL,
122              ECMA_BUILTIN_ID_SYNTAX_ERROR,
123              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
124
125/* ECMA-262 v5, 15.1.4.14 */
126OBJECT_VALUE (LIT_MAGIC_STRING_TYPE_ERROR_UL,
127              ECMA_BUILTIN_ID_TYPE_ERROR,
128              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
129
130/* ECMA-262 v5, 15.1.4.15 */
131OBJECT_VALUE (LIT_MAGIC_STRING_URI_ERROR_UL,
132              ECMA_BUILTIN_ID_URI_ERROR,
133              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
134#endif /* ENABLED (JERRY_BUILTIN_ERRORS) */
135
136#if ENABLED (JERRY_BUILTIN_MATH)
137/* ECMA-262 v5, 15.1.5.1 */
138OBJECT_VALUE (LIT_MAGIC_STRING_MATH_UL,
139              ECMA_BUILTIN_ID_MATH,
140              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
141#endif /* ENABLED (JERRY_BUILTIN_MATH) */
142#if ENABLED (JERRY_ES2015_BUILTIN_REFLECT)
143/* ECMA-262 v6, 26.1 */
144OBJECT_VALUE (LIT_MAGIC_STRING_REFLECT_UL,
145              ECMA_BUILTIN_ID_REFLECT,
146              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
147#endif /* ENABLED (JERRY_ES2015_BUILTIN_REFLECT) */
148
149#if ENABLED (JERRY_BUILTIN_JSON)
150/* ECMA-262 v5, 15.1.5.2 */
151OBJECT_VALUE (LIT_MAGIC_STRING_JSON_U,
152              ECMA_BUILTIN_ID_JSON,
153              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
154#endif /* ENABLED (JERRY_BUILTIN_JSON) */
155
156#if ENABLED (JERRY_ES2015_BUILTIN_TYPEDARRAY)
157OBJECT_VALUE (LIT_MAGIC_STRING_ARRAY_BUFFER_UL,
158              ECMA_BUILTIN_ID_ARRAYBUFFER,
159              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
160
161OBJECT_VALUE (LIT_MAGIC_STRING_INT8_ARRAY_UL,
162              ECMA_BUILTIN_ID_INT8ARRAY,
163              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
164
165OBJECT_VALUE (LIT_MAGIC_STRING_UINT8_ARRAY_UL,
166              ECMA_BUILTIN_ID_UINT8ARRAY,
167              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
168
169OBJECT_VALUE (LIT_MAGIC_STRING_INT16_ARRAY_UL,
170              ECMA_BUILTIN_ID_INT16ARRAY,
171              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
172
173OBJECT_VALUE (LIT_MAGIC_STRING_UINT16_ARRAY_UL,
174              ECMA_BUILTIN_ID_UINT16ARRAY,
175              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
176
177OBJECT_VALUE (LIT_MAGIC_STRING_INT32_ARRAY_UL,
178              ECMA_BUILTIN_ID_INT32ARRAY,
179              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
180
181OBJECT_VALUE (LIT_MAGIC_STRING_UINT32_ARRAY_UL,
182              ECMA_BUILTIN_ID_UINT32ARRAY,
183              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
184
185OBJECT_VALUE (LIT_MAGIC_STRING_FLOAT32_ARRAY_UL,
186              ECMA_BUILTIN_ID_FLOAT32ARRAY,
187              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
188
189#if ENABLED (JERRY_NUMBER_TYPE_FLOAT64)
190OBJECT_VALUE (LIT_MAGIC_STRING_FLOAT64_ARRAY_UL,
191              ECMA_BUILTIN_ID_FLOAT64ARRAY,
192              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
193#endif /* ENABLED (JERRY_NUMBER_TYPE_FLOAT64) */
194
195OBJECT_VALUE (LIT_MAGIC_STRING_UINT8_CLAMPED_ARRAY_UL,
196              ECMA_BUILTIN_ID_UINT8CLAMPEDARRAY,
197              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
198
199#endif /* ENABLED (JERRY_ES2015_BUILTIN_TYPEDARRAY) */
200
201#if ENABLED (JERRY_ES2015_BUILTIN_PROMISE)
202OBJECT_VALUE (LIT_MAGIC_STRING_PROMISE_UL,
203              ECMA_BUILTIN_ID_PROMISE,
204              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
205#endif /* ENABLED (JERRY_ES2015_BUILTIN_PROMISE) */
206
207#if ENABLED (JERRY_ES2015_BUILTIN_MAP)
208/* ECMA-262 v6, 23.1.1.1 */
209OBJECT_VALUE (LIT_MAGIC_STRING_MAP_UL,
210              ECMA_BUILTIN_ID_MAP,
211              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
212#endif /* ENABLED (JERRY_ES2015_BUILTIN_MAP) */
213
214#if ENABLED (JERRY_ES2015_BUILTIN_SET)
215/* ECMA-262 v6, 23.1.1.1 */
216OBJECT_VALUE (LIT_MAGIC_STRING_SET_UL,
217              ECMA_BUILTIN_ID_SET,
218              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
219#endif /* ENABLED (JERRY_ES2015_BUILTIN_SET) */
220
221#if ENABLED (JERRY_ES2015_BUILTIN_WEAKMAP)
222/* ECMA-262 v6, 23.1.1.1 */
223OBJECT_VALUE (LIT_MAGIC_STRING_WEAKMAP_UL,
224              ECMA_BUILTIN_ID_WEAKMAP,
225              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
226#endif /* ENABLED (JERRY_ES2015_BUILTIN_SET) */
227
228#if ENABLED (JERRY_ES2015_BUILTIN_WEAKSET)
229/* ECMA-262 v6, 23.1.1.1 */
230OBJECT_VALUE (LIT_MAGIC_STRING_WEAKSET_UL,
231              ECMA_BUILTIN_ID_WEAKSET,
232              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
233#endif /* ENABLED (JERRY_ES2015_BUILTIN_SET) */
234
235#if ENABLED (JERRY_ES2015)
236/* ECMA-262 v6, 19.4.1.1 */
237OBJECT_VALUE (LIT_MAGIC_STRING_SYMBOL_UL,
238              ECMA_BUILTIN_ID_SYMBOL,
239              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
240#endif /* ENABLED (JERRY_ES2015) */
241
242#if ENABLED (JERRY_ES2015_BUILTIN_DATAVIEW)
243/* ECMA-262 v6, 23.1.1.1 */
244OBJECT_VALUE (LIT_MAGIC_STRING_DATAVIEW_UL,
245              ECMA_BUILTIN_ID_DATAVIEW,
246              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
247#endif /* ENABLED (JERRY_ES2015_BUILTIN_DATAVIEW */
248
249#if ENABLED (JERRY_ES2015_BUILTIN_PROXY)
250/* ECMA-262 v6, 26.2.1 */
251OBJECT_VALUE (LIT_MAGIC_STRING_PROXY_UL,
252              ECMA_BUILTIN_ID_PROXY,
253              ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
254#endif /* ENABLED (JERRY_ES2015_BUILTIN_PROXY) */
255
256/* Routine properties:
257 *  (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */
258
259ROUTINE (LIT_MAGIC_STRING_EVAL, ECMA_GLOBAL_EVAL, 1, 1)
260ROUTINE (LIT_MAGIC_STRING_IS_NAN, ECMA_GLOBAL_IS_NAN, 1, 1)
261ROUTINE (LIT_MAGIC_STRING_IS_FINITE, ECMA_GLOBAL_IS_FINITE, 1, 1)
262ROUTINE (LIT_MAGIC_STRING_DECODE_URI, ECMA_GLOBAL_DECODE_URI, 1, 1)
263ROUTINE (LIT_MAGIC_STRING_DECODE_URI_COMPONENT, ECMA_GLOBAL_DECODE_URI_COMPONENT, 1, 1)
264ROUTINE (LIT_MAGIC_STRING_ENCODE_URI, ECMA_GLOBAL_ENCODE_URI, 1, 1)
265ROUTINE (LIT_MAGIC_STRING_ENCODE_URI_COMPONENT, ECMA_GLOBAL_ENCODE_URI_COMPONENT, 1, 1)
266#if ENABLED (JERRY_ES2015)
267INTRINSIC_PROPERTY (LIT_MAGIC_STRING_PARSE_FLOAT, LIT_MAGIC_STRING_PARSE_FLOAT, ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
268INTRINSIC_PROPERTY (LIT_MAGIC_STRING_PARSE_INT, LIT_MAGIC_STRING_PARSE_INT, ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
269
270#else /* !ENABLED (JERRY_ES2015) */
271ROUTINE (LIT_MAGIC_STRING_PARSE_FLOAT, ECMA_GLOBAL_PARSE_FLOAT, 1, 1)
272ROUTINE (LIT_MAGIC_STRING_PARSE_INT, ECMA_GLOBAL_PARSE_INT, 2, 2)
273#endif /* ENABLED (JERRY_ES2015) */
274#if ENABLED (JERRY_BUILTIN_ANNEXB)
275ROUTINE (LIT_MAGIC_STRING_ESCAPE, ECMA_GLOBAL_ESCAPE, 1, 1)
276ROUTINE (LIT_MAGIC_STRING_UNESCAPE, ECMA_GLOBAL_UNESCAPE, 1, 1)
277#endif /* ENABLED (JERRY_BUILTIN_ANNEXB) */
278
279#include "ecma-builtin-helpers-macro-undefs.inc.h"
280