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) */ |
20 | BUILTIN (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) */ |
27 | BUILTIN_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) */ |
35 | BUILTIN (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) */ |
42 | BUILTIN_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) */ |
52 | BUILTIN (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) */ |
61 | BUILTIN (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) */ |
70 | BUILTIN (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) */ |
79 | BUILTIN (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) */ |
89 | BUILTIN (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) */ |
96 | BUILTIN_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) */ |
105 | BUILTIN (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) */ |
112 | BUILTIN_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) */ |
121 | BUILTIN (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) */ |
128 | BUILTIN_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) */ |
136 | BUILTIN_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) */ |
143 | BUILTIN_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) */ |
151 | BUILTIN (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) */ |
161 | BUILTIN (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) */ |
170 | BUILTIN (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) */ |
179 | BUILTIN_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) */ |
188 | BUILTIN_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) */ |
202 | BUILTIN_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) */ |
209 | BUILTIN (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) */ |
217 | BUILTIN (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) */ |
224 | BUILTIN_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) */ |
231 | BUILTIN (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) */ |
238 | BUILTIN_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) */ |
245 | BUILTIN (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) */ |
252 | BUILTIN_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) */ |
259 | BUILTIN (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) */ |
266 | BUILTIN_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) */ |
273 | BUILTIN (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) */ |
280 | BUILTIN_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) */ |
287 | BUILTIN (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) */ |
294 | BUILTIN_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) */ |
302 | BUILTIN_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) */ |
311 | BUILTIN (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) */ |
318 | BUILTIN_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) */ |
325 | BUILTIN (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. */ |
333 | BUILTIN_ROUTINE (ECMA_BUILTIN_ID_TYPEDARRAY, |
334 | ECMA_OBJECT_TYPE_NATIVE_FUNCTION, |
335 | ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE, |
336 | true, |
337 | typedarray) |
338 | |
339 | BUILTIN_ROUTINE (ECMA_BUILTIN_ID_INT8ARRAY, |
340 | ECMA_OBJECT_TYPE_NATIVE_FUNCTION, |
341 | ECMA_BUILTIN_ID_TYPEDARRAY, |
342 | true, |
343 | int8array) |
344 | |
345 | BUILTIN_ROUTINE (ECMA_BUILTIN_ID_UINT8ARRAY, |
346 | ECMA_OBJECT_TYPE_NATIVE_FUNCTION, |
347 | ECMA_BUILTIN_ID_TYPEDARRAY, |
348 | true, |
349 | uint8array) |
350 | |
351 | BUILTIN_ROUTINE (ECMA_BUILTIN_ID_UINT8CLAMPEDARRAY, |
352 | ECMA_OBJECT_TYPE_NATIVE_FUNCTION, |
353 | ECMA_BUILTIN_ID_TYPEDARRAY, |
354 | true, |
355 | uint8clampedarray) |
356 | |
357 | BUILTIN_ROUTINE (ECMA_BUILTIN_ID_INT16ARRAY, |
358 | ECMA_OBJECT_TYPE_NATIVE_FUNCTION, |
359 | ECMA_BUILTIN_ID_TYPEDARRAY, |
360 | true, |
361 | int16array) |
362 | |
363 | BUILTIN_ROUTINE (ECMA_BUILTIN_ID_UINT16ARRAY, |
364 | ECMA_OBJECT_TYPE_NATIVE_FUNCTION, |
365 | ECMA_BUILTIN_ID_TYPEDARRAY, |
366 | true, |
367 | uint16array) |
368 | |
369 | BUILTIN_ROUTINE (ECMA_BUILTIN_ID_INT32ARRAY, |
370 | ECMA_OBJECT_TYPE_NATIVE_FUNCTION, |
371 | ECMA_BUILTIN_ID_TYPEDARRAY, |
372 | true, |
373 | int32array) |
374 | |
375 | BUILTIN_ROUTINE (ECMA_BUILTIN_ID_UINT32ARRAY, |
376 | ECMA_OBJECT_TYPE_NATIVE_FUNCTION, |
377 | ECMA_BUILTIN_ID_TYPEDARRAY, |
378 | true, |
379 | uint32array) |
380 | |
381 | BUILTIN_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) |
388 | BUILTIN_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) |
396 | BUILTIN_ROUTINE (ECMA_BUILTIN_ID_BIGINT64ARRAY, |
397 | ECMA_OBJECT_TYPE_NATIVE_FUNCTION, |
398 | ECMA_BUILTIN_ID_TYPEDARRAY, |
399 | true, |
400 | bigint64array) |
401 | |
402 | BUILTIN_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 | |
409 | BUILTIN (ECMA_BUILTIN_ID_INT8ARRAY_PROTOTYPE, |
410 | ECMA_OBJECT_TYPE_GENERAL, |
411 | ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE, |
412 | true, |
413 | int8array_prototype) |
414 | |
415 | BUILTIN (ECMA_BUILTIN_ID_UINT8ARRAY_PROTOTYPE, |
416 | ECMA_OBJECT_TYPE_GENERAL, |
417 | ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE, |
418 | true, |
419 | uint8array_prototype) |
420 | |
421 | BUILTIN (ECMA_BUILTIN_ID_UINT8CLAMPEDARRAY_PROTOTYPE, |
422 | ECMA_OBJECT_TYPE_GENERAL, |
423 | ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE, |
424 | true, |
425 | uint8clampedarray_prototype) |
426 | |
427 | BUILTIN (ECMA_BUILTIN_ID_INT16ARRAY_PROTOTYPE, |
428 | ECMA_OBJECT_TYPE_GENERAL, |
429 | ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE, |
430 | true, |
431 | int16array_prototype) |
432 | |
433 | BUILTIN (ECMA_BUILTIN_ID_UINT16ARRAY_PROTOTYPE, |
434 | ECMA_OBJECT_TYPE_GENERAL, |
435 | ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE, |
436 | true, |
437 | uint16array_prototype) |
438 | |
439 | BUILTIN (ECMA_BUILTIN_ID_INT32ARRAY_PROTOTYPE, |
440 | ECMA_OBJECT_TYPE_GENERAL, |
441 | ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE, |
442 | true, |
443 | int32array_prototype) |
444 | |
445 | BUILTIN (ECMA_BUILTIN_ID_UINT32ARRAY_PROTOTYPE, |
446 | ECMA_OBJECT_TYPE_GENERAL, |
447 | ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE, |
448 | true, |
449 | uint32array_prototype) |
450 | |
451 | BUILTIN (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) |
458 | BUILTIN (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) |
466 | BUILTIN (ECMA_BUILTIN_ID_BIGINT64ARRAY_PROTOTYPE, |
467 | ECMA_OBJECT_TYPE_GENERAL, |
468 | ECMA_BUILTIN_ID_TYPEDARRAY_PROTOTYPE, |
469 | true, |
470 | bigint64array_prototype) |
471 | |
472 | BUILTIN (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 | |
482 | BUILTIN (ECMA_BUILTIN_ID_PROMISE_PROTOTYPE, |
483 | ECMA_OBJECT_TYPE_GENERAL, |
484 | ECMA_BUILTIN_ID_OBJECT_PROTOTYPE, |
485 | true, |
486 | promise_prototype) |
487 | |
488 | BUILTIN_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) */ |
499 | BUILTIN (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) */ |
506 | BUILTIN_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) */ |
517 | BUILTIN (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) */ |
524 | BUILTIN_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) */ |
535 | BUILTIN (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) */ |
542 | BUILTIN_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) */ |
553 | BUILTIN (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) */ |
560 | BUILTIN_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) */ |
570 | BUILTIN_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 */ |
580 | BUILTIN (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 */ |
587 | BUILTIN (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) */ |
594 | BUILTIN (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) */ |
601 | BUILTIN_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) */ |
608 | BUILTIN_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) */ |
615 | BUILTIN (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) */ |
622 | BUILTIN (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) */ |
629 | BUILTIN (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) */ |
636 | BUILTIN (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) */ |
643 | BUILTIN (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) */ |
650 | BUILTIN (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 */ |
657 | BUILTIN_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 */ |
664 | BUILTIN (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 */ |
671 | BUILTIN (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 */ |
678 | BUILTIN_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 */ |
685 | BUILTIN (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 */ |
692 | BUILTIN (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) */ |
700 | BUILTIN (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) */ |
709 | BUILTIN (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 */ |
720 | BUILTIN (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 */ |
727 | BUILTIN_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) */ |
736 | BUILTIN (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) */ |
743 | BUILTIN_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) */ |
751 | BUILTIN (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 | |