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/* Description of built-in objects
17 in format (ECMA_BUILTIN_ID_id, object_type, prototype_id, is_extensible, is_static, underscored_id) */
18
19/* The Object.prototype object (15.2.4) */
20BUILTIN (ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
21 ECMA_OBJECT_TYPE_GENERAL,
22 ECMA_BUILTIN_ID__COUNT /* no prototype */,
23 true,
24 object_prototype)
25
26/* The Object object (15.2.1) */
27BUILTIN_ROUTINE (ECMA_BUILTIN_ID_OBJECT,
28 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
29 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
30 true,
31 object)
32
33#if ENABLED (JERRY_BUILTIN_ARRAY)
34/* The Array.prototype object (15.4.4) */
35BUILTIN (ECMA_BUILTIN_ID_ARRAY_PROTOTYPE,
36 ECMA_OBJECT_TYPE_ARRAY,
37 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
38 true,
39 array_prototype)
40
41/* The Array object (15.4.1) */
42BUILTIN_ROUTINE (ECMA_BUILTIN_ID_ARRAY,
43 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
44 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
45 true,
46 array)
47#endif /* ENABLED (JERRY_BUILTIN_ARRAY) */
48
49#if ENABLED (JERRY_ESNEXT)
50# if ENABLED (JERRY_BUILTIN_DATE)
51/* The Date.prototype object (20.3.4) */
52BUILTIN (ECMA_BUILTIN_ID_DATE_PROTOTYPE,
53 ECMA_OBJECT_TYPE_GENERAL,
54 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
55 true,
56 date_prototype)
57# endif /* ENABLED (JERRY_BUILTIN_DATE) */
58
59# if ENABLED (JERRY_BUILTIN_REGEXP)
60/* The RegExp.prototype object (21.2.5) */
61BUILTIN (ECMA_BUILTIN_ID_REGEXP_PROTOTYPE,
62 ECMA_OBJECT_TYPE_GENERAL,
63 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
64 true,
65 regexp_prototype)
66# endif /* ENABLED (JERRY_BUILTIN_REGEXP) */
67#else /* !ENABLED (JERRY_ESNEXT) */
68# if ENABLED (JERRY_BUILTIN_DATE)
69/* The Date.prototype object (15.9.4) */
70BUILTIN (ECMA_BUILTIN_ID_DATE_PROTOTYPE,
71 ECMA_OBJECT_TYPE_CLASS,
72 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
73 true,
74 date_prototype)
75# endif /* ENABLED (JERRY_BUILTIN_DATE) */
76
77# if ENABLED (JERRY_BUILTIN_REGEXP)
78/* The RegExp.prototype object (15.10.6) */
79BUILTIN (ECMA_BUILTIN_ID_REGEXP_PROTOTYPE,
80 ECMA_OBJECT_TYPE_CLASS,
81 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
82 true,
83 regexp_prototype)
84# endif /* ENABLED (JERRY_BUILTIN_REGEXP) */
85#endif /* !ENABLED (JERRY_ESNEXT) */
86
87#if ENABLED (JERRY_BUILTIN_STRING)
88/* The String.prototype object (15.5.4) */
89BUILTIN (ECMA_BUILTIN_ID_STRING_PROTOTYPE,
90 ECMA_OBJECT_TYPE_CLASS,
91 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
92 true,
93 string_prototype)
94
95/* The String object (15.5.1) */
96BUILTIN_ROUTINE (ECMA_BUILTIN_ID_STRING,
97 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
98 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
99 true,
100 string)
101#endif /* ENABLED (JERRY_BUILTIN_STRING) */
102
103#if ENABLED (JERRY_BUILTIN_BOOLEAN)
104/* The Boolean.prototype object (15.6.4) */
105BUILTIN (ECMA_BUILTIN_ID_BOOLEAN_PROTOTYPE,
106 ECMA_OBJECT_TYPE_CLASS,
107 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
108 true,
109 boolean_prototype)
110
111/* The Boolean object (15.6.1) */
112BUILTIN_ROUTINE (ECMA_BUILTIN_ID_BOOLEAN,
113 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
114 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
115 true,
116 boolean)
117#endif /* ENABLED (JERRY_BUILTIN_BOOLEAN) */
118
119#if ENABLED (JERRY_BUILTIN_NUMBER)
120/* The Number.prototype object (15.7.4) */
121BUILTIN (ECMA_BUILTIN_ID_NUMBER_PROTOTYPE,
122 ECMA_OBJECT_TYPE_CLASS,
123 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
124 true,
125 number_prototype)
126
127/* The Number object (15.7.1) */
128BUILTIN_ROUTINE (ECMA_BUILTIN_ID_NUMBER,
129 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
130 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
131 true,
132 number)
133#endif /* ENABLED (JERRY_BUILTIN_NUMBER) */
134
135/* The Function.prototype object (15.3.4) */
136BUILTIN_ROUTINE (ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
137 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
138 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
139 true,
140 function_prototype)
141
142/* The Function object (15.3.1) */
143BUILTIN_ROUTINE (ECMA_BUILTIN_ID_FUNCTION,
144 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
145 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
146 true,
147 function)
148
149#if ENABLED (JERRY_BUILTIN_MATH)
150/* The Math object (15.8) */
151BUILTIN (ECMA_BUILTIN_ID_MATH,
152 ECMA_OBJECT_TYPE_GENERAL,
153 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
154 true,
155 math)
156#endif /* ENABLED (JERRY_BUILTIN_MATH) */
157
158#if ENABLED (JERRY_BUILTIN_REFLECT)
159
160/* The Reflect object (26.1) */
161BUILTIN (ECMA_BUILTIN_ID_REFLECT,
162 ECMA_OBJECT_TYPE_GENERAL,
163 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
164 true,
165 reflect)
166#endif /* ENABLED (JERRY_BUILTIN_REFLECT) */
167
168#if ENABLED (JERRY_BUILTIN_JSON)
169/* The JSON object (15.12) */
170BUILTIN (ECMA_BUILTIN_ID_JSON,
171 ECMA_OBJECT_TYPE_GENERAL,
172 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
173 true,
174 json)
175#endif /* ENABLED (JERRY_BUILTIN_JSON) */
176
177#if ENABLED (JERRY_BUILTIN_DATE)
178/* The Date object (15.9.3) */
179BUILTIN_ROUTINE (ECMA_BUILTIN_ID_DATE,
180 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
181 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
182 true,
183 date)
184#endif /* ENABLED (JERRY_BUILTIN_DATE) */
185
186#if ENABLED (JERRY_BUILTIN_REGEXP)
187/* The RegExp object (15.10) */
188BUILTIN_ROUTINE (ECMA_BUILTIN_ID_REGEXP,
189 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
190 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
191 true,
192 regexp)
193#endif /* ENABLED (JERRY_BUILTIN_REGEXP) */
194
195#if ENABLED (JERRY_ESNEXT)
196#define ECMA_BUILTIN_NATIVE_ERROR_PROTOTYPE_ID ECMA_BUILTIN_ID_ERROR
197#else /* !ENABLED (JERRY_ESNEXT) */
198#define ECMA_BUILTIN_NATIVE_ERROR_PROTOTYPE_ID ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE
199#endif /* ENABLED (JERRY_ESNEXT */
200
201/* The Error object (15.11.1) */
202BUILTIN_ROUTINE (ECMA_BUILTIN_ID_ERROR,
203 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
204 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
205 true,
206 error)
207
208/* The Error.prototype object (15.11.4) */
209BUILTIN (ECMA_BUILTIN_ID_ERROR_PROTOTYPE,
210 ECMA_OBJECT_TYPE_GENERAL,
211 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
212 true,
213 error_prototype)
214
215#if ENABLED (JERRY_BUILTIN_ERRORS)
216/* The EvalError.prototype object (15.11.6.1) */
217BUILTIN (ECMA_BUILTIN_ID_EVAL_ERROR_PROTOTYPE,
218 ECMA_OBJECT_TYPE_GENERAL,
219 ECMA_BUILTIN_ID_ERROR_PROTOTYPE,
220 true,
221 eval_error_prototype)
222
223/* The EvalError object (15.11.6.1) */
224BUILTIN_ROUTINE (ECMA_BUILTIN_ID_EVAL_ERROR,
225 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
226 ECMA_BUILTIN_NATIVE_ERROR_PROTOTYPE_ID,
227 true,
228 eval_error)
229
230/* The RangeError.prototype object (15.11.6.2) */
231BUILTIN (ECMA_BUILTIN_ID_RANGE_ERROR_PROTOTYPE,
232 ECMA_OBJECT_TYPE_GENERAL,
233 ECMA_BUILTIN_ID_ERROR_PROTOTYPE,
234 true,
235 range_error_prototype)
236
237/* The RangeError object (15.11.6.2) */
238BUILTIN_ROUTINE (ECMA_BUILTIN_ID_RANGE_ERROR,
239 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
240 ECMA_BUILTIN_NATIVE_ERROR_PROTOTYPE_ID,
241 true,
242 range_error)
243
244/* The ReferenceError.prototype object (15.11.6.3) */
245BUILTIN (ECMA_BUILTIN_ID_REFERENCE_ERROR_PROTOTYPE,
246 ECMA_OBJECT_TYPE_GENERAL,
247 ECMA_BUILTIN_ID_ERROR_PROTOTYPE,
248 true,
249 reference_error_prototype)
250
251/* The ReferenceError object (15.11.6.3) */
252BUILTIN_ROUTINE (ECMA_BUILTIN_ID_REFERENCE_ERROR,
253 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
254 ECMA_BUILTIN_NATIVE_ERROR_PROTOTYPE_ID,
255 true,
256 reference_error)
257
258/* The SyntaxError.prototype object (15.11.6.4) */
259BUILTIN (ECMA_BUILTIN_ID_SYNTAX_ERROR_PROTOTYPE,
260 ECMA_OBJECT_TYPE_GENERAL,
261 ECMA_BUILTIN_ID_ERROR_PROTOTYPE,
262 true,
263 syntax_error_prototype)
264
265/* The SyntaxError object (15.11.6.4) */
266BUILTIN_ROUTINE (ECMA_BUILTIN_ID_SYNTAX_ERROR,
267 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
268 ECMA_BUILTIN_NATIVE_ERROR_PROTOTYPE_ID,
269 true,
270 syntax_error)
271
272/* The TypeError.prototype object (15.11.6.5) */
273BUILTIN (ECMA_BUILTIN_ID_TYPE_ERROR_PROTOTYPE,
274 ECMA_OBJECT_TYPE_GENERAL,
275 ECMA_BUILTIN_ID_ERROR_PROTOTYPE,
276 true,
277 type_error_prototype)
278
279/* The TypeError object (15.11.6.5) */
280BUILTIN_ROUTINE (ECMA_BUILTIN_ID_TYPE_ERROR,
281 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
282 ECMA_BUILTIN_NATIVE_ERROR_PROTOTYPE_ID,
283 true,
284 type_error)
285
286/* The URIError.prototype object (15.11.6.6) */
287BUILTIN (ECMA_BUILTIN_ID_URI_ERROR_PROTOTYPE,
288 ECMA_OBJECT_TYPE_GENERAL,
289 ECMA_BUILTIN_ID_ERROR_PROTOTYPE,
290 true,
291 uri_error_prototype)
292
293/* The URIError object (15.11.6.6) */
294BUILTIN_ROUTINE (ECMA_BUILTIN_ID_URI_ERROR,
295 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
296 ECMA_BUILTIN_NATIVE_ERROR_PROTOTYPE_ID,
297 true,
298 uri_error)
299#endif /* ENABLED (JERRY_BUILTIN_ERRORS) */
300
301/**< The [[ThrowTypeError]] object (13.2.3) */
302BUILTIN_ROUTINE (ECMA_BUILTIN_ID_TYPE_ERROR_THROWER,
303 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
304 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
305 false,
306 type_error_thrower)
307
308#if ENABLED (JERRY_BUILTIN_TYPEDARRAY)
309
310/* The ArrayBuffer.prototype object (ES2015 24.1.4) */
311BUILTIN (ECMA_BUILTIN_ID_ARRAYBUFFER_PROTOTYPE,
312 ECMA_OBJECT_TYPE_GENERAL,
313 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
314 true,
315 arraybuffer_prototype)
316
317/* The ArrayBuffer object (ES2015 24.1.2) */
318BUILTIN_ROUTINE (ECMA_BUILTIN_ID_ARRAYBUFFER,
319 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
320 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
321 true,
322 arraybuffer)
323
324 /* The %TypedArrayPrototype% object (ES2015 24.2.3) */
325BUILTIN (ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE,
326 ECMA_OBJECT_TYPE_GENERAL,
327 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
328 true,
329 typedarray_prototype)
330
331/* The %TypedArray% intrinsic object (ES2015 22.2.1)
332 Note: The routines must be in this order. */
333BUILTIN_ROUTINE (ECMA_BUILTIN_ID_TYPEDARRAY,
334 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
335 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
336 true,
337 typedarray)
338
339BUILTIN_ROUTINE (ECMA_BUILTIN_ID_INT8ARRAY,
340 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
341 ECMA_BUILTIN_ID_TYPEDARRAY,
342 true,
343 int8array)
344
345BUILTIN_ROUTINE (ECMA_BUILTIN_ID_UINT8ARRAY,
346 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
347 ECMA_BUILTIN_ID_TYPEDARRAY,
348 true,
349 uint8array)
350
351BUILTIN_ROUTINE (ECMA_BUILTIN_ID_UINT8CLAMPEDARRAY,
352 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
353 ECMA_BUILTIN_ID_TYPEDARRAY,
354 true,
355 uint8clampedarray)
356
357BUILTIN_ROUTINE (ECMA_BUILTIN_ID_INT16ARRAY,
358 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
359 ECMA_BUILTIN_ID_TYPEDARRAY,
360 true,
361 int16array)
362
363BUILTIN_ROUTINE (ECMA_BUILTIN_ID_UINT16ARRAY,
364 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
365 ECMA_BUILTIN_ID_TYPEDARRAY,
366 true,
367 uint16array)
368
369BUILTIN_ROUTINE (ECMA_BUILTIN_ID_INT32ARRAY,
370 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
371 ECMA_BUILTIN_ID_TYPEDARRAY,
372 true,
373 int32array)
374
375BUILTIN_ROUTINE (ECMA_BUILTIN_ID_UINT32ARRAY,
376 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
377 ECMA_BUILTIN_ID_TYPEDARRAY,
378 true,
379 uint32array)
380
381BUILTIN_ROUTINE (ECMA_BUILTIN_ID_FLOAT32ARRAY,
382 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
383 ECMA_BUILTIN_ID_TYPEDARRAY,
384 true,
385 float32array)
386
387#if ENABLED (JERRY_NUMBER_TYPE_FLOAT64)
388BUILTIN_ROUTINE (ECMA_BUILTIN_ID_FLOAT64ARRAY,
389 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
390 ECMA_BUILTIN_ID_TYPEDARRAY,
391 true,
392 float64array)
393#endif /* ENABLED (JERRY_NUMBER_TYPE_FLOAT64) */
394
395#if ENABLED (JERRY_BUILTIN_BIGINT)
396BUILTIN_ROUTINE (ECMA_BUILTIN_ID_BIGINT64ARRAY,
397 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
398 ECMA_BUILTIN_ID_TYPEDARRAY,
399 true,
400 bigint64array)
401
402BUILTIN_ROUTINE (ECMA_BUILTIN_ID_BIGUINT64ARRAY,
403 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
404 ECMA_BUILTIN_ID_TYPEDARRAY,
405 true,
406 biguint64array)
407#endif /* ENABLED (JERRY_BUILTIN_BIGINT) */
408
409BUILTIN (ECMA_BUILTIN_ID_INT8ARRAY_PROTOTYPE,
410 ECMA_OBJECT_TYPE_GENERAL,
411 ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE,
412 true,
413 int8array_prototype)
414
415BUILTIN (ECMA_BUILTIN_ID_UINT8ARRAY_PROTOTYPE,
416 ECMA_OBJECT_TYPE_GENERAL,
417 ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE,
418 true,
419 uint8array_prototype)
420
421BUILTIN (ECMA_BUILTIN_ID_UINT8CLAMPEDARRAY_PROTOTYPE,
422 ECMA_OBJECT_TYPE_GENERAL,
423 ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE,
424 true,
425 uint8clampedarray_prototype)
426
427BUILTIN (ECMA_BUILTIN_ID_INT16ARRAY_PROTOTYPE,
428 ECMA_OBJECT_TYPE_GENERAL,
429 ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE,
430 true,
431 int16array_prototype)
432
433BUILTIN (ECMA_BUILTIN_ID_UINT16ARRAY_PROTOTYPE,
434 ECMA_OBJECT_TYPE_GENERAL,
435 ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE,
436 true,
437 uint16array_prototype)
438
439BUILTIN (ECMA_BUILTIN_ID_INT32ARRAY_PROTOTYPE,
440 ECMA_OBJECT_TYPE_GENERAL,
441 ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE,
442 true,
443 int32array_prototype)
444
445BUILTIN (ECMA_BUILTIN_ID_UINT32ARRAY_PROTOTYPE,
446 ECMA_OBJECT_TYPE_GENERAL,
447 ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE,
448 true,
449 uint32array_prototype)
450
451BUILTIN (ECMA_BUILTIN_ID_FLOAT32ARRAY_PROTOTYPE,
452 ECMA_OBJECT_TYPE_GENERAL,
453 ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE,
454 true,
455 float32array_prototype)
456
457#if ENABLED (JERRY_NUMBER_TYPE_FLOAT64)
458BUILTIN (ECMA_BUILTIN_ID_FLOAT64ARRAY_PROTOTYPE,
459 ECMA_OBJECT_TYPE_GENERAL,
460 ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE,
461 true,
462 float64array_prototype)
463#endif /* ENABLED (JERRY_NUMBER_TYPE_FLOAT64) */
464
465#if ENABLED (JERRY_BUILTIN_BIGINT)
466BUILTIN (ECMA_BUILTIN_ID_BIGINT64ARRAY_PROTOTYPE,
467 ECMA_OBJECT_TYPE_GENERAL,
468 ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE,
469 true,
470 bigint64array_prototype)
471
472BUILTIN (ECMA_BUILTIN_ID_BIGUINT64ARRAY_PROTOTYPE,
473 ECMA_OBJECT_TYPE_GENERAL,
474 ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE,
475 true,
476 biguint64array_prototype)
477#endif /* ENABLED (JERRY_BUILTIN_BIGINT) */
478#endif /* ENABLED (JERRY_BUILTIN_TYPEDARRAY) */
479
480#if ENABLED (JERRY_BUILTIN_PROMISE)
481
482BUILTIN (ECMA_BUILTIN_ID_PROMISE_PROTOTYPE,
483 ECMA_OBJECT_TYPE_GENERAL,
484 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
485 true,
486 promise_prototype)
487
488BUILTIN_ROUTINE (ECMA_BUILTIN_ID_PROMISE,
489 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
490 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
491 true,
492 promise)
493
494#endif /* ENABLED (JERRY_BUILTIN_PROMISE) */
495
496#if ENABLED (JERRY_BUILTIN_MAP)
497
498/* The Map prototype object (23.1.3) */
499BUILTIN (ECMA_BUILTIN_ID_MAP_PROTOTYPE,
500 ECMA_OBJECT_TYPE_GENERAL,
501 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
502 true,
503 map_prototype)
504
505/* The Map routine (ECMA-262 v6, 23.1.1.1) */
506BUILTIN_ROUTINE (ECMA_BUILTIN_ID_MAP,
507 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
508 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
509 true,
510 map)
511
512#endif /* ENABLED (JERRY_BUILTIN_MAP) */
513
514#if ENABLED (JERRY_BUILTIN_SET)
515
516/* The Set prototype object (23.1.3) */
517BUILTIN (ECMA_BUILTIN_ID_SET_PROTOTYPE,
518 ECMA_OBJECT_TYPE_GENERAL,
519 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
520 true,
521 set_prototype)
522
523/* The Set routine (ECMA-262 v6, 23.1.1.1) */
524BUILTIN_ROUTINE (ECMA_BUILTIN_ID_SET,
525 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
526 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
527 true,
528 set)
529
530#endif /* ENABLED (JERRY_BUILTIN_SET) */
531
532#if ENABLED (JERRY_BUILTIN_WEAKMAP)
533
534/* The WeakMap prototype object (23.1.3) */
535BUILTIN (ECMA_BUILTIN_ID_WEAKMAP_PROTOTYPE,
536 ECMA_OBJECT_TYPE_GENERAL,
537 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
538 true,
539 weakmap_prototype)
540
541/* The WeakMap routine (ECMA-262 v6, 23.1.1.1) */
542BUILTIN_ROUTINE (ECMA_BUILTIN_ID_WEAKMAP,
543 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
544 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
545 true,
546 weakmap)
547
548#endif /* ENABLED (JERRY_BUILTIN_WEAKMAP) */
549
550#if ENABLED (JERRY_BUILTIN_WEAKSET)
551
552/* The WeakSet prototype object (23.1.3) */
553BUILTIN (ECMA_BUILTIN_ID_WEAKSET_PROTOTYPE,
554 ECMA_OBJECT_TYPE_GENERAL,
555 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
556 true,
557 weakset_prototype)
558
559/* The WeakSet routine (ECMA-262 v6, 23.1.1.1) */
560BUILTIN_ROUTINE (ECMA_BUILTIN_ID_WEAKSET,
561 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
562 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
563 true,
564 weakset)
565
566#endif /* ENABLED (JERRY_BUILTIN_WEAKSET) */
567
568#if ENABLED (JERRY_BUILTIN_PROXY)
569/* The Proxy routine (ECMA-262 v6, 26.2.1) */
570BUILTIN_ROUTINE (ECMA_BUILTIN_ID_PROXY,
571 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
572 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
573 true,
574 proxy)
575#endif /* ENABLED (JERRY_BUILTIN_PROXY) */
576
577#if ENABLED (JERRY_ESNEXT)
578
579/* Intrinsic hidden builtin object */
580BUILTIN (ECMA_BUILTIN_ID_INTRINSIC_OBJECT,
581 ECMA_OBJECT_TYPE_GENERAL,
582 ECMA_BUILTIN_ID__COUNT /* no prototype */,
583 true,
584 intrinsic)
585
586/* The Array.prototype[@@unscopables] object */
587BUILTIN (ECMA_BUILTIN_ID_ARRAY_PROTOTYPE_UNSCOPABLES,
588 ECMA_OBJECT_TYPE_GENERAL,
589 ECMA_BUILTIN_ID__COUNT /* no prototype */,
590 true,
591 array_prototype_unscopables)
592
593/* The Symbol prototype object (ECMA-262 v6, 19.4.2.7) */
594BUILTIN (ECMA_BUILTIN_ID_SYMBOL_PROTOTYPE,
595 ECMA_OBJECT_TYPE_GENERAL,
596 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
597 true,
598 symbol_prototype)
599
600/* The Symbol routine (ECMA-262 v6, 19.4.2.1) */
601BUILTIN_ROUTINE (ECMA_BUILTIN_ID_SYMBOL,
602 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
603 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
604 true,
605 symbol)
606
607/* The %AsyncFunction% object (ECMA-262 v11, 25.7.2) */
608BUILTIN_ROUTINE (ECMA_BUILTIN_ID_ASYNC_FUNCTION,
609 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
610 ECMA_BUILTIN_ID_FUNCTION,
611 true,
612 async_function)
613
614/* The %AsyncFunctionPrototype% object (ECMA-262 v11, 25.7.3) */
615BUILTIN (ECMA_BUILTIN_ID_ASYNC_FUNCTION_PROTOTYPE,
616 ECMA_OBJECT_TYPE_GENERAL,
617 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
618 true,
619 async_function_prototype)
620
621/* The %IteratorPrototype% object (ECMA-262 v6, 25.1.2) */
622BUILTIN (ECMA_BUILTIN_ID_ITERATOR_PROTOTYPE,
623 ECMA_OBJECT_TYPE_GENERAL,
624 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
625 true,
626 iterator_prototype)
627
628/* The %ArrayIteratorPrototype% object (ECMA-262 v6, 22.1.5.2) */
629BUILTIN (ECMA_BUILTIN_ID_ARRAY_ITERATOR_PROTOTYPE,
630 ECMA_OBJECT_TYPE_GENERAL,
631 ECMA_BUILTIN_ID_ITERATOR_PROTOTYPE,
632 true,
633 array_iterator_prototype)
634
635/* The %StringIteratorPrototype% object (ECMA-262 v6, 22.1.5.2) */
636BUILTIN (ECMA_BUILTIN_ID_STRING_ITERATOR_PROTOTYPE,
637 ECMA_OBJECT_TYPE_GENERAL,
638 ECMA_BUILTIN_ID_ITERATOR_PROTOTYPE,
639 true,
640 string_iterator_prototype)
641
642/* The %RegExpStringIteratorPrototype% object (ECMA-262 v11, 21.2.7.1) */
643BUILTIN (ECMA_BUILTIN_ID_REGEXP_STRING_ITERATOR_PROTOTYPE,
644 ECMA_OBJECT_TYPE_GENERAL,
645 ECMA_BUILTIN_ID_ITERATOR_PROTOTYPE,
646 true,
647 regexp_string_iterator_prototype)
648
649/* The %AsyncIteratorPrototype% object (ECMA-262 v10, 25.1.3) */
650BUILTIN (ECMA_BUILTIN_ID_ASYNC_ITERATOR_PROTOTYPE,
651 ECMA_OBJECT_TYPE_GENERAL,
652 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
653 true,
654 async_iterator_prototype)
655
656/* The %(GeneratorFunction)% object */
657BUILTIN_ROUTINE (ECMA_BUILTIN_ID_GENERATOR_FUNCTION,
658 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
659 ECMA_BUILTIN_ID_FUNCTION,
660 true,
661 generator_function)
662
663/* The %(Generator)% object */
664BUILTIN (ECMA_BUILTIN_ID_GENERATOR,
665 ECMA_OBJECT_TYPE_GENERAL,
666 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
667 true,
668 generator)
669
670/* The %(Generator).prototype% object */
671BUILTIN (ECMA_BUILTIN_ID_GENERATOR_PROTOTYPE,
672 ECMA_OBJECT_TYPE_GENERAL,
673 ECMA_BUILTIN_ID_ITERATOR_PROTOTYPE,
674 true,
675 generator_prototype)
676
677/* The %(AsyncGeneratorFunction)% object */
678BUILTIN_ROUTINE (ECMA_BUILTIN_ID_ASYNC_GENERATOR_FUNCTION,
679 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
680 ECMA_BUILTIN_ID_FUNCTION,
681 true,
682 async_generator_function)
683
684/* The %(AsyncGenerator)% object */
685BUILTIN (ECMA_BUILTIN_ID_ASYNC_GENERATOR,
686 ECMA_OBJECT_TYPE_GENERAL,
687 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
688 true,
689 async_generator)
690
691/* The %(AsyncGenerator).prototype% object */
692BUILTIN (ECMA_BUILTIN_ID_ASYNC_GENERATOR_PROTOTYPE,
693 ECMA_OBJECT_TYPE_GENERAL,
694 ECMA_BUILTIN_ID_ASYNC_ITERATOR_PROTOTYPE,
695 true,
696 async_generator_prototype)
697
698#if ENABLED (JERRY_BUILTIN_SET)
699/* The %SetIteratorPrototype% object (ECMA-262 v6, 23.2.5.2) */
700BUILTIN (ECMA_BUILTIN_ID_SET_ITERATOR_PROTOTYPE,
701 ECMA_OBJECT_TYPE_GENERAL,
702 ECMA_BUILTIN_ID_ITERATOR_PROTOTYPE,
703 true,
704 set_iterator_prototype)
705#endif /* ENABLED (JERRY_BUILTIN_SET) */
706
707#if ENABLED (JERRY_BUILTIN_MAP)
708/* The %MapIteratorPrototype% object (ECMA-262 v6, 23.1.5.2) */
709BUILTIN (ECMA_BUILTIN_ID_MAP_ITERATOR_PROTOTYPE,
710 ECMA_OBJECT_TYPE_GENERAL,
711 ECMA_BUILTIN_ID_ITERATOR_PROTOTYPE,
712 true,
713 map_iterator_prototype)
714#endif /* ENABLED (JERRY_BUILTIN_SET) */
715
716#endif /* ENABLED (JERRY_ESNEXT) */
717
718#if ENABLED (JERRY_BUILTIN_BIGINT)
719/* The %BigInt.prototype% object */
720BUILTIN (ECMA_BUILTIN_ID_BIGINT_PROTOTYPE,
721 ECMA_OBJECT_TYPE_GENERAL,
722 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
723 true,
724 bigint_prototype)
725
726/* The %BigInt% object */
727BUILTIN_ROUTINE (ECMA_BUILTIN_ID_BIGINT,
728 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
729 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
730 true,
731 bigint)
732#endif /* ENABLED (JERRY_BUILTIN_BIGINT) */
733
734#if ENABLED (JERRY_BUILTIN_DATAVIEW)
735/* The DataView prototype object (ECMA-262 v6, 24.2.3.1) */
736BUILTIN (ECMA_BUILTIN_ID_DATAVIEW_PROTOTYPE,
737 ECMA_OBJECT_TYPE_GENERAL,
738 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE,
739 true,
740 dataview_prototype)
741
742/* The DataView routine (ECMA-262 v6, 24.2.2.1) */
743BUILTIN_ROUTINE (ECMA_BUILTIN_ID_DATAVIEW,
744 ECMA_OBJECT_TYPE_NATIVE_FUNCTION,
745 ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE,
746 true,
747 dataview)
748#endif /* ENABLED (JERRY_BUILTIN_DATAVIEW */
749
750/* The Global object (15.1) */
751BUILTIN (ECMA_BUILTIN_ID_GLOBAL,
752 ECMA_OBJECT_TYPE_GENERAL,
753 ECMA_BUILTIN_ID_OBJECT_PROTOTYPE, /* Implementation-dependent */
754 true,
755 global)
756
757#undef BUILTIN
758