Skip to main content

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