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