1#![allow(non_camel_case_types)]
2
3use std::ffi::c_void;
4use std::option::Option;
5use std::os::raw::{c_char, c_double, c_int, c_uchar};
6
7#[repr(C)]
8#[derive(Debug, Copy, Clone)]
9pub struct js_env_t {
10 _private: [u8; 0],
11}
12
13#[repr(C)]
14#[derive(Debug, Copy, Clone)]
15pub struct js_handle_scope_t {
16 _private: [u8; 0],
17}
18
19#[repr(C)]
20#[derive(Debug, Copy, Clone)]
21pub struct js_escapable_handle_scope_t {
22 _private: [u8; 0],
23}
24
25#[repr(C)]
26#[derive(Debug, Copy, Clone)]
27pub struct js_context_t {
28 _private: [u8; 0],
29}
30
31#[repr(C)]
32#[derive(Debug, Copy, Clone)]
33pub struct js_value_t {
34 _private: [u8; 0],
35}
36
37#[repr(C)]
38#[derive(Debug, Copy, Clone)]
39pub struct js_ref_t {
40 _private: [u8; 0],
41}
42
43#[repr(C)]
44#[derive(Debug, Copy, Clone)]
45pub struct js_deferred_t {
46 _private: [u8; 0],
47}
48
49#[repr(C)]
50#[derive(Debug, Copy, Clone)]
51pub struct js_callback_info_t {
52 _private: [u8; 0],
53}
54
55#[repr(C)]
56#[derive(Debug, Copy, Clone)]
57pub struct js_arraybuffer_backing_store_t {
58 _private: [u8; 0],
59}
60
61#[repr(C)]
62#[derive(Debug, Copy, Clone)]
63pub struct js_property_descriptor_t {
64 pub version: c_int,
65 pub name: *mut js_value_t,
66 pub data: *mut c_void,
67 pub attributes: c_int,
68 pub method: js_function_cb,
69 pub getter: js_function_cb,
70 pub setter: js_function_cb,
71 pub value: *mut js_value_t,
72}
73
74#[repr(C)]
75#[derive(Debug, Copy, Clone)]
76pub struct js_delegate_callbacks_t {
77 pub version: c_int,
78 pub get: js_delegate_get_cb,
79 pub has: js_delegate_has_cb,
80 pub set: js_delegate_set_cb,
81 pub delete_property: js_delegate_delete_property_cb,
82 pub own_keys: js_delegate_own_keys_cb,
83}
84
85#[repr(C)]
86#[derive(Debug, Copy, Clone)]
87pub struct js_type_tag_t {
88 pub lower: u64,
89 pub upper: u64,
90}
91
92#[repr(C)]
93#[derive(Debug, Copy, Clone)]
94pub struct js_callback_signature_t {
95 pub version: c_int,
96 pub result: c_int,
97 pub args_len: usize,
98 pub args: *mut c_int,
99}
100
101pub type js_function_cb = Option<
102 unsafe extern "C" fn(env: *mut js_env_t, info: *mut js_callback_info_t) -> *mut js_value_t,
103>;
104
105pub type js_finalize_cb =
106 Option<unsafe extern "C" fn(env: *mut js_env_t, data: *mut c_void, finalize_hint: *mut c_void)>;
107
108pub type js_delegate_get_cb = Option<
109 unsafe extern "C" fn(
110 env: *mut js_env_t,
111 property: *mut js_value_t,
112 data: *mut c_void,
113 ) -> *mut js_value_t,
114>;
115
116pub type js_delegate_has_cb = Option<
117 unsafe extern "C" fn(env: *mut js_env_t, property: *mut js_value_t, data: *mut c_void) -> bool,
118>;
119
120pub type js_delegate_set_cb = Option<
121 unsafe extern "C" fn(
122 env: *mut js_env_t,
123 property: *mut js_value_t,
124 value: *mut js_value_t,
125 data: *mut c_void,
126 ) -> bool,
127>;
128
129pub type js_delegate_delete_property_cb = Option<
130 unsafe extern "C" fn(env: *mut js_env_t, property: *mut js_value_t, data: *mut c_void) -> bool,
131>;
132
133pub type js_delegate_own_keys_cb =
134 Option<unsafe extern "C" fn(arg1: *mut js_env_t, data: *mut c_void) -> *mut js_value_t>;
135
136pub const JS_PENDING_EXCEPTION: c_int = -1;
137pub const JS_UNCAUGHT_EXCEPTION: c_int = -2;
138
139#[repr(C)]
140#[derive(Debug, Copy, Clone)]
141pub enum js_value_type_t {
142 js_undefined = 0,
143 js_null = 1,
144 js_boolean = 2,
145 js_number = 3,
146 js_string = 4,
147 js_symbol = 5,
148 js_object = 6,
149 js_function = 7,
150 js_external = 8,
151 js_bigint = 9,
152}
153
154#[repr(C)]
155#[derive(Debug, Copy, Clone)]
156pub enum js_typedarray_type_t {
157 js_int8array = 0,
158 js_uint8array = 1,
159 js_uint8clampedarray = 2,
160 js_int16array = 3,
161 js_uint16array = 4,
162 js_int32array = 5,
163 js_uint32array = 6,
164 js_float16array = 11,
165 js_float32array = 7,
166 js_float64array = 8,
167 js_bigint64array = 9,
168 js_biguint64array = 10,
169}
170
171#[repr(C)]
172#[derive(Debug, Copy, Clone)]
173pub enum js_promise_state_t {
174 js_promise_pending = 0,
175 js_promise_fulfilled = 1,
176 js_promise_rejected = 2,
177}
178
179#[repr(C)]
180#[derive(Debug, Copy, Clone)]
181pub enum js_key_collection_mode_t {
182 js_key_include_prototypes = 0,
183 js_key_own_only = 1,
184}
185
186#[repr(C)]
187#[derive(Debug, Copy, Clone)]
188pub enum js_key_conversion_mode_t {
189 js_key_convert_to_string = 0,
190 js_key_keep_numbers = 1,
191}
192
193#[repr(C)]
194#[derive(Debug, Copy, Clone)]
195pub enum js_property_filter_t {
196 js_property_all_properties = 0,
197 js_property_only_writable = 1,
198 js_property_only_enumerable = 1 << 1,
199 js_property_only_configurable = 1 << 2,
200 js_property_skip_strings = 1 << 3,
201 js_property_skip_symbols = 1 << 4,
202}
203
204#[repr(C)]
205#[derive(Debug, Copy, Clone)]
206pub enum js_index_filter_t {
207 js_index_include_indices = 0,
208 js_index_skip_indices = 1,
209}
210
211unsafe extern "C" {
212 pub fn js_open_handle_scope(env: *mut js_env_t, result: *mut *mut js_handle_scope_t) -> c_int;
213
214 pub fn js_close_handle_scope(env: *mut js_env_t, scope: *mut js_handle_scope_t) -> c_int;
215
216 pub fn js_open_escapable_handle_scope(
217 env: *mut js_env_t,
218 result: *mut *mut js_escapable_handle_scope_t,
219 ) -> c_int;
220
221 pub fn js_close_escapable_handle_scope(
222 env: *mut js_env_t,
223 scope: *mut js_escapable_handle_scope_t,
224 ) -> c_int;
225
226 pub fn js_escape_handle(
227 env: *mut js_env_t,
228 scope: *mut js_escapable_handle_scope_t,
229 escapee: *mut js_value_t,
230 result: *mut *mut js_value_t,
231 ) -> c_int;
232
233 pub fn js_create_context(env: *mut js_env_t, result: *mut *mut js_context_t) -> c_int;
234
235 pub fn js_destroy_context(env: *mut js_env_t, context: *mut js_context_t) -> c_int;
236
237 pub fn js_enter_context(env: *mut js_env_t, context: *mut js_context_t) -> c_int;
238
239 pub fn js_exit_context(env: *mut js_env_t, context: *mut js_context_t) -> c_int;
240
241 pub fn js_get_bindings(env: *mut js_env_t, result: *mut *mut js_value_t) -> c_int;
242
243 pub fn js_run_script(
244 env: *mut js_env_t,
245 file: *const c_char,
246 len: usize,
247 offset: c_int,
248 source: *mut js_value_t,
249 result: *mut *mut js_value_t,
250 ) -> c_int;
251
252 pub fn js_create_reference(
253 env: *mut js_env_t,
254 value: *mut js_value_t,
255 count: u32,
256 result: *mut *mut js_ref_t,
257 ) -> c_int;
258
259 pub fn js_delete_reference(env: *mut js_env_t, reference: *mut js_ref_t) -> c_int;
260
261 pub fn js_reference_ref(
262 env: *mut js_env_t,
263 reference: *mut js_ref_t,
264 result: *mut u32,
265 ) -> c_int;
266
267 pub fn js_reference_unref(
268 env: *mut js_env_t,
269 reference: *mut js_ref_t,
270 result: *mut u32,
271 ) -> c_int;
272
273 pub fn js_get_reference_value(
274 env: *mut js_env_t,
275 reference: *mut js_ref_t,
276 result: *mut *mut js_value_t,
277 ) -> c_int;
278
279 pub fn js_define_class(
280 env: *mut js_env_t,
281 name: *const c_char,
282 len: usize,
283 constructor: js_function_cb,
284 data: *mut c_void,
285 properties: *const js_property_descriptor_t,
286 properties_len: usize,
287 result: *mut *mut js_value_t,
288 ) -> c_int;
289
290 pub fn js_define_properties(
291 env: *mut js_env_t,
292 object: *mut js_value_t,
293 properties: *const js_property_descriptor_t,
294 properties_len: usize,
295 ) -> c_int;
296
297 pub fn js_wrap(
298 env: *mut js_env_t,
299 object: *mut js_value_t,
300 data: *mut c_void,
301 finalize_cb: js_finalize_cb,
302 finalize_hint: *mut c_void,
303 result: *mut *mut js_ref_t,
304 ) -> c_int;
305
306 pub fn js_unwrap(
307 env: *mut js_env_t,
308 object: *mut js_value_t,
309 result: *mut *mut c_void,
310 ) -> c_int;
311
312 pub fn js_remove_wrap(
313 env: *mut js_env_t,
314 object: *mut js_value_t,
315 result: *mut *mut c_void,
316 ) -> c_int;
317
318 pub fn js_create_delegate(
319 env: *mut js_env_t,
320 callbacks: *const js_delegate_callbacks_t,
321 data: *mut c_void,
322 finalize_cb: js_finalize_cb,
323 finalize_hint: *mut c_void,
324 result: *mut *mut js_value_t,
325 ) -> c_int;
326
327 pub fn js_add_finalizer(
328 env: *mut js_env_t,
329 object: *mut js_value_t,
330 data: *mut c_void,
331 finalize_cb: js_finalize_cb,
332 finalize_hint: *mut c_void,
333 result: *mut *mut js_ref_t,
334 ) -> c_int;
335
336 pub fn js_add_type_tag(
337 env: *mut js_env_t,
338 object: *mut js_value_t,
339 tag: *const js_type_tag_t,
340 ) -> c_int;
341
342 pub fn js_check_type_tag(
343 env: *mut js_env_t,
344 object: *mut js_value_t,
345 tag: *const js_type_tag_t,
346 result: *mut bool,
347 ) -> c_int;
348
349 pub fn js_create_int32(env: *mut js_env_t, value: i32, result: *mut *mut js_value_t) -> c_int;
350
351 pub fn js_create_uint32(env: *mut js_env_t, value: u32, result: *mut *mut js_value_t) -> c_int;
352
353 pub fn js_create_int64(env: *mut js_env_t, value: i64, result: *mut *mut js_value_t) -> c_int;
354
355 pub fn js_create_double(
356 env: *mut js_env_t,
357 value: c_double,
358 result: *mut *mut js_value_t,
359 ) -> c_int;
360
361 pub fn js_create_bigint_int64(
362 env: *mut js_env_t,
363 value: i64,
364 result: *mut *mut js_value_t,
365 ) -> c_int;
366
367 pub fn js_create_bigint_uint64(
368 env: *mut js_env_t,
369 value: u64,
370 result: *mut *mut js_value_t,
371 ) -> c_int;
372
373 pub fn js_create_string_utf8(
374 env: *mut js_env_t,
375 string: *const c_uchar,
376 len: usize,
377 result: *mut *mut js_value_t,
378 ) -> c_int;
379
380 pub fn js_create_external_string_utf8(
381 env: *mut js_env_t,
382 string: *mut c_uchar,
383 len: usize,
384 finalize_cb: js_finalize_cb,
385 finalize_hint: *mut c_void,
386 result: *mut *mut js_value_t,
387 copied: *mut bool,
388 ) -> c_int;
389
390 pub fn js_create_property_key_utf8(
391 env: *mut js_env_t,
392 string: *const c_uchar,
393 len: usize,
394 result: *mut *mut js_value_t,
395 ) -> c_int;
396
397 pub fn js_create_symbol(
398 env: *mut js_env_t,
399 description: *mut js_value_t,
400 result: *mut *mut js_value_t,
401 ) -> c_int;
402
403 pub fn js_symbol_for(
404 env: *mut js_env_t,
405 description: *const c_char,
406 len: usize,
407 result: *mut *mut js_value_t,
408 ) -> c_int;
409
410 pub fn js_create_object(env: *mut js_env_t, result: *mut *mut js_value_t) -> c_int;
411
412 pub fn js_create_function(
413 env: *mut js_env_t,
414 name: *const c_char,
415 len: usize,
416 cb: js_function_cb,
417 data: *mut c_void,
418 result: *mut *mut js_value_t,
419 ) -> c_int;
420
421 pub fn js_create_function_with_source(
422 env: *mut js_env_t,
423 name: *const c_char,
424 name_len: usize,
425 file: *const c_char,
426 file_len: usize,
427 args: *const *mut js_value_t,
428 args_len: usize,
429 offset: c_int,
430 source: *mut js_value_t,
431 result: *mut *mut js_value_t,
432 ) -> c_int;
433
434 pub fn js_create_typed_function(
435 env: *mut js_env_t,
436 name: *const c_char,
437 len: usize,
438 cb: js_function_cb,
439 signature: *const js_callback_signature_t,
440 address: *const c_void,
441 data: *mut c_void,
442 result: *mut *mut js_value_t,
443 ) -> c_int;
444
445 pub fn js_create_array(env: *mut js_env_t, result: *mut *mut js_value_t) -> c_int;
446
447 pub fn js_create_array_with_length(
448 env: *mut js_env_t,
449 len: usize,
450 result: *mut *mut js_value_t,
451 ) -> c_int;
452
453 pub fn js_create_external(
454 env: *mut js_env_t,
455 data: *mut c_void,
456 finalize_cb: js_finalize_cb,
457 finalize_hint: *mut c_void,
458 result: *mut *mut js_value_t,
459 ) -> c_int;
460
461 pub fn js_create_error(
462 env: *mut js_env_t,
463 code: *mut js_value_t,
464 message: *mut js_value_t,
465 result: *mut *mut js_value_t,
466 ) -> c_int;
467
468 pub fn js_create_type_error(
469 env: *mut js_env_t,
470 code: *mut js_value_t,
471 message: *mut js_value_t,
472 result: *mut *mut js_value_t,
473 ) -> c_int;
474
475 pub fn js_create_range_error(
476 env: *mut js_env_t,
477 code: *mut js_value_t,
478 message: *mut js_value_t,
479 result: *mut *mut js_value_t,
480 ) -> c_int;
481
482 pub fn js_create_syntax_error(
483 env: *mut js_env_t,
484 code: *mut js_value_t,
485 message: *mut js_value_t,
486 result: *mut *mut js_value_t,
487 ) -> c_int;
488
489 pub fn js_create_reference_error(
490 env: *mut js_env_t,
491 code: *mut js_value_t,
492 message: *mut js_value_t,
493 result: *mut *mut js_value_t,
494 ) -> c_int;
495
496 pub fn js_create_promise(
497 env: *mut js_env_t,
498 deferred: *mut *mut js_deferred_t,
499 promise: *mut *mut js_value_t,
500 ) -> c_int;
501
502 pub fn js_resolve_deferred(
503 env: *mut js_env_t,
504 deferred: *mut js_deferred_t,
505 resolution: *mut js_value_t,
506 ) -> c_int;
507
508 pub fn js_reject_deferred(
509 env: *mut js_env_t,
510 deferred: *mut js_deferred_t,
511 resolution: *mut js_value_t,
512 ) -> c_int;
513
514 pub fn js_get_promise_state(
515 env: *mut js_env_t,
516 promise: *mut js_value_t,
517 result: *mut js_promise_state_t,
518 ) -> c_int;
519
520 pub fn js_get_promise_result(
521 env: *mut js_env_t,
522 promise: *mut js_value_t,
523 result: *mut *mut js_value_t,
524 ) -> c_int;
525
526 pub fn js_create_arraybuffer(
527 env: *mut js_env_t,
528 len: usize,
529 data: *mut *mut c_void,
530 result: *mut *mut js_value_t,
531 ) -> c_int;
532
533 pub fn js_create_arraybuffer_with_backing_store(
534 env: *mut js_env_t,
535 backing_store: *mut js_arraybuffer_backing_store_t,
536 data: *mut *mut c_void,
537 len: *mut usize,
538 result: *mut *mut js_value_t,
539 ) -> c_int;
540
541 pub fn js_create_unsafe_arraybuffer(
542 env: *mut js_env_t,
543 len: usize,
544 data: *mut *mut c_void,
545 result: *mut *mut js_value_t,
546 ) -> c_int;
547
548 pub fn js_create_external_arraybuffer(
549 env: *mut js_env_t,
550 data: *mut c_void,
551 len: usize,
552 finalize_cb: js_finalize_cb,
553 finalize_hint: *mut c_void,
554 result: *mut *mut js_value_t,
555 ) -> c_int;
556
557 pub fn js_detach_arraybuffer(env: *mut js_env_t, arraybuffer: *mut js_value_t) -> c_int;
558
559 pub fn js_get_arraybuffer_backing_store(
560 env: *mut js_env_t,
561 arraybuffer: *mut js_value_t,
562 result: *mut *mut js_arraybuffer_backing_store_t,
563 ) -> c_int;
564
565 pub fn js_create_sharedarraybuffer(
566 env: *mut js_env_t,
567 len: usize,
568 data: *mut *mut c_void,
569 result: *mut *mut js_value_t,
570 ) -> c_int;
571
572 pub fn js_create_sharedarraybuffer_with_backing_store(
573 env: *mut js_env_t,
574 backing_store: *mut js_arraybuffer_backing_store_t,
575 data: *mut *mut c_void,
576 len: *mut usize,
577 result: *mut *mut js_value_t,
578 ) -> c_int;
579
580 pub fn js_create_unsafe_sharedarraybuffer(
581 env: *mut js_env_t,
582 len: usize,
583 data: *mut *mut c_void,
584 result: *mut *mut js_value_t,
585 ) -> c_int;
586
587 pub fn js_create_external_sharedarraybuffer(
588 env: *mut js_env_t,
589 data: *mut c_void,
590 len: usize,
591 finalize_cb: js_finalize_cb,
592 finalize_hint: *mut c_void,
593 result: *mut *mut js_value_t,
594 ) -> c_int;
595
596 pub fn js_get_sharedarraybuffer_backing_store(
597 env: *mut js_env_t,
598 sharedarraybuffer: *mut js_value_t,
599 result: *mut *mut js_arraybuffer_backing_store_t,
600 ) -> c_int;
601
602 pub fn js_release_arraybuffer_backing_store(
603 env: *mut js_env_t,
604 backing_store: *mut js_arraybuffer_backing_store_t,
605 ) -> c_int;
606
607 pub fn js_create_typedarray(
608 env: *mut js_env_t,
609 variant: js_typedarray_type_t,
610 len: usize,
611 arraybuffer: *mut js_value_t,
612 offset: usize,
613 result: *mut *mut js_value_t,
614 ) -> c_int;
615
616 pub fn js_create_dataview(
617 env: *mut js_env_t,
618 len: usize,
619 arraybuffer: *mut js_value_t,
620 offset: usize,
621 result: *mut *mut js_value_t,
622 ) -> c_int;
623
624 pub fn js_coerce_to_boolean(
625 env: *mut js_env_t,
626 value: *mut js_value_t,
627 result: *mut *mut js_value_t,
628 ) -> c_int;
629
630 pub fn js_coerce_to_number(
631 env: *mut js_env_t,
632 value: *mut js_value_t,
633 result: *mut *mut js_value_t,
634 ) -> c_int;
635
636 pub fn js_coerce_to_string(
637 env: *mut js_env_t,
638 value: *mut js_value_t,
639 result: *mut *mut js_value_t,
640 ) -> c_int;
641
642 pub fn js_coerce_to_object(
643 env: *mut js_env_t,
644 value: *mut js_value_t,
645 result: *mut *mut js_value_t,
646 ) -> c_int;
647
648 pub fn js_typeof(
649 env: *mut js_env_t,
650 value: *mut js_value_t,
651 result: *mut js_value_type_t,
652 ) -> c_int;
653
654 pub fn js_instanceof(
655 env: *mut js_env_t,
656 object: *mut js_value_t,
657 constructor: *mut js_value_t,
658 result: *mut bool,
659 ) -> c_int;
660
661 pub fn js_is_undefined(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
662
663 pub fn js_is_null(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
664
665 pub fn js_is_boolean(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
666
667 pub fn js_is_number(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
668
669 pub fn js_is_int32(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
670
671 pub fn js_is_uint32(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
672
673 pub fn js_is_string(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
674
675 pub fn js_is_symbol(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
676
677 pub fn js_is_object(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
678
679 pub fn js_is_function(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
680
681 pub fn js_is_async_function(
682 env: *mut js_env_t,
683 value: *mut js_value_t,
684 result: *mut bool,
685 ) -> c_int;
686
687 pub fn js_is_generator_function(
688 env: *mut js_env_t,
689 value: *mut js_value_t,
690 result: *mut bool,
691 ) -> c_int;
692
693 pub fn js_is_generator(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
694
695 pub fn js_is_arguments(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
696
697 pub fn js_is_array(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
698
699 pub fn js_is_external(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
700
701 pub fn js_is_wrapped(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
702
703 pub fn js_is_delegate(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
704
705 pub fn js_is_bigint(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
706
707 pub fn js_is_date(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
708
709 pub fn js_is_regexp(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
710
711 pub fn js_is_error(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
712
713 pub fn js_is_promise(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
714
715 pub fn js_is_proxy(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
716
717 pub fn js_is_map(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
718
719 pub fn js_is_map_iterator(
720 env: *mut js_env_t,
721 value: *mut js_value_t,
722 result: *mut bool,
723 ) -> c_int;
724
725 pub fn js_is_set(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
726
727 pub fn js_is_set_iterator(
728 env: *mut js_env_t,
729 value: *mut js_value_t,
730 result: *mut bool,
731 ) -> c_int;
732
733 pub fn js_is_weak_map(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
734
735 pub fn js_is_weak_set(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
736
737 pub fn js_is_weak_ref(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
738
739 pub fn js_is_arraybuffer(
740 env: *mut js_env_t,
741 value: *mut js_value_t,
742 result: *mut bool,
743 ) -> c_int;
744
745 pub fn js_is_detached_arraybuffer(
746 env: *mut js_env_t,
747 value: *mut js_value_t,
748 result: *mut bool,
749 ) -> c_int;
750
751 pub fn js_is_sharedarraybuffer(
752 env: *mut js_env_t,
753 value: *mut js_value_t,
754 result: *mut bool,
755 ) -> c_int;
756
757 pub fn js_is_typedarray(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool)
758 -> c_int;
759
760 pub fn js_is_int8array(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
761
762 pub fn js_is_uint8array(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool)
763 -> c_int;
764
765 pub fn js_is_uint8clampedarray(
766 env: *mut js_env_t,
767 value: *mut js_value_t,
768 result: *mut bool,
769 ) -> c_int;
770
771 pub fn js_is_int16array(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool)
772 -> c_int;
773
774 pub fn js_is_uint16array(
775 env: *mut js_env_t,
776 value: *mut js_value_t,
777 result: *mut bool,
778 ) -> c_int;
779
780 pub fn js_is_int32array(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool)
781 -> c_int;
782
783 pub fn js_is_uint32array(
784 env: *mut js_env_t,
785 value: *mut js_value_t,
786 result: *mut bool,
787 ) -> c_int;
788
789 pub fn js_is_float16array(
790 env: *mut js_env_t,
791 value: *mut js_value_t,
792 result: *mut bool,
793 ) -> c_int;
794
795 pub fn js_is_float32array(
796 env: *mut js_env_t,
797 value: *mut js_value_t,
798 result: *mut bool,
799 ) -> c_int;
800
801 pub fn js_is_float64array(
802 env: *mut js_env_t,
803 value: *mut js_value_t,
804 result: *mut bool,
805 ) -> c_int;
806
807 pub fn js_is_bigint64array(
808 env: *mut js_env_t,
809 value: *mut js_value_t,
810 result: *mut bool,
811 ) -> c_int;
812
813 pub fn js_is_biguint64array(
814 env: *mut js_env_t,
815 value: *mut js_value_t,
816 result: *mut bool,
817 ) -> c_int;
818
819 pub fn js_is_dataview(env: *mut js_env_t, value: *mut js_value_t, result: *mut bool) -> c_int;
820
821 pub fn js_is_module_namespace(
822 env: *mut js_env_t,
823 value: *mut js_value_t,
824 result: *mut bool,
825 ) -> c_int;
826
827 pub fn js_strict_equals(
828 env: *mut js_env_t,
829 a: *mut js_value_t,
830 b: *mut js_value_t,
831 result: *mut bool,
832 ) -> c_int;
833
834 pub fn js_get_global(env: *mut js_env_t, result: *mut *mut js_value_t) -> c_int;
835
836 pub fn js_get_undefined(env: *mut js_env_t, result: *mut *mut js_value_t) -> c_int;
837
838 pub fn js_get_null(env: *mut js_env_t, result: *mut *mut js_value_t) -> c_int;
839
840 pub fn js_get_boolean(env: *mut js_env_t, value: bool, result: *mut *mut js_value_t) -> c_int;
841
842 pub fn js_get_value_bool(
843 env: *mut js_env_t,
844 value: *mut js_value_t,
845 result: *mut bool,
846 ) -> c_int;
847
848 pub fn js_get_value_int32(
849 env: *mut js_env_t,
850 value: *mut js_value_t,
851 result: *mut i32,
852 ) -> c_int;
853
854 pub fn js_get_value_uint32(
855 env: *mut js_env_t,
856 value: *mut js_value_t,
857 result: *mut u32,
858 ) -> c_int;
859
860 pub fn js_get_value_int64(
861 env: *mut js_env_t,
862 value: *mut js_value_t,
863 result: *mut i64,
864 ) -> c_int;
865
866 pub fn js_get_value_double(
867 env: *mut js_env_t,
868 value: *mut js_value_t,
869 result: *mut c_double,
870 ) -> c_int;
871
872 pub fn js_get_value_bigint_int64(
873 env: *mut js_env_t,
874 value: *mut js_value_t,
875 result: *mut i64,
876 lossless: *mut bool,
877 ) -> c_int;
878
879 pub fn js_get_value_bigint_uint64(
880 env: *mut js_env_t,
881 value: *mut js_value_t,
882 result: *mut u64,
883 lossless: *mut bool,
884 ) -> c_int;
885
886 pub fn js_get_value_string_utf8(
887 env: *mut js_env_t,
888 value: *mut js_value_t,
889 string: *mut c_uchar,
890 len: usize,
891 result: *mut usize,
892 ) -> c_int;
893
894 pub fn js_get_value_external(
895 env: *mut js_env_t,
896 value: *mut js_value_t,
897 result: *mut *mut c_void,
898 ) -> c_int;
899
900 pub fn js_get_value_date(
901 env: *mut js_env_t,
902 value: *mut js_value_t,
903 result: *mut c_double,
904 ) -> c_int;
905
906 pub fn js_get_array_length(
907 env: *mut js_env_t,
908 array: *mut js_value_t,
909 result: *mut u32,
910 ) -> c_int;
911
912 pub fn js_get_array_elements(
913 env: *mut js_env_t,
914 array: *mut js_value_t,
915 elements: *mut *mut js_value_t,
916 len: usize,
917 offset: usize,
918 result: *mut u32,
919 ) -> c_int;
920
921 pub fn js_set_array_elements(
922 env: *mut js_env_t,
923 array: *mut js_value_t,
924 elements: *mut *const js_value_t,
925 len: usize,
926 offset: usize,
927 ) -> c_int;
928
929 pub fn js_get_prototype(
930 env: *mut js_env_t,
931 object: *mut js_value_t,
932 result: *mut *mut js_value_t,
933 ) -> c_int;
934
935 pub fn js_get_property_names(
936 env: *mut js_env_t,
937 object: *mut js_value_t,
938 result: *mut *mut js_value_t,
939 ) -> c_int;
940
941 pub fn js_get_filtered_property_names(
942 env: *mut js_env_t,
943 object: *mut js_value_t,
944 mode: js_key_collection_mode_t,
945 property_filter: js_property_filter_t,
946 index_filter: js_index_filter_t,
947 key_conversion: js_key_conversion_mode_t,
948 result: *mut *mut js_value_t,
949 ) -> c_int;
950
951 pub fn js_get_property(
952 env: *mut js_env_t,
953 object: *mut js_value_t,
954 key: *mut js_value_t,
955 result: *mut *mut js_value_t,
956 ) -> c_int;
957
958 pub fn js_has_property(
959 env: *mut js_env_t,
960 object: *mut js_value_t,
961 key: *mut js_value_t,
962 result: *mut bool,
963 ) -> c_int;
964
965 pub fn js_has_own_property(
966 env: *mut js_env_t,
967 object: *mut js_value_t,
968 key: *mut js_value_t,
969 result: *mut bool,
970 ) -> c_int;
971
972 pub fn js_set_property(
973 env: *mut js_env_t,
974 object: *mut js_value_t,
975 key: *mut js_value_t,
976 value: *mut js_value_t,
977 ) -> c_int;
978
979 pub fn js_delete_property(
980 env: *mut js_env_t,
981 object: *mut js_value_t,
982 key: *mut js_value_t,
983 result: *mut bool,
984 ) -> c_int;
985
986 pub fn js_get_named_property(
987 env: *mut js_env_t,
988 object: *mut js_value_t,
989 name: *const c_char,
990 result: *mut *mut js_value_t,
991 ) -> c_int;
992
993 pub fn js_has_named_property(
994 env: *mut js_env_t,
995 object: *mut js_value_t,
996 name: *const c_char,
997 result: *mut bool,
998 ) -> c_int;
999
1000 pub fn js_set_named_property(
1001 env: *mut js_env_t,
1002 object: *mut js_value_t,
1003 name: *const c_char,
1004 value: *mut js_value_t,
1005 ) -> c_int;
1006
1007 pub fn js_delete_named_property(
1008 env: *mut js_env_t,
1009 object: *mut js_value_t,
1010 name: *const c_char,
1011 result: *mut bool,
1012 ) -> c_int;
1013
1014 pub fn js_get_element(
1015 env: *mut js_env_t,
1016 object: *mut js_value_t,
1017 index: u32,
1018 result: *mut *mut js_value_t,
1019 ) -> c_int;
1020
1021 pub fn js_has_element(
1022 env: *mut js_env_t,
1023 object: *mut js_value_t,
1024 index: u32,
1025 result: *mut bool,
1026 ) -> c_int;
1027
1028 pub fn js_set_element(
1029 env: *mut js_env_t,
1030 object: *mut js_value_t,
1031 index: u32,
1032 value: *mut js_value_t,
1033 ) -> c_int;
1034
1035 pub fn js_delete_element(
1036 env: *mut js_env_t,
1037 object: *mut js_value_t,
1038 index: u32,
1039 result: *mut bool,
1040 ) -> c_int;
1041}