• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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