rquickjs_sys/bindings/
x86_64-unknown-linux-gnu.rs

1/* automatically generated by rust-bindgen 0.72.1 */
2
3pub const JS_PROP_CONFIGURABLE: u32 = 1;
4pub const JS_PROP_WRITABLE: u32 = 2;
5pub const JS_PROP_ENUMERABLE: u32 = 4;
6pub const JS_PROP_C_W_E: u32 = 7;
7pub const JS_PROP_LENGTH: u32 = 8;
8pub const JS_PROP_TMASK: u32 = 48;
9pub const JS_PROP_NORMAL: u32 = 0;
10pub const JS_PROP_GETSET: u32 = 16;
11pub const JS_PROP_VARREF: u32 = 32;
12pub const JS_PROP_AUTOINIT: u32 = 48;
13pub const JS_PROP_HAS_SHIFT: u32 = 8;
14pub const JS_PROP_HAS_CONFIGURABLE: u32 = 256;
15pub const JS_PROP_HAS_WRITABLE: u32 = 512;
16pub const JS_PROP_HAS_ENUMERABLE: u32 = 1024;
17pub const JS_PROP_HAS_GET: u32 = 2048;
18pub const JS_PROP_HAS_SET: u32 = 4096;
19pub const JS_PROP_HAS_VALUE: u32 = 8192;
20pub const JS_PROP_THROW: u32 = 16384;
21pub const JS_PROP_THROW_STRICT: u32 = 32768;
22pub const JS_PROP_NO_ADD: u32 = 65536;
23pub const JS_PROP_NO_EXOTIC: u32 = 131072;
24pub const JS_PROP_DEFINE_PROPERTY: u32 = 262144;
25pub const JS_PROP_REFLECT_DEFINE_PROPERTY: u32 = 524288;
26pub const JS_DEFAULT_STACK_SIZE: u32 = 1048576;
27pub const JS_EVAL_TYPE_GLOBAL: u32 = 0;
28pub const JS_EVAL_TYPE_MODULE: u32 = 1;
29pub const JS_EVAL_TYPE_DIRECT: u32 = 2;
30pub const JS_EVAL_TYPE_INDIRECT: u32 = 3;
31pub const JS_EVAL_TYPE_MASK: u32 = 3;
32pub const JS_EVAL_FLAG_STRICT: u32 = 8;
33pub const JS_EVAL_FLAG_UNUSED: u32 = 16;
34pub const JS_EVAL_FLAG_COMPILE_ONLY: u32 = 32;
35pub const JS_EVAL_FLAG_BACKTRACE_BARRIER: u32 = 64;
36pub const JS_EVAL_FLAG_ASYNC: u32 = 128;
37pub const JS_DUMP_BYTECODE_FINAL: u32 = 1;
38pub const JS_DUMP_BYTECODE_PASS2: u32 = 2;
39pub const JS_DUMP_BYTECODE_PASS1: u32 = 4;
40pub const JS_DUMP_BYTECODE_HEX: u32 = 16;
41pub const JS_DUMP_BYTECODE_PC2LINE: u32 = 32;
42pub const JS_DUMP_BYTECODE_STACK: u32 = 64;
43pub const JS_DUMP_BYTECODE_STEP: u32 = 128;
44pub const JS_DUMP_READ_OBJECT: u32 = 256;
45pub const JS_DUMP_FREE: u32 = 512;
46pub const JS_DUMP_GC: u32 = 1024;
47pub const JS_DUMP_GC_FREE: u32 = 2048;
48pub const JS_DUMP_MODULE_RESOLVE: u32 = 4096;
49pub const JS_DUMP_PROMISE: u32 = 8192;
50pub const JS_DUMP_LEAKS: u32 = 16384;
51pub const JS_DUMP_ATOM_LEAKS: u32 = 32768;
52pub const JS_DUMP_MEM: u32 = 65536;
53pub const JS_DUMP_OBJECTS: u32 = 131072;
54pub const JS_DUMP_ATOMS: u32 = 262144;
55pub const JS_DUMP_SHAPES: u32 = 524288;
56pub const JS_ATOM_NULL: u32 = 0;
57pub const JS_CALL_FLAG_CONSTRUCTOR: u32 = 1;
58pub const JS_EVAL_OPTIONS_VERSION: u32 = 1;
59pub const JS_INVALID_CLASS_ID: u32 = 0;
60pub const JS_GPN_STRING_MASK: u32 = 1;
61pub const JS_GPN_SYMBOL_MASK: u32 = 2;
62pub const JS_GPN_PRIVATE_MASK: u32 = 4;
63pub const JS_GPN_ENUM_ONLY: u32 = 16;
64pub const JS_GPN_SET_ENUM: u32 = 32;
65pub const JS_WRITE_OBJ_BYTECODE: u32 = 1;
66pub const JS_WRITE_OBJ_BSWAP: u32 = 0;
67pub const JS_WRITE_OBJ_SAB: u32 = 4;
68pub const JS_WRITE_OBJ_REFERENCE: u32 = 8;
69pub const JS_WRITE_OBJ_STRIP_SOURCE: u32 = 16;
70pub const JS_WRITE_OBJ_STRIP_DEBUG: u32 = 32;
71pub const JS_READ_OBJ_BYTECODE: u32 = 1;
72pub const JS_READ_OBJ_ROM_DATA: u32 = 0;
73pub const JS_READ_OBJ_SAB: u32 = 4;
74pub const JS_READ_OBJ_REFERENCE: u32 = 8;
75pub const JS_DEF_CFUNC: u32 = 0;
76pub const JS_DEF_CGETSET: u32 = 1;
77pub const JS_DEF_CGETSET_MAGIC: u32 = 2;
78pub const JS_DEF_PROP_STRING: u32 = 3;
79pub const JS_DEF_PROP_INT32: u32 = 4;
80pub const JS_DEF_PROP_INT64: u32 = 5;
81pub const JS_DEF_PROP_DOUBLE: u32 = 6;
82pub const JS_DEF_PROP_UNDEFINED: u32 = 7;
83pub const JS_DEF_OBJECT: u32 = 8;
84pub const JS_DEF_ALIAS: u32 = 9;
85pub type size_t = ::core::ffi::c_ulong;
86#[repr(C)]
87#[derive(Debug, Copy, Clone)]
88pub struct JSRuntime {
89    _unused: [u8; 0],
90}
91#[repr(C)]
92#[derive(Debug, Copy, Clone)]
93pub struct JSContext {
94    _unused: [u8; 0],
95}
96#[repr(C)]
97#[derive(Debug, Copy, Clone)]
98pub struct JSObject {
99    _unused: [u8; 0],
100}
101#[repr(C)]
102#[derive(Debug, Copy, Clone)]
103pub struct JSClass {
104    _unused: [u8; 0],
105}
106pub type JSClassID = u32;
107pub type JSAtom = u32;
108pub const JS_TAG_FIRST: _bindgen_ty_3 = -9;
109pub const JS_TAG_BIG_INT: _bindgen_ty_3 = -9;
110pub const JS_TAG_SYMBOL: _bindgen_ty_3 = -8;
111pub const JS_TAG_STRING: _bindgen_ty_3 = -7;
112pub const JS_TAG_MODULE: _bindgen_ty_3 = -3;
113pub const JS_TAG_FUNCTION_BYTECODE: _bindgen_ty_3 = -2;
114pub const JS_TAG_OBJECT: _bindgen_ty_3 = -1;
115pub const JS_TAG_INT: _bindgen_ty_3 = 0;
116pub const JS_TAG_BOOL: _bindgen_ty_3 = 1;
117pub const JS_TAG_NULL: _bindgen_ty_3 = 2;
118pub const JS_TAG_UNDEFINED: _bindgen_ty_3 = 3;
119pub const JS_TAG_UNINITIALIZED: _bindgen_ty_3 = 4;
120pub const JS_TAG_CATCH_OFFSET: _bindgen_ty_3 = 5;
121pub const JS_TAG_EXCEPTION: _bindgen_ty_3 = 6;
122pub const JS_TAG_SHORT_BIG_INT: _bindgen_ty_3 = 7;
123pub const JS_TAG_FLOAT64: _bindgen_ty_3 = 8;
124pub type _bindgen_ty_3 = ::core::ffi::c_int;
125#[repr(C)]
126#[derive(Copy, Clone)]
127pub union JSValueUnion {
128    pub int32: i32,
129    pub float64: f64,
130    pub ptr: *mut ::core::ffi::c_void,
131    pub short_big_int: i32,
132}
133#[allow(clippy::unnecessary_operation, clippy::identity_op)]
134const _: () = {
135    ["Size of JSValueUnion"][::core::mem::size_of::<JSValueUnion>() - 8usize];
136    ["Alignment of JSValueUnion"][::core::mem::align_of::<JSValueUnion>() - 8usize];
137    ["Offset of field: JSValueUnion::int32"][::core::mem::offset_of!(JSValueUnion, int32) - 0usize];
138    ["Offset of field: JSValueUnion::float64"]
139        [::core::mem::offset_of!(JSValueUnion, float64) - 0usize];
140    ["Offset of field: JSValueUnion::ptr"][::core::mem::offset_of!(JSValueUnion, ptr) - 0usize];
141    ["Offset of field: JSValueUnion::short_big_int"]
142        [::core::mem::offset_of!(JSValueUnion, short_big_int) - 0usize];
143};
144#[repr(C)]
145#[derive(Copy, Clone)]
146pub struct JSValue {
147    pub u: JSValueUnion,
148    pub tag: i64,
149}
150#[allow(clippy::unnecessary_operation, clippy::identity_op)]
151const _: () = {
152    ["Size of JSValue"][::core::mem::size_of::<JSValue>() - 16usize];
153    ["Alignment of JSValue"][::core::mem::align_of::<JSValue>() - 8usize];
154    ["Offset of field: JSValue::u"][::core::mem::offset_of!(JSValue, u) - 0usize];
155    ["Offset of field: JSValue::tag"][::core::mem::offset_of!(JSValue, tag) - 8usize];
156};
157pub type JSCFunction = ::core::option::Option<
158    unsafe extern "C" fn(
159        ctx: *mut JSContext,
160        this_val: JSValue,
161        argc: ::core::ffi::c_int,
162        argv: *mut JSValue,
163    ) -> JSValue,
164>;
165pub type JSCFunctionMagic = ::core::option::Option<
166    unsafe extern "C" fn(
167        ctx: *mut JSContext,
168        this_val: JSValue,
169        argc: ::core::ffi::c_int,
170        argv: *mut JSValue,
171        magic: ::core::ffi::c_int,
172    ) -> JSValue,
173>;
174pub type JSCFunctionData = ::core::option::Option<
175    unsafe extern "C" fn(
176        ctx: *mut JSContext,
177        this_val: JSValue,
178        argc: ::core::ffi::c_int,
179        argv: *mut JSValue,
180        magic: ::core::ffi::c_int,
181        func_data: *mut JSValue,
182    ) -> JSValue,
183>;
184pub type JSCClosure = ::core::option::Option<
185    unsafe extern "C" fn(
186        ctx: *mut JSContext,
187        this_val: JSValue,
188        argc: ::core::ffi::c_int,
189        argv: *mut JSValue,
190        magic: ::core::ffi::c_int,
191        opaque: *mut ::core::ffi::c_void,
192    ) -> JSValue,
193>;
194#[repr(C)]
195#[derive(Debug, Copy, Clone)]
196pub struct JSMallocFunctions {
197    pub js_calloc: ::core::option::Option<
198        unsafe extern "C" fn(
199            opaque: *mut ::core::ffi::c_void,
200            count: size_t,
201            size: size_t,
202        ) -> *mut ::core::ffi::c_void,
203    >,
204    pub js_malloc: ::core::option::Option<
205        unsafe extern "C" fn(
206            opaque: *mut ::core::ffi::c_void,
207            size: size_t,
208        ) -> *mut ::core::ffi::c_void,
209    >,
210    pub js_free: ::core::option::Option<
211        unsafe extern "C" fn(opaque: *mut ::core::ffi::c_void, ptr: *mut ::core::ffi::c_void),
212    >,
213    pub js_realloc: ::core::option::Option<
214        unsafe extern "C" fn(
215            opaque: *mut ::core::ffi::c_void,
216            ptr: *mut ::core::ffi::c_void,
217            size: size_t,
218        ) -> *mut ::core::ffi::c_void,
219    >,
220    pub js_malloc_usable_size:
221        ::core::option::Option<unsafe extern "C" fn(ptr: *const ::core::ffi::c_void) -> size_t>,
222}
223#[allow(clippy::unnecessary_operation, clippy::identity_op)]
224const _: () = {
225    ["Size of JSMallocFunctions"][::core::mem::size_of::<JSMallocFunctions>() - 40usize];
226    ["Alignment of JSMallocFunctions"][::core::mem::align_of::<JSMallocFunctions>() - 8usize];
227    ["Offset of field: JSMallocFunctions::js_calloc"]
228        [::core::mem::offset_of!(JSMallocFunctions, js_calloc) - 0usize];
229    ["Offset of field: JSMallocFunctions::js_malloc"]
230        [::core::mem::offset_of!(JSMallocFunctions, js_malloc) - 8usize];
231    ["Offset of field: JSMallocFunctions::js_free"]
232        [::core::mem::offset_of!(JSMallocFunctions, js_free) - 16usize];
233    ["Offset of field: JSMallocFunctions::js_realloc"]
234        [::core::mem::offset_of!(JSMallocFunctions, js_realloc) - 24usize];
235    ["Offset of field: JSMallocFunctions::js_malloc_usable_size"]
236        [::core::mem::offset_of!(JSMallocFunctions, js_malloc_usable_size) - 32usize];
237};
238pub type JSRuntimeFinalizer =
239    ::core::option::Option<unsafe extern "C" fn(rt: *mut JSRuntime, arg: *mut ::core::ffi::c_void)>;
240#[repr(C)]
241#[derive(Debug, Copy, Clone)]
242pub struct JSGCObjectHeader {
243    _unused: [u8; 0],
244}
245unsafe extern "C" {
246    pub fn JS_NewRuntime() -> *mut JSRuntime;
247}
248unsafe extern "C" {
249    pub fn JS_SetRuntimeInfo(rt: *mut JSRuntime, info: *const ::core::ffi::c_char);
250}
251unsafe extern "C" {
252    pub fn JS_SetMemoryLimit(rt: *mut JSRuntime, limit: size_t);
253}
254unsafe extern "C" {
255    pub fn JS_SetDumpFlags(rt: *mut JSRuntime, flags: u64);
256}
257unsafe extern "C" {
258    pub fn JS_GetDumpFlags(rt: *mut JSRuntime) -> u64;
259}
260unsafe extern "C" {
261    pub fn JS_GetGCThreshold(rt: *mut JSRuntime) -> size_t;
262}
263unsafe extern "C" {
264    pub fn JS_SetGCThreshold(rt: *mut JSRuntime, gc_threshold: size_t);
265}
266unsafe extern "C" {
267    pub fn JS_SetMaxStackSize(rt: *mut JSRuntime, stack_size: size_t);
268}
269unsafe extern "C" {
270    pub fn JS_UpdateStackTop(rt: *mut JSRuntime);
271}
272unsafe extern "C" {
273    pub fn JS_NewRuntime2(
274        mf: *const JSMallocFunctions,
275        opaque: *mut ::core::ffi::c_void,
276    ) -> *mut JSRuntime;
277}
278unsafe extern "C" {
279    pub fn JS_FreeRuntime(rt: *mut JSRuntime);
280}
281unsafe extern "C" {
282    pub fn JS_GetRuntimeOpaque(rt: *mut JSRuntime) -> *mut ::core::ffi::c_void;
283}
284unsafe extern "C" {
285    pub fn JS_SetRuntimeOpaque(rt: *mut JSRuntime, opaque: *mut ::core::ffi::c_void);
286}
287unsafe extern "C" {
288    pub fn JS_AddRuntimeFinalizer(
289        rt: *mut JSRuntime,
290        finalizer: JSRuntimeFinalizer,
291        arg: *mut ::core::ffi::c_void,
292    ) -> ::core::ffi::c_int;
293}
294pub type JS_MarkFunc =
295    ::core::option::Option<unsafe extern "C" fn(rt: *mut JSRuntime, gp: *mut JSGCObjectHeader)>;
296unsafe extern "C" {
297    pub fn JS_MarkValue(rt: *mut JSRuntime, val: JSValue, mark_func: JS_MarkFunc);
298}
299unsafe extern "C" {
300    pub fn JS_RunGC(rt: *mut JSRuntime);
301}
302unsafe extern "C" {
303    pub fn JS_IsLiveObject(rt: *mut JSRuntime, obj: JSValue) -> bool;
304}
305unsafe extern "C" {
306    pub fn JS_NewContext(rt: *mut JSRuntime) -> *mut JSContext;
307}
308unsafe extern "C" {
309    pub fn JS_FreeContext(s: *mut JSContext);
310}
311unsafe extern "C" {
312    pub fn JS_DupContext(ctx: *mut JSContext) -> *mut JSContext;
313}
314unsafe extern "C" {
315    pub fn JS_GetContextOpaque(ctx: *mut JSContext) -> *mut ::core::ffi::c_void;
316}
317unsafe extern "C" {
318    pub fn JS_SetContextOpaque(ctx: *mut JSContext, opaque: *mut ::core::ffi::c_void);
319}
320unsafe extern "C" {
321    pub fn JS_GetRuntime(ctx: *mut JSContext) -> *mut JSRuntime;
322}
323unsafe extern "C" {
324    pub fn JS_SetClassProto(ctx: *mut JSContext, class_id: JSClassID, obj: JSValue);
325}
326unsafe extern "C" {
327    pub fn JS_GetClassProto(ctx: *mut JSContext, class_id: JSClassID) -> JSValue;
328}
329unsafe extern "C" {
330    pub fn JS_GetFunctionProto(ctx: *mut JSContext) -> JSValue;
331}
332unsafe extern "C" {
333    pub fn JS_NewContextRaw(rt: *mut JSRuntime) -> *mut JSContext;
334}
335unsafe extern "C" {
336    pub fn JS_AddIntrinsicBaseObjects(ctx: *mut JSContext);
337}
338unsafe extern "C" {
339    pub fn JS_AddIntrinsicDate(ctx: *mut JSContext);
340}
341unsafe extern "C" {
342    pub fn JS_AddIntrinsicEval(ctx: *mut JSContext);
343}
344unsafe extern "C" {
345    pub fn JS_AddIntrinsicRegExpCompiler(ctx: *mut JSContext);
346}
347unsafe extern "C" {
348    pub fn JS_AddIntrinsicRegExp(ctx: *mut JSContext);
349}
350unsafe extern "C" {
351    pub fn JS_AddIntrinsicJSON(ctx: *mut JSContext);
352}
353unsafe extern "C" {
354    pub fn JS_AddIntrinsicProxy(ctx: *mut JSContext);
355}
356unsafe extern "C" {
357    pub fn JS_AddIntrinsicMapSet(ctx: *mut JSContext);
358}
359unsafe extern "C" {
360    pub fn JS_AddIntrinsicTypedArrays(ctx: *mut JSContext);
361}
362unsafe extern "C" {
363    pub fn JS_AddIntrinsicPromise(ctx: *mut JSContext);
364}
365unsafe extern "C" {
366    pub fn JS_AddIntrinsicBigInt(ctx: *mut JSContext);
367}
368unsafe extern "C" {
369    pub fn JS_AddIntrinsicWeakRef(ctx: *mut JSContext);
370}
371unsafe extern "C" {
372    pub fn JS_AddPerformance(ctx: *mut JSContext);
373}
374unsafe extern "C" {
375    pub fn JS_AddIntrinsicDOMException(ctx: *mut JSContext);
376}
377unsafe extern "C" {
378    pub fn JS_IsEqual(ctx: *mut JSContext, op1: JSValue, op2: JSValue) -> ::core::ffi::c_int;
379}
380unsafe extern "C" {
381    pub fn JS_IsStrictEqual(ctx: *mut JSContext, op1: JSValue, op2: JSValue) -> bool;
382}
383unsafe extern "C" {
384    pub fn JS_IsSameValue(ctx: *mut JSContext, op1: JSValue, op2: JSValue) -> bool;
385}
386unsafe extern "C" {
387    pub fn JS_IsSameValueZero(ctx: *mut JSContext, op1: JSValue, op2: JSValue) -> bool;
388}
389unsafe extern "C" {
390    pub fn js_string_codePointRange(
391        ctx: *mut JSContext,
392        this_val: JSValue,
393        argc: ::core::ffi::c_int,
394        argv: *mut JSValue,
395    ) -> JSValue;
396}
397unsafe extern "C" {
398    pub fn js_calloc_rt(
399        rt: *mut JSRuntime,
400        count: size_t,
401        size: size_t,
402    ) -> *mut ::core::ffi::c_void;
403}
404unsafe extern "C" {
405    pub fn js_malloc_rt(rt: *mut JSRuntime, size: size_t) -> *mut ::core::ffi::c_void;
406}
407unsafe extern "C" {
408    pub fn js_free_rt(rt: *mut JSRuntime, ptr: *mut ::core::ffi::c_void);
409}
410unsafe extern "C" {
411    pub fn js_realloc_rt(
412        rt: *mut JSRuntime,
413        ptr: *mut ::core::ffi::c_void,
414        size: size_t,
415    ) -> *mut ::core::ffi::c_void;
416}
417unsafe extern "C" {
418    pub fn js_malloc_usable_size_rt(rt: *mut JSRuntime, ptr: *const ::core::ffi::c_void) -> size_t;
419}
420unsafe extern "C" {
421    pub fn js_mallocz_rt(rt: *mut JSRuntime, size: size_t) -> *mut ::core::ffi::c_void;
422}
423unsafe extern "C" {
424    pub fn js_calloc(ctx: *mut JSContext, count: size_t, size: size_t) -> *mut ::core::ffi::c_void;
425}
426unsafe extern "C" {
427    pub fn js_malloc(ctx: *mut JSContext, size: size_t) -> *mut ::core::ffi::c_void;
428}
429unsafe extern "C" {
430    pub fn js_free(ctx: *mut JSContext, ptr: *mut ::core::ffi::c_void);
431}
432unsafe extern "C" {
433    pub fn js_realloc(
434        ctx: *mut JSContext,
435        ptr: *mut ::core::ffi::c_void,
436        size: size_t,
437    ) -> *mut ::core::ffi::c_void;
438}
439unsafe extern "C" {
440    pub fn js_malloc_usable_size(ctx: *mut JSContext, ptr: *const ::core::ffi::c_void) -> size_t;
441}
442unsafe extern "C" {
443    pub fn js_realloc2(
444        ctx: *mut JSContext,
445        ptr: *mut ::core::ffi::c_void,
446        size: size_t,
447        pslack: *mut size_t,
448    ) -> *mut ::core::ffi::c_void;
449}
450unsafe extern "C" {
451    pub fn js_mallocz(ctx: *mut JSContext, size: size_t) -> *mut ::core::ffi::c_void;
452}
453unsafe extern "C" {
454    pub fn js_strdup(
455        ctx: *mut JSContext,
456        str_: *const ::core::ffi::c_char,
457    ) -> *mut ::core::ffi::c_char;
458}
459unsafe extern "C" {
460    pub fn js_strndup(
461        ctx: *mut JSContext,
462        s: *const ::core::ffi::c_char,
463        n: size_t,
464    ) -> *mut ::core::ffi::c_char;
465}
466#[repr(C)]
467#[derive(Debug, Copy, Clone)]
468pub struct JSMemoryUsage {
469    pub malloc_size: i64,
470    pub malloc_limit: i64,
471    pub memory_used_size: i64,
472    pub malloc_count: i64,
473    pub memory_used_count: i64,
474    pub atom_count: i64,
475    pub atom_size: i64,
476    pub str_count: i64,
477    pub str_size: i64,
478    pub obj_count: i64,
479    pub obj_size: i64,
480    pub prop_count: i64,
481    pub prop_size: i64,
482    pub shape_count: i64,
483    pub shape_size: i64,
484    pub js_func_count: i64,
485    pub js_func_size: i64,
486    pub js_func_code_size: i64,
487    pub js_func_pc2line_count: i64,
488    pub js_func_pc2line_size: i64,
489    pub c_func_count: i64,
490    pub array_count: i64,
491    pub fast_array_count: i64,
492    pub fast_array_elements: i64,
493    pub binary_object_count: i64,
494    pub binary_object_size: i64,
495}
496#[allow(clippy::unnecessary_operation, clippy::identity_op)]
497const _: () = {
498    ["Size of JSMemoryUsage"][::core::mem::size_of::<JSMemoryUsage>() - 208usize];
499    ["Alignment of JSMemoryUsage"][::core::mem::align_of::<JSMemoryUsage>() - 8usize];
500    ["Offset of field: JSMemoryUsage::malloc_size"]
501        [::core::mem::offset_of!(JSMemoryUsage, malloc_size) - 0usize];
502    ["Offset of field: JSMemoryUsage::malloc_limit"]
503        [::core::mem::offset_of!(JSMemoryUsage, malloc_limit) - 8usize];
504    ["Offset of field: JSMemoryUsage::memory_used_size"]
505        [::core::mem::offset_of!(JSMemoryUsage, memory_used_size) - 16usize];
506    ["Offset of field: JSMemoryUsage::malloc_count"]
507        [::core::mem::offset_of!(JSMemoryUsage, malloc_count) - 24usize];
508    ["Offset of field: JSMemoryUsage::memory_used_count"]
509        [::core::mem::offset_of!(JSMemoryUsage, memory_used_count) - 32usize];
510    ["Offset of field: JSMemoryUsage::atom_count"]
511        [::core::mem::offset_of!(JSMemoryUsage, atom_count) - 40usize];
512    ["Offset of field: JSMemoryUsage::atom_size"]
513        [::core::mem::offset_of!(JSMemoryUsage, atom_size) - 48usize];
514    ["Offset of field: JSMemoryUsage::str_count"]
515        [::core::mem::offset_of!(JSMemoryUsage, str_count) - 56usize];
516    ["Offset of field: JSMemoryUsage::str_size"]
517        [::core::mem::offset_of!(JSMemoryUsage, str_size) - 64usize];
518    ["Offset of field: JSMemoryUsage::obj_count"]
519        [::core::mem::offset_of!(JSMemoryUsage, obj_count) - 72usize];
520    ["Offset of field: JSMemoryUsage::obj_size"]
521        [::core::mem::offset_of!(JSMemoryUsage, obj_size) - 80usize];
522    ["Offset of field: JSMemoryUsage::prop_count"]
523        [::core::mem::offset_of!(JSMemoryUsage, prop_count) - 88usize];
524    ["Offset of field: JSMemoryUsage::prop_size"]
525        [::core::mem::offset_of!(JSMemoryUsage, prop_size) - 96usize];
526    ["Offset of field: JSMemoryUsage::shape_count"]
527        [::core::mem::offset_of!(JSMemoryUsage, shape_count) - 104usize];
528    ["Offset of field: JSMemoryUsage::shape_size"]
529        [::core::mem::offset_of!(JSMemoryUsage, shape_size) - 112usize];
530    ["Offset of field: JSMemoryUsage::js_func_count"]
531        [::core::mem::offset_of!(JSMemoryUsage, js_func_count) - 120usize];
532    ["Offset of field: JSMemoryUsage::js_func_size"]
533        [::core::mem::offset_of!(JSMemoryUsage, js_func_size) - 128usize];
534    ["Offset of field: JSMemoryUsage::js_func_code_size"]
535        [::core::mem::offset_of!(JSMemoryUsage, js_func_code_size) - 136usize];
536    ["Offset of field: JSMemoryUsage::js_func_pc2line_count"]
537        [::core::mem::offset_of!(JSMemoryUsage, js_func_pc2line_count) - 144usize];
538    ["Offset of field: JSMemoryUsage::js_func_pc2line_size"]
539        [::core::mem::offset_of!(JSMemoryUsage, js_func_pc2line_size) - 152usize];
540    ["Offset of field: JSMemoryUsage::c_func_count"]
541        [::core::mem::offset_of!(JSMemoryUsage, c_func_count) - 160usize];
542    ["Offset of field: JSMemoryUsage::array_count"]
543        [::core::mem::offset_of!(JSMemoryUsage, array_count) - 168usize];
544    ["Offset of field: JSMemoryUsage::fast_array_count"]
545        [::core::mem::offset_of!(JSMemoryUsage, fast_array_count) - 176usize];
546    ["Offset of field: JSMemoryUsage::fast_array_elements"]
547        [::core::mem::offset_of!(JSMemoryUsage, fast_array_elements) - 184usize];
548    ["Offset of field: JSMemoryUsage::binary_object_count"]
549        [::core::mem::offset_of!(JSMemoryUsage, binary_object_count) - 192usize];
550    ["Offset of field: JSMemoryUsage::binary_object_size"]
551        [::core::mem::offset_of!(JSMemoryUsage, binary_object_size) - 200usize];
552};
553unsafe extern "C" {
554    pub fn JS_ComputeMemoryUsage(rt: *mut JSRuntime, s: *mut JSMemoryUsage);
555}
556unsafe extern "C" {
557    pub fn JS_NewAtomLen(
558        ctx: *mut JSContext,
559        str_: *const ::core::ffi::c_char,
560        len: size_t,
561    ) -> JSAtom;
562}
563unsafe extern "C" {
564    pub fn JS_NewAtom(ctx: *mut JSContext, str_: *const ::core::ffi::c_char) -> JSAtom;
565}
566unsafe extern "C" {
567    pub fn JS_NewAtomUInt32(ctx: *mut JSContext, n: u32) -> JSAtom;
568}
569unsafe extern "C" {
570    pub fn JS_DupAtom(ctx: *mut JSContext, v: JSAtom) -> JSAtom;
571}
572unsafe extern "C" {
573    pub fn JS_DupAtomRT(rt: *mut JSRuntime, v: JSAtom) -> JSAtom;
574}
575unsafe extern "C" {
576    pub fn JS_FreeAtom(ctx: *mut JSContext, v: JSAtom);
577}
578unsafe extern "C" {
579    pub fn JS_FreeAtomRT(rt: *mut JSRuntime, v: JSAtom);
580}
581unsafe extern "C" {
582    pub fn JS_AtomToValue(ctx: *mut JSContext, atom: JSAtom) -> JSValue;
583}
584unsafe extern "C" {
585    pub fn JS_AtomToString(ctx: *mut JSContext, atom: JSAtom) -> JSValue;
586}
587unsafe extern "C" {
588    pub fn JS_AtomToCStringLen(
589        ctx: *mut JSContext,
590        plen: *mut size_t,
591        atom: JSAtom,
592    ) -> *const ::core::ffi::c_char;
593}
594unsafe extern "C" {
595    pub fn JS_ValueToAtom(ctx: *mut JSContext, val: JSValue) -> JSAtom;
596}
597#[repr(C)]
598#[derive(Debug, Copy, Clone)]
599pub struct JSPropertyEnum {
600    pub is_enumerable: bool,
601    pub atom: JSAtom,
602}
603#[allow(clippy::unnecessary_operation, clippy::identity_op)]
604const _: () = {
605    ["Size of JSPropertyEnum"][::core::mem::size_of::<JSPropertyEnum>() - 8usize];
606    ["Alignment of JSPropertyEnum"][::core::mem::align_of::<JSPropertyEnum>() - 4usize];
607    ["Offset of field: JSPropertyEnum::is_enumerable"]
608        [::core::mem::offset_of!(JSPropertyEnum, is_enumerable) - 0usize];
609    ["Offset of field: JSPropertyEnum::atom"]
610        [::core::mem::offset_of!(JSPropertyEnum, atom) - 4usize];
611};
612#[repr(C)]
613#[derive(Copy, Clone)]
614pub struct JSPropertyDescriptor {
615    pub flags: ::core::ffi::c_int,
616    pub value: JSValue,
617    pub getter: JSValue,
618    pub setter: JSValue,
619}
620#[allow(clippy::unnecessary_operation, clippy::identity_op)]
621const _: () = {
622    ["Size of JSPropertyDescriptor"][::core::mem::size_of::<JSPropertyDescriptor>() - 56usize];
623    ["Alignment of JSPropertyDescriptor"][::core::mem::align_of::<JSPropertyDescriptor>() - 8usize];
624    ["Offset of field: JSPropertyDescriptor::flags"]
625        [::core::mem::offset_of!(JSPropertyDescriptor, flags) - 0usize];
626    ["Offset of field: JSPropertyDescriptor::value"]
627        [::core::mem::offset_of!(JSPropertyDescriptor, value) - 8usize];
628    ["Offset of field: JSPropertyDescriptor::getter"]
629        [::core::mem::offset_of!(JSPropertyDescriptor, getter) - 24usize];
630    ["Offset of field: JSPropertyDescriptor::setter"]
631        [::core::mem::offset_of!(JSPropertyDescriptor, setter) - 40usize];
632};
633#[repr(C)]
634#[derive(Debug, Copy, Clone)]
635pub struct JSClassExoticMethods {
636    pub get_own_property: ::core::option::Option<
637        unsafe extern "C" fn(
638            ctx: *mut JSContext,
639            desc: *mut JSPropertyDescriptor,
640            obj: JSValue,
641            prop: JSAtom,
642        ) -> ::core::ffi::c_int,
643    >,
644    pub get_own_property_names: ::core::option::Option<
645        unsafe extern "C" fn(
646            ctx: *mut JSContext,
647            ptab: *mut *mut JSPropertyEnum,
648            plen: *mut u32,
649            obj: JSValue,
650        ) -> ::core::ffi::c_int,
651    >,
652    pub delete_property: ::core::option::Option<
653        unsafe extern "C" fn(ctx: *mut JSContext, obj: JSValue, prop: JSAtom) -> ::core::ffi::c_int,
654    >,
655    pub define_own_property: ::core::option::Option<
656        unsafe extern "C" fn(
657            ctx: *mut JSContext,
658            this_obj: JSValue,
659            prop: JSAtom,
660            val: JSValue,
661            getter: JSValue,
662            setter: JSValue,
663            flags: ::core::ffi::c_int,
664        ) -> ::core::ffi::c_int,
665    >,
666    pub has_property: ::core::option::Option<
667        unsafe extern "C" fn(ctx: *mut JSContext, obj: JSValue, atom: JSAtom) -> ::core::ffi::c_int,
668    >,
669    pub get_property: ::core::option::Option<
670        unsafe extern "C" fn(
671            ctx: *mut JSContext,
672            obj: JSValue,
673            atom: JSAtom,
674            receiver: JSValue,
675        ) -> JSValue,
676    >,
677    pub set_property: ::core::option::Option<
678        unsafe extern "C" fn(
679            ctx: *mut JSContext,
680            obj: JSValue,
681            atom: JSAtom,
682            value: JSValue,
683            receiver: JSValue,
684            flags: ::core::ffi::c_int,
685        ) -> ::core::ffi::c_int,
686    >,
687}
688#[allow(clippy::unnecessary_operation, clippy::identity_op)]
689const _: () = {
690    ["Size of JSClassExoticMethods"][::core::mem::size_of::<JSClassExoticMethods>() - 56usize];
691    ["Alignment of JSClassExoticMethods"][::core::mem::align_of::<JSClassExoticMethods>() - 8usize];
692    ["Offset of field: JSClassExoticMethods::get_own_property"]
693        [::core::mem::offset_of!(JSClassExoticMethods, get_own_property) - 0usize];
694    ["Offset of field: JSClassExoticMethods::get_own_property_names"]
695        [::core::mem::offset_of!(JSClassExoticMethods, get_own_property_names) - 8usize];
696    ["Offset of field: JSClassExoticMethods::delete_property"]
697        [::core::mem::offset_of!(JSClassExoticMethods, delete_property) - 16usize];
698    ["Offset of field: JSClassExoticMethods::define_own_property"]
699        [::core::mem::offset_of!(JSClassExoticMethods, define_own_property) - 24usize];
700    ["Offset of field: JSClassExoticMethods::has_property"]
701        [::core::mem::offset_of!(JSClassExoticMethods, has_property) - 32usize];
702    ["Offset of field: JSClassExoticMethods::get_property"]
703        [::core::mem::offset_of!(JSClassExoticMethods, get_property) - 40usize];
704    ["Offset of field: JSClassExoticMethods::set_property"]
705        [::core::mem::offset_of!(JSClassExoticMethods, set_property) - 48usize];
706};
707pub type JSClassFinalizer =
708    ::core::option::Option<unsafe extern "C" fn(rt: *mut JSRuntime, val: JSValue)>;
709pub type JSClassGCMark = ::core::option::Option<
710    unsafe extern "C" fn(rt: *mut JSRuntime, val: JSValue, mark_func: JS_MarkFunc),
711>;
712pub type JSClassCall = ::core::option::Option<
713    unsafe extern "C" fn(
714        ctx: *mut JSContext,
715        func_obj: JSValue,
716        this_val: JSValue,
717        argc: ::core::ffi::c_int,
718        argv: *mut JSValue,
719        flags: ::core::ffi::c_int,
720    ) -> JSValue,
721>;
722#[repr(C)]
723#[derive(Debug, Copy, Clone)]
724pub struct JSClassDef {
725    pub class_name: *const ::core::ffi::c_char,
726    pub finalizer: JSClassFinalizer,
727    pub gc_mark: JSClassGCMark,
728    pub call: JSClassCall,
729    pub exotic: *mut JSClassExoticMethods,
730}
731#[allow(clippy::unnecessary_operation, clippy::identity_op)]
732const _: () = {
733    ["Size of JSClassDef"][::core::mem::size_of::<JSClassDef>() - 40usize];
734    ["Alignment of JSClassDef"][::core::mem::align_of::<JSClassDef>() - 8usize];
735    ["Offset of field: JSClassDef::class_name"]
736        [::core::mem::offset_of!(JSClassDef, class_name) - 0usize];
737    ["Offset of field: JSClassDef::finalizer"]
738        [::core::mem::offset_of!(JSClassDef, finalizer) - 8usize];
739    ["Offset of field: JSClassDef::gc_mark"]
740        [::core::mem::offset_of!(JSClassDef, gc_mark) - 16usize];
741    ["Offset of field: JSClassDef::call"][::core::mem::offset_of!(JSClassDef, call) - 24usize];
742    ["Offset of field: JSClassDef::exotic"][::core::mem::offset_of!(JSClassDef, exotic) - 32usize];
743};
744#[repr(C)]
745#[derive(Debug, Copy, Clone)]
746pub struct JSEvalOptions {
747    pub version: ::core::ffi::c_int,
748    pub eval_flags: ::core::ffi::c_int,
749    pub filename: *const ::core::ffi::c_char,
750    pub line_num: ::core::ffi::c_int,
751}
752#[allow(clippy::unnecessary_operation, clippy::identity_op)]
753const _: () = {
754    ["Size of JSEvalOptions"][::core::mem::size_of::<JSEvalOptions>() - 24usize];
755    ["Alignment of JSEvalOptions"][::core::mem::align_of::<JSEvalOptions>() - 8usize];
756    ["Offset of field: JSEvalOptions::version"]
757        [::core::mem::offset_of!(JSEvalOptions, version) - 0usize];
758    ["Offset of field: JSEvalOptions::eval_flags"]
759        [::core::mem::offset_of!(JSEvalOptions, eval_flags) - 4usize];
760    ["Offset of field: JSEvalOptions::filename"]
761        [::core::mem::offset_of!(JSEvalOptions, filename) - 8usize];
762    ["Offset of field: JSEvalOptions::line_num"]
763        [::core::mem::offset_of!(JSEvalOptions, line_num) - 16usize];
764};
765unsafe extern "C" {
766    pub fn JS_NewClassID(rt: *mut JSRuntime, pclass_id: *mut JSClassID) -> JSClassID;
767}
768unsafe extern "C" {
769    pub fn JS_GetClassID(v: JSValue) -> JSClassID;
770}
771unsafe extern "C" {
772    pub fn JS_NewClass(
773        rt: *mut JSRuntime,
774        class_id: JSClassID,
775        class_def: *const JSClassDef,
776    ) -> ::core::ffi::c_int;
777}
778unsafe extern "C" {
779    pub fn JS_IsRegisteredClass(rt: *mut JSRuntime, class_id: JSClassID) -> bool;
780}
781unsafe extern "C" {
782    pub fn JS_GetClassName(rt: *mut JSRuntime, class_id: JSClassID) -> JSAtom;
783}
784unsafe extern "C" {
785    pub fn JS_NewNumber(ctx: *mut JSContext, d: f64) -> JSValue;
786}
787unsafe extern "C" {
788    pub fn JS_NewBigInt64(ctx: *mut JSContext, v: i64) -> JSValue;
789}
790unsafe extern "C" {
791    pub fn JS_NewBigUint64(ctx: *mut JSContext, v: u64) -> JSValue;
792}
793unsafe extern "C" {
794    pub fn JS_Throw(ctx: *mut JSContext, obj: JSValue) -> JSValue;
795}
796unsafe extern "C" {
797    pub fn JS_GetException(ctx: *mut JSContext) -> JSValue;
798}
799unsafe extern "C" {
800    pub fn JS_HasException(ctx: *mut JSContext) -> bool;
801}
802unsafe extern "C" {
803    pub fn JS_IsError(val: JSValue) -> bool;
804}
805unsafe extern "C" {
806    pub fn JS_IsUncatchableError(val: JSValue) -> bool;
807}
808unsafe extern "C" {
809    pub fn JS_SetUncatchableError(ctx: *mut JSContext, val: JSValue);
810}
811unsafe extern "C" {
812    pub fn JS_ClearUncatchableError(ctx: *mut JSContext, val: JSValue);
813}
814unsafe extern "C" {
815    pub fn JS_ResetUncatchableError(ctx: *mut JSContext);
816}
817unsafe extern "C" {
818    pub fn JS_NewError(ctx: *mut JSContext) -> JSValue;
819}
820unsafe extern "C" {
821    pub fn JS_NewInternalError(
822        ctx: *mut JSContext,
823        fmt: *const ::core::ffi::c_char,
824        ...
825    ) -> JSValue;
826}
827unsafe extern "C" {
828    pub fn JS_NewPlainError(ctx: *mut JSContext, fmt: *const ::core::ffi::c_char, ...) -> JSValue;
829}
830unsafe extern "C" {
831    pub fn JS_NewRangeError(ctx: *mut JSContext, fmt: *const ::core::ffi::c_char, ...) -> JSValue;
832}
833unsafe extern "C" {
834    pub fn JS_NewReferenceError(
835        ctx: *mut JSContext,
836        fmt: *const ::core::ffi::c_char,
837        ...
838    ) -> JSValue;
839}
840unsafe extern "C" {
841    pub fn JS_NewSyntaxError(ctx: *mut JSContext, fmt: *const ::core::ffi::c_char, ...) -> JSValue;
842}
843unsafe extern "C" {
844    pub fn JS_NewTypeError(ctx: *mut JSContext, fmt: *const ::core::ffi::c_char, ...) -> JSValue;
845}
846unsafe extern "C" {
847    pub fn JS_ThrowInternalError(
848        ctx: *mut JSContext,
849        fmt: *const ::core::ffi::c_char,
850        ...
851    ) -> JSValue;
852}
853unsafe extern "C" {
854    pub fn JS_ThrowPlainError(ctx: *mut JSContext, fmt: *const ::core::ffi::c_char, ...)
855    -> JSValue;
856}
857unsafe extern "C" {
858    pub fn JS_ThrowRangeError(ctx: *mut JSContext, fmt: *const ::core::ffi::c_char, ...)
859    -> JSValue;
860}
861unsafe extern "C" {
862    pub fn JS_ThrowReferenceError(
863        ctx: *mut JSContext,
864        fmt: *const ::core::ffi::c_char,
865        ...
866    ) -> JSValue;
867}
868unsafe extern "C" {
869    pub fn JS_ThrowSyntaxError(
870        ctx: *mut JSContext,
871        fmt: *const ::core::ffi::c_char,
872        ...
873    ) -> JSValue;
874}
875unsafe extern "C" {
876    pub fn JS_ThrowTypeError(ctx: *mut JSContext, fmt: *const ::core::ffi::c_char, ...) -> JSValue;
877}
878unsafe extern "C" {
879    pub fn JS_ThrowDOMException(
880        ctx: *mut JSContext,
881        name: *const ::core::ffi::c_char,
882        fmt: *const ::core::ffi::c_char,
883        ...
884    ) -> JSValue;
885}
886unsafe extern "C" {
887    pub fn JS_ThrowOutOfMemory(ctx: *mut JSContext) -> JSValue;
888}
889unsafe extern "C" {
890    pub fn JS_FreeValue(ctx: *mut JSContext, v: JSValue);
891}
892unsafe extern "C" {
893    pub fn JS_FreeValueRT(rt: *mut JSRuntime, v: JSValue);
894}
895unsafe extern "C" {
896    pub fn JS_DupValue(ctx: *mut JSContext, v: JSValue) -> JSValue;
897}
898unsafe extern "C" {
899    pub fn JS_DupValueRT(rt: *mut JSRuntime, v: JSValue) -> JSValue;
900}
901unsafe extern "C" {
902    pub fn JS_ToBool(ctx: *mut JSContext, val: JSValue) -> ::core::ffi::c_int;
903}
904unsafe extern "C" {
905    pub fn JS_ToNumber(ctx: *mut JSContext, val: JSValue) -> JSValue;
906}
907unsafe extern "C" {
908    pub fn JS_ToInt32(ctx: *mut JSContext, pres: *mut i32, val: JSValue) -> ::core::ffi::c_int;
909}
910unsafe extern "C" {
911    pub fn JS_ToInt64(ctx: *mut JSContext, pres: *mut i64, val: JSValue) -> ::core::ffi::c_int;
912}
913unsafe extern "C" {
914    pub fn JS_ToIndex(ctx: *mut JSContext, plen: *mut u64, val: JSValue) -> ::core::ffi::c_int;
915}
916unsafe extern "C" {
917    pub fn JS_ToFloat64(ctx: *mut JSContext, pres: *mut f64, val: JSValue) -> ::core::ffi::c_int;
918}
919unsafe extern "C" {
920    pub fn JS_ToBigInt64(ctx: *mut JSContext, pres: *mut i64, val: JSValue) -> ::core::ffi::c_int;
921}
922unsafe extern "C" {
923    pub fn JS_ToBigUint64(ctx: *mut JSContext, pres: *mut u64, val: JSValue) -> ::core::ffi::c_int;
924}
925unsafe extern "C" {
926    pub fn JS_ToInt64Ext(ctx: *mut JSContext, pres: *mut i64, val: JSValue) -> ::core::ffi::c_int;
927}
928unsafe extern "C" {
929    pub fn JS_NewStringLen(
930        ctx: *mut JSContext,
931        str1: *const ::core::ffi::c_char,
932        len1: size_t,
933    ) -> JSValue;
934}
935unsafe extern "C" {
936    pub fn JS_NewTwoByteString(ctx: *mut JSContext, buf: *const u16, len: size_t) -> JSValue;
937}
938unsafe extern "C" {
939    pub fn JS_NewAtomString(ctx: *mut JSContext, str_: *const ::core::ffi::c_char) -> JSValue;
940}
941unsafe extern "C" {
942    pub fn JS_ToString(ctx: *mut JSContext, val: JSValue) -> JSValue;
943}
944unsafe extern "C" {
945    pub fn JS_ToPropertyKey(ctx: *mut JSContext, val: JSValue) -> JSValue;
946}
947unsafe extern "C" {
948    pub fn JS_ToCStringLen2(
949        ctx: *mut JSContext,
950        plen: *mut size_t,
951        val1: JSValue,
952        cesu8: bool,
953    ) -> *const ::core::ffi::c_char;
954}
955unsafe extern "C" {
956    pub fn JS_FreeCString(ctx: *mut JSContext, ptr: *const ::core::ffi::c_char);
957}
958unsafe extern "C" {
959    pub fn JS_FreeCStringRT(rt: *mut JSRuntime, ptr: *const ::core::ffi::c_char);
960}
961unsafe extern "C" {
962    pub fn JS_NewObjectProtoClass(
963        ctx: *mut JSContext,
964        proto: JSValue,
965        class_id: JSClassID,
966    ) -> JSValue;
967}
968unsafe extern "C" {
969    pub fn JS_NewObjectClass(ctx: *mut JSContext, class_id: JSClassID) -> JSValue;
970}
971unsafe extern "C" {
972    pub fn JS_NewObjectProto(ctx: *mut JSContext, proto: JSValue) -> JSValue;
973}
974unsafe extern "C" {
975    pub fn JS_NewObject(ctx: *mut JSContext) -> JSValue;
976}
977unsafe extern "C" {
978    pub fn JS_NewObjectFrom(
979        ctx: *mut JSContext,
980        count: ::core::ffi::c_int,
981        props: *const JSAtom,
982        values: *const JSValue,
983    ) -> JSValue;
984}
985unsafe extern "C" {
986    pub fn JS_NewObjectFromStr(
987        ctx: *mut JSContext,
988        count: ::core::ffi::c_int,
989        props: *mut *const ::core::ffi::c_char,
990        values: *const JSValue,
991    ) -> JSValue;
992}
993unsafe extern "C" {
994    pub fn JS_ToObject(ctx: *mut JSContext, val: JSValue) -> JSValue;
995}
996unsafe extern "C" {
997    pub fn JS_ToObjectString(ctx: *mut JSContext, val: JSValue) -> JSValue;
998}
999unsafe extern "C" {
1000    pub fn JS_IsFunction(ctx: *mut JSContext, val: JSValue) -> bool;
1001}
1002unsafe extern "C" {
1003    pub fn JS_IsConstructor(ctx: *mut JSContext, val: JSValue) -> bool;
1004}
1005unsafe extern "C" {
1006    pub fn JS_SetConstructorBit(ctx: *mut JSContext, func_obj: JSValue, val: bool) -> bool;
1007}
1008unsafe extern "C" {
1009    pub fn JS_IsRegExp(val: JSValue) -> bool;
1010}
1011unsafe extern "C" {
1012    pub fn JS_IsMap(val: JSValue) -> bool;
1013}
1014unsafe extern "C" {
1015    pub fn JS_IsSet(val: JSValue) -> bool;
1016}
1017unsafe extern "C" {
1018    pub fn JS_IsWeakRef(val: JSValue) -> bool;
1019}
1020unsafe extern "C" {
1021    pub fn JS_IsWeakSet(val: JSValue) -> bool;
1022}
1023unsafe extern "C" {
1024    pub fn JS_IsWeakMap(val: JSValue) -> bool;
1025}
1026unsafe extern "C" {
1027    pub fn JS_IsDataView(val: JSValue) -> bool;
1028}
1029unsafe extern "C" {
1030    pub fn JS_NewArray(ctx: *mut JSContext) -> JSValue;
1031}
1032unsafe extern "C" {
1033    pub fn JS_NewArrayFrom(
1034        ctx: *mut JSContext,
1035        count: ::core::ffi::c_int,
1036        values: *const JSValue,
1037    ) -> JSValue;
1038}
1039unsafe extern "C" {
1040    pub fn JS_IsArray(val: JSValue) -> bool;
1041}
1042unsafe extern "C" {
1043    pub fn JS_IsProxy(val: JSValue) -> bool;
1044}
1045unsafe extern "C" {
1046    pub fn JS_GetProxyTarget(ctx: *mut JSContext, proxy: JSValue) -> JSValue;
1047}
1048unsafe extern "C" {
1049    pub fn JS_GetProxyHandler(ctx: *mut JSContext, proxy: JSValue) -> JSValue;
1050}
1051unsafe extern "C" {
1052    pub fn JS_NewProxy(ctx: *mut JSContext, target: JSValue, handler: JSValue) -> JSValue;
1053}
1054unsafe extern "C" {
1055    pub fn JS_NewDate(ctx: *mut JSContext, epoch_ms: f64) -> JSValue;
1056}
1057unsafe extern "C" {
1058    pub fn JS_IsDate(v: JSValue) -> bool;
1059}
1060unsafe extern "C" {
1061    pub fn JS_GetProperty(ctx: *mut JSContext, this_obj: JSValue, prop: JSAtom) -> JSValue;
1062}
1063unsafe extern "C" {
1064    pub fn JS_GetPropertyUint32(ctx: *mut JSContext, this_obj: JSValue, idx: u32) -> JSValue;
1065}
1066unsafe extern "C" {
1067    pub fn JS_GetPropertyInt64(ctx: *mut JSContext, this_obj: JSValue, idx: i64) -> JSValue;
1068}
1069unsafe extern "C" {
1070    pub fn JS_GetPropertyStr(
1071        ctx: *mut JSContext,
1072        this_obj: JSValue,
1073        prop: *const ::core::ffi::c_char,
1074    ) -> JSValue;
1075}
1076unsafe extern "C" {
1077    pub fn JS_SetProperty(
1078        ctx: *mut JSContext,
1079        this_obj: JSValue,
1080        prop: JSAtom,
1081        val: JSValue,
1082    ) -> ::core::ffi::c_int;
1083}
1084unsafe extern "C" {
1085    pub fn JS_SetPropertyUint32(
1086        ctx: *mut JSContext,
1087        this_obj: JSValue,
1088        idx: u32,
1089        val: JSValue,
1090    ) -> ::core::ffi::c_int;
1091}
1092unsafe extern "C" {
1093    pub fn JS_SetPropertyInt64(
1094        ctx: *mut JSContext,
1095        this_obj: JSValue,
1096        idx: i64,
1097        val: JSValue,
1098    ) -> ::core::ffi::c_int;
1099}
1100unsafe extern "C" {
1101    pub fn JS_SetPropertyStr(
1102        ctx: *mut JSContext,
1103        this_obj: JSValue,
1104        prop: *const ::core::ffi::c_char,
1105        val: JSValue,
1106    ) -> ::core::ffi::c_int;
1107}
1108unsafe extern "C" {
1109    pub fn JS_HasProperty(
1110        ctx: *mut JSContext,
1111        this_obj: JSValue,
1112        prop: JSAtom,
1113    ) -> ::core::ffi::c_int;
1114}
1115unsafe extern "C" {
1116    pub fn JS_IsExtensible(ctx: *mut JSContext, obj: JSValue) -> ::core::ffi::c_int;
1117}
1118unsafe extern "C" {
1119    pub fn JS_PreventExtensions(ctx: *mut JSContext, obj: JSValue) -> ::core::ffi::c_int;
1120}
1121unsafe extern "C" {
1122    pub fn JS_DeleteProperty(
1123        ctx: *mut JSContext,
1124        obj: JSValue,
1125        prop: JSAtom,
1126        flags: ::core::ffi::c_int,
1127    ) -> ::core::ffi::c_int;
1128}
1129unsafe extern "C" {
1130    pub fn JS_SetPrototype(
1131        ctx: *mut JSContext,
1132        obj: JSValue,
1133        proto_val: JSValue,
1134    ) -> ::core::ffi::c_int;
1135}
1136unsafe extern "C" {
1137    pub fn JS_GetPrototype(ctx: *mut JSContext, val: JSValue) -> JSValue;
1138}
1139unsafe extern "C" {
1140    pub fn JS_GetLength(ctx: *mut JSContext, obj: JSValue, pres: *mut i64) -> ::core::ffi::c_int;
1141}
1142unsafe extern "C" {
1143    pub fn JS_SetLength(ctx: *mut JSContext, obj: JSValue, len: i64) -> ::core::ffi::c_int;
1144}
1145unsafe extern "C" {
1146    pub fn JS_SealObject(ctx: *mut JSContext, obj: JSValue) -> ::core::ffi::c_int;
1147}
1148unsafe extern "C" {
1149    pub fn JS_FreezeObject(ctx: *mut JSContext, obj: JSValue) -> ::core::ffi::c_int;
1150}
1151unsafe extern "C" {
1152    pub fn JS_GetOwnPropertyNames(
1153        ctx: *mut JSContext,
1154        ptab: *mut *mut JSPropertyEnum,
1155        plen: *mut u32,
1156        obj: JSValue,
1157        flags: ::core::ffi::c_int,
1158    ) -> ::core::ffi::c_int;
1159}
1160unsafe extern "C" {
1161    pub fn JS_GetOwnProperty(
1162        ctx: *mut JSContext,
1163        desc: *mut JSPropertyDescriptor,
1164        obj: JSValue,
1165        prop: JSAtom,
1166    ) -> ::core::ffi::c_int;
1167}
1168unsafe extern "C" {
1169    pub fn JS_FreePropertyEnum(ctx: *mut JSContext, tab: *mut JSPropertyEnum, len: u32);
1170}
1171unsafe extern "C" {
1172    pub fn JS_Call(
1173        ctx: *mut JSContext,
1174        func_obj: JSValue,
1175        this_obj: JSValue,
1176        argc: ::core::ffi::c_int,
1177        argv: *mut JSValue,
1178    ) -> JSValue;
1179}
1180unsafe extern "C" {
1181    pub fn JS_Invoke(
1182        ctx: *mut JSContext,
1183        this_val: JSValue,
1184        atom: JSAtom,
1185        argc: ::core::ffi::c_int,
1186        argv: *mut JSValue,
1187    ) -> JSValue;
1188}
1189unsafe extern "C" {
1190    pub fn JS_CallConstructor(
1191        ctx: *mut JSContext,
1192        func_obj: JSValue,
1193        argc: ::core::ffi::c_int,
1194        argv: *mut JSValue,
1195    ) -> JSValue;
1196}
1197unsafe extern "C" {
1198    pub fn JS_CallConstructor2(
1199        ctx: *mut JSContext,
1200        func_obj: JSValue,
1201        new_target: JSValue,
1202        argc: ::core::ffi::c_int,
1203        argv: *mut JSValue,
1204    ) -> JSValue;
1205}
1206unsafe extern "C" {
1207    pub fn JS_DetectModule(input: *const ::core::ffi::c_char, input_len: size_t) -> bool;
1208}
1209unsafe extern "C" {
1210    pub fn JS_Eval(
1211        ctx: *mut JSContext,
1212        input: *const ::core::ffi::c_char,
1213        input_len: size_t,
1214        filename: *const ::core::ffi::c_char,
1215        eval_flags: ::core::ffi::c_int,
1216    ) -> JSValue;
1217}
1218unsafe extern "C" {
1219    pub fn JS_Eval2(
1220        ctx: *mut JSContext,
1221        input: *const ::core::ffi::c_char,
1222        input_len: size_t,
1223        options: *mut JSEvalOptions,
1224    ) -> JSValue;
1225}
1226unsafe extern "C" {
1227    pub fn JS_EvalThis(
1228        ctx: *mut JSContext,
1229        this_obj: JSValue,
1230        input: *const ::core::ffi::c_char,
1231        input_len: size_t,
1232        filename: *const ::core::ffi::c_char,
1233        eval_flags: ::core::ffi::c_int,
1234    ) -> JSValue;
1235}
1236unsafe extern "C" {
1237    pub fn JS_EvalThis2(
1238        ctx: *mut JSContext,
1239        this_obj: JSValue,
1240        input: *const ::core::ffi::c_char,
1241        input_len: size_t,
1242        options: *mut JSEvalOptions,
1243    ) -> JSValue;
1244}
1245unsafe extern "C" {
1246    pub fn JS_GetGlobalObject(ctx: *mut JSContext) -> JSValue;
1247}
1248unsafe extern "C" {
1249    pub fn JS_IsInstanceOf(ctx: *mut JSContext, val: JSValue, obj: JSValue) -> ::core::ffi::c_int;
1250}
1251unsafe extern "C" {
1252    pub fn JS_DefineProperty(
1253        ctx: *mut JSContext,
1254        this_obj: JSValue,
1255        prop: JSAtom,
1256        val: JSValue,
1257        getter: JSValue,
1258        setter: JSValue,
1259        flags: ::core::ffi::c_int,
1260    ) -> ::core::ffi::c_int;
1261}
1262unsafe extern "C" {
1263    pub fn JS_DefinePropertyValue(
1264        ctx: *mut JSContext,
1265        this_obj: JSValue,
1266        prop: JSAtom,
1267        val: JSValue,
1268        flags: ::core::ffi::c_int,
1269    ) -> ::core::ffi::c_int;
1270}
1271unsafe extern "C" {
1272    pub fn JS_DefinePropertyValueUint32(
1273        ctx: *mut JSContext,
1274        this_obj: JSValue,
1275        idx: u32,
1276        val: JSValue,
1277        flags: ::core::ffi::c_int,
1278    ) -> ::core::ffi::c_int;
1279}
1280unsafe extern "C" {
1281    pub fn JS_DefinePropertyValueStr(
1282        ctx: *mut JSContext,
1283        this_obj: JSValue,
1284        prop: *const ::core::ffi::c_char,
1285        val: JSValue,
1286        flags: ::core::ffi::c_int,
1287    ) -> ::core::ffi::c_int;
1288}
1289unsafe extern "C" {
1290    pub fn JS_DefinePropertyGetSet(
1291        ctx: *mut JSContext,
1292        this_obj: JSValue,
1293        prop: JSAtom,
1294        getter: JSValue,
1295        setter: JSValue,
1296        flags: ::core::ffi::c_int,
1297    ) -> ::core::ffi::c_int;
1298}
1299unsafe extern "C" {
1300    pub fn JS_SetOpaque(obj: JSValue, opaque: *mut ::core::ffi::c_void) -> ::core::ffi::c_int;
1301}
1302unsafe extern "C" {
1303    pub fn JS_GetOpaque(obj: JSValue, class_id: JSClassID) -> *mut ::core::ffi::c_void;
1304}
1305unsafe extern "C" {
1306    pub fn JS_GetOpaque2(
1307        ctx: *mut JSContext,
1308        obj: JSValue,
1309        class_id: JSClassID,
1310    ) -> *mut ::core::ffi::c_void;
1311}
1312unsafe extern "C" {
1313    pub fn JS_GetAnyOpaque(obj: JSValue, class_id: *mut JSClassID) -> *mut ::core::ffi::c_void;
1314}
1315unsafe extern "C" {
1316    pub fn JS_ParseJSON(
1317        ctx: *mut JSContext,
1318        buf: *const ::core::ffi::c_char,
1319        buf_len: size_t,
1320        filename: *const ::core::ffi::c_char,
1321    ) -> JSValue;
1322}
1323unsafe extern "C" {
1324    pub fn JS_JSONStringify(
1325        ctx: *mut JSContext,
1326        obj: JSValue,
1327        replacer: JSValue,
1328        space0: JSValue,
1329    ) -> JSValue;
1330}
1331pub type JSFreeArrayBufferDataFunc = ::core::option::Option<
1332    unsafe extern "C" fn(
1333        rt: *mut JSRuntime,
1334        opaque: *mut ::core::ffi::c_void,
1335        ptr: *mut ::core::ffi::c_void,
1336    ),
1337>;
1338unsafe extern "C" {
1339    pub fn JS_NewArrayBuffer(
1340        ctx: *mut JSContext,
1341        buf: *mut u8,
1342        len: size_t,
1343        free_func: JSFreeArrayBufferDataFunc,
1344        opaque: *mut ::core::ffi::c_void,
1345        is_shared: bool,
1346    ) -> JSValue;
1347}
1348unsafe extern "C" {
1349    pub fn JS_NewArrayBufferCopy(ctx: *mut JSContext, buf: *const u8, len: size_t) -> JSValue;
1350}
1351unsafe extern "C" {
1352    pub fn JS_DetachArrayBuffer(ctx: *mut JSContext, obj: JSValue);
1353}
1354unsafe extern "C" {
1355    pub fn JS_GetArrayBuffer(ctx: *mut JSContext, psize: *mut size_t, obj: JSValue) -> *mut u8;
1356}
1357unsafe extern "C" {
1358    pub fn JS_IsArrayBuffer(obj: JSValue) -> bool;
1359}
1360unsafe extern "C" {
1361    pub fn JS_GetUint8Array(ctx: *mut JSContext, psize: *mut size_t, obj: JSValue) -> *mut u8;
1362}
1363pub const JSTypedArrayEnum_JS_TYPED_ARRAY_UINT8C: JSTypedArrayEnum = 0;
1364pub const JSTypedArrayEnum_JS_TYPED_ARRAY_INT8: JSTypedArrayEnum = 1;
1365pub const JSTypedArrayEnum_JS_TYPED_ARRAY_UINT8: JSTypedArrayEnum = 2;
1366pub const JSTypedArrayEnum_JS_TYPED_ARRAY_INT16: JSTypedArrayEnum = 3;
1367pub const JSTypedArrayEnum_JS_TYPED_ARRAY_UINT16: JSTypedArrayEnum = 4;
1368pub const JSTypedArrayEnum_JS_TYPED_ARRAY_INT32: JSTypedArrayEnum = 5;
1369pub const JSTypedArrayEnum_JS_TYPED_ARRAY_UINT32: JSTypedArrayEnum = 6;
1370pub const JSTypedArrayEnum_JS_TYPED_ARRAY_BIG_INT64: JSTypedArrayEnum = 7;
1371pub const JSTypedArrayEnum_JS_TYPED_ARRAY_BIG_UINT64: JSTypedArrayEnum = 8;
1372pub const JSTypedArrayEnum_JS_TYPED_ARRAY_FLOAT16: JSTypedArrayEnum = 9;
1373pub const JSTypedArrayEnum_JS_TYPED_ARRAY_FLOAT32: JSTypedArrayEnum = 10;
1374pub const JSTypedArrayEnum_JS_TYPED_ARRAY_FLOAT64: JSTypedArrayEnum = 11;
1375pub type JSTypedArrayEnum = ::core::ffi::c_uint;
1376unsafe extern "C" {
1377    pub fn JS_NewTypedArray(
1378        ctx: *mut JSContext,
1379        argc: ::core::ffi::c_int,
1380        argv: *mut JSValue,
1381        array_type: JSTypedArrayEnum,
1382    ) -> JSValue;
1383}
1384unsafe extern "C" {
1385    pub fn JS_GetTypedArrayBuffer(
1386        ctx: *mut JSContext,
1387        obj: JSValue,
1388        pbyte_offset: *mut size_t,
1389        pbyte_length: *mut size_t,
1390        pbytes_per_element: *mut size_t,
1391    ) -> JSValue;
1392}
1393unsafe extern "C" {
1394    pub fn JS_NewUint8Array(
1395        ctx: *mut JSContext,
1396        buf: *mut u8,
1397        len: size_t,
1398        free_func: JSFreeArrayBufferDataFunc,
1399        opaque: *mut ::core::ffi::c_void,
1400        is_shared: bool,
1401    ) -> JSValue;
1402}
1403unsafe extern "C" {
1404    pub fn JS_GetTypedArrayType(obj: JSValue) -> ::core::ffi::c_int;
1405}
1406unsafe extern "C" {
1407    pub fn JS_NewUint8ArrayCopy(ctx: *mut JSContext, buf: *const u8, len: size_t) -> JSValue;
1408}
1409#[repr(C)]
1410#[derive(Debug, Copy, Clone)]
1411pub struct JSSharedArrayBufferFunctions {
1412    pub sab_alloc: ::core::option::Option<
1413        unsafe extern "C" fn(
1414            opaque: *mut ::core::ffi::c_void,
1415            size: size_t,
1416        ) -> *mut ::core::ffi::c_void,
1417    >,
1418    pub sab_free: ::core::option::Option<
1419        unsafe extern "C" fn(opaque: *mut ::core::ffi::c_void, ptr: *mut ::core::ffi::c_void),
1420    >,
1421    pub sab_dup: ::core::option::Option<
1422        unsafe extern "C" fn(opaque: *mut ::core::ffi::c_void, ptr: *mut ::core::ffi::c_void),
1423    >,
1424    pub sab_opaque: *mut ::core::ffi::c_void,
1425}
1426#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1427const _: () = {
1428    ["Size of JSSharedArrayBufferFunctions"]
1429        [::core::mem::size_of::<JSSharedArrayBufferFunctions>() - 32usize];
1430    ["Alignment of JSSharedArrayBufferFunctions"]
1431        [::core::mem::align_of::<JSSharedArrayBufferFunctions>() - 8usize];
1432    ["Offset of field: JSSharedArrayBufferFunctions::sab_alloc"]
1433        [::core::mem::offset_of!(JSSharedArrayBufferFunctions, sab_alloc) - 0usize];
1434    ["Offset of field: JSSharedArrayBufferFunctions::sab_free"]
1435        [::core::mem::offset_of!(JSSharedArrayBufferFunctions, sab_free) - 8usize];
1436    ["Offset of field: JSSharedArrayBufferFunctions::sab_dup"]
1437        [::core::mem::offset_of!(JSSharedArrayBufferFunctions, sab_dup) - 16usize];
1438    ["Offset of field: JSSharedArrayBufferFunctions::sab_opaque"]
1439        [::core::mem::offset_of!(JSSharedArrayBufferFunctions, sab_opaque) - 24usize];
1440};
1441unsafe extern "C" {
1442    pub fn JS_SetSharedArrayBufferFunctions(
1443        rt: *mut JSRuntime,
1444        sf: *const JSSharedArrayBufferFunctions,
1445    );
1446}
1447pub const JSPromiseStateEnum_JS_PROMISE_NOT_A_PROMISE: JSPromiseStateEnum = -1;
1448pub const JSPromiseStateEnum_JS_PROMISE_PENDING: JSPromiseStateEnum = 0;
1449pub const JSPromiseStateEnum_JS_PROMISE_FULFILLED: JSPromiseStateEnum = 1;
1450pub const JSPromiseStateEnum_JS_PROMISE_REJECTED: JSPromiseStateEnum = 2;
1451pub type JSPromiseStateEnum = ::core::ffi::c_int;
1452unsafe extern "C" {
1453    pub fn JS_NewPromiseCapability(ctx: *mut JSContext, resolving_funcs: *mut JSValue) -> JSValue;
1454}
1455unsafe extern "C" {
1456    pub fn JS_PromiseState(ctx: *mut JSContext, promise: JSValue) -> JSPromiseStateEnum;
1457}
1458unsafe extern "C" {
1459    pub fn JS_PromiseResult(ctx: *mut JSContext, promise: JSValue) -> JSValue;
1460}
1461unsafe extern "C" {
1462    pub fn JS_IsPromise(val: JSValue) -> bool;
1463}
1464unsafe extern "C" {
1465    pub fn JS_NewSymbol(
1466        ctx: *mut JSContext,
1467        description: *const ::core::ffi::c_char,
1468        is_global: bool,
1469    ) -> JSValue;
1470}
1471pub const JSPromiseHookType_JS_PROMISE_HOOK_INIT: JSPromiseHookType = 0;
1472pub const JSPromiseHookType_JS_PROMISE_HOOK_BEFORE: JSPromiseHookType = 1;
1473pub const JSPromiseHookType_JS_PROMISE_HOOK_AFTER: JSPromiseHookType = 2;
1474pub const JSPromiseHookType_JS_PROMISE_HOOK_RESOLVE: JSPromiseHookType = 3;
1475pub type JSPromiseHookType = ::core::ffi::c_uint;
1476pub type JSPromiseHook = ::core::option::Option<
1477    unsafe extern "C" fn(
1478        ctx: *mut JSContext,
1479        type_: JSPromiseHookType,
1480        promise: JSValue,
1481        parent_promise: JSValue,
1482        opaque: *mut ::core::ffi::c_void,
1483    ),
1484>;
1485unsafe extern "C" {
1486    pub fn JS_SetPromiseHook(
1487        rt: *mut JSRuntime,
1488        promise_hook: JSPromiseHook,
1489        opaque: *mut ::core::ffi::c_void,
1490    );
1491}
1492pub type JSHostPromiseRejectionTracker = ::core::option::Option<
1493    unsafe extern "C" fn(
1494        ctx: *mut JSContext,
1495        promise: JSValue,
1496        reason: JSValue,
1497        is_handled: bool,
1498        opaque: *mut ::core::ffi::c_void,
1499    ),
1500>;
1501unsafe extern "C" {
1502    pub fn JS_SetHostPromiseRejectionTracker(
1503        rt: *mut JSRuntime,
1504        cb: JSHostPromiseRejectionTracker,
1505        opaque: *mut ::core::ffi::c_void,
1506    );
1507}
1508pub type JSInterruptHandler = ::core::option::Option<
1509    unsafe extern "C" fn(
1510        rt: *mut JSRuntime,
1511        opaque: *mut ::core::ffi::c_void,
1512    ) -> ::core::ffi::c_int,
1513>;
1514unsafe extern "C" {
1515    pub fn JS_SetInterruptHandler(
1516        rt: *mut JSRuntime,
1517        cb: JSInterruptHandler,
1518        opaque: *mut ::core::ffi::c_void,
1519    );
1520}
1521unsafe extern "C" {
1522    pub fn JS_SetCanBlock(rt: *mut JSRuntime, can_block: bool);
1523}
1524unsafe extern "C" {
1525    pub fn JS_SetIsHTMLDDA(ctx: *mut JSContext, obj: JSValue);
1526}
1527#[repr(C)]
1528#[derive(Debug, Copy, Clone)]
1529pub struct JSModuleDef {
1530    _unused: [u8; 0],
1531}
1532pub type JSModuleNormalizeFunc = ::core::option::Option<
1533    unsafe extern "C" fn(
1534        ctx: *mut JSContext,
1535        module_base_name: *const ::core::ffi::c_char,
1536        module_name: *const ::core::ffi::c_char,
1537        opaque: *mut ::core::ffi::c_void,
1538    ) -> *mut ::core::ffi::c_char,
1539>;
1540pub type JSModuleLoaderFunc = ::core::option::Option<
1541    unsafe extern "C" fn(
1542        ctx: *mut JSContext,
1543        module_name: *const ::core::ffi::c_char,
1544        opaque: *mut ::core::ffi::c_void,
1545    ) -> *mut JSModuleDef,
1546>;
1547unsafe extern "C" {
1548    pub fn JS_SetModuleLoaderFunc(
1549        rt: *mut JSRuntime,
1550        module_normalize: JSModuleNormalizeFunc,
1551        module_loader: JSModuleLoaderFunc,
1552        opaque: *mut ::core::ffi::c_void,
1553    );
1554}
1555unsafe extern "C" {
1556    pub fn JS_GetImportMeta(ctx: *mut JSContext, m: *mut JSModuleDef) -> JSValue;
1557}
1558unsafe extern "C" {
1559    pub fn JS_GetModuleName(ctx: *mut JSContext, m: *mut JSModuleDef) -> JSAtom;
1560}
1561unsafe extern "C" {
1562    pub fn JS_GetModuleNamespace(ctx: *mut JSContext, m: *mut JSModuleDef) -> JSValue;
1563}
1564pub type JSJobFunc = ::core::option::Option<
1565    unsafe extern "C" fn(
1566        ctx: *mut JSContext,
1567        argc: ::core::ffi::c_int,
1568        argv: *mut JSValue,
1569    ) -> JSValue,
1570>;
1571unsafe extern "C" {
1572    pub fn JS_EnqueueJob(
1573        ctx: *mut JSContext,
1574        job_func: JSJobFunc,
1575        argc: ::core::ffi::c_int,
1576        argv: *mut JSValue,
1577    ) -> ::core::ffi::c_int;
1578}
1579unsafe extern "C" {
1580    pub fn JS_IsJobPending(rt: *mut JSRuntime) -> bool;
1581}
1582unsafe extern "C" {
1583    pub fn JS_ExecutePendingJob(
1584        rt: *mut JSRuntime,
1585        pctx: *mut *mut JSContext,
1586    ) -> ::core::ffi::c_int;
1587}
1588#[repr(C)]
1589#[derive(Debug, Copy, Clone)]
1590pub struct JSSABTab {
1591    pub tab: *mut *mut u8,
1592    pub len: size_t,
1593}
1594#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1595const _: () = {
1596    ["Size of JSSABTab"][::core::mem::size_of::<JSSABTab>() - 16usize];
1597    ["Alignment of JSSABTab"][::core::mem::align_of::<JSSABTab>() - 8usize];
1598    ["Offset of field: JSSABTab::tab"][::core::mem::offset_of!(JSSABTab, tab) - 0usize];
1599    ["Offset of field: JSSABTab::len"][::core::mem::offset_of!(JSSABTab, len) - 8usize];
1600};
1601unsafe extern "C" {
1602    pub fn JS_WriteObject(
1603        ctx: *mut JSContext,
1604        psize: *mut size_t,
1605        obj: JSValue,
1606        flags: ::core::ffi::c_int,
1607    ) -> *mut u8;
1608}
1609unsafe extern "C" {
1610    pub fn JS_WriteObject2(
1611        ctx: *mut JSContext,
1612        psize: *mut size_t,
1613        obj: JSValue,
1614        flags: ::core::ffi::c_int,
1615        psab_tab: *mut JSSABTab,
1616    ) -> *mut u8;
1617}
1618unsafe extern "C" {
1619    pub fn JS_ReadObject(
1620        ctx: *mut JSContext,
1621        buf: *const u8,
1622        buf_len: size_t,
1623        flags: ::core::ffi::c_int,
1624    ) -> JSValue;
1625}
1626unsafe extern "C" {
1627    pub fn JS_ReadObject2(
1628        ctx: *mut JSContext,
1629        buf: *const u8,
1630        buf_len: size_t,
1631        flags: ::core::ffi::c_int,
1632        psab_tab: *mut JSSABTab,
1633    ) -> JSValue;
1634}
1635unsafe extern "C" {
1636    pub fn JS_EvalFunction(ctx: *mut JSContext, fun_obj: JSValue) -> JSValue;
1637}
1638unsafe extern "C" {
1639    pub fn JS_ResolveModule(ctx: *mut JSContext, obj: JSValue) -> ::core::ffi::c_int;
1640}
1641unsafe extern "C" {
1642    pub fn JS_GetScriptOrModuleName(
1643        ctx: *mut JSContext,
1644        n_stack_levels: ::core::ffi::c_int,
1645    ) -> JSAtom;
1646}
1647unsafe extern "C" {
1648    pub fn JS_LoadModule(
1649        ctx: *mut JSContext,
1650        basename: *const ::core::ffi::c_char,
1651        filename: *const ::core::ffi::c_char,
1652    ) -> JSValue;
1653}
1654pub const JSCFunctionEnum_JS_CFUNC_generic: JSCFunctionEnum = 0;
1655pub const JSCFunctionEnum_JS_CFUNC_generic_magic: JSCFunctionEnum = 1;
1656pub const JSCFunctionEnum_JS_CFUNC_constructor: JSCFunctionEnum = 2;
1657pub const JSCFunctionEnum_JS_CFUNC_constructor_magic: JSCFunctionEnum = 3;
1658pub const JSCFunctionEnum_JS_CFUNC_constructor_or_func: JSCFunctionEnum = 4;
1659pub const JSCFunctionEnum_JS_CFUNC_constructor_or_func_magic: JSCFunctionEnum = 5;
1660pub const JSCFunctionEnum_JS_CFUNC_f_f: JSCFunctionEnum = 6;
1661pub const JSCFunctionEnum_JS_CFUNC_f_f_f: JSCFunctionEnum = 7;
1662pub const JSCFunctionEnum_JS_CFUNC_getter: JSCFunctionEnum = 8;
1663pub const JSCFunctionEnum_JS_CFUNC_setter: JSCFunctionEnum = 9;
1664pub const JSCFunctionEnum_JS_CFUNC_getter_magic: JSCFunctionEnum = 10;
1665pub const JSCFunctionEnum_JS_CFUNC_setter_magic: JSCFunctionEnum = 11;
1666pub const JSCFunctionEnum_JS_CFUNC_iterator_next: JSCFunctionEnum = 12;
1667pub type JSCFunctionEnum = ::core::ffi::c_uint;
1668#[repr(C)]
1669#[derive(Copy, Clone)]
1670pub union JSCFunctionType {
1671    pub generic: JSCFunction,
1672    pub generic_magic: ::core::option::Option<
1673        unsafe extern "C" fn(
1674            ctx: *mut JSContext,
1675            this_val: JSValue,
1676            argc: ::core::ffi::c_int,
1677            argv: *mut JSValue,
1678            magic: ::core::ffi::c_int,
1679        ) -> JSValue,
1680    >,
1681    pub constructor: JSCFunction,
1682    pub constructor_magic: ::core::option::Option<
1683        unsafe extern "C" fn(
1684            ctx: *mut JSContext,
1685            new_target: JSValue,
1686            argc: ::core::ffi::c_int,
1687            argv: *mut JSValue,
1688            magic: ::core::ffi::c_int,
1689        ) -> JSValue,
1690    >,
1691    pub constructor_or_func: JSCFunction,
1692    pub f_f: ::core::option::Option<unsafe extern "C" fn(arg1: f64) -> f64>,
1693    pub f_f_f: ::core::option::Option<unsafe extern "C" fn(arg1: f64, arg2: f64) -> f64>,
1694    pub getter: ::core::option::Option<
1695        unsafe extern "C" fn(ctx: *mut JSContext, this_val: JSValue) -> JSValue,
1696    >,
1697    pub setter: ::core::option::Option<
1698        unsafe extern "C" fn(ctx: *mut JSContext, this_val: JSValue, val: JSValue) -> JSValue,
1699    >,
1700    pub getter_magic: ::core::option::Option<
1701        unsafe extern "C" fn(
1702            ctx: *mut JSContext,
1703            this_val: JSValue,
1704            magic: ::core::ffi::c_int,
1705        ) -> JSValue,
1706    >,
1707    pub setter_magic: ::core::option::Option<
1708        unsafe extern "C" fn(
1709            ctx: *mut JSContext,
1710            this_val: JSValue,
1711            val: JSValue,
1712            magic: ::core::ffi::c_int,
1713        ) -> JSValue,
1714    >,
1715    pub iterator_next: ::core::option::Option<
1716        unsafe extern "C" fn(
1717            ctx: *mut JSContext,
1718            this_val: JSValue,
1719            argc: ::core::ffi::c_int,
1720            argv: *mut JSValue,
1721            pdone: *mut ::core::ffi::c_int,
1722            magic: ::core::ffi::c_int,
1723        ) -> JSValue,
1724    >,
1725}
1726#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1727const _: () = {
1728    ["Size of JSCFunctionType"][::core::mem::size_of::<JSCFunctionType>() - 8usize];
1729    ["Alignment of JSCFunctionType"][::core::mem::align_of::<JSCFunctionType>() - 8usize];
1730    ["Offset of field: JSCFunctionType::generic"]
1731        [::core::mem::offset_of!(JSCFunctionType, generic) - 0usize];
1732    ["Offset of field: JSCFunctionType::generic_magic"]
1733        [::core::mem::offset_of!(JSCFunctionType, generic_magic) - 0usize];
1734    ["Offset of field: JSCFunctionType::constructor"]
1735        [::core::mem::offset_of!(JSCFunctionType, constructor) - 0usize];
1736    ["Offset of field: JSCFunctionType::constructor_magic"]
1737        [::core::mem::offset_of!(JSCFunctionType, constructor_magic) - 0usize];
1738    ["Offset of field: JSCFunctionType::constructor_or_func"]
1739        [::core::mem::offset_of!(JSCFunctionType, constructor_or_func) - 0usize];
1740    ["Offset of field: JSCFunctionType::f_f"]
1741        [::core::mem::offset_of!(JSCFunctionType, f_f) - 0usize];
1742    ["Offset of field: JSCFunctionType::f_f_f"]
1743        [::core::mem::offset_of!(JSCFunctionType, f_f_f) - 0usize];
1744    ["Offset of field: JSCFunctionType::getter"]
1745        [::core::mem::offset_of!(JSCFunctionType, getter) - 0usize];
1746    ["Offset of field: JSCFunctionType::setter"]
1747        [::core::mem::offset_of!(JSCFunctionType, setter) - 0usize];
1748    ["Offset of field: JSCFunctionType::getter_magic"]
1749        [::core::mem::offset_of!(JSCFunctionType, getter_magic) - 0usize];
1750    ["Offset of field: JSCFunctionType::setter_magic"]
1751        [::core::mem::offset_of!(JSCFunctionType, setter_magic) - 0usize];
1752    ["Offset of field: JSCFunctionType::iterator_next"]
1753        [::core::mem::offset_of!(JSCFunctionType, iterator_next) - 0usize];
1754};
1755unsafe extern "C" {
1756    pub fn JS_NewCFunction2(
1757        ctx: *mut JSContext,
1758        func: JSCFunction,
1759        name: *const ::core::ffi::c_char,
1760        length: ::core::ffi::c_int,
1761        cproto: JSCFunctionEnum,
1762        magic: ::core::ffi::c_int,
1763    ) -> JSValue;
1764}
1765unsafe extern "C" {
1766    pub fn JS_NewCFunction3(
1767        ctx: *mut JSContext,
1768        func: JSCFunction,
1769        name: *const ::core::ffi::c_char,
1770        length: ::core::ffi::c_int,
1771        cproto: JSCFunctionEnum,
1772        magic: ::core::ffi::c_int,
1773        proto_val: JSValue,
1774    ) -> JSValue;
1775}
1776unsafe extern "C" {
1777    pub fn JS_NewCFunctionData(
1778        ctx: *mut JSContext,
1779        func: JSCFunctionData,
1780        length: ::core::ffi::c_int,
1781        magic: ::core::ffi::c_int,
1782        data_len: ::core::ffi::c_int,
1783        data: *mut JSValue,
1784    ) -> JSValue;
1785}
1786unsafe extern "C" {
1787    pub fn JS_NewCFunctionData2(
1788        ctx: *mut JSContext,
1789        func: JSCFunctionData,
1790        name: *const ::core::ffi::c_char,
1791        length: ::core::ffi::c_int,
1792        magic: ::core::ffi::c_int,
1793        data_len: ::core::ffi::c_int,
1794        data: *mut JSValue,
1795    ) -> JSValue;
1796}
1797pub type JSCClosureFinalizerFunc =
1798    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>;
1799unsafe extern "C" {
1800    pub fn JS_NewCClosure(
1801        ctx: *mut JSContext,
1802        func: JSCClosure,
1803        name: *const ::core::ffi::c_char,
1804        opaque_finalize: JSCClosureFinalizerFunc,
1805        length: ::core::ffi::c_int,
1806        magic: ::core::ffi::c_int,
1807        opaque: *mut ::core::ffi::c_void,
1808    ) -> JSValue;
1809}
1810unsafe extern "C" {
1811    pub fn JS_SetConstructor(ctx: *mut JSContext, func_obj: JSValue, proto: JSValue);
1812}
1813#[repr(C)]
1814#[derive(Copy, Clone)]
1815pub struct JSCFunctionListEntry {
1816    pub name: *const ::core::ffi::c_char,
1817    pub prop_flags: u8,
1818    pub def_type: u8,
1819    pub magic: i16,
1820    pub u: JSCFunctionListEntry__bindgen_ty_1,
1821}
1822#[repr(C)]
1823#[derive(Copy, Clone)]
1824pub union JSCFunctionListEntry__bindgen_ty_1 {
1825    pub func: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1,
1826    pub getset: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_2,
1827    pub alias: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_3,
1828    pub prop_list: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_4,
1829    pub str_: *const ::core::ffi::c_char,
1830    pub i32_: i32,
1831    pub i64_: i64,
1832    pub u64_: u64,
1833    pub f64_: f64,
1834}
1835#[repr(C)]
1836#[derive(Copy, Clone)]
1837pub struct JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1 {
1838    pub length: u8,
1839    pub cproto: u8,
1840    pub cfunc: JSCFunctionType,
1841}
1842#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1843const _: () = {
1844    ["Size of JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1"]
1845        [::core::mem::size_of::<JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1>() - 16usize];
1846    ["Alignment of JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1"]
1847        [::core::mem::align_of::<JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1>() - 8usize];
1848    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1::length"][::core::mem::offset_of!(
1849        JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1,
1850        length
1851    ) - 0usize];
1852    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1::cproto"][::core::mem::offset_of!(
1853        JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1,
1854        cproto
1855    ) - 1usize];
1856    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1::cfunc"]
1857        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1, cfunc) - 8usize];
1858};
1859#[repr(C)]
1860#[derive(Copy, Clone)]
1861pub struct JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_2 {
1862    pub get: JSCFunctionType,
1863    pub set: JSCFunctionType,
1864}
1865#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1866const _: () = {
1867    ["Size of JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_2"]
1868        [::core::mem::size_of::<JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_2>() - 16usize];
1869    ["Alignment of JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_2"]
1870        [::core::mem::align_of::<JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_2>() - 8usize];
1871    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_2::get"]
1872        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_2, get) - 0usize];
1873    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_2::set"]
1874        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_2, set) - 8usize];
1875};
1876#[repr(C)]
1877#[derive(Debug, Copy, Clone)]
1878pub struct JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_3 {
1879    pub name: *const ::core::ffi::c_char,
1880    pub base: ::core::ffi::c_int,
1881}
1882#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1883const _: () = {
1884    ["Size of JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_3"]
1885        [::core::mem::size_of::<JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_3>() - 16usize];
1886    ["Alignment of JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_3"]
1887        [::core::mem::align_of::<JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_3>() - 8usize];
1888    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_3::name"]
1889        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_3, name) - 0usize];
1890    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_3::base"]
1891        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_3, base) - 8usize];
1892};
1893#[repr(C)]
1894#[derive(Debug, Copy, Clone)]
1895pub struct JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_4 {
1896    pub tab: *const JSCFunctionListEntry,
1897    pub len: ::core::ffi::c_int,
1898}
1899#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1900const _: () = {
1901    ["Size of JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_4"]
1902        [::core::mem::size_of::<JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_4>() - 16usize];
1903    ["Alignment of JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_4"]
1904        [::core::mem::align_of::<JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_4>() - 8usize];
1905    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_4::tab"]
1906        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_4, tab) - 0usize];
1907    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_4::len"]
1908        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_4, len) - 8usize];
1909};
1910#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1911const _: () = {
1912    ["Size of JSCFunctionListEntry__bindgen_ty_1"]
1913        [::core::mem::size_of::<JSCFunctionListEntry__bindgen_ty_1>() - 16usize];
1914    ["Alignment of JSCFunctionListEntry__bindgen_ty_1"]
1915        [::core::mem::align_of::<JSCFunctionListEntry__bindgen_ty_1>() - 8usize];
1916    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1::func"]
1917        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1, func) - 0usize];
1918    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1::getset"]
1919        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1, getset) - 0usize];
1920    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1::alias"]
1921        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1, alias) - 0usize];
1922    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1::prop_list"]
1923        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1, prop_list) - 0usize];
1924    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1::str_"]
1925        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1, str_) - 0usize];
1926    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1::i32_"]
1927        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1, i32_) - 0usize];
1928    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1::i64_"]
1929        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1, i64_) - 0usize];
1930    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1::u64_"]
1931        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1, u64_) - 0usize];
1932    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1::f64_"]
1933        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1, f64_) - 0usize];
1934};
1935#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1936const _: () = {
1937    ["Size of JSCFunctionListEntry"][::core::mem::size_of::<JSCFunctionListEntry>() - 32usize];
1938    ["Alignment of JSCFunctionListEntry"][::core::mem::align_of::<JSCFunctionListEntry>() - 8usize];
1939    ["Offset of field: JSCFunctionListEntry::name"]
1940        [::core::mem::offset_of!(JSCFunctionListEntry, name) - 0usize];
1941    ["Offset of field: JSCFunctionListEntry::prop_flags"]
1942        [::core::mem::offset_of!(JSCFunctionListEntry, prop_flags) - 8usize];
1943    ["Offset of field: JSCFunctionListEntry::def_type"]
1944        [::core::mem::offset_of!(JSCFunctionListEntry, def_type) - 9usize];
1945    ["Offset of field: JSCFunctionListEntry::magic"]
1946        [::core::mem::offset_of!(JSCFunctionListEntry, magic) - 10usize];
1947    ["Offset of field: JSCFunctionListEntry::u"]
1948        [::core::mem::offset_of!(JSCFunctionListEntry, u) - 16usize];
1949};
1950unsafe extern "C" {
1951    pub fn JS_SetPropertyFunctionList(
1952        ctx: *mut JSContext,
1953        obj: JSValue,
1954        tab: *const JSCFunctionListEntry,
1955        len: ::core::ffi::c_int,
1956    ) -> ::core::ffi::c_int;
1957}
1958pub type JSModuleInitFunc = ::core::option::Option<
1959    unsafe extern "C" fn(ctx: *mut JSContext, m: *mut JSModuleDef) -> ::core::ffi::c_int,
1960>;
1961unsafe extern "C" {
1962    pub fn JS_NewCModule(
1963        ctx: *mut JSContext,
1964        name_str: *const ::core::ffi::c_char,
1965        func: JSModuleInitFunc,
1966    ) -> *mut JSModuleDef;
1967}
1968unsafe extern "C" {
1969    pub fn JS_AddModuleExport(
1970        ctx: *mut JSContext,
1971        m: *mut JSModuleDef,
1972        name_str: *const ::core::ffi::c_char,
1973    ) -> ::core::ffi::c_int;
1974}
1975unsafe extern "C" {
1976    pub fn JS_AddModuleExportList(
1977        ctx: *mut JSContext,
1978        m: *mut JSModuleDef,
1979        tab: *const JSCFunctionListEntry,
1980        len: ::core::ffi::c_int,
1981    ) -> ::core::ffi::c_int;
1982}
1983unsafe extern "C" {
1984    pub fn JS_SetModuleExport(
1985        ctx: *mut JSContext,
1986        m: *mut JSModuleDef,
1987        export_name: *const ::core::ffi::c_char,
1988        val: JSValue,
1989    ) -> ::core::ffi::c_int;
1990}
1991unsafe extern "C" {
1992    pub fn JS_SetModuleExportList(
1993        ctx: *mut JSContext,
1994        m: *mut JSModuleDef,
1995        tab: *const JSCFunctionListEntry,
1996        len: ::core::ffi::c_int,
1997    ) -> ::core::ffi::c_int;
1998}
1999unsafe extern "C" {
2000    pub fn JS_GetVersion() -> *const ::core::ffi::c_char;
2001}
2002unsafe extern "C" {
2003    pub fn js_std_cmd(cmd: ::core::ffi::c_int, ...) -> usize;
2004}
2005pub const __JS_ATOM_NULL: _bindgen_ty_4 = 0;
2006pub const JS_ATOM_null: _bindgen_ty_4 = 1;
2007pub const JS_ATOM_false: _bindgen_ty_4 = 2;
2008pub const JS_ATOM_true: _bindgen_ty_4 = 3;
2009pub const JS_ATOM_if: _bindgen_ty_4 = 4;
2010pub const JS_ATOM_else: _bindgen_ty_4 = 5;
2011pub const JS_ATOM_return: _bindgen_ty_4 = 6;
2012pub const JS_ATOM_var: _bindgen_ty_4 = 7;
2013pub const JS_ATOM_this: _bindgen_ty_4 = 8;
2014pub const JS_ATOM_delete: _bindgen_ty_4 = 9;
2015pub const JS_ATOM_void: _bindgen_ty_4 = 10;
2016pub const JS_ATOM_typeof: _bindgen_ty_4 = 11;
2017pub const JS_ATOM_new: _bindgen_ty_4 = 12;
2018pub const JS_ATOM_in: _bindgen_ty_4 = 13;
2019pub const JS_ATOM_instanceof: _bindgen_ty_4 = 14;
2020pub const JS_ATOM_do: _bindgen_ty_4 = 15;
2021pub const JS_ATOM_while: _bindgen_ty_4 = 16;
2022pub const JS_ATOM_for: _bindgen_ty_4 = 17;
2023pub const JS_ATOM_break: _bindgen_ty_4 = 18;
2024pub const JS_ATOM_continue: _bindgen_ty_4 = 19;
2025pub const JS_ATOM_switch: _bindgen_ty_4 = 20;
2026pub const JS_ATOM_case: _bindgen_ty_4 = 21;
2027pub const JS_ATOM_default: _bindgen_ty_4 = 22;
2028pub const JS_ATOM_throw: _bindgen_ty_4 = 23;
2029pub const JS_ATOM_try: _bindgen_ty_4 = 24;
2030pub const JS_ATOM_catch: _bindgen_ty_4 = 25;
2031pub const JS_ATOM_finally: _bindgen_ty_4 = 26;
2032pub const JS_ATOM_function: _bindgen_ty_4 = 27;
2033pub const JS_ATOM_debugger: _bindgen_ty_4 = 28;
2034pub const JS_ATOM_with: _bindgen_ty_4 = 29;
2035pub const JS_ATOM_class: _bindgen_ty_4 = 30;
2036pub const JS_ATOM_const: _bindgen_ty_4 = 31;
2037pub const JS_ATOM_enum: _bindgen_ty_4 = 32;
2038pub const JS_ATOM_export: _bindgen_ty_4 = 33;
2039pub const JS_ATOM_extends: _bindgen_ty_4 = 34;
2040pub const JS_ATOM_import: _bindgen_ty_4 = 35;
2041pub const JS_ATOM_super: _bindgen_ty_4 = 36;
2042pub const JS_ATOM_implements: _bindgen_ty_4 = 37;
2043pub const JS_ATOM_interface: _bindgen_ty_4 = 38;
2044pub const JS_ATOM_let: _bindgen_ty_4 = 39;
2045pub const JS_ATOM_package: _bindgen_ty_4 = 40;
2046pub const JS_ATOM_private: _bindgen_ty_4 = 41;
2047pub const JS_ATOM_protected: _bindgen_ty_4 = 42;
2048pub const JS_ATOM_public: _bindgen_ty_4 = 43;
2049pub const JS_ATOM_static: _bindgen_ty_4 = 44;
2050pub const JS_ATOM_yield: _bindgen_ty_4 = 45;
2051pub const JS_ATOM_await: _bindgen_ty_4 = 46;
2052pub const JS_ATOM_empty_string: _bindgen_ty_4 = 47;
2053pub const JS_ATOM_keys: _bindgen_ty_4 = 48;
2054pub const JS_ATOM_size: _bindgen_ty_4 = 49;
2055pub const JS_ATOM_length: _bindgen_ty_4 = 50;
2056pub const JS_ATOM_message: _bindgen_ty_4 = 51;
2057pub const JS_ATOM_cause: _bindgen_ty_4 = 52;
2058pub const JS_ATOM_errors: _bindgen_ty_4 = 53;
2059pub const JS_ATOM_stack: _bindgen_ty_4 = 54;
2060pub const JS_ATOM_name: _bindgen_ty_4 = 55;
2061pub const JS_ATOM_toString: _bindgen_ty_4 = 56;
2062pub const JS_ATOM_toLocaleString: _bindgen_ty_4 = 57;
2063pub const JS_ATOM_valueOf: _bindgen_ty_4 = 58;
2064pub const JS_ATOM_eval: _bindgen_ty_4 = 59;
2065pub const JS_ATOM_prototype: _bindgen_ty_4 = 60;
2066pub const JS_ATOM_constructor: _bindgen_ty_4 = 61;
2067pub const JS_ATOM_configurable: _bindgen_ty_4 = 62;
2068pub const JS_ATOM_writable: _bindgen_ty_4 = 63;
2069pub const JS_ATOM_enumerable: _bindgen_ty_4 = 64;
2070pub const JS_ATOM_value: _bindgen_ty_4 = 65;
2071pub const JS_ATOM_get: _bindgen_ty_4 = 66;
2072pub const JS_ATOM_set: _bindgen_ty_4 = 67;
2073pub const JS_ATOM_of: _bindgen_ty_4 = 68;
2074pub const JS_ATOM___proto__: _bindgen_ty_4 = 69;
2075pub const JS_ATOM_undefined: _bindgen_ty_4 = 70;
2076pub const JS_ATOM_number: _bindgen_ty_4 = 71;
2077pub const JS_ATOM_boolean: _bindgen_ty_4 = 72;
2078pub const JS_ATOM_string: _bindgen_ty_4 = 73;
2079pub const JS_ATOM_object: _bindgen_ty_4 = 74;
2080pub const JS_ATOM_symbol: _bindgen_ty_4 = 75;
2081pub const JS_ATOM_integer: _bindgen_ty_4 = 76;
2082pub const JS_ATOM_unknown: _bindgen_ty_4 = 77;
2083pub const JS_ATOM_arguments: _bindgen_ty_4 = 78;
2084pub const JS_ATOM_callee: _bindgen_ty_4 = 79;
2085pub const JS_ATOM_caller: _bindgen_ty_4 = 80;
2086pub const JS_ATOM__eval_: _bindgen_ty_4 = 81;
2087pub const JS_ATOM__ret_: _bindgen_ty_4 = 82;
2088pub const JS_ATOM__var_: _bindgen_ty_4 = 83;
2089pub const JS_ATOM__arg_var_: _bindgen_ty_4 = 84;
2090pub const JS_ATOM__with_: _bindgen_ty_4 = 85;
2091pub const JS_ATOM_lastIndex: _bindgen_ty_4 = 86;
2092pub const JS_ATOM_target: _bindgen_ty_4 = 87;
2093pub const JS_ATOM_index: _bindgen_ty_4 = 88;
2094pub const JS_ATOM_input: _bindgen_ty_4 = 89;
2095pub const JS_ATOM_defineProperties: _bindgen_ty_4 = 90;
2096pub const JS_ATOM_apply: _bindgen_ty_4 = 91;
2097pub const JS_ATOM_join: _bindgen_ty_4 = 92;
2098pub const JS_ATOM_concat: _bindgen_ty_4 = 93;
2099pub const JS_ATOM_split: _bindgen_ty_4 = 94;
2100pub const JS_ATOM_construct: _bindgen_ty_4 = 95;
2101pub const JS_ATOM_getPrototypeOf: _bindgen_ty_4 = 96;
2102pub const JS_ATOM_setPrototypeOf: _bindgen_ty_4 = 97;
2103pub const JS_ATOM_isExtensible: _bindgen_ty_4 = 98;
2104pub const JS_ATOM_preventExtensions: _bindgen_ty_4 = 99;
2105pub const JS_ATOM_has: _bindgen_ty_4 = 100;
2106pub const JS_ATOM_deleteProperty: _bindgen_ty_4 = 101;
2107pub const JS_ATOM_defineProperty: _bindgen_ty_4 = 102;
2108pub const JS_ATOM_getOwnPropertyDescriptor: _bindgen_ty_4 = 103;
2109pub const JS_ATOM_ownKeys: _bindgen_ty_4 = 104;
2110pub const JS_ATOM_add: _bindgen_ty_4 = 105;
2111pub const JS_ATOM_done: _bindgen_ty_4 = 106;
2112pub const JS_ATOM_next: _bindgen_ty_4 = 107;
2113pub const JS_ATOM_values: _bindgen_ty_4 = 108;
2114pub const JS_ATOM_source: _bindgen_ty_4 = 109;
2115pub const JS_ATOM_flags: _bindgen_ty_4 = 110;
2116pub const JS_ATOM_global: _bindgen_ty_4 = 111;
2117pub const JS_ATOM_unicode: _bindgen_ty_4 = 112;
2118pub const JS_ATOM_raw: _bindgen_ty_4 = 113;
2119pub const JS_ATOM_new_target: _bindgen_ty_4 = 114;
2120pub const JS_ATOM_this_active_func: _bindgen_ty_4 = 115;
2121pub const JS_ATOM_home_object: _bindgen_ty_4 = 116;
2122pub const JS_ATOM_computed_field: _bindgen_ty_4 = 117;
2123pub const JS_ATOM_static_computed_field: _bindgen_ty_4 = 118;
2124pub const JS_ATOM_class_fields_init: _bindgen_ty_4 = 119;
2125pub const JS_ATOM_brand: _bindgen_ty_4 = 120;
2126pub const JS_ATOM_hash_constructor: _bindgen_ty_4 = 121;
2127pub const JS_ATOM_as: _bindgen_ty_4 = 122;
2128pub const JS_ATOM_from: _bindgen_ty_4 = 123;
2129pub const JS_ATOM_fromAsync: _bindgen_ty_4 = 124;
2130pub const JS_ATOM_meta: _bindgen_ty_4 = 125;
2131pub const JS_ATOM__default_: _bindgen_ty_4 = 126;
2132pub const JS_ATOM__star_: _bindgen_ty_4 = 127;
2133pub const JS_ATOM_Module: _bindgen_ty_4 = 128;
2134pub const JS_ATOM_then: _bindgen_ty_4 = 129;
2135pub const JS_ATOM_resolve: _bindgen_ty_4 = 130;
2136pub const JS_ATOM_reject: _bindgen_ty_4 = 131;
2137pub const JS_ATOM_promise: _bindgen_ty_4 = 132;
2138pub const JS_ATOM_proxy: _bindgen_ty_4 = 133;
2139pub const JS_ATOM_revoke: _bindgen_ty_4 = 134;
2140pub const JS_ATOM_async: _bindgen_ty_4 = 135;
2141pub const JS_ATOM_exec: _bindgen_ty_4 = 136;
2142pub const JS_ATOM_groups: _bindgen_ty_4 = 137;
2143pub const JS_ATOM_indices: _bindgen_ty_4 = 138;
2144pub const JS_ATOM_status: _bindgen_ty_4 = 139;
2145pub const JS_ATOM_reason: _bindgen_ty_4 = 140;
2146pub const JS_ATOM_globalThis: _bindgen_ty_4 = 141;
2147pub const JS_ATOM_bigint: _bindgen_ty_4 = 142;
2148pub const JS_ATOM_not_equal: _bindgen_ty_4 = 143;
2149pub const JS_ATOM_timed_out: _bindgen_ty_4 = 144;
2150pub const JS_ATOM_ok: _bindgen_ty_4 = 145;
2151pub const JS_ATOM_toJSON: _bindgen_ty_4 = 146;
2152pub const JS_ATOM_maxByteLength: _bindgen_ty_4 = 147;
2153pub const JS_ATOM_Object: _bindgen_ty_4 = 148;
2154pub const JS_ATOM_Array: _bindgen_ty_4 = 149;
2155pub const JS_ATOM_Error: _bindgen_ty_4 = 150;
2156pub const JS_ATOM_Number: _bindgen_ty_4 = 151;
2157pub const JS_ATOM_String: _bindgen_ty_4 = 152;
2158pub const JS_ATOM_Boolean: _bindgen_ty_4 = 153;
2159pub const JS_ATOM_Symbol: _bindgen_ty_4 = 154;
2160pub const JS_ATOM_Arguments: _bindgen_ty_4 = 155;
2161pub const JS_ATOM_Math: _bindgen_ty_4 = 156;
2162pub const JS_ATOM_JSON: _bindgen_ty_4 = 157;
2163pub const JS_ATOM_Date: _bindgen_ty_4 = 158;
2164pub const JS_ATOM_Function: _bindgen_ty_4 = 159;
2165pub const JS_ATOM_GeneratorFunction: _bindgen_ty_4 = 160;
2166pub const JS_ATOM_ForInIterator: _bindgen_ty_4 = 161;
2167pub const JS_ATOM_RegExp: _bindgen_ty_4 = 162;
2168pub const JS_ATOM_ArrayBuffer: _bindgen_ty_4 = 163;
2169pub const JS_ATOM_SharedArrayBuffer: _bindgen_ty_4 = 164;
2170pub const JS_ATOM_Uint8ClampedArray: _bindgen_ty_4 = 165;
2171pub const JS_ATOM_Int8Array: _bindgen_ty_4 = 166;
2172pub const JS_ATOM_Uint8Array: _bindgen_ty_4 = 167;
2173pub const JS_ATOM_Int16Array: _bindgen_ty_4 = 168;
2174pub const JS_ATOM_Uint16Array: _bindgen_ty_4 = 169;
2175pub const JS_ATOM_Int32Array: _bindgen_ty_4 = 170;
2176pub const JS_ATOM_Uint32Array: _bindgen_ty_4 = 171;
2177pub const JS_ATOM_BigInt64Array: _bindgen_ty_4 = 172;
2178pub const JS_ATOM_BigUint64Array: _bindgen_ty_4 = 173;
2179pub const JS_ATOM_Float16Array: _bindgen_ty_4 = 174;
2180pub const JS_ATOM_Float32Array: _bindgen_ty_4 = 175;
2181pub const JS_ATOM_Float64Array: _bindgen_ty_4 = 176;
2182pub const JS_ATOM_DataView: _bindgen_ty_4 = 177;
2183pub const JS_ATOM_BigInt: _bindgen_ty_4 = 178;
2184pub const JS_ATOM_WeakRef: _bindgen_ty_4 = 179;
2185pub const JS_ATOM_FinalizationRegistry: _bindgen_ty_4 = 180;
2186pub const JS_ATOM_Map: _bindgen_ty_4 = 181;
2187pub const JS_ATOM_Set: _bindgen_ty_4 = 182;
2188pub const JS_ATOM_WeakMap: _bindgen_ty_4 = 183;
2189pub const JS_ATOM_WeakSet: _bindgen_ty_4 = 184;
2190pub const JS_ATOM_Iterator: _bindgen_ty_4 = 185;
2191pub const JS_ATOM_IteratorConcat: _bindgen_ty_4 = 186;
2192pub const JS_ATOM_IteratorHelper: _bindgen_ty_4 = 187;
2193pub const JS_ATOM_IteratorWrap: _bindgen_ty_4 = 188;
2194pub const JS_ATOM_Map_Iterator: _bindgen_ty_4 = 189;
2195pub const JS_ATOM_Set_Iterator: _bindgen_ty_4 = 190;
2196pub const JS_ATOM_Array_Iterator: _bindgen_ty_4 = 191;
2197pub const JS_ATOM_String_Iterator: _bindgen_ty_4 = 192;
2198pub const JS_ATOM_RegExp_String_Iterator: _bindgen_ty_4 = 193;
2199pub const JS_ATOM_Generator: _bindgen_ty_4 = 194;
2200pub const JS_ATOM_Proxy: _bindgen_ty_4 = 195;
2201pub const JS_ATOM_Promise: _bindgen_ty_4 = 196;
2202pub const JS_ATOM_PromiseResolveFunction: _bindgen_ty_4 = 197;
2203pub const JS_ATOM_PromiseRejectFunction: _bindgen_ty_4 = 198;
2204pub const JS_ATOM_AsyncFunction: _bindgen_ty_4 = 199;
2205pub const JS_ATOM_AsyncFunctionResolve: _bindgen_ty_4 = 200;
2206pub const JS_ATOM_AsyncFunctionReject: _bindgen_ty_4 = 201;
2207pub const JS_ATOM_AsyncGeneratorFunction: _bindgen_ty_4 = 202;
2208pub const JS_ATOM_AsyncGenerator: _bindgen_ty_4 = 203;
2209pub const JS_ATOM_EvalError: _bindgen_ty_4 = 204;
2210pub const JS_ATOM_RangeError: _bindgen_ty_4 = 205;
2211pub const JS_ATOM_ReferenceError: _bindgen_ty_4 = 206;
2212pub const JS_ATOM_SyntaxError: _bindgen_ty_4 = 207;
2213pub const JS_ATOM_TypeError: _bindgen_ty_4 = 208;
2214pub const JS_ATOM_URIError: _bindgen_ty_4 = 209;
2215pub const JS_ATOM_InternalError: _bindgen_ty_4 = 210;
2216pub const JS_ATOM_DOMException: _bindgen_ty_4 = 211;
2217pub const JS_ATOM_CallSite: _bindgen_ty_4 = 212;
2218pub const JS_ATOM_Private_brand: _bindgen_ty_4 = 213;
2219pub const JS_ATOM_Symbol_toPrimitive: _bindgen_ty_4 = 214;
2220pub const JS_ATOM_Symbol_iterator: _bindgen_ty_4 = 215;
2221pub const JS_ATOM_Symbol_match: _bindgen_ty_4 = 216;
2222pub const JS_ATOM_Symbol_matchAll: _bindgen_ty_4 = 217;
2223pub const JS_ATOM_Symbol_replace: _bindgen_ty_4 = 218;
2224pub const JS_ATOM_Symbol_search: _bindgen_ty_4 = 219;
2225pub const JS_ATOM_Symbol_split: _bindgen_ty_4 = 220;
2226pub const JS_ATOM_Symbol_toStringTag: _bindgen_ty_4 = 221;
2227pub const JS_ATOM_Symbol_isConcatSpreadable: _bindgen_ty_4 = 222;
2228pub const JS_ATOM_Symbol_hasInstance: _bindgen_ty_4 = 223;
2229pub const JS_ATOM_Symbol_species: _bindgen_ty_4 = 224;
2230pub const JS_ATOM_Symbol_unscopables: _bindgen_ty_4 = 225;
2231pub const JS_ATOM_Symbol_asyncIterator: _bindgen_ty_4 = 226;
2232pub const JS_ATOM_END: _bindgen_ty_4 = 227;
2233pub type _bindgen_ty_4 = ::core::ffi::c_uint;