1# Copyright (c) 2023 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14coretypes: 15- managed_class: std.core.Object 16 mirror_class: panda::ets::EtsObject 17 18- managed_class: std.core.void 19 mirror_class: panda::ets::EtsVoid 20 21- managed_class: std.core.String 22 mirror_class: panda::ets::EtsString 23 24- managed_class: std.core.Class 25 mirror_class: panda::ets::EtsClass 26 27- managed_class: std.interop.js.JSValue 28 mirror_class: panda::ets::interop::js::JSValue 29 30 31intrinsics_namespace: panda::ets::interop::js::intrinsics 32 33 34#################### 35# std.js.JSRuntime # 36#################### 37intrinsics: 38 - name: JSRuntimeFinalizationQueueCallback 39 space: ets 40 class_name: std.interop.js.JSRuntime 41 method_name: finalizationQueueCallback 42 static: true 43 signature: 44 ret: std.core.void 45 args: [ std.core.Object ] 46 impl: panda::ets::interop::js::intrinsics::JSRuntimeFinalizationQueueCallbackIntrinsic 47 clear_flags: [ ] 48 49 - name: JSRuntimeNewJSValueDouble 50 space: ets 51 class_name: std.interop.js.JSRuntime 52 method_name: newJSValueDouble 53 static: true 54 signature: 55 ret: std.interop.js.JSValue 56 args: [ f64 ] 57 impl: panda::ets::interop::js::intrinsics::JSRuntimeNewJSValueDoubleIntrinsic 58 clear_flags: [ ] 59 60 - name: JSRuntimeNewJSValueString 61 space: ets 62 class_name: std.interop.js.JSRuntime 63 method_name: newJSValueString 64 static: true 65 signature: 66 ret: std.interop.js.JSValue 67 args: [ std.core.String ] 68 impl: panda::ets::interop::js::intrinsics::JSRuntimeNewJSValueStringIntrinsic 69 clear_flags: [ ] 70 71 - name: JSRuntimeNewJSValueObject 72 space: ets 73 class_name: std.interop.js.JSRuntime 74 method_name: newJSValueObject 75 static: true 76 signature: 77 ret: std.interop.js.JSValue 78 args: [ std.core.Object ] 79 impl: panda::ets::interop::js::intrinsics::JSRuntimeNewJSValueObjectIntrinsic 80 clear_flags: [ ] 81 82 - name: JSRuntimeGetValueDouble 83 space: ets 84 class_name: std.interop.js.JSRuntime 85 method_name: getValueDouble 86 static: true 87 signature: 88 ret: f64 89 args: [ std.interop.js.JSValue ] 90 impl: panda::ets::interop::js::intrinsics::JSRuntimeGetValueDoubleIntrinsic 91 clear_flags: [ ] 92 93 - name: JSRuntimeGetValueBoolean 94 space: ets 95 class_name: std.interop.js.JSRuntime 96 method_name: getValueBoolean 97 static: true 98 signature: 99 ret: u1 100 args: [ std.interop.js.JSValue ] 101 impl: panda::ets::interop::js::intrinsics::JSRuntimeGetValueBooleanIntrinsic 102 clear_flags: [ ] 103 104 - name: JSRuntimeGetValueString 105 space: ets 106 class_name: std.interop.js.JSRuntime 107 method_name: getValueString 108 static: true 109 signature: 110 ret: std.core.String 111 args: [ std.interop.js.JSValue ] 112 impl: panda::ets::interop::js::intrinsics::JSRuntimeGetValueStringIntrinsic 113 clear_flags: [ ] 114 115 - name: JSRuntimeGetValueObject 116 space: ets 117 class_name: std.interop.js.JSRuntime 118 method_name: getValueObject 119 static: true 120 signature: 121 ret: std.core.Object 122 args: [ std.interop.js.JSValue, std.core.Object ] # 2nd argument is ClassClass 123 impl: panda::ets::interop::js::intrinsics::JSRuntimeGetValueObjectIntrinsic 124 clear_flags: [ ] 125 126 - name: JSRuntimeGetPropertyJSValue 127 space: ets 128 class_name: std.interop.js.JSRuntime 129 method_name: getPropertyJSValue 130 static: true 131 signature: 132 ret: std.interop.js.JSValue 133 args: [ std.interop.js.JSValue, std.core.String ] 134 impl: panda::ets::interop::js::intrinsics::JSRuntimeGetPropertyJSValueIntrinsic 135 clear_flags: [ ] 136 137 - name: JSRuntimeGetPropertyDouble 138 space: ets 139 class_name: std.interop.js.JSRuntime 140 method_name: getPropertyDouble 141 static: true 142 signature: 143 ret: f64 144 args: [ std.interop.js.JSValue, std.core.String ] 145 impl: panda::ets::interop::js::intrinsics::JSRuntimeGetPropertyDoubleIntrinsic 146 clear_flags: [ ] 147 148 - name: JSRuntimeGetPropertyString 149 space: ets 150 class_name: std.interop.js.JSRuntime 151 method_name: getPropertyString 152 static: true 153 signature: 154 ret: std.core.String 155 args: [ std.interop.js.JSValue, std.core.String ] 156 impl: panda::ets::interop::js::intrinsics::JSRuntimeGetPropertyStringIntrinsic 157 clear_flags: [ ] 158 159 - name: JSRuntimeSetPropertyJSValue 160 space: ets 161 class_name: std.interop.js.JSRuntime 162 method_name: setPropertyJSValue 163 static: true 164 signature: 165 ret: std.core.void 166 args: [ std.interop.js.JSValue, std.core.String, std.interop.js.JSValue ] 167 impl: panda::ets::interop::js::intrinsics::JSRuntimeSetPropertyJSValueIntrinsic 168 clear_flags: [ ] 169 170 - name: JSRuntimeSetPropertyDouble 171 space: ets 172 class_name: std.interop.js.JSRuntime 173 method_name: setPropertyDouble 174 static: true 175 signature: 176 ret: std.core.void 177 args: [ std.interop.js.JSValue, std.core.String, f64 ] 178 impl: panda::ets::interop::js::intrinsics::JSRuntimeSetPropertyDoubleIntrinsic 179 clear_flags: [ ] 180 181 - name: JSRuntimeSetPropertyString 182 space: ets 183 class_name: std.interop.js.JSRuntime 184 method_name: setPropertyString 185 static: true 186 signature: 187 ret: std.core.void 188 args: [ std.interop.js.JSValue, std.core.String, std.core.String ] 189 impl: panda::ets::interop::js::intrinsics::JSRuntimeSetPropertyStringIntrinsic 190 clear_flags: [ ] 191 192 - name: JSRuntimeGetElementJSValue 193 space: ets 194 class_name: std.interop.js.JSRuntime 195 method_name: getElementJSValue 196 static: true 197 signature: 198 ret: std.interop.js.JSValue 199 args: [ std.interop.js.JSValue, i32 ] 200 impl: panda::ets::interop::js::intrinsics::JSRuntimeGetElementJSValueIntrinsic 201 clear_flags: [ ] 202 203 - name: JSRuntimeGetElementDouble 204 space: ets 205 class_name: std.interop.js.JSRuntime 206 method_name: getElementDouble 207 static: true 208 signature: 209 ret: f64 210 args: [ std.interop.js.JSValue, i32 ] 211 impl: panda::ets::interop::js::intrinsics::JSRuntimeGetElementDoubleIntrinsic 212 clear_flags: [ ] 213 214 - name: JSRuntimeGetUndefined 215 space: ets 216 class_name: std.interop.js.JSRuntime 217 method_name: getUndefined 218 static: true 219 signature: 220 ret: std.interop.js.JSValue 221 args: [ ] 222 impl: panda::ets::interop::js::intrinsics::JSRuntimeGetUndefinedIntrinsic 223 clear_flags: [ ] 224 225 - name: JSRuntimeGetNull 226 space: ets 227 class_name: std.interop.js.JSRuntime 228 method_name: getNull 229 static: true 230 signature: 231 ret: std.interop.js.JSValue 232 args: [ ] 233 impl: panda::ets::interop::js::intrinsics::JSRuntimeGetNullIntrinsic 234 clear_flags: [ ] 235 236 - name: JSRuntimeGetGlobal 237 space: ets 238 class_name: std.interop.js.JSRuntime 239 method_name: getGlobal 240 static: true 241 signature: 242 ret: std.interop.js.JSValue 243 args: [ ] 244 impl: panda::ets::interop::js::intrinsics::JSRuntimeGetGlobalIntrinsic 245 clear_flags: [ ] 246 247 - name: JSRuntimeCreateObject 248 space: ets 249 class_name: std.interop.js.JSRuntime 250 method_name: createObject 251 static: true 252 signature: 253 ret: std.interop.js.JSValue 254 args: [ ] 255 impl: panda::ets::interop::js::intrinsics::JSRuntimeCreateObjectIntrinsic 256 clear_flags: [ ] 257 258 - name: JSRuntimeInstanceOf 259 space: ets 260 class_name: std.interop.js.JSRuntime 261 method_name: instanceOf 262 static: true 263 signature: 264 ret: u1 265 args: [ std.interop.js.JSValue, std.interop.js.JSValue ] 266 impl: panda::ets::interop::js::intrinsics::JSRuntimeInstanceOfIntrinsic 267 clear_flags: [ ] 268 269 - name: JSRuntimeInitJSCallClass 270 space: ets 271 class_name: std.interop.js.JSRuntime 272 method_name: __initJSCallClass 273 static: true 274 signature: 275 ret: u1 276 args: [ std.core.String ] 277 impl: panda::ets::interop::js::intrinsics::JSRuntimeInitJSCallClassIntrinsic 278 clear_flags: [ ] 279 280 - name: JSRuntimeInitJSNewClass 281 space: ets 282 class_name: std.interop.js.JSRuntime 283 method_name: __initJSNewClass 284 static: true 285 signature: 286 ret: u1 287 args: [ std.core.String ] 288 impl: panda::ets::interop::js::intrinsics::JSRuntimeInitJSNewClassIntrinsic 289 clear_flags: [ ] 290 291 - name: JSRuntimeCreateLambdaProxy 292 space: ets 293 class_name: std.interop.js.JSRuntime 294 method_name: __createLambdaProxy 295 static: true 296 signature: 297 ret: std.interop.js.JSValue 298 args: [ std.core.Object ] 299 impl: panda::ets::interop::js::intrinsics::JSRuntimeCreateLambdaProxyIntrinsic 300 clear_flags: [ ] 301 302 - name: JSRuntimeLoadModule 303 space: ets 304 class_name: std.interop.js.JSRuntime 305 method_name: loadModule 306 static: true 307 signature: 308 ret: std.interop.js.JSValue 309 args: [ std.core.String ] 310 impl: panda::ets::interop::js::intrinsics::JSRuntimeLoadModuleIntrinsic 311 clear_flags: [ ] 312 313 - name: JSRuntimeStrictEqual 314 space: ets 315 class_name: std.interop.js.JSRuntime 316 method_name: strictEqual 317 static: true 318 signature: 319 ret: u1 320 args: [ std.interop.js.JSValue, std.interop.js.JSValue ] 321 impl: panda::ets::interop::js::intrinsics::JSRuntimeStrictEqualIntrinsic 322 clear_flags: [ ] 323 324####################### 325# Internal intrinsics # 326####################### 327 - name: CompilerGetJSNamedProperty 328 space: ets 329 compiler_only: true 330 signature: 331 ret: ptr 332 args: [ptr, ptr] 333 impl: panda::ets::interop::js::intrinsics::CompilerGetJSNamedPropertyIntrinsic 334 interop_intrinsic_kind: creates_local 335 clear_flags: [ ] 336 337 - name: CompilerResolveQualifiedJSCall 338 space: ets 339 compiler_only: true 340 signature: 341 ret: ptr 342 args: [ptr, std.core.String] 343 impl: panda::ets::interop::js::intrinsics::CompilerResolveQualifiedJSCallIntrinsic 344 interop_intrinsic_kind: creates_local 345 clear_flags: [ ] 346 347 - name: CompilerJSCallCheck 348 space: ets 349 compiler_only: true 350 signature: 351 ret: ptr 352 args: [ptr] 353 impl: panda::ets::interop::js::intrinsics::CompilerJSCallCheckIntrinsic 354 interop_intrinsic_kind: need_scope 355 clear_flags: [ ] 356 357 - name: CompilerJSCallFunction 358 space: ets 359 compiler_only: true 360 signature: 361 ret: ptr 362 args: [ptr, ptr, u32] 363 stackrange: true 364 impl: panda::ets::interop::js::intrinsics::CompilerJSCallFunctionIntrinsic 365 interop_intrinsic_kind: creates_local 366 clear_flags: [ ] 367 368 - name: CompilerJSCallVoidFunction 369 space: ets 370 compiler_only: true 371 signature: 372 ret: void 373 args: [ptr, ptr, u32] 374 stackrange: true 375 impl: panda::ets::interop::js::intrinsics::CompilerJSCallVoidFunctionIntrinsic 376 interop_intrinsic_kind: need_scope 377 clear_flags: [ ] 378 379 - name: CompilerJSNewInstance 380 space: ets 381 compiler_only: true 382 signature: 383 ret: ptr 384 args: [ptr, u32] 385 stackrange: true 386 impl: panda::ets::interop::js::intrinsics::CompilerJSNewInstanceIntrinsic 387 interop_intrinsic_kind: creates_local 388 clear_flags: [ ] 389 390 - name: CompilerCreateLocalScope 391 space: ets 392 compiler_only: true 393 signature: 394 ret: void 395 args: [ ] 396 impl: panda::ets::interop::js::intrinsics::CompilerCreateLocalScopeIntrinsic 397 clear_flags: [ ] 398 399 - name: CompilerDestroyLocalScope 400 space: ets 401 compiler_only: true 402 signature: 403 ret: void 404 args: [ ] 405 impl: panda::ets::interop::js::intrinsics::CompilerDestroyLocalScopeIntrinsic 406 clear_flags: [ ] 407 408######################################################## 409# Internal intrinsics, convert ets value to napi_value # 410######################################################## 411 - name: CompilerConvertVoidToLocal 412 space: ets 413 compiler_only: true 414 signature: 415 ret: ptr 416 args: [] 417 impl: panda::ets::interop::js::intrinsics::CompilerConvertVoidToLocalIntrinsic 418 interop_intrinsic_kind: wrap 419 clear_flags: [no_dce] 420 421 - name: CompilerConvertU1ToLocal 422 space: ets 423 compiler_only: true 424 signature: 425 ret: ptr 426 args: [u1] 427 impl: panda::ets::interop::js::intrinsics::CompilerConvertU1ToLocalIntrinsic 428 interop_intrinsic_kind: wrap 429 clear_flags: [no_dce] 430 431 - name: CompilerConvertU8ToLocal 432 space: ets 433 compiler_only: true 434 signature: 435 ret: ptr 436 args: [u8] 437 impl: panda::ets::interop::js::intrinsics::CompilerConvertU8ToLocalIntrinsic 438 interop_intrinsic_kind: wrap 439 clear_flags: [no_dce] 440 441 - name: CompilerConvertI8ToLocal 442 space: ets 443 compiler_only: true 444 signature: 445 ret: ptr 446 args: [i8] 447 impl: panda::ets::interop::js::intrinsics::CompilerConvertI8ToLocalIntrinsic 448 interop_intrinsic_kind: wrap 449 clear_flags: [no_dce] 450 451 - name: CompilerConvertU16ToLocal 452 space: ets 453 compiler_only: true 454 signature: 455 ret: ptr 456 args: [u16] 457 impl: panda::ets::interop::js::intrinsics::CompilerConvertU16ToLocalIntrinsic 458 interop_intrinsic_kind: wrap 459 clear_flags: [no_dce] 460 461 - name: CompilerConvertI16ToLocal 462 space: ets 463 compiler_only: true 464 signature: 465 ret: ptr 466 args: [i16] 467 impl: panda::ets::interop::js::intrinsics::CompilerConvertI16ToLocalIntrinsic 468 interop_intrinsic_kind: wrap 469 clear_flags: [no_dce] 470 471 - name: CompilerConvertU32ToLocal 472 space: ets 473 compiler_only: true 474 signature: 475 ret: ptr 476 args: [u32] 477 impl: panda::ets::interop::js::intrinsics::CompilerConvertU32ToLocalIntrinsic 478 interop_intrinsic_kind: wrap 479 clear_flags: [no_dce] 480 481 - name: CompilerConvertI32ToLocal 482 space: ets 483 compiler_only: true 484 signature: 485 ret: ptr 486 args: [i32] 487 impl: panda::ets::interop::js::intrinsics::CompilerConvertI32ToLocalIntrinsic 488 interop_intrinsic_kind: wrap 489 clear_flags: [no_dce] 490 491 - name: CompilerConvertU64ToLocal 492 space: ets 493 compiler_only: true 494 signature: 495 ret: ptr 496 args: [u64] 497 impl: panda::ets::interop::js::intrinsics::CompilerConvertU64ToLocalIntrinsic 498 interop_intrinsic_kind: wrap 499 clear_flags: [no_dce] 500 501 - name: CompilerConvertI64ToLocal 502 space: ets 503 compiler_only: true 504 signature: 505 ret: ptr 506 args: [i64] 507 impl: panda::ets::interop::js::intrinsics::CompilerConvertI64ToLocalIntrinsic 508 interop_intrinsic_kind: wrap 509 clear_flags: [no_dce] 510 511 - name: CompilerConvertF32ToLocal 512 space: ets 513 compiler_only: true 514 signature: 515 ret: ptr 516 args: [f32] 517 impl: panda::ets::interop::js::intrinsics::CompilerConvertF32ToLocalIntrinsic 518 interop_intrinsic_kind: wrap 519 clear_flags: [no_dce] 520 521 - name: CompilerConvertF64ToLocal 522 space: ets 523 compiler_only: true 524 signature: 525 ret: ptr 526 args: [f64] 527 impl: panda::ets::interop::js::intrinsics::CompilerConvertF64ToLocalIntrinsic 528 interop_intrinsic_kind: wrap 529 clear_flags: [no_dce] 530 531 - name: CompilerConvertRefTypeToLocal 532 space: ets 533 compiler_only: true 534 signature: 535 ret: ptr 536 args: [std.core.Object] 537 impl: panda::ets::interop::js::intrinsics::CompilerConvertRefTypeToLocalIntrinsic 538 interop_intrinsic_kind: wrap 539 clear_flags: [no_dce] 540 541 - name: CompilerConvertJSValueToLocal 542 space: ets 543 compiler_only: true 544 signature: 545 ret: ptr 546 args: [std.interop.js.JSValue] 547 impl: panda::ets::interop::js::intrinsics::CompilerConvertJSValueToLocalIntrinsic 548 interop_intrinsic_kind: wrap 549 clear_flags: [no_dce] 550 551######################################################## 552# Internal intrinsics, convert napi_value to ets value # 553######################################################## 554 - name: CompilerConvertLocalToU1 555 space: ets 556 compiler_only: true 557 signature: 558 ret: u1 559 args: [ptr] 560 impl: panda::ets::interop::js::intrinsics::CompilerConvertLocalToU1Intrinsic 561 interop_intrinsic_kind: unwrap 562 set_flags: [can_throw] 563 clear_flags: [ ] 564 565 - name: CompilerConvertLocalToU8 566 space: ets 567 compiler_only: true 568 signature: 569 ret: u8 570 args: [ptr] 571 impl: panda::ets::interop::js::intrinsics::CompilerConvertLocalToU8Intrinsic 572 interop_intrinsic_kind: unwrap 573 set_flags: [can_throw] 574 clear_flags: [ ] 575 576 - name: CompilerConvertLocalToI8 577 space: ets 578 compiler_only: true 579 signature: 580 ret: i8 581 args: [ptr] 582 impl: panda::ets::interop::js::intrinsics::CompilerConvertLocalToI8Intrinsic 583 interop_intrinsic_kind: unwrap 584 set_flags: [can_throw] 585 clear_flags: [ ] 586 587 - name: CompilerConvertLocalToU16 588 space: ets 589 compiler_only: true 590 signature: 591 ret: u16 592 args: [ptr] 593 impl: panda::ets::interop::js::intrinsics::CompilerConvertLocalToU16Intrinsic 594 interop_intrinsic_kind: unwrap 595 set_flags: [can_throw] 596 clear_flags: [ ] 597 598 - name: CompilerConvertLocalToI16 599 space: ets 600 compiler_only: true 601 signature: 602 ret: i16 603 args: [ptr] 604 impl: panda::ets::interop::js::intrinsics::CompilerConvertLocalToI16Intrinsic 605 interop_intrinsic_kind: unwrap 606 set_flags: [can_throw] 607 clear_flags: [ ] 608 609 - name: CompilerConvertLocalToU32 610 space: ets 611 compiler_only: true 612 signature: 613 ret: u32 614 args: [ptr] 615 impl: panda::ets::interop::js::intrinsics::CompilerConvertLocalToU32Intrinsic 616 interop_intrinsic_kind: unwrap 617 set_flags: [can_throw] 618 clear_flags: [ ] 619 620 - name: CompilerConvertLocalToI32 621 space: ets 622 compiler_only: true 623 signature: 624 ret: i32 625 args: [ptr] 626 impl: panda::ets::interop::js::intrinsics::CompilerConvertLocalToI32Intrinsic 627 interop_intrinsic_kind: unwrap 628 set_flags: [can_throw] 629 clear_flags: [ ] 630 631 - name: CompilerConvertLocalToU64 632 space: ets 633 compiler_only: true 634 signature: 635 ret: u64 636 args: [ptr] 637 impl: panda::ets::interop::js::intrinsics::CompilerConvertLocalToU64Intrinsic 638 interop_intrinsic_kind: unwrap 639 set_flags: [can_throw] 640 clear_flags: [ ] 641 642 - name: CompilerConvertLocalToI64 643 space: ets 644 compiler_only: true 645 signature: 646 ret: i64 647 args: [ptr] 648 impl: panda::ets::interop::js::intrinsics::CompilerConvertLocalToI64Intrinsic 649 interop_intrinsic_kind: unwrap 650 set_flags: [can_throw] 651 clear_flags: [ ] 652 653 - name: CompilerConvertLocalToF32 654 space: ets 655 compiler_only: true 656 signature: 657 ret: f32 658 args: [ptr] 659 impl: panda::ets::interop::js::intrinsics::CompilerConvertLocalToF32Intrinsic 660 interop_intrinsic_kind: unwrap 661 set_flags: [can_throw] 662 clear_flags: [ ] 663 664 - name: CompilerConvertLocalToF64 665 space: ets 666 compiler_only: true 667 signature: 668 ret: f64 669 args: [ptr] 670 impl: panda::ets::interop::js::intrinsics::CompilerConvertLocalToF64Intrinsic 671 interop_intrinsic_kind: unwrap 672 set_flags: [can_throw] 673 clear_flags: [ ] 674 675 - name: CompilerConvertLocalToJSValue 676 space: ets 677 compiler_only: true 678 signature: 679 ret: std.interop.js.JSValue 680 args: [ptr] 681 impl: panda::ets::interop::js::intrinsics::CompilerConvertLocalToJSValueIntrinsic 682 interop_intrinsic_kind: unwrap 683 clear_flags: [no_dce] 684 685 - name: CompilerConvertLocalToString 686 space: ets 687 compiler_only: true 688 signature: 689 ret: std.core.String 690 args: [ptr] 691 impl: panda::ets::interop::js::intrinsics::CompilerConvertLocalToStringIntrinsic 692 interop_intrinsic_kind: unwrap 693 set_flags: [can_throw] 694 clear_flags: [ ] 695 696 - name: CompilerConvertLocalToRefType 697 space: ets 698 compiler_only: true 699 signature: 700 ret: std.core.Object 701 args: [ptr, ptr] 702 impl: panda::ets::interop::js::intrinsics::CompilerConvertLocalToRefTypeIntrinsic 703 interop_intrinsic_kind: unwrap 704 set_flags: [can_throw] 705 clear_flags: [ ] 706