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 const QJSJIT_ABI_MAJOR: u32 = 1;
89pub const QJSJIT_ABI_MINOR: u32 = 18;
90pub const JS_JIT_FUNCTION_STRICT: u32 = 1;
91pub const JS_JIT_FRAME_STRESS_GC: u32 = 2;
92pub const JS_JIT_FRAME_SIDE_PATH_HIT: u32 = 4;
93pub const JS_JIT_SLOT_NONE: u32 = 4294967295;
94pub const JS_JIT_HELPER_SCRATCH_SLOTS: u32 = 2;
95pub const JS_JIT_FEEDBACK_OVERFLOW: u32 = 1;
96pub const JS_JIT_FEEDBACK_NEGATIVE_ZERO: u32 = 2;
97pub const JS_JIT_FEEDBACK_NAN: u32 = 4;
98pub const JS_JIT_FEEDBACK_BRANCH_TAKEN: u32 = 8;
99pub const JS_JIT_FEEDBACK_CALL_SITE: u32 = 16;
100pub const JS_JIT_FEEDBACK_PROPERTY_STORE: u32 = 32;
101pub const QJSJIT_HELPER_ABI_VERSION: u32 = 1;
102pub const QJSJIT_HELPER_MAX_ABI_TYPES: u32 = 8;
103pub const QJSJIT_HELPER_MAX_VALUES: u32 = 4;
104pub const QJSJIT_RUNTIME_API_MAJOR: u32 = 1;
105pub const QJSJIT_RUNTIME_API_MINOR: u32 = 8;
106pub type size_t = ::core::ffi::c_ulong;
107#[repr(C)]
108#[derive(Debug, Copy, Clone)]
109pub struct JSRuntime {
110    _unused: [u8; 0],
111}
112#[repr(C)]
113#[derive(Debug, Copy, Clone)]
114pub struct JSContext {
115    _unused: [u8; 0],
116}
117#[repr(C)]
118#[derive(Debug, Copy, Clone)]
119pub struct JSObject {
120    _unused: [u8; 0],
121}
122#[repr(C)]
123#[derive(Debug, Copy, Clone)]
124pub struct JSClass {
125    _unused: [u8; 0],
126}
127pub type JSClassID = u32;
128pub type JSAtom = u32;
129pub const JS_TAG_FIRST: _bindgen_ty_3 = -9;
130pub const JS_TAG_BIG_INT: _bindgen_ty_3 = -9;
131pub const JS_TAG_SYMBOL: _bindgen_ty_3 = -8;
132pub const JS_TAG_STRING: _bindgen_ty_3 = -7;
133pub const JS_TAG_STRING_ROPE: _bindgen_ty_3 = -6;
134pub const JS_TAG_MODULE: _bindgen_ty_3 = -3;
135pub const JS_TAG_FUNCTION_BYTECODE: _bindgen_ty_3 = -2;
136pub const JS_TAG_OBJECT: _bindgen_ty_3 = -1;
137pub const JS_TAG_INT: _bindgen_ty_3 = 0;
138pub const JS_TAG_BOOL: _bindgen_ty_3 = 1;
139pub const JS_TAG_NULL: _bindgen_ty_3 = 2;
140pub const JS_TAG_UNDEFINED: _bindgen_ty_3 = 3;
141pub const JS_TAG_UNINITIALIZED: _bindgen_ty_3 = 4;
142pub const JS_TAG_CATCH_OFFSET: _bindgen_ty_3 = 5;
143pub const JS_TAG_EXCEPTION: _bindgen_ty_3 = 6;
144pub const JS_TAG_SHORT_BIG_INT: _bindgen_ty_3 = 7;
145pub const JS_TAG_FLOAT64: _bindgen_ty_3 = 8;
146pub type _bindgen_ty_3 = ::core::ffi::c_int;
147#[repr(C)]
148#[derive(Copy, Clone)]
149pub union JSValueUnion {
150    pub int32: i32,
151    pub float64: f64,
152    pub ptr: *mut ::core::ffi::c_void,
153    pub short_big_int: i32,
154}
155#[allow(clippy::unnecessary_operation, clippy::identity_op)]
156const _: () = {
157    ["Size of JSValueUnion"][::core::mem::size_of::<JSValueUnion>() - 8usize];
158    ["Alignment of JSValueUnion"][::core::mem::align_of::<JSValueUnion>() - 8usize];
159    ["Offset of field: JSValueUnion::int32"][::core::mem::offset_of!(JSValueUnion, int32) - 0usize];
160    ["Offset of field: JSValueUnion::float64"]
161        [::core::mem::offset_of!(JSValueUnion, float64) - 0usize];
162    ["Offset of field: JSValueUnion::ptr"][::core::mem::offset_of!(JSValueUnion, ptr) - 0usize];
163    ["Offset of field: JSValueUnion::short_big_int"]
164        [::core::mem::offset_of!(JSValueUnion, short_big_int) - 0usize];
165};
166#[repr(C)]
167#[derive(Copy, Clone)]
168pub struct JSValue {
169    pub u: JSValueUnion,
170    pub tag: i64,
171}
172#[allow(clippy::unnecessary_operation, clippy::identity_op)]
173const _: () = {
174    ["Size of JSValue"][::core::mem::size_of::<JSValue>() - 16usize];
175    ["Alignment of JSValue"][::core::mem::align_of::<JSValue>() - 8usize];
176    ["Offset of field: JSValue::u"][::core::mem::offset_of!(JSValue, u) - 0usize];
177    ["Offset of field: JSValue::tag"][::core::mem::offset_of!(JSValue, tag) - 8usize];
178};
179pub type JSCFunction = ::core::option::Option<
180    unsafe extern "C" fn(
181        ctx: *mut JSContext,
182        this_val: JSValue,
183        argc: ::core::ffi::c_int,
184        argv: *mut JSValue,
185    ) -> JSValue,
186>;
187pub type JSCFunctionMagic = ::core::option::Option<
188    unsafe extern "C" fn(
189        ctx: *mut JSContext,
190        this_val: JSValue,
191        argc: ::core::ffi::c_int,
192        argv: *mut JSValue,
193        magic: ::core::ffi::c_int,
194    ) -> JSValue,
195>;
196pub type JSCFunctionData = ::core::option::Option<
197    unsafe extern "C" fn(
198        ctx: *mut JSContext,
199        this_val: JSValue,
200        argc: ::core::ffi::c_int,
201        argv: *mut JSValue,
202        magic: ::core::ffi::c_int,
203        func_data: *mut JSValue,
204    ) -> JSValue,
205>;
206pub type JSCClosure = ::core::option::Option<
207    unsafe extern "C" fn(
208        ctx: *mut JSContext,
209        this_val: JSValue,
210        argc: ::core::ffi::c_int,
211        argv: *mut JSValue,
212        magic: ::core::ffi::c_int,
213        opaque: *mut ::core::ffi::c_void,
214    ) -> JSValue,
215>;
216#[repr(C)]
217#[derive(Debug, Copy, Clone)]
218pub struct JSMallocFunctions {
219    pub js_calloc: ::core::option::Option<
220        unsafe extern "C" fn(
221            opaque: *mut ::core::ffi::c_void,
222            count: size_t,
223            size: size_t,
224        ) -> *mut ::core::ffi::c_void,
225    >,
226    pub js_malloc: ::core::option::Option<
227        unsafe extern "C" fn(
228            opaque: *mut ::core::ffi::c_void,
229            size: size_t,
230        ) -> *mut ::core::ffi::c_void,
231    >,
232    pub js_free: ::core::option::Option<
233        unsafe extern "C" fn(opaque: *mut ::core::ffi::c_void, ptr: *mut ::core::ffi::c_void),
234    >,
235    pub js_realloc: ::core::option::Option<
236        unsafe extern "C" fn(
237            opaque: *mut ::core::ffi::c_void,
238            ptr: *mut ::core::ffi::c_void,
239            size: size_t,
240        ) -> *mut ::core::ffi::c_void,
241    >,
242    pub js_malloc_usable_size:
243        ::core::option::Option<unsafe extern "C" fn(ptr: *const ::core::ffi::c_void) -> size_t>,
244}
245#[allow(clippy::unnecessary_operation, clippy::identity_op)]
246const _: () = {
247    ["Size of JSMallocFunctions"][::core::mem::size_of::<JSMallocFunctions>() - 40usize];
248    ["Alignment of JSMallocFunctions"][::core::mem::align_of::<JSMallocFunctions>() - 8usize];
249    ["Offset of field: JSMallocFunctions::js_calloc"]
250        [::core::mem::offset_of!(JSMallocFunctions, js_calloc) - 0usize];
251    ["Offset of field: JSMallocFunctions::js_malloc"]
252        [::core::mem::offset_of!(JSMallocFunctions, js_malloc) - 8usize];
253    ["Offset of field: JSMallocFunctions::js_free"]
254        [::core::mem::offset_of!(JSMallocFunctions, js_free) - 16usize];
255    ["Offset of field: JSMallocFunctions::js_realloc"]
256        [::core::mem::offset_of!(JSMallocFunctions, js_realloc) - 24usize];
257    ["Offset of field: JSMallocFunctions::js_malloc_usable_size"]
258        [::core::mem::offset_of!(JSMallocFunctions, js_malloc_usable_size) - 32usize];
259};
260pub type JSRuntimeFinalizer =
261    ::core::option::Option<unsafe extern "C" fn(rt: *mut JSRuntime, arg: *mut ::core::ffi::c_void)>;
262#[repr(C)]
263#[derive(Debug, Copy, Clone)]
264pub struct JSGCObjectHeader {
265    _unused: [u8; 0],
266}
267unsafe extern "C" {
268    pub fn JS_NewRuntime() -> *mut JSRuntime;
269}
270unsafe extern "C" {
271    pub fn JS_SetRuntimeInfo(rt: *mut JSRuntime, info: *const ::core::ffi::c_char);
272}
273unsafe extern "C" {
274    pub fn JS_SetMemoryLimit(rt: *mut JSRuntime, limit: size_t);
275}
276unsafe extern "C" {
277    pub fn JS_SetDumpFlags(rt: *mut JSRuntime, flags: u64);
278}
279unsafe extern "C" {
280    pub fn JS_GetDumpFlags(rt: *mut JSRuntime) -> u64;
281}
282unsafe extern "C" {
283    pub fn JS_GetGCThreshold(rt: *mut JSRuntime) -> size_t;
284}
285unsafe extern "C" {
286    pub fn JS_SetGCThreshold(rt: *mut JSRuntime, gc_threshold: size_t);
287}
288unsafe extern "C" {
289    pub fn JS_SetMaxStackSize(rt: *mut JSRuntime, stack_size: size_t);
290}
291unsafe extern "C" {
292    pub fn JS_UpdateStackTop(rt: *mut JSRuntime);
293}
294unsafe extern "C" {
295    pub fn JS_NewRuntime2(
296        mf: *const JSMallocFunctions,
297        opaque: *mut ::core::ffi::c_void,
298    ) -> *mut JSRuntime;
299}
300unsafe extern "C" {
301    pub fn JS_FreeRuntime(rt: *mut JSRuntime);
302}
303unsafe extern "C" {
304    pub fn JS_GetRuntimeOpaque(rt: *mut JSRuntime) -> *mut ::core::ffi::c_void;
305}
306unsafe extern "C" {
307    pub fn JS_SetRuntimeOpaque(rt: *mut JSRuntime, opaque: *mut ::core::ffi::c_void);
308}
309unsafe extern "C" {
310    pub fn JS_AddRuntimeFinalizer(
311        rt: *mut JSRuntime,
312        finalizer: JSRuntimeFinalizer,
313        arg: *mut ::core::ffi::c_void,
314    ) -> ::core::ffi::c_int;
315}
316pub type JS_MarkFunc =
317    ::core::option::Option<unsafe extern "C" fn(rt: *mut JSRuntime, gp: *mut JSGCObjectHeader)>;
318unsafe extern "C" {
319    pub fn JS_MarkValue(rt: *mut JSRuntime, val: JSValue, mark_func: JS_MarkFunc);
320}
321unsafe extern "C" {
322    pub fn JS_RunGC(rt: *mut JSRuntime);
323}
324unsafe extern "C" {
325    pub fn JS_IsLiveObject(rt: *mut JSRuntime, obj: JSValue) -> bool;
326}
327unsafe extern "C" {
328    pub fn JS_NewContext(rt: *mut JSRuntime) -> *mut JSContext;
329}
330unsafe extern "C" {
331    pub fn JS_FreeContext(s: *mut JSContext);
332}
333unsafe extern "C" {
334    pub fn JS_DupContext(ctx: *mut JSContext) -> *mut JSContext;
335}
336unsafe extern "C" {
337    pub fn JS_GetContextOpaque(ctx: *mut JSContext) -> *mut ::core::ffi::c_void;
338}
339unsafe extern "C" {
340    pub fn JS_SetContextOpaque(ctx: *mut JSContext, opaque: *mut ::core::ffi::c_void);
341}
342unsafe extern "C" {
343    pub fn JS_GetRuntime(ctx: *mut JSContext) -> *mut JSRuntime;
344}
345unsafe extern "C" {
346    pub fn JS_SetClassProto(ctx: *mut JSContext, class_id: JSClassID, obj: JSValue);
347}
348unsafe extern "C" {
349    pub fn JS_GetClassProto(ctx: *mut JSContext, class_id: JSClassID) -> JSValue;
350}
351unsafe extern "C" {
352    pub fn JS_GetFunctionProto(ctx: *mut JSContext) -> JSValue;
353}
354unsafe extern "C" {
355    pub fn JS_NewContextRaw(rt: *mut JSRuntime) -> *mut JSContext;
356}
357unsafe extern "C" {
358    pub fn JS_AddIntrinsicBaseObjects(ctx: *mut JSContext) -> ::core::ffi::c_int;
359}
360unsafe extern "C" {
361    pub fn JS_AddIntrinsicDate(ctx: *mut JSContext) -> ::core::ffi::c_int;
362}
363unsafe extern "C" {
364    pub fn JS_AddIntrinsicEval(ctx: *mut JSContext) -> ::core::ffi::c_int;
365}
366unsafe extern "C" {
367    pub fn JS_AddIntrinsicRegExpCompiler(ctx: *mut JSContext);
368}
369unsafe extern "C" {
370    pub fn JS_AddIntrinsicRegExp(ctx: *mut JSContext) -> ::core::ffi::c_int;
371}
372unsafe extern "C" {
373    pub fn JS_AddIntrinsicJSON(ctx: *mut JSContext) -> ::core::ffi::c_int;
374}
375unsafe extern "C" {
376    pub fn JS_AddIntrinsicProxy(ctx: *mut JSContext) -> ::core::ffi::c_int;
377}
378unsafe extern "C" {
379    pub fn JS_AddIntrinsicMapSet(ctx: *mut JSContext) -> ::core::ffi::c_int;
380}
381unsafe extern "C" {
382    pub fn JS_AddIntrinsicTypedArrays(ctx: *mut JSContext) -> ::core::ffi::c_int;
383}
384unsafe extern "C" {
385    pub fn JS_AddIntrinsicPromise(ctx: *mut JSContext) -> ::core::ffi::c_int;
386}
387unsafe extern "C" {
388    pub fn JS_AddIntrinsicBigInt(ctx: *mut JSContext) -> ::core::ffi::c_int;
389}
390unsafe extern "C" {
391    pub fn JS_AddIntrinsicWeakRef(ctx: *mut JSContext) -> ::core::ffi::c_int;
392}
393unsafe extern "C" {
394    pub fn JS_AddPerformance(ctx: *mut JSContext) -> ::core::ffi::c_int;
395}
396unsafe extern "C" {
397    pub fn JS_AddIntrinsicDOMException(ctx: *mut JSContext) -> ::core::ffi::c_int;
398}
399unsafe extern "C" {
400    pub fn JS_AddIntrinsicAToB(ctx: *mut JSContext) -> ::core::ffi::c_int;
401}
402unsafe extern "C" {
403    pub fn JS_IsEqual(ctx: *mut JSContext, op1: JSValue, op2: JSValue) -> ::core::ffi::c_int;
404}
405unsafe extern "C" {
406    pub fn JS_IsStrictEqual(ctx: *mut JSContext, op1: JSValue, op2: JSValue) -> bool;
407}
408unsafe extern "C" {
409    pub fn JS_IsSameValue(ctx: *mut JSContext, op1: JSValue, op2: JSValue) -> bool;
410}
411unsafe extern "C" {
412    pub fn JS_IsSameValueZero(ctx: *mut JSContext, op1: JSValue, op2: JSValue) -> bool;
413}
414unsafe extern "C" {
415    pub fn js_string_codePointRange(
416        ctx: *mut JSContext,
417        this_val: JSValue,
418        argc: ::core::ffi::c_int,
419        argv: *mut JSValue,
420    ) -> JSValue;
421}
422unsafe extern "C" {
423    pub fn js_calloc_rt(
424        rt: *mut JSRuntime,
425        count: size_t,
426        size: size_t,
427    ) -> *mut ::core::ffi::c_void;
428}
429unsafe extern "C" {
430    pub fn js_malloc_rt(rt: *mut JSRuntime, size: size_t) -> *mut ::core::ffi::c_void;
431}
432unsafe extern "C" {
433    pub fn js_free_rt(rt: *mut JSRuntime, ptr: *mut ::core::ffi::c_void);
434}
435unsafe extern "C" {
436    pub fn js_realloc_rt(
437        rt: *mut JSRuntime,
438        ptr: *mut ::core::ffi::c_void,
439        size: size_t,
440    ) -> *mut ::core::ffi::c_void;
441}
442unsafe extern "C" {
443    pub fn js_malloc_usable_size_rt(rt: *mut JSRuntime, ptr: *const ::core::ffi::c_void) -> size_t;
444}
445unsafe extern "C" {
446    pub fn js_mallocz_rt(rt: *mut JSRuntime, size: size_t) -> *mut ::core::ffi::c_void;
447}
448unsafe extern "C" {
449    pub fn js_calloc(ctx: *mut JSContext, count: size_t, size: size_t) -> *mut ::core::ffi::c_void;
450}
451unsafe extern "C" {
452    pub fn js_malloc(ctx: *mut JSContext, size: size_t) -> *mut ::core::ffi::c_void;
453}
454unsafe extern "C" {
455    pub fn js_free(ctx: *mut JSContext, ptr: *mut ::core::ffi::c_void);
456}
457unsafe extern "C" {
458    pub fn js_realloc(
459        ctx: *mut JSContext,
460        ptr: *mut ::core::ffi::c_void,
461        size: size_t,
462    ) -> *mut ::core::ffi::c_void;
463}
464unsafe extern "C" {
465    pub fn js_malloc_usable_size(ctx: *mut JSContext, ptr: *const ::core::ffi::c_void) -> size_t;
466}
467unsafe extern "C" {
468    pub fn js_realloc2(
469        ctx: *mut JSContext,
470        ptr: *mut ::core::ffi::c_void,
471        size: size_t,
472        pslack: *mut size_t,
473    ) -> *mut ::core::ffi::c_void;
474}
475unsafe extern "C" {
476    pub fn js_mallocz(ctx: *mut JSContext, size: size_t) -> *mut ::core::ffi::c_void;
477}
478unsafe extern "C" {
479    pub fn js_strdup(
480        ctx: *mut JSContext,
481        str_: *const ::core::ffi::c_char,
482    ) -> *mut ::core::ffi::c_char;
483}
484unsafe extern "C" {
485    pub fn js_strndup(
486        ctx: *mut JSContext,
487        s: *const ::core::ffi::c_char,
488        n: size_t,
489    ) -> *mut ::core::ffi::c_char;
490}
491#[repr(C)]
492#[derive(Debug, Copy, Clone)]
493pub struct JSMemoryUsage {
494    pub malloc_size: i64,
495    pub malloc_limit: i64,
496    pub memory_used_size: i64,
497    pub malloc_count: i64,
498    pub memory_used_count: i64,
499    pub atom_count: i64,
500    pub atom_size: i64,
501    pub str_count: i64,
502    pub str_size: i64,
503    pub obj_count: i64,
504    pub obj_size: i64,
505    pub prop_count: i64,
506    pub prop_size: i64,
507    pub shape_count: i64,
508    pub shape_size: i64,
509    pub js_func_count: i64,
510    pub js_func_size: i64,
511    pub js_func_code_size: i64,
512    pub js_func_pc2line_count: i64,
513    pub js_func_pc2line_size: i64,
514    pub c_func_count: i64,
515    pub array_count: i64,
516    pub fast_array_count: i64,
517    pub fast_array_elements: i64,
518    pub binary_object_count: i64,
519    pub binary_object_size: i64,
520}
521#[allow(clippy::unnecessary_operation, clippy::identity_op)]
522const _: () = {
523    ["Size of JSMemoryUsage"][::core::mem::size_of::<JSMemoryUsage>() - 208usize];
524    ["Alignment of JSMemoryUsage"][::core::mem::align_of::<JSMemoryUsage>() - 8usize];
525    ["Offset of field: JSMemoryUsage::malloc_size"]
526        [::core::mem::offset_of!(JSMemoryUsage, malloc_size) - 0usize];
527    ["Offset of field: JSMemoryUsage::malloc_limit"]
528        [::core::mem::offset_of!(JSMemoryUsage, malloc_limit) - 8usize];
529    ["Offset of field: JSMemoryUsage::memory_used_size"]
530        [::core::mem::offset_of!(JSMemoryUsage, memory_used_size) - 16usize];
531    ["Offset of field: JSMemoryUsage::malloc_count"]
532        [::core::mem::offset_of!(JSMemoryUsage, malloc_count) - 24usize];
533    ["Offset of field: JSMemoryUsage::memory_used_count"]
534        [::core::mem::offset_of!(JSMemoryUsage, memory_used_count) - 32usize];
535    ["Offset of field: JSMemoryUsage::atom_count"]
536        [::core::mem::offset_of!(JSMemoryUsage, atom_count) - 40usize];
537    ["Offset of field: JSMemoryUsage::atom_size"]
538        [::core::mem::offset_of!(JSMemoryUsage, atom_size) - 48usize];
539    ["Offset of field: JSMemoryUsage::str_count"]
540        [::core::mem::offset_of!(JSMemoryUsage, str_count) - 56usize];
541    ["Offset of field: JSMemoryUsage::str_size"]
542        [::core::mem::offset_of!(JSMemoryUsage, str_size) - 64usize];
543    ["Offset of field: JSMemoryUsage::obj_count"]
544        [::core::mem::offset_of!(JSMemoryUsage, obj_count) - 72usize];
545    ["Offset of field: JSMemoryUsage::obj_size"]
546        [::core::mem::offset_of!(JSMemoryUsage, obj_size) - 80usize];
547    ["Offset of field: JSMemoryUsage::prop_count"]
548        [::core::mem::offset_of!(JSMemoryUsage, prop_count) - 88usize];
549    ["Offset of field: JSMemoryUsage::prop_size"]
550        [::core::mem::offset_of!(JSMemoryUsage, prop_size) - 96usize];
551    ["Offset of field: JSMemoryUsage::shape_count"]
552        [::core::mem::offset_of!(JSMemoryUsage, shape_count) - 104usize];
553    ["Offset of field: JSMemoryUsage::shape_size"]
554        [::core::mem::offset_of!(JSMemoryUsage, shape_size) - 112usize];
555    ["Offset of field: JSMemoryUsage::js_func_count"]
556        [::core::mem::offset_of!(JSMemoryUsage, js_func_count) - 120usize];
557    ["Offset of field: JSMemoryUsage::js_func_size"]
558        [::core::mem::offset_of!(JSMemoryUsage, js_func_size) - 128usize];
559    ["Offset of field: JSMemoryUsage::js_func_code_size"]
560        [::core::mem::offset_of!(JSMemoryUsage, js_func_code_size) - 136usize];
561    ["Offset of field: JSMemoryUsage::js_func_pc2line_count"]
562        [::core::mem::offset_of!(JSMemoryUsage, js_func_pc2line_count) - 144usize];
563    ["Offset of field: JSMemoryUsage::js_func_pc2line_size"]
564        [::core::mem::offset_of!(JSMemoryUsage, js_func_pc2line_size) - 152usize];
565    ["Offset of field: JSMemoryUsage::c_func_count"]
566        [::core::mem::offset_of!(JSMemoryUsage, c_func_count) - 160usize];
567    ["Offset of field: JSMemoryUsage::array_count"]
568        [::core::mem::offset_of!(JSMemoryUsage, array_count) - 168usize];
569    ["Offset of field: JSMemoryUsage::fast_array_count"]
570        [::core::mem::offset_of!(JSMemoryUsage, fast_array_count) - 176usize];
571    ["Offset of field: JSMemoryUsage::fast_array_elements"]
572        [::core::mem::offset_of!(JSMemoryUsage, fast_array_elements) - 184usize];
573    ["Offset of field: JSMemoryUsage::binary_object_count"]
574        [::core::mem::offset_of!(JSMemoryUsage, binary_object_count) - 192usize];
575    ["Offset of field: JSMemoryUsage::binary_object_size"]
576        [::core::mem::offset_of!(JSMemoryUsage, binary_object_size) - 200usize];
577};
578unsafe extern "C" {
579    pub fn JS_ComputeMemoryUsage(rt: *mut JSRuntime, s: *mut JSMemoryUsage);
580}
581unsafe extern "C" {
582    pub fn JS_NewAtomLen(
583        ctx: *mut JSContext,
584        str_: *const ::core::ffi::c_char,
585        len: size_t,
586    ) -> JSAtom;
587}
588unsafe extern "C" {
589    pub fn JS_NewAtom(ctx: *mut JSContext, str_: *const ::core::ffi::c_char) -> JSAtom;
590}
591unsafe extern "C" {
592    pub fn JS_NewAtomUInt32(ctx: *mut JSContext, n: u32) -> JSAtom;
593}
594unsafe extern "C" {
595    pub fn JS_DupAtom(ctx: *mut JSContext, v: JSAtom) -> JSAtom;
596}
597unsafe extern "C" {
598    pub fn JS_DupAtomRT(rt: *mut JSRuntime, v: JSAtom) -> JSAtom;
599}
600unsafe extern "C" {
601    pub fn JS_FreeAtom(ctx: *mut JSContext, v: JSAtom);
602}
603unsafe extern "C" {
604    pub fn JS_FreeAtomRT(rt: *mut JSRuntime, v: JSAtom);
605}
606unsafe extern "C" {
607    pub fn JS_AtomToValue(ctx: *mut JSContext, atom: JSAtom) -> JSValue;
608}
609unsafe extern "C" {
610    pub fn JS_AtomToString(ctx: *mut JSContext, atom: JSAtom) -> JSValue;
611}
612unsafe extern "C" {
613    pub fn JS_AtomToCStringLen(
614        ctx: *mut JSContext,
615        plen: *mut size_t,
616        atom: JSAtom,
617    ) -> *const ::core::ffi::c_char;
618}
619unsafe extern "C" {
620    pub fn JS_ValueToAtom(ctx: *mut JSContext, val: JSValue) -> JSAtom;
621}
622#[repr(C)]
623#[derive(Debug, Copy, Clone)]
624pub struct JSPropertyEnum {
625    pub is_enumerable: bool,
626    pub atom: JSAtom,
627}
628#[allow(clippy::unnecessary_operation, clippy::identity_op)]
629const _: () = {
630    ["Size of JSPropertyEnum"][::core::mem::size_of::<JSPropertyEnum>() - 8usize];
631    ["Alignment of JSPropertyEnum"][::core::mem::align_of::<JSPropertyEnum>() - 4usize];
632    ["Offset of field: JSPropertyEnum::is_enumerable"]
633        [::core::mem::offset_of!(JSPropertyEnum, is_enumerable) - 0usize];
634    ["Offset of field: JSPropertyEnum::atom"]
635        [::core::mem::offset_of!(JSPropertyEnum, atom) - 4usize];
636};
637#[repr(C)]
638#[derive(Copy, Clone)]
639pub struct JSPropertyDescriptor {
640    pub flags: ::core::ffi::c_int,
641    pub value: JSValue,
642    pub getter: JSValue,
643    pub setter: JSValue,
644}
645#[allow(clippy::unnecessary_operation, clippy::identity_op)]
646const _: () = {
647    ["Size of JSPropertyDescriptor"][::core::mem::size_of::<JSPropertyDescriptor>() - 56usize];
648    ["Alignment of JSPropertyDescriptor"][::core::mem::align_of::<JSPropertyDescriptor>() - 8usize];
649    ["Offset of field: JSPropertyDescriptor::flags"]
650        [::core::mem::offset_of!(JSPropertyDescriptor, flags) - 0usize];
651    ["Offset of field: JSPropertyDescriptor::value"]
652        [::core::mem::offset_of!(JSPropertyDescriptor, value) - 8usize];
653    ["Offset of field: JSPropertyDescriptor::getter"]
654        [::core::mem::offset_of!(JSPropertyDescriptor, getter) - 24usize];
655    ["Offset of field: JSPropertyDescriptor::setter"]
656        [::core::mem::offset_of!(JSPropertyDescriptor, setter) - 40usize];
657};
658#[repr(C)]
659#[derive(Debug, Copy, Clone)]
660pub struct JSClassExoticMethods {
661    pub get_own_property: ::core::option::Option<
662        unsafe extern "C" fn(
663            ctx: *mut JSContext,
664            desc: *mut JSPropertyDescriptor,
665            obj: JSValue,
666            prop: JSAtom,
667        ) -> ::core::ffi::c_int,
668    >,
669    pub get_own_property_names: ::core::option::Option<
670        unsafe extern "C" fn(
671            ctx: *mut JSContext,
672            ptab: *mut *mut JSPropertyEnum,
673            plen: *mut u32,
674            obj: JSValue,
675        ) -> ::core::ffi::c_int,
676    >,
677    pub delete_property: ::core::option::Option<
678        unsafe extern "C" fn(ctx: *mut JSContext, obj: JSValue, prop: JSAtom) -> ::core::ffi::c_int,
679    >,
680    pub define_own_property: ::core::option::Option<
681        unsafe extern "C" fn(
682            ctx: *mut JSContext,
683            this_obj: JSValue,
684            prop: JSAtom,
685            val: JSValue,
686            getter: JSValue,
687            setter: JSValue,
688            flags: ::core::ffi::c_int,
689        ) -> ::core::ffi::c_int,
690    >,
691    pub has_property: ::core::option::Option<
692        unsafe extern "C" fn(ctx: *mut JSContext, obj: JSValue, atom: JSAtom) -> ::core::ffi::c_int,
693    >,
694    pub get_property: ::core::option::Option<
695        unsafe extern "C" fn(
696            ctx: *mut JSContext,
697            obj: JSValue,
698            atom: JSAtom,
699            receiver: JSValue,
700        ) -> JSValue,
701    >,
702    pub set_property: ::core::option::Option<
703        unsafe extern "C" fn(
704            ctx: *mut JSContext,
705            obj: JSValue,
706            atom: JSAtom,
707            value: JSValue,
708            receiver: JSValue,
709            flags: ::core::ffi::c_int,
710        ) -> ::core::ffi::c_int,
711    >,
712}
713#[allow(clippy::unnecessary_operation, clippy::identity_op)]
714const _: () = {
715    ["Size of JSClassExoticMethods"][::core::mem::size_of::<JSClassExoticMethods>() - 56usize];
716    ["Alignment of JSClassExoticMethods"][::core::mem::align_of::<JSClassExoticMethods>() - 8usize];
717    ["Offset of field: JSClassExoticMethods::get_own_property"]
718        [::core::mem::offset_of!(JSClassExoticMethods, get_own_property) - 0usize];
719    ["Offset of field: JSClassExoticMethods::get_own_property_names"]
720        [::core::mem::offset_of!(JSClassExoticMethods, get_own_property_names) - 8usize];
721    ["Offset of field: JSClassExoticMethods::delete_property"]
722        [::core::mem::offset_of!(JSClassExoticMethods, delete_property) - 16usize];
723    ["Offset of field: JSClassExoticMethods::define_own_property"]
724        [::core::mem::offset_of!(JSClassExoticMethods, define_own_property) - 24usize];
725    ["Offset of field: JSClassExoticMethods::has_property"]
726        [::core::mem::offset_of!(JSClassExoticMethods, has_property) - 32usize];
727    ["Offset of field: JSClassExoticMethods::get_property"]
728        [::core::mem::offset_of!(JSClassExoticMethods, get_property) - 40usize];
729    ["Offset of field: JSClassExoticMethods::set_property"]
730        [::core::mem::offset_of!(JSClassExoticMethods, set_property) - 48usize];
731};
732pub type JSClassFinalizer =
733    ::core::option::Option<unsafe extern "C" fn(rt: *mut JSRuntime, val: JSValue)>;
734pub type JSClassGCMark = ::core::option::Option<
735    unsafe extern "C" fn(rt: *mut JSRuntime, val: JSValue, mark_func: JS_MarkFunc),
736>;
737pub type JSClassCall = ::core::option::Option<
738    unsafe extern "C" fn(
739        ctx: *mut JSContext,
740        func_obj: JSValue,
741        this_val: JSValue,
742        argc: ::core::ffi::c_int,
743        argv: *mut JSValue,
744        flags: ::core::ffi::c_int,
745    ) -> JSValue,
746>;
747#[repr(C)]
748#[derive(Debug, Copy, Clone)]
749pub struct JSClassDef {
750    pub class_name: *const ::core::ffi::c_char,
751    pub finalizer: JSClassFinalizer,
752    pub gc_mark: JSClassGCMark,
753    pub call: JSClassCall,
754    pub exotic: *mut JSClassExoticMethods,
755}
756#[allow(clippy::unnecessary_operation, clippy::identity_op)]
757const _: () = {
758    ["Size of JSClassDef"][::core::mem::size_of::<JSClassDef>() - 40usize];
759    ["Alignment of JSClassDef"][::core::mem::align_of::<JSClassDef>() - 8usize];
760    ["Offset of field: JSClassDef::class_name"]
761        [::core::mem::offset_of!(JSClassDef, class_name) - 0usize];
762    ["Offset of field: JSClassDef::finalizer"]
763        [::core::mem::offset_of!(JSClassDef, finalizer) - 8usize];
764    ["Offset of field: JSClassDef::gc_mark"]
765        [::core::mem::offset_of!(JSClassDef, gc_mark) - 16usize];
766    ["Offset of field: JSClassDef::call"][::core::mem::offset_of!(JSClassDef, call) - 24usize];
767    ["Offset of field: JSClassDef::exotic"][::core::mem::offset_of!(JSClassDef, exotic) - 32usize];
768};
769#[repr(C)]
770#[derive(Debug, Copy, Clone)]
771pub struct JSEvalOptions {
772    pub version: ::core::ffi::c_int,
773    pub eval_flags: ::core::ffi::c_int,
774    pub filename: *const ::core::ffi::c_char,
775    pub line_num: ::core::ffi::c_int,
776}
777#[allow(clippy::unnecessary_operation, clippy::identity_op)]
778const _: () = {
779    ["Size of JSEvalOptions"][::core::mem::size_of::<JSEvalOptions>() - 24usize];
780    ["Alignment of JSEvalOptions"][::core::mem::align_of::<JSEvalOptions>() - 8usize];
781    ["Offset of field: JSEvalOptions::version"]
782        [::core::mem::offset_of!(JSEvalOptions, version) - 0usize];
783    ["Offset of field: JSEvalOptions::eval_flags"]
784        [::core::mem::offset_of!(JSEvalOptions, eval_flags) - 4usize];
785    ["Offset of field: JSEvalOptions::filename"]
786        [::core::mem::offset_of!(JSEvalOptions, filename) - 8usize];
787    ["Offset of field: JSEvalOptions::line_num"]
788        [::core::mem::offset_of!(JSEvalOptions, line_num) - 16usize];
789};
790unsafe extern "C" {
791    pub fn JS_NewClassID(rt: *mut JSRuntime, pclass_id: *mut JSClassID) -> JSClassID;
792}
793unsafe extern "C" {
794    pub fn JS_GetClassID(v: JSValue) -> JSClassID;
795}
796unsafe extern "C" {
797    pub fn JS_NewClass(
798        rt: *mut JSRuntime,
799        class_id: JSClassID,
800        class_def: *const JSClassDef,
801    ) -> ::core::ffi::c_int;
802}
803unsafe extern "C" {
804    pub fn JS_IsRegisteredClass(rt: *mut JSRuntime, class_id: JSClassID) -> bool;
805}
806unsafe extern "C" {
807    pub fn JS_GetClassName(rt: *mut JSRuntime, class_id: JSClassID) -> JSAtom;
808}
809unsafe extern "C" {
810    pub fn JS_NewNumber(ctx: *mut JSContext, d: f64) -> JSValue;
811}
812unsafe extern "C" {
813    pub fn JS_NewBigInt64(ctx: *mut JSContext, v: i64) -> JSValue;
814}
815unsafe extern "C" {
816    pub fn JS_NewBigUint64(ctx: *mut JSContext, v: u64) -> JSValue;
817}
818unsafe extern "C" {
819    pub fn JS_Throw(ctx: *mut JSContext, obj: JSValue) -> JSValue;
820}
821unsafe extern "C" {
822    pub fn JS_GetException(ctx: *mut JSContext) -> JSValue;
823}
824unsafe extern "C" {
825    pub fn JS_HasException(ctx: *mut JSContext) -> bool;
826}
827unsafe extern "C" {
828    pub fn JS_IsError(val: JSValue) -> bool;
829}
830unsafe extern "C" {
831    pub fn JS_IsUncatchableError(val: JSValue) -> bool;
832}
833unsafe extern "C" {
834    pub fn JS_SetUncatchableError(ctx: *mut JSContext, val: JSValue);
835}
836unsafe extern "C" {
837    pub fn JS_ClearUncatchableError(ctx: *mut JSContext, val: JSValue);
838}
839unsafe extern "C" {
840    pub fn JS_ResetUncatchableError(ctx: *mut JSContext);
841}
842unsafe extern "C" {
843    pub fn JS_NewError(ctx: *mut JSContext) -> JSValue;
844}
845unsafe extern "C" {
846    pub fn JS_NewInternalError(
847        ctx: *mut JSContext,
848        fmt: *const ::core::ffi::c_char,
849        ...
850    ) -> JSValue;
851}
852unsafe extern "C" {
853    pub fn JS_NewPlainError(ctx: *mut JSContext, fmt: *const ::core::ffi::c_char, ...) -> JSValue;
854}
855unsafe extern "C" {
856    pub fn JS_NewRangeError(ctx: *mut JSContext, fmt: *const ::core::ffi::c_char, ...) -> JSValue;
857}
858unsafe extern "C" {
859    pub fn JS_NewReferenceError(
860        ctx: *mut JSContext,
861        fmt: *const ::core::ffi::c_char,
862        ...
863    ) -> JSValue;
864}
865unsafe extern "C" {
866    pub fn JS_NewSyntaxError(ctx: *mut JSContext, fmt: *const ::core::ffi::c_char, ...) -> JSValue;
867}
868unsafe extern "C" {
869    pub fn JS_NewTypeError(ctx: *mut JSContext, fmt: *const ::core::ffi::c_char, ...) -> JSValue;
870}
871unsafe extern "C" {
872    pub fn JS_ThrowInternalError(
873        ctx: *mut JSContext,
874        fmt: *const ::core::ffi::c_char,
875        ...
876    ) -> JSValue;
877}
878unsafe extern "C" {
879    pub fn JS_ThrowPlainError(ctx: *mut JSContext, fmt: *const ::core::ffi::c_char, ...)
880    -> JSValue;
881}
882unsafe extern "C" {
883    pub fn JS_ThrowRangeError(ctx: *mut JSContext, fmt: *const ::core::ffi::c_char, ...)
884    -> JSValue;
885}
886unsafe extern "C" {
887    pub fn JS_ThrowReferenceError(
888        ctx: *mut JSContext,
889        fmt: *const ::core::ffi::c_char,
890        ...
891    ) -> JSValue;
892}
893unsafe extern "C" {
894    pub fn JS_ThrowSyntaxError(
895        ctx: *mut JSContext,
896        fmt: *const ::core::ffi::c_char,
897        ...
898    ) -> JSValue;
899}
900unsafe extern "C" {
901    pub fn JS_ThrowTypeError(ctx: *mut JSContext, fmt: *const ::core::ffi::c_char, ...) -> JSValue;
902}
903unsafe extern "C" {
904    pub fn JS_ThrowDOMException(
905        ctx: *mut JSContext,
906        name: *const ::core::ffi::c_char,
907        fmt: *const ::core::ffi::c_char,
908        ...
909    ) -> JSValue;
910}
911unsafe extern "C" {
912    pub fn JS_ThrowOutOfMemory(ctx: *mut JSContext) -> JSValue;
913}
914unsafe extern "C" {
915    pub fn JS_FreeValue(ctx: *mut JSContext, v: JSValue);
916}
917unsafe extern "C" {
918    pub fn JS_FreeValueRT(rt: *mut JSRuntime, v: JSValue);
919}
920unsafe extern "C" {
921    pub fn JS_DupValue(ctx: *mut JSContext, v: JSValue) -> JSValue;
922}
923unsafe extern "C" {
924    pub fn JS_DupValueRT(rt: *mut JSRuntime, v: JSValue) -> JSValue;
925}
926unsafe extern "C" {
927    pub fn JS_ToBool(ctx: *mut JSContext, val: JSValue) -> ::core::ffi::c_int;
928}
929unsafe extern "C" {
930    pub fn JS_ToNumber(ctx: *mut JSContext, val: JSValue) -> JSValue;
931}
932unsafe extern "C" {
933    pub fn JS_ToInt32(ctx: *mut JSContext, pres: *mut i32, val: JSValue) -> ::core::ffi::c_int;
934}
935unsafe extern "C" {
936    pub fn JS_ToInt64(ctx: *mut JSContext, pres: *mut i64, val: JSValue) -> ::core::ffi::c_int;
937}
938unsafe extern "C" {
939    pub fn JS_ToIndex(ctx: *mut JSContext, plen: *mut u64, val: JSValue) -> ::core::ffi::c_int;
940}
941unsafe extern "C" {
942    pub fn JS_ToFloat64(ctx: *mut JSContext, pres: *mut f64, val: JSValue) -> ::core::ffi::c_int;
943}
944unsafe extern "C" {
945    pub fn JS_ToBigInt64(ctx: *mut JSContext, pres: *mut i64, val: JSValue) -> ::core::ffi::c_int;
946}
947unsafe extern "C" {
948    pub fn JS_ToBigUint64(ctx: *mut JSContext, pres: *mut u64, val: JSValue) -> ::core::ffi::c_int;
949}
950unsafe extern "C" {
951    pub fn JS_ToInt64Ext(ctx: *mut JSContext, pres: *mut i64, val: JSValue) -> ::core::ffi::c_int;
952}
953unsafe extern "C" {
954    pub fn JS_NewStringLen(
955        ctx: *mut JSContext,
956        str1: *const ::core::ffi::c_char,
957        len1: size_t,
958    ) -> JSValue;
959}
960unsafe extern "C" {
961    pub fn JS_NewStringUTF16(ctx: *mut JSContext, buf: *const u16, len: size_t) -> JSValue;
962}
963unsafe extern "C" {
964    pub fn JS_NewAtomString(ctx: *mut JSContext, str_: *const ::core::ffi::c_char) -> JSValue;
965}
966unsafe extern "C" {
967    pub fn JS_ToString(ctx: *mut JSContext, val: JSValue) -> JSValue;
968}
969unsafe extern "C" {
970    pub fn JS_ToPropertyKey(ctx: *mut JSContext, val: JSValue) -> JSValue;
971}
972unsafe extern "C" {
973    pub fn JS_ToCStringLen2(
974        ctx: *mut JSContext,
975        plen: *mut size_t,
976        val1: JSValue,
977        cesu8: bool,
978    ) -> *const ::core::ffi::c_char;
979}
980unsafe extern "C" {
981    pub fn JS_ToCStringLenUTF16(
982        ctx: *mut JSContext,
983        plen: *mut size_t,
984        val1: JSValue,
985    ) -> *const u16;
986}
987unsafe extern "C" {
988    pub fn JS_FreeCString(ctx: *mut JSContext, ptr: *const ::core::ffi::c_char);
989}
990unsafe extern "C" {
991    pub fn JS_FreeCStringRT(rt: *mut JSRuntime, ptr: *const ::core::ffi::c_char);
992}
993unsafe extern "C" {
994    pub fn JS_FreeCStringUTF16(ctx: *mut JSContext, ptr: *const u16);
995}
996unsafe extern "C" {
997    pub fn JS_FreeCStringRT_UTF16(rt: *mut JSRuntime, ptr: *const u16);
998}
999unsafe extern "C" {
1000    pub fn JS_NewObjectProtoClass(
1001        ctx: *mut JSContext,
1002        proto: JSValue,
1003        class_id: JSClassID,
1004    ) -> JSValue;
1005}
1006unsafe extern "C" {
1007    pub fn JS_NewObjectClass(ctx: *mut JSContext, class_id: JSClassID) -> JSValue;
1008}
1009unsafe extern "C" {
1010    pub fn JS_NewObjectProto(ctx: *mut JSContext, proto: JSValue) -> JSValue;
1011}
1012unsafe extern "C" {
1013    pub fn JS_NewObject(ctx: *mut JSContext) -> JSValue;
1014}
1015unsafe extern "C" {
1016    pub fn JS_NewObjectFrom(
1017        ctx: *mut JSContext,
1018        count: ::core::ffi::c_int,
1019        props: *const JSAtom,
1020        values: *const JSValue,
1021    ) -> JSValue;
1022}
1023unsafe extern "C" {
1024    pub fn JS_NewObjectFromStr(
1025        ctx: *mut JSContext,
1026        count: ::core::ffi::c_int,
1027        props: *mut *const ::core::ffi::c_char,
1028        values: *const JSValue,
1029    ) -> JSValue;
1030}
1031unsafe extern "C" {
1032    pub fn JS_ToObject(ctx: *mut JSContext, val: JSValue) -> JSValue;
1033}
1034unsafe extern "C" {
1035    pub fn JS_ToObjectString(ctx: *mut JSContext, val: JSValue) -> JSValue;
1036}
1037unsafe extern "C" {
1038    pub fn JS_IsFunction(ctx: *mut JSContext, val: JSValue) -> bool;
1039}
1040unsafe extern "C" {
1041    pub fn JS_IsAsyncFunction(val: JSValue) -> bool;
1042}
1043unsafe extern "C" {
1044    pub fn JS_IsConstructor(ctx: *mut JSContext, val: JSValue) -> bool;
1045}
1046unsafe extern "C" {
1047    pub fn JS_SetConstructorBit(ctx: *mut JSContext, func_obj: JSValue, val: bool) -> bool;
1048}
1049unsafe extern "C" {
1050    pub fn JS_IsRegExp(val: JSValue) -> bool;
1051}
1052unsafe extern "C" {
1053    pub fn JS_IsMap(val: JSValue) -> bool;
1054}
1055unsafe extern "C" {
1056    pub fn JS_IsSet(val: JSValue) -> bool;
1057}
1058unsafe extern "C" {
1059    pub fn JS_IsWeakRef(val: JSValue) -> bool;
1060}
1061unsafe extern "C" {
1062    pub fn JS_IsWeakSet(val: JSValue) -> bool;
1063}
1064unsafe extern "C" {
1065    pub fn JS_IsWeakMap(val: JSValue) -> bool;
1066}
1067unsafe extern "C" {
1068    pub fn JS_IsDataView(val: JSValue) -> bool;
1069}
1070unsafe extern "C" {
1071    pub fn JS_NewArray(ctx: *mut JSContext) -> JSValue;
1072}
1073unsafe extern "C" {
1074    pub fn JS_NewArrayFrom(
1075        ctx: *mut JSContext,
1076        count: ::core::ffi::c_int,
1077        values: *const JSValue,
1078    ) -> JSValue;
1079}
1080unsafe extern "C" {
1081    pub fn JS_IsArray(val: JSValue) -> bool;
1082}
1083unsafe extern "C" {
1084    pub fn JS_IsProxy(val: JSValue) -> bool;
1085}
1086unsafe extern "C" {
1087    pub fn JS_GetProxyTarget(ctx: *mut JSContext, proxy: JSValue) -> JSValue;
1088}
1089unsafe extern "C" {
1090    pub fn JS_GetProxyHandler(ctx: *mut JSContext, proxy: JSValue) -> JSValue;
1091}
1092unsafe extern "C" {
1093    pub fn JS_NewProxy(ctx: *mut JSContext, target: JSValue, handler: JSValue) -> JSValue;
1094}
1095unsafe extern "C" {
1096    pub fn JS_NewDate(ctx: *mut JSContext, epoch_ms: f64) -> JSValue;
1097}
1098unsafe extern "C" {
1099    pub fn JS_IsDate(v: JSValue) -> bool;
1100}
1101unsafe extern "C" {
1102    pub fn JS_GetProperty(ctx: *mut JSContext, this_obj: JSValue, prop: JSAtom) -> JSValue;
1103}
1104unsafe extern "C" {
1105    pub fn JS_GetPropertyUint32(ctx: *mut JSContext, this_obj: JSValue, idx: u32) -> JSValue;
1106}
1107unsafe extern "C" {
1108    pub fn JS_GetPropertyInt64(ctx: *mut JSContext, this_obj: JSValue, idx: i64) -> JSValue;
1109}
1110unsafe extern "C" {
1111    pub fn JS_GetPropertyStr(
1112        ctx: *mut JSContext,
1113        this_obj: JSValue,
1114        prop: *const ::core::ffi::c_char,
1115    ) -> JSValue;
1116}
1117unsafe extern "C" {
1118    pub fn JS_SetProperty(
1119        ctx: *mut JSContext,
1120        this_obj: JSValue,
1121        prop: JSAtom,
1122        val: JSValue,
1123    ) -> ::core::ffi::c_int;
1124}
1125unsafe extern "C" {
1126    pub fn JS_SetPropertyUint32(
1127        ctx: *mut JSContext,
1128        this_obj: JSValue,
1129        idx: u32,
1130        val: JSValue,
1131    ) -> ::core::ffi::c_int;
1132}
1133unsafe extern "C" {
1134    pub fn JS_SetPropertyInt64(
1135        ctx: *mut JSContext,
1136        this_obj: JSValue,
1137        idx: i64,
1138        val: JSValue,
1139    ) -> ::core::ffi::c_int;
1140}
1141unsafe extern "C" {
1142    pub fn JS_SetPropertyStr(
1143        ctx: *mut JSContext,
1144        this_obj: JSValue,
1145        prop: *const ::core::ffi::c_char,
1146        val: JSValue,
1147    ) -> ::core::ffi::c_int;
1148}
1149unsafe extern "C" {
1150    pub fn JS_HasProperty(
1151        ctx: *mut JSContext,
1152        this_obj: JSValue,
1153        prop: JSAtom,
1154    ) -> ::core::ffi::c_int;
1155}
1156unsafe extern "C" {
1157    pub fn JS_IsExtensible(ctx: *mut JSContext, obj: JSValue) -> ::core::ffi::c_int;
1158}
1159unsafe extern "C" {
1160    pub fn JS_PreventExtensions(ctx: *mut JSContext, obj: JSValue) -> ::core::ffi::c_int;
1161}
1162unsafe extern "C" {
1163    pub fn JS_DeleteProperty(
1164        ctx: *mut JSContext,
1165        obj: JSValue,
1166        prop: JSAtom,
1167        flags: ::core::ffi::c_int,
1168    ) -> ::core::ffi::c_int;
1169}
1170unsafe extern "C" {
1171    pub fn JS_SetPrototype(
1172        ctx: *mut JSContext,
1173        obj: JSValue,
1174        proto_val: JSValue,
1175    ) -> ::core::ffi::c_int;
1176}
1177unsafe extern "C" {
1178    pub fn JS_GetPrototype(ctx: *mut JSContext, val: JSValue) -> JSValue;
1179}
1180unsafe extern "C" {
1181    pub fn JS_GetLength(ctx: *mut JSContext, obj: JSValue, pres: *mut i64) -> ::core::ffi::c_int;
1182}
1183unsafe extern "C" {
1184    pub fn JS_SetLength(ctx: *mut JSContext, obj: JSValue, len: i64) -> ::core::ffi::c_int;
1185}
1186unsafe extern "C" {
1187    pub fn JS_SealObject(ctx: *mut JSContext, obj: JSValue) -> ::core::ffi::c_int;
1188}
1189unsafe extern "C" {
1190    pub fn JS_FreezeObject(ctx: *mut JSContext, obj: JSValue) -> ::core::ffi::c_int;
1191}
1192unsafe extern "C" {
1193    pub fn JS_GetOwnPropertyNames(
1194        ctx: *mut JSContext,
1195        ptab: *mut *mut JSPropertyEnum,
1196        plen: *mut u32,
1197        obj: JSValue,
1198        flags: ::core::ffi::c_int,
1199    ) -> ::core::ffi::c_int;
1200}
1201unsafe extern "C" {
1202    pub fn JS_GetOwnProperty(
1203        ctx: *mut JSContext,
1204        desc: *mut JSPropertyDescriptor,
1205        obj: JSValue,
1206        prop: JSAtom,
1207    ) -> ::core::ffi::c_int;
1208}
1209unsafe extern "C" {
1210    pub fn JS_FreePropertyEnum(ctx: *mut JSContext, tab: *mut JSPropertyEnum, len: u32);
1211}
1212unsafe extern "C" {
1213    pub fn JS_Call(
1214        ctx: *mut JSContext,
1215        func_obj: JSValue,
1216        this_obj: JSValue,
1217        argc: ::core::ffi::c_int,
1218        argv: *mut JSValue,
1219    ) -> JSValue;
1220}
1221unsafe extern "C" {
1222    pub fn JS_Invoke(
1223        ctx: *mut JSContext,
1224        this_val: JSValue,
1225        atom: JSAtom,
1226        argc: ::core::ffi::c_int,
1227        argv: *mut JSValue,
1228    ) -> JSValue;
1229}
1230unsafe extern "C" {
1231    pub fn JS_CallConstructor(
1232        ctx: *mut JSContext,
1233        func_obj: JSValue,
1234        argc: ::core::ffi::c_int,
1235        argv: *mut JSValue,
1236    ) -> JSValue;
1237}
1238unsafe extern "C" {
1239    pub fn JS_CallConstructor2(
1240        ctx: *mut JSContext,
1241        func_obj: JSValue,
1242        new_target: JSValue,
1243        argc: ::core::ffi::c_int,
1244        argv: *mut JSValue,
1245    ) -> JSValue;
1246}
1247unsafe extern "C" {
1248    pub fn JS_DetectModule(input: *const ::core::ffi::c_char, input_len: size_t) -> bool;
1249}
1250unsafe extern "C" {
1251    pub fn JS_Eval(
1252        ctx: *mut JSContext,
1253        input: *const ::core::ffi::c_char,
1254        input_len: size_t,
1255        filename: *const ::core::ffi::c_char,
1256        eval_flags: ::core::ffi::c_int,
1257    ) -> JSValue;
1258}
1259unsafe extern "C" {
1260    pub fn JS_Eval2(
1261        ctx: *mut JSContext,
1262        input: *const ::core::ffi::c_char,
1263        input_len: size_t,
1264        options: *mut JSEvalOptions,
1265    ) -> JSValue;
1266}
1267unsafe extern "C" {
1268    pub fn JS_EvalThis(
1269        ctx: *mut JSContext,
1270        this_obj: JSValue,
1271        input: *const ::core::ffi::c_char,
1272        input_len: size_t,
1273        filename: *const ::core::ffi::c_char,
1274        eval_flags: ::core::ffi::c_int,
1275    ) -> JSValue;
1276}
1277unsafe extern "C" {
1278    pub fn JS_EvalThis2(
1279        ctx: *mut JSContext,
1280        this_obj: JSValue,
1281        input: *const ::core::ffi::c_char,
1282        input_len: size_t,
1283        options: *mut JSEvalOptions,
1284    ) -> JSValue;
1285}
1286unsafe extern "C" {
1287    pub fn JS_GetGlobalObject(ctx: *mut JSContext) -> JSValue;
1288}
1289unsafe extern "C" {
1290    pub fn JS_IsInstanceOf(ctx: *mut JSContext, val: JSValue, obj: JSValue) -> ::core::ffi::c_int;
1291}
1292unsafe extern "C" {
1293    pub fn JS_DefineProperty(
1294        ctx: *mut JSContext,
1295        this_obj: JSValue,
1296        prop: JSAtom,
1297        val: JSValue,
1298        getter: JSValue,
1299        setter: JSValue,
1300        flags: ::core::ffi::c_int,
1301    ) -> ::core::ffi::c_int;
1302}
1303unsafe extern "C" {
1304    pub fn JS_DefinePropertyValue(
1305        ctx: *mut JSContext,
1306        this_obj: JSValue,
1307        prop: JSAtom,
1308        val: JSValue,
1309        flags: ::core::ffi::c_int,
1310    ) -> ::core::ffi::c_int;
1311}
1312unsafe extern "C" {
1313    pub fn JS_DefinePropertyValueUint32(
1314        ctx: *mut JSContext,
1315        this_obj: JSValue,
1316        idx: u32,
1317        val: JSValue,
1318        flags: ::core::ffi::c_int,
1319    ) -> ::core::ffi::c_int;
1320}
1321unsafe extern "C" {
1322    pub fn JS_DefinePropertyValueStr(
1323        ctx: *mut JSContext,
1324        this_obj: JSValue,
1325        prop: *const ::core::ffi::c_char,
1326        val: JSValue,
1327        flags: ::core::ffi::c_int,
1328    ) -> ::core::ffi::c_int;
1329}
1330unsafe extern "C" {
1331    pub fn JS_DefinePropertyGetSet(
1332        ctx: *mut JSContext,
1333        this_obj: JSValue,
1334        prop: JSAtom,
1335        getter: JSValue,
1336        setter: JSValue,
1337        flags: ::core::ffi::c_int,
1338    ) -> ::core::ffi::c_int;
1339}
1340unsafe extern "C" {
1341    pub fn JS_SetOpaque(obj: JSValue, opaque: *mut ::core::ffi::c_void) -> ::core::ffi::c_int;
1342}
1343unsafe extern "C" {
1344    pub fn JS_GetOpaque(obj: JSValue, class_id: JSClassID) -> *mut ::core::ffi::c_void;
1345}
1346unsafe extern "C" {
1347    pub fn JS_GetOpaque2(
1348        ctx: *mut JSContext,
1349        obj: JSValue,
1350        class_id: JSClassID,
1351    ) -> *mut ::core::ffi::c_void;
1352}
1353unsafe extern "C" {
1354    pub fn JS_GetAnyOpaque(obj: JSValue, class_id: *mut JSClassID) -> *mut ::core::ffi::c_void;
1355}
1356unsafe extern "C" {
1357    pub fn JS_ParseJSON(
1358        ctx: *mut JSContext,
1359        buf: *const ::core::ffi::c_char,
1360        buf_len: size_t,
1361        filename: *const ::core::ffi::c_char,
1362    ) -> JSValue;
1363}
1364unsafe extern "C" {
1365    pub fn JS_JSONStringify(
1366        ctx: *mut JSContext,
1367        obj: JSValue,
1368        replacer: JSValue,
1369        space0: JSValue,
1370    ) -> JSValue;
1371}
1372pub type JSFreeArrayBufferDataFunc = ::core::option::Option<
1373    unsafe extern "C" fn(
1374        rt: *mut JSRuntime,
1375        opaque: *mut ::core::ffi::c_void,
1376        ptr: *mut ::core::ffi::c_void,
1377    ),
1378>;
1379unsafe extern "C" {
1380    pub fn JS_NewArrayBuffer(
1381        ctx: *mut JSContext,
1382        buf: *mut u8,
1383        len: size_t,
1384        free_func: JSFreeArrayBufferDataFunc,
1385        opaque: *mut ::core::ffi::c_void,
1386        is_shared: bool,
1387    ) -> JSValue;
1388}
1389unsafe extern "C" {
1390    pub fn JS_NewArrayBufferCopy(ctx: *mut JSContext, buf: *const u8, len: size_t) -> JSValue;
1391}
1392unsafe extern "C" {
1393    pub fn JS_DetachArrayBuffer(ctx: *mut JSContext, obj: JSValue);
1394}
1395unsafe extern "C" {
1396    pub fn JS_GetArrayBuffer(ctx: *mut JSContext, psize: *mut size_t, obj: JSValue) -> *mut u8;
1397}
1398unsafe extern "C" {
1399    pub fn JS_IsArrayBuffer(obj: JSValue) -> bool;
1400}
1401unsafe extern "C" {
1402    pub fn JS_IsImmutableArrayBuffer(obj: JSValue) -> ::core::ffi::c_int;
1403}
1404unsafe extern "C" {
1405    pub fn JS_SetImmutableArrayBuffer(obj: JSValue, immutable: bool) -> ::core::ffi::c_int;
1406}
1407unsafe extern "C" {
1408    pub fn JS_GetUint8Array(ctx: *mut JSContext, psize: *mut size_t, obj: JSValue) -> *mut u8;
1409}
1410pub const JSTypedArrayEnum_JS_TYPED_ARRAY_UINT8C: JSTypedArrayEnum = 0;
1411pub const JSTypedArrayEnum_JS_TYPED_ARRAY_INT8: JSTypedArrayEnum = 1;
1412pub const JSTypedArrayEnum_JS_TYPED_ARRAY_UINT8: JSTypedArrayEnum = 2;
1413pub const JSTypedArrayEnum_JS_TYPED_ARRAY_INT16: JSTypedArrayEnum = 3;
1414pub const JSTypedArrayEnum_JS_TYPED_ARRAY_UINT16: JSTypedArrayEnum = 4;
1415pub const JSTypedArrayEnum_JS_TYPED_ARRAY_INT32: JSTypedArrayEnum = 5;
1416pub const JSTypedArrayEnum_JS_TYPED_ARRAY_UINT32: JSTypedArrayEnum = 6;
1417pub const JSTypedArrayEnum_JS_TYPED_ARRAY_BIG_INT64: JSTypedArrayEnum = 7;
1418pub const JSTypedArrayEnum_JS_TYPED_ARRAY_BIG_UINT64: JSTypedArrayEnum = 8;
1419pub const JSTypedArrayEnum_JS_TYPED_ARRAY_FLOAT16: JSTypedArrayEnum = 9;
1420pub const JSTypedArrayEnum_JS_TYPED_ARRAY_FLOAT32: JSTypedArrayEnum = 10;
1421pub const JSTypedArrayEnum_JS_TYPED_ARRAY_FLOAT64: JSTypedArrayEnum = 11;
1422pub type JSTypedArrayEnum = ::core::ffi::c_uint;
1423unsafe extern "C" {
1424    pub fn JS_NewTypedArray(
1425        ctx: *mut JSContext,
1426        argc: ::core::ffi::c_int,
1427        argv: *mut JSValue,
1428        array_type: JSTypedArrayEnum,
1429    ) -> JSValue;
1430}
1431unsafe extern "C" {
1432    pub fn JS_GetTypedArrayBuffer(
1433        ctx: *mut JSContext,
1434        obj: JSValue,
1435        pbyte_offset: *mut size_t,
1436        pbyte_length: *mut size_t,
1437        pbytes_per_element: *mut size_t,
1438    ) -> JSValue;
1439}
1440unsafe extern "C" {
1441    pub fn JS_NewUint8Array(
1442        ctx: *mut JSContext,
1443        buf: *mut u8,
1444        len: size_t,
1445        free_func: JSFreeArrayBufferDataFunc,
1446        opaque: *mut ::core::ffi::c_void,
1447        is_shared: bool,
1448    ) -> JSValue;
1449}
1450unsafe extern "C" {
1451    pub fn JS_GetTypedArrayType(obj: JSValue) -> ::core::ffi::c_int;
1452}
1453unsafe extern "C" {
1454    pub fn JS_NewUint8ArrayCopy(ctx: *mut JSContext, buf: *const u8, len: size_t) -> JSValue;
1455}
1456#[repr(C)]
1457#[derive(Debug, Copy, Clone)]
1458pub struct JSSharedArrayBufferFunctions {
1459    pub sab_alloc: ::core::option::Option<
1460        unsafe extern "C" fn(
1461            opaque: *mut ::core::ffi::c_void,
1462            size: size_t,
1463        ) -> *mut ::core::ffi::c_void,
1464    >,
1465    pub sab_free: ::core::option::Option<
1466        unsafe extern "C" fn(opaque: *mut ::core::ffi::c_void, ptr: *mut ::core::ffi::c_void),
1467    >,
1468    pub sab_dup: ::core::option::Option<
1469        unsafe extern "C" fn(opaque: *mut ::core::ffi::c_void, ptr: *mut ::core::ffi::c_void),
1470    >,
1471    pub sab_opaque: *mut ::core::ffi::c_void,
1472}
1473#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1474const _: () = {
1475    ["Size of JSSharedArrayBufferFunctions"]
1476        [::core::mem::size_of::<JSSharedArrayBufferFunctions>() - 32usize];
1477    ["Alignment of JSSharedArrayBufferFunctions"]
1478        [::core::mem::align_of::<JSSharedArrayBufferFunctions>() - 8usize];
1479    ["Offset of field: JSSharedArrayBufferFunctions::sab_alloc"]
1480        [::core::mem::offset_of!(JSSharedArrayBufferFunctions, sab_alloc) - 0usize];
1481    ["Offset of field: JSSharedArrayBufferFunctions::sab_free"]
1482        [::core::mem::offset_of!(JSSharedArrayBufferFunctions, sab_free) - 8usize];
1483    ["Offset of field: JSSharedArrayBufferFunctions::sab_dup"]
1484        [::core::mem::offset_of!(JSSharedArrayBufferFunctions, sab_dup) - 16usize];
1485    ["Offset of field: JSSharedArrayBufferFunctions::sab_opaque"]
1486        [::core::mem::offset_of!(JSSharedArrayBufferFunctions, sab_opaque) - 24usize];
1487};
1488unsafe extern "C" {
1489    pub fn JS_SetSharedArrayBufferFunctions(
1490        rt: *mut JSRuntime,
1491        sf: *const JSSharedArrayBufferFunctions,
1492    );
1493}
1494pub const JSPromiseStateEnum_JS_PROMISE_NOT_A_PROMISE: JSPromiseStateEnum = -1;
1495pub const JSPromiseStateEnum_JS_PROMISE_PENDING: JSPromiseStateEnum = 0;
1496pub const JSPromiseStateEnum_JS_PROMISE_FULFILLED: JSPromiseStateEnum = 1;
1497pub const JSPromiseStateEnum_JS_PROMISE_REJECTED: JSPromiseStateEnum = 2;
1498pub type JSPromiseStateEnum = ::core::ffi::c_int;
1499unsafe extern "C" {
1500    pub fn JS_NewPromiseCapability(ctx: *mut JSContext, resolving_funcs: *mut JSValue) -> JSValue;
1501}
1502unsafe extern "C" {
1503    pub fn JS_PromiseState(ctx: *mut JSContext, promise: JSValue) -> JSPromiseStateEnum;
1504}
1505unsafe extern "C" {
1506    pub fn JS_PromiseResult(ctx: *mut JSContext, promise: JSValue) -> JSValue;
1507}
1508unsafe extern "C" {
1509    pub fn JS_IsPromise(val: JSValue) -> bool;
1510}
1511unsafe extern "C" {
1512    pub fn JS_NewSettledPromise(ctx: *mut JSContext, is_reject: bool, value: JSValue) -> JSValue;
1513}
1514unsafe extern "C" {
1515    pub fn JS_NewSymbol(
1516        ctx: *mut JSContext,
1517        description: *const ::core::ffi::c_char,
1518        is_global: bool,
1519    ) -> JSValue;
1520}
1521pub const JSPromiseHookType_JS_PROMISE_HOOK_INIT: JSPromiseHookType = 0;
1522pub const JSPromiseHookType_JS_PROMISE_HOOK_BEFORE: JSPromiseHookType = 1;
1523pub const JSPromiseHookType_JS_PROMISE_HOOK_AFTER: JSPromiseHookType = 2;
1524pub const JSPromiseHookType_JS_PROMISE_HOOK_RESOLVE: JSPromiseHookType = 3;
1525pub type JSPromiseHookType = ::core::ffi::c_uint;
1526pub type JSPromiseHook = ::core::option::Option<
1527    unsafe extern "C" fn(
1528        ctx: *mut JSContext,
1529        type_: JSPromiseHookType,
1530        promise: JSValue,
1531        parent_promise: JSValue,
1532        opaque: *mut ::core::ffi::c_void,
1533    ),
1534>;
1535unsafe extern "C" {
1536    pub fn JS_SetPromiseHook(
1537        rt: *mut JSRuntime,
1538        promise_hook: JSPromiseHook,
1539        opaque: *mut ::core::ffi::c_void,
1540    );
1541}
1542pub type JSHostPromiseRejectionTracker = ::core::option::Option<
1543    unsafe extern "C" fn(
1544        ctx: *mut JSContext,
1545        promise: JSValue,
1546        reason: JSValue,
1547        is_handled: bool,
1548        opaque: *mut ::core::ffi::c_void,
1549    ),
1550>;
1551unsafe extern "C" {
1552    pub fn JS_SetHostPromiseRejectionTracker(
1553        rt: *mut JSRuntime,
1554        cb: JSHostPromiseRejectionTracker,
1555        opaque: *mut ::core::ffi::c_void,
1556    );
1557}
1558pub type JSInterruptHandler = ::core::option::Option<
1559    unsafe extern "C" fn(
1560        rt: *mut JSRuntime,
1561        opaque: *mut ::core::ffi::c_void,
1562    ) -> ::core::ffi::c_int,
1563>;
1564unsafe extern "C" {
1565    pub fn JS_SetInterruptHandler(
1566        rt: *mut JSRuntime,
1567        cb: JSInterruptHandler,
1568        opaque: *mut ::core::ffi::c_void,
1569    );
1570}
1571unsafe extern "C" {
1572    pub fn JS_SetCanBlock(rt: *mut JSRuntime, can_block: bool);
1573}
1574unsafe extern "C" {
1575    pub fn JS_SetIsHTMLDDA(ctx: *mut JSContext, obj: JSValue);
1576}
1577#[repr(C)]
1578#[derive(Debug, Copy, Clone)]
1579pub struct JSModuleDef {
1580    _unused: [u8; 0],
1581}
1582pub type JSModuleNormalizeFunc = ::core::option::Option<
1583    unsafe extern "C" fn(
1584        ctx: *mut JSContext,
1585        module_base_name: *const ::core::ffi::c_char,
1586        module_name: *const ::core::ffi::c_char,
1587        opaque: *mut ::core::ffi::c_void,
1588    ) -> *mut ::core::ffi::c_char,
1589>;
1590pub type JSModuleNormalizeFunc2 = ::core::option::Option<
1591    unsafe extern "C" fn(
1592        ctx: *mut JSContext,
1593        module_base_name: *const ::core::ffi::c_char,
1594        module_name: *const ::core::ffi::c_char,
1595        attributes: JSValue,
1596        opaque: *mut ::core::ffi::c_void,
1597    ) -> *mut ::core::ffi::c_char,
1598>;
1599pub type JSModuleLoaderFunc = ::core::option::Option<
1600    unsafe extern "C" fn(
1601        ctx: *mut JSContext,
1602        module_name: *const ::core::ffi::c_char,
1603        opaque: *mut ::core::ffi::c_void,
1604    ) -> *mut JSModuleDef,
1605>;
1606pub type JSModuleLoaderFunc2 = ::core::option::Option<
1607    unsafe extern "C" fn(
1608        ctx: *mut JSContext,
1609        module_name: *const ::core::ffi::c_char,
1610        opaque: *mut ::core::ffi::c_void,
1611        attributes: JSValue,
1612    ) -> *mut JSModuleDef,
1613>;
1614pub type JSModuleCheckSupportedImportAttributes = ::core::option::Option<
1615    unsafe extern "C" fn(
1616        ctx: *mut JSContext,
1617        opaque: *mut ::core::ffi::c_void,
1618        attributes: JSValue,
1619    ) -> ::core::ffi::c_int,
1620>;
1621unsafe extern "C" {
1622    pub fn JS_SetModuleLoaderFunc(
1623        rt: *mut JSRuntime,
1624        module_normalize: JSModuleNormalizeFunc,
1625        module_loader: JSModuleLoaderFunc,
1626        opaque: *mut ::core::ffi::c_void,
1627    );
1628}
1629unsafe extern "C" {
1630    pub fn JS_SetModuleLoaderFunc2(
1631        rt: *mut JSRuntime,
1632        module_normalize: JSModuleNormalizeFunc,
1633        module_loader: JSModuleLoaderFunc2,
1634        module_check_attrs: JSModuleCheckSupportedImportAttributes,
1635        opaque: *mut ::core::ffi::c_void,
1636    );
1637}
1638unsafe extern "C" {
1639    pub fn JS_SetModuleNormalizeFunc2(rt: *mut JSRuntime, module_normalize: JSModuleNormalizeFunc2);
1640}
1641unsafe extern "C" {
1642    pub fn JS_GetImportMeta(ctx: *mut JSContext, m: *mut JSModuleDef) -> JSValue;
1643}
1644unsafe extern "C" {
1645    pub fn JS_GetModuleName(ctx: *mut JSContext, m: *mut JSModuleDef) -> JSAtom;
1646}
1647unsafe extern "C" {
1648    pub fn JS_GetModuleNamespace(ctx: *mut JSContext, m: *mut JSModuleDef) -> JSValue;
1649}
1650unsafe extern "C" {
1651    pub fn JS_SetModulePrivateValue(
1652        ctx: *mut JSContext,
1653        m: *mut JSModuleDef,
1654        val: JSValue,
1655    ) -> ::core::ffi::c_int;
1656}
1657unsafe extern "C" {
1658    pub fn JS_GetModulePrivateValue(ctx: *mut JSContext, m: *mut JSModuleDef) -> JSValue;
1659}
1660pub type JSJobFunc = ::core::option::Option<
1661    unsafe extern "C" fn(
1662        ctx: *mut JSContext,
1663        argc: ::core::ffi::c_int,
1664        argv: *mut JSValue,
1665    ) -> JSValue,
1666>;
1667unsafe extern "C" {
1668    pub fn JS_EnqueueJob(
1669        ctx: *mut JSContext,
1670        job_func: JSJobFunc,
1671        argc: ::core::ffi::c_int,
1672        argv: *mut JSValue,
1673    ) -> ::core::ffi::c_int;
1674}
1675unsafe extern "C" {
1676    pub fn JS_IsJobPending(rt: *mut JSRuntime) -> bool;
1677}
1678unsafe extern "C" {
1679    pub fn JS_GetPendingJobContext(rt: *mut JSRuntime) -> *mut JSContext;
1680}
1681unsafe extern "C" {
1682    pub fn JS_ExecutePendingJob(
1683        rt: *mut JSRuntime,
1684        pctx: *mut *mut JSContext,
1685    ) -> ::core::ffi::c_int;
1686}
1687#[repr(C)]
1688#[derive(Debug, Copy, Clone)]
1689pub struct JSSABTab {
1690    pub tab: *mut *mut u8,
1691    pub len: size_t,
1692}
1693#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1694const _: () = {
1695    ["Size of JSSABTab"][::core::mem::size_of::<JSSABTab>() - 16usize];
1696    ["Alignment of JSSABTab"][::core::mem::align_of::<JSSABTab>() - 8usize];
1697    ["Offset of field: JSSABTab::tab"][::core::mem::offset_of!(JSSABTab, tab) - 0usize];
1698    ["Offset of field: JSSABTab::len"][::core::mem::offset_of!(JSSABTab, len) - 8usize];
1699};
1700unsafe extern "C" {
1701    pub fn JS_WriteObject(
1702        ctx: *mut JSContext,
1703        psize: *mut size_t,
1704        obj: JSValue,
1705        flags: ::core::ffi::c_int,
1706    ) -> *mut u8;
1707}
1708unsafe extern "C" {
1709    pub fn JS_WriteObject2(
1710        ctx: *mut JSContext,
1711        psize: *mut size_t,
1712        obj: JSValue,
1713        flags: ::core::ffi::c_int,
1714        psab_tab: *mut JSSABTab,
1715    ) -> *mut u8;
1716}
1717unsafe extern "C" {
1718    pub fn JS_ReadObject(
1719        ctx: *mut JSContext,
1720        buf: *const u8,
1721        buf_len: size_t,
1722        flags: ::core::ffi::c_int,
1723    ) -> JSValue;
1724}
1725unsafe extern "C" {
1726    pub fn JS_ReadObject2(
1727        ctx: *mut JSContext,
1728        buf: *const u8,
1729        buf_len: size_t,
1730        flags: ::core::ffi::c_int,
1731        psab_tab: *mut JSSABTab,
1732    ) -> JSValue;
1733}
1734unsafe extern "C" {
1735    pub fn JS_EvalFunction(ctx: *mut JSContext, fun_obj: JSValue) -> JSValue;
1736}
1737unsafe extern "C" {
1738    pub fn JS_ResolveModule(ctx: *mut JSContext, obj: JSValue) -> ::core::ffi::c_int;
1739}
1740unsafe extern "C" {
1741    pub fn JS_GetScriptOrModuleName(
1742        ctx: *mut JSContext,
1743        n_stack_levels: ::core::ffi::c_int,
1744    ) -> JSAtom;
1745}
1746unsafe extern "C" {
1747    pub fn JS_LoadModule(
1748        ctx: *mut JSContext,
1749        basename: *const ::core::ffi::c_char,
1750        filename: *const ::core::ffi::c_char,
1751    ) -> JSValue;
1752}
1753pub const JSCFunctionEnum_JS_CFUNC_generic: JSCFunctionEnum = 0;
1754pub const JSCFunctionEnum_JS_CFUNC_generic_magic: JSCFunctionEnum = 1;
1755pub const JSCFunctionEnum_JS_CFUNC_constructor: JSCFunctionEnum = 2;
1756pub const JSCFunctionEnum_JS_CFUNC_constructor_magic: JSCFunctionEnum = 3;
1757pub const JSCFunctionEnum_JS_CFUNC_constructor_or_func: JSCFunctionEnum = 4;
1758pub const JSCFunctionEnum_JS_CFUNC_constructor_or_func_magic: JSCFunctionEnum = 5;
1759pub const JSCFunctionEnum_JS_CFUNC_f_f: JSCFunctionEnum = 6;
1760pub const JSCFunctionEnum_JS_CFUNC_f_f_f: JSCFunctionEnum = 7;
1761pub const JSCFunctionEnum_JS_CFUNC_getter: JSCFunctionEnum = 8;
1762pub const JSCFunctionEnum_JS_CFUNC_setter: JSCFunctionEnum = 9;
1763pub const JSCFunctionEnum_JS_CFUNC_getter_magic: JSCFunctionEnum = 10;
1764pub const JSCFunctionEnum_JS_CFUNC_setter_magic: JSCFunctionEnum = 11;
1765pub const JSCFunctionEnum_JS_CFUNC_iterator_next: JSCFunctionEnum = 12;
1766pub type JSCFunctionEnum = ::core::ffi::c_uint;
1767#[repr(C)]
1768#[derive(Copy, Clone)]
1769pub union JSCFunctionType {
1770    pub generic: JSCFunction,
1771    pub generic_magic: ::core::option::Option<
1772        unsafe extern "C" fn(
1773            ctx: *mut JSContext,
1774            this_val: JSValue,
1775            argc: ::core::ffi::c_int,
1776            argv: *mut JSValue,
1777            magic: ::core::ffi::c_int,
1778        ) -> JSValue,
1779    >,
1780    pub constructor: JSCFunction,
1781    pub constructor_magic: ::core::option::Option<
1782        unsafe extern "C" fn(
1783            ctx: *mut JSContext,
1784            new_target: JSValue,
1785            argc: ::core::ffi::c_int,
1786            argv: *mut JSValue,
1787            magic: ::core::ffi::c_int,
1788        ) -> JSValue,
1789    >,
1790    pub constructor_or_func: JSCFunction,
1791    pub f_f: ::core::option::Option<unsafe extern "C" fn(arg1: f64) -> f64>,
1792    pub f_f_f: ::core::option::Option<unsafe extern "C" fn(arg1: f64, arg2: f64) -> f64>,
1793    pub getter: ::core::option::Option<
1794        unsafe extern "C" fn(ctx: *mut JSContext, this_val: JSValue) -> JSValue,
1795    >,
1796    pub setter: ::core::option::Option<
1797        unsafe extern "C" fn(ctx: *mut JSContext, this_val: JSValue, val: JSValue) -> JSValue,
1798    >,
1799    pub getter_magic: ::core::option::Option<
1800        unsafe extern "C" fn(
1801            ctx: *mut JSContext,
1802            this_val: JSValue,
1803            magic: ::core::ffi::c_int,
1804        ) -> JSValue,
1805    >,
1806    pub setter_magic: ::core::option::Option<
1807        unsafe extern "C" fn(
1808            ctx: *mut JSContext,
1809            this_val: JSValue,
1810            val: JSValue,
1811            magic: ::core::ffi::c_int,
1812        ) -> JSValue,
1813    >,
1814    pub iterator_next: ::core::option::Option<
1815        unsafe extern "C" fn(
1816            ctx: *mut JSContext,
1817            this_val: JSValue,
1818            argc: ::core::ffi::c_int,
1819            argv: *mut JSValue,
1820            pdone: *mut ::core::ffi::c_int,
1821            magic: ::core::ffi::c_int,
1822        ) -> JSValue,
1823    >,
1824}
1825#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1826const _: () = {
1827    ["Size of JSCFunctionType"][::core::mem::size_of::<JSCFunctionType>() - 8usize];
1828    ["Alignment of JSCFunctionType"][::core::mem::align_of::<JSCFunctionType>() - 8usize];
1829    ["Offset of field: JSCFunctionType::generic"]
1830        [::core::mem::offset_of!(JSCFunctionType, generic) - 0usize];
1831    ["Offset of field: JSCFunctionType::generic_magic"]
1832        [::core::mem::offset_of!(JSCFunctionType, generic_magic) - 0usize];
1833    ["Offset of field: JSCFunctionType::constructor"]
1834        [::core::mem::offset_of!(JSCFunctionType, constructor) - 0usize];
1835    ["Offset of field: JSCFunctionType::constructor_magic"]
1836        [::core::mem::offset_of!(JSCFunctionType, constructor_magic) - 0usize];
1837    ["Offset of field: JSCFunctionType::constructor_or_func"]
1838        [::core::mem::offset_of!(JSCFunctionType, constructor_or_func) - 0usize];
1839    ["Offset of field: JSCFunctionType::f_f"]
1840        [::core::mem::offset_of!(JSCFunctionType, f_f) - 0usize];
1841    ["Offset of field: JSCFunctionType::f_f_f"]
1842        [::core::mem::offset_of!(JSCFunctionType, f_f_f) - 0usize];
1843    ["Offset of field: JSCFunctionType::getter"]
1844        [::core::mem::offset_of!(JSCFunctionType, getter) - 0usize];
1845    ["Offset of field: JSCFunctionType::setter"]
1846        [::core::mem::offset_of!(JSCFunctionType, setter) - 0usize];
1847    ["Offset of field: JSCFunctionType::getter_magic"]
1848        [::core::mem::offset_of!(JSCFunctionType, getter_magic) - 0usize];
1849    ["Offset of field: JSCFunctionType::setter_magic"]
1850        [::core::mem::offset_of!(JSCFunctionType, setter_magic) - 0usize];
1851    ["Offset of field: JSCFunctionType::iterator_next"]
1852        [::core::mem::offset_of!(JSCFunctionType, iterator_next) - 0usize];
1853};
1854unsafe extern "C" {
1855    pub fn JS_NewCFunction2(
1856        ctx: *mut JSContext,
1857        func: JSCFunction,
1858        name: *const ::core::ffi::c_char,
1859        length: ::core::ffi::c_int,
1860        cproto: JSCFunctionEnum,
1861        magic: ::core::ffi::c_int,
1862    ) -> JSValue;
1863}
1864unsafe extern "C" {
1865    pub fn JS_NewCFunction3(
1866        ctx: *mut JSContext,
1867        func: JSCFunction,
1868        name: *const ::core::ffi::c_char,
1869        length: ::core::ffi::c_int,
1870        cproto: JSCFunctionEnum,
1871        magic: ::core::ffi::c_int,
1872        proto_val: JSValue,
1873        n_fields: ::core::ffi::c_int,
1874    ) -> JSValue;
1875}
1876unsafe extern "C" {
1877    pub fn JS_NewCFunctionData(
1878        ctx: *mut JSContext,
1879        func: JSCFunctionData,
1880        length: ::core::ffi::c_int,
1881        magic: ::core::ffi::c_int,
1882        data_len: ::core::ffi::c_int,
1883        data: *mut JSValue,
1884    ) -> JSValue;
1885}
1886unsafe extern "C" {
1887    pub fn JS_NewCFunctionData2(
1888        ctx: *mut JSContext,
1889        func: JSCFunctionData,
1890        name: *const ::core::ffi::c_char,
1891        length: ::core::ffi::c_int,
1892        magic: ::core::ffi::c_int,
1893        data_len: ::core::ffi::c_int,
1894        data: *mut JSValue,
1895    ) -> JSValue;
1896}
1897pub type JSCClosureFinalizerFunc =
1898    ::core::option::Option<unsafe extern "C" fn(arg1: *mut ::core::ffi::c_void)>;
1899unsafe extern "C" {
1900    pub fn JS_NewCClosure(
1901        ctx: *mut JSContext,
1902        func: JSCClosure,
1903        name: *const ::core::ffi::c_char,
1904        opaque_finalize: JSCClosureFinalizerFunc,
1905        length: ::core::ffi::c_int,
1906        magic: ::core::ffi::c_int,
1907        opaque: *mut ::core::ffi::c_void,
1908    ) -> JSValue;
1909}
1910unsafe extern "C" {
1911    pub fn JS_SetConstructor(
1912        ctx: *mut JSContext,
1913        func_obj: JSValue,
1914        proto: JSValue,
1915    ) -> ::core::ffi::c_int;
1916}
1917#[repr(C)]
1918#[derive(Copy, Clone)]
1919pub struct JSCFunctionListEntry {
1920    pub name: *const ::core::ffi::c_char,
1921    pub prop_flags: u8,
1922    pub def_type: u8,
1923    pub magic: i16,
1924    pub u: JSCFunctionListEntry__bindgen_ty_1,
1925}
1926#[repr(C)]
1927#[derive(Copy, Clone)]
1928pub union JSCFunctionListEntry__bindgen_ty_1 {
1929    pub func: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1,
1930    pub getset: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_2,
1931    pub alias: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_3,
1932    pub prop_list: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_4,
1933    pub str_: *const ::core::ffi::c_char,
1934    pub i32_: i32,
1935    pub i64_: i64,
1936    pub u64_: u64,
1937    pub f64_: f64,
1938}
1939#[repr(C)]
1940#[derive(Copy, Clone)]
1941pub struct JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1 {
1942    pub length: u8,
1943    pub cproto: u8,
1944    pub cfunc: JSCFunctionType,
1945}
1946#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1947const _: () = {
1948    ["Size of JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1"]
1949        [::core::mem::size_of::<JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1>() - 16usize];
1950    ["Alignment of JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1"]
1951        [::core::mem::align_of::<JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1>() - 8usize];
1952    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1::length"][::core::mem::offset_of!(
1953        JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1,
1954        length
1955    ) - 0usize];
1956    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1::cproto"][::core::mem::offset_of!(
1957        JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1,
1958        cproto
1959    ) - 1usize];
1960    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1::cfunc"]
1961        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_1, cfunc) - 8usize];
1962};
1963#[repr(C)]
1964#[derive(Copy, Clone)]
1965pub struct JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_2 {
1966    pub get: JSCFunctionType,
1967    pub set: JSCFunctionType,
1968}
1969#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1970const _: () = {
1971    ["Size of JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_2"]
1972        [::core::mem::size_of::<JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_2>() - 16usize];
1973    ["Alignment of JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_2"]
1974        [::core::mem::align_of::<JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_2>() - 8usize];
1975    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_2::get"]
1976        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_2, get) - 0usize];
1977    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_2::set"]
1978        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_2, set) - 8usize];
1979};
1980#[repr(C)]
1981#[derive(Debug, Copy, Clone)]
1982pub struct JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_3 {
1983    pub name: *const ::core::ffi::c_char,
1984    pub base: ::core::ffi::c_int,
1985}
1986#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1987const _: () = {
1988    ["Size of JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_3"]
1989        [::core::mem::size_of::<JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_3>() - 16usize];
1990    ["Alignment of JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_3"]
1991        [::core::mem::align_of::<JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_3>() - 8usize];
1992    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_3::name"]
1993        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_3, name) - 0usize];
1994    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_3::base"]
1995        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_3, base) - 8usize];
1996};
1997#[repr(C)]
1998#[derive(Debug, Copy, Clone)]
1999pub struct JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_4 {
2000    pub tab: *const JSCFunctionListEntry,
2001    pub len: ::core::ffi::c_int,
2002}
2003#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2004const _: () = {
2005    ["Size of JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_4"]
2006        [::core::mem::size_of::<JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_4>() - 16usize];
2007    ["Alignment of JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_4"]
2008        [::core::mem::align_of::<JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_4>() - 8usize];
2009    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_4::tab"]
2010        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_4, tab) - 0usize];
2011    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_4::len"]
2012        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1__bindgen_ty_4, len) - 8usize];
2013};
2014#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2015const _: () = {
2016    ["Size of JSCFunctionListEntry__bindgen_ty_1"]
2017        [::core::mem::size_of::<JSCFunctionListEntry__bindgen_ty_1>() - 16usize];
2018    ["Alignment of JSCFunctionListEntry__bindgen_ty_1"]
2019        [::core::mem::align_of::<JSCFunctionListEntry__bindgen_ty_1>() - 8usize];
2020    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1::func"]
2021        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1, func) - 0usize];
2022    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1::getset"]
2023        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1, getset) - 0usize];
2024    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1::alias"]
2025        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1, alias) - 0usize];
2026    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1::prop_list"]
2027        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1, prop_list) - 0usize];
2028    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1::str_"]
2029        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1, str_) - 0usize];
2030    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1::i32_"]
2031        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1, i32_) - 0usize];
2032    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1::i64_"]
2033        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1, i64_) - 0usize];
2034    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1::u64_"]
2035        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1, u64_) - 0usize];
2036    ["Offset of field: JSCFunctionListEntry__bindgen_ty_1::f64_"]
2037        [::core::mem::offset_of!(JSCFunctionListEntry__bindgen_ty_1, f64_) - 0usize];
2038};
2039#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2040const _: () = {
2041    ["Size of JSCFunctionListEntry"][::core::mem::size_of::<JSCFunctionListEntry>() - 32usize];
2042    ["Alignment of JSCFunctionListEntry"][::core::mem::align_of::<JSCFunctionListEntry>() - 8usize];
2043    ["Offset of field: JSCFunctionListEntry::name"]
2044        [::core::mem::offset_of!(JSCFunctionListEntry, name) - 0usize];
2045    ["Offset of field: JSCFunctionListEntry::prop_flags"]
2046        [::core::mem::offset_of!(JSCFunctionListEntry, prop_flags) - 8usize];
2047    ["Offset of field: JSCFunctionListEntry::def_type"]
2048        [::core::mem::offset_of!(JSCFunctionListEntry, def_type) - 9usize];
2049    ["Offset of field: JSCFunctionListEntry::magic"]
2050        [::core::mem::offset_of!(JSCFunctionListEntry, magic) - 10usize];
2051    ["Offset of field: JSCFunctionListEntry::u"]
2052        [::core::mem::offset_of!(JSCFunctionListEntry, u) - 16usize];
2053};
2054unsafe extern "C" {
2055    pub fn JS_SetPropertyFunctionList(
2056        ctx: *mut JSContext,
2057        obj: JSValue,
2058        tab: *const JSCFunctionListEntry,
2059        len: ::core::ffi::c_int,
2060    ) -> ::core::ffi::c_int;
2061}
2062pub type JSModuleInitFunc = ::core::option::Option<
2063    unsafe extern "C" fn(ctx: *mut JSContext, m: *mut JSModuleDef) -> ::core::ffi::c_int,
2064>;
2065unsafe extern "C" {
2066    pub fn JS_NewCModule(
2067        ctx: *mut JSContext,
2068        name_str: *const ::core::ffi::c_char,
2069        func: JSModuleInitFunc,
2070    ) -> *mut JSModuleDef;
2071}
2072unsafe extern "C" {
2073    pub fn JS_AddModuleExport(
2074        ctx: *mut JSContext,
2075        m: *mut JSModuleDef,
2076        name_str: *const ::core::ffi::c_char,
2077    ) -> ::core::ffi::c_int;
2078}
2079unsafe extern "C" {
2080    pub fn JS_AddModuleExportList(
2081        ctx: *mut JSContext,
2082        m: *mut JSModuleDef,
2083        tab: *const JSCFunctionListEntry,
2084        len: ::core::ffi::c_int,
2085    ) -> ::core::ffi::c_int;
2086}
2087unsafe extern "C" {
2088    pub fn JS_SetModuleExport(
2089        ctx: *mut JSContext,
2090        m: *mut JSModuleDef,
2091        export_name: *const ::core::ffi::c_char,
2092        val: JSValue,
2093    ) -> ::core::ffi::c_int;
2094}
2095unsafe extern "C" {
2096    pub fn JS_SetModuleExportList(
2097        ctx: *mut JSContext,
2098        m: *mut JSModuleDef,
2099        tab: *const JSCFunctionListEntry,
2100        len: ::core::ffi::c_int,
2101    ) -> ::core::ffi::c_int;
2102}
2103unsafe extern "C" {
2104    pub fn JS_GetVersion() -> *const ::core::ffi::c_char;
2105}
2106unsafe extern "C" {
2107    pub fn js_std_cmd(cmd: ::core::ffi::c_int, ...) -> usize;
2108}
2109#[repr(C)]
2110#[derive(Debug, Copy, Clone)]
2111pub struct JSJitFunctionId {
2112    pub struct_size: u32,
2113    pub reserved: u32,
2114    pub id: u64,
2115    pub generation: u64,
2116}
2117#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2118const _: () = {
2119    ["Size of JSJitFunctionId"][::core::mem::size_of::<JSJitFunctionId>() - 24usize];
2120    ["Alignment of JSJitFunctionId"][::core::mem::align_of::<JSJitFunctionId>() - 8usize];
2121    ["Offset of field: JSJitFunctionId::struct_size"]
2122        [::core::mem::offset_of!(JSJitFunctionId, struct_size) - 0usize];
2123    ["Offset of field: JSJitFunctionId::reserved"]
2124        [::core::mem::offset_of!(JSJitFunctionId, reserved) - 4usize];
2125    ["Offset of field: JSJitFunctionId::id"][::core::mem::offset_of!(JSJitFunctionId, id) - 8usize];
2126    ["Offset of field: JSJitFunctionId::generation"]
2127        [::core::mem::offset_of!(JSJitFunctionId, generation) - 16usize];
2128};
2129pub const JSJitHotKind_JS_JIT_HOT_CALL: JSJitHotKind = 0;
2130pub const JSJitHotKind_JS_JIT_HOT_LOOP: JSJitHotKind = 1;
2131pub type JSJitHotKind = ::core::ffi::c_uint;
2132pub const JSJitFeedbackType_JS_JIT_FEEDBACK_NONE: JSJitFeedbackType = 0;
2133pub const JSJitFeedbackType_JS_JIT_FEEDBACK_INT32: JSJitFeedbackType = 1;
2134pub const JSJitFeedbackType_JS_JIT_FEEDBACK_FLOAT64: JSJitFeedbackType = 2;
2135pub const JSJitFeedbackType_JS_JIT_FEEDBACK_BOOL: JSJitFeedbackType = 3;
2136pub const JSJitFeedbackType_JS_JIT_FEEDBACK_NULL: JSJitFeedbackType = 4;
2137pub const JSJitFeedbackType_JS_JIT_FEEDBACK_UNDEFINED: JSJitFeedbackType = 5;
2138pub const JSJitFeedbackType_JS_JIT_FEEDBACK_STRING: JSJitFeedbackType = 6;
2139pub const JSJitFeedbackType_JS_JIT_FEEDBACK_OBJECT: JSJitFeedbackType = 7;
2140pub type JSJitFeedbackType = ::core::ffi::c_uint;
2141#[repr(C)]
2142#[derive(Debug, Copy, Clone)]
2143pub struct JSJitHotEvent {
2144    pub struct_size: u32,
2145    pub kind: u32,
2146    pub function: JSJitFunctionId,
2147    pub pc: u32,
2148    pub count: u32,
2149    pub feedback_type: u32,
2150    pub feedback_slot: u32,
2151    pub callee: JSJitFunctionId,
2152}
2153#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2154const _: () = {
2155    ["Size of JSJitHotEvent"][::core::mem::size_of::<JSJitHotEvent>() - 72usize];
2156    ["Alignment of JSJitHotEvent"][::core::mem::align_of::<JSJitHotEvent>() - 8usize];
2157    ["Offset of field: JSJitHotEvent::struct_size"]
2158        [::core::mem::offset_of!(JSJitHotEvent, struct_size) - 0usize];
2159    ["Offset of field: JSJitHotEvent::kind"][::core::mem::offset_of!(JSJitHotEvent, kind) - 4usize];
2160    ["Offset of field: JSJitHotEvent::function"]
2161        [::core::mem::offset_of!(JSJitHotEvent, function) - 8usize];
2162    ["Offset of field: JSJitHotEvent::pc"][::core::mem::offset_of!(JSJitHotEvent, pc) - 32usize];
2163    ["Offset of field: JSJitHotEvent::count"]
2164        [::core::mem::offset_of!(JSJitHotEvent, count) - 36usize];
2165    ["Offset of field: JSJitHotEvent::feedback_type"]
2166        [::core::mem::offset_of!(JSJitHotEvent, feedback_type) - 40usize];
2167    ["Offset of field: JSJitHotEvent::feedback_slot"]
2168        [::core::mem::offset_of!(JSJitHotEvent, feedback_slot) - 44usize];
2169    ["Offset of field: JSJitHotEvent::callee"]
2170        [::core::mem::offset_of!(JSJitHotEvent, callee) - 48usize];
2171};
2172pub const JSJitValueType_JS_JIT_VALUE_NONE: JSJitValueType = 0;
2173pub const JSJitValueType_JS_JIT_VALUE_INT32: JSJitValueType = 1;
2174pub const JSJitValueType_JS_JIT_VALUE_FLOAT64: JSJitValueType = 2;
2175pub const JSJitValueType_JS_JIT_VALUE_BOOL: JSJitValueType = 3;
2176pub const JSJitValueType_JS_JIT_VALUE_NULL: JSJitValueType = 4;
2177pub const JSJitValueType_JS_JIT_VALUE_UNDEFINED: JSJitValueType = 5;
2178pub const JSJitValueType_JS_JIT_VALUE_STRING: JSJitValueType = 6;
2179pub const JSJitValueType_JS_JIT_VALUE_OBJECT: JSJitValueType = 7;
2180pub const JSJitValueType_JS_JIT_VALUE_BIGINT: JSJitValueType = 8;
2181pub const JSJitValueType_JS_JIT_VALUE_SYMBOL: JSJitValueType = 9;
2182pub type JSJitValueType = ::core::ffi::c_uint;
2183pub const JSJitFeedbackKind_JS_JIT_FEEDBACK_CALL: JSJitFeedbackKind = 0;
2184pub const JSJitFeedbackKind_JS_JIT_FEEDBACK_RETURN: JSJitFeedbackKind = 1;
2185pub const JSJitFeedbackKind_JS_JIT_FEEDBACK_BINARY: JSJitFeedbackKind = 2;
2186pub const JSJitFeedbackKind_JS_JIT_FEEDBACK_CONVERSION: JSJitFeedbackKind = 3;
2187pub const JSJitFeedbackKind_JS_JIT_FEEDBACK_BRANCH: JSJitFeedbackKind = 4;
2188pub const JSJitFeedbackKind_JS_JIT_FEEDBACK_PROPERTY: JSJitFeedbackKind = 5;
2189pub type JSJitFeedbackKind = ::core::ffi::c_uint;
2190#[repr(C)]
2191#[derive(Debug, Copy, Clone)]
2192pub struct JSJitFeedbackEvent {
2193    pub struct_size: u32,
2194    pub kind: u32,
2195    pub function: JSJitFunctionId,
2196    pub callee: JSJitFunctionId,
2197    pub pc: u32,
2198    pub slot: u32,
2199    pub type_count: u32,
2200    pub flags: u32,
2201    pub types: *const u32,
2202    pub shape_identity: u64,
2203    pub shape_generation: u64,
2204    pub prototype_identity: u64,
2205    pub prototype_generation: u64,
2206    pub property_offset: u32,
2207    pub property_attributes: u32,
2208}
2209#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2210const _: () = {
2211    ["Size of JSJitFeedbackEvent"][::core::mem::size_of::<JSJitFeedbackEvent>() - 120usize];
2212    ["Alignment of JSJitFeedbackEvent"][::core::mem::align_of::<JSJitFeedbackEvent>() - 8usize];
2213    ["Offset of field: JSJitFeedbackEvent::struct_size"]
2214        [::core::mem::offset_of!(JSJitFeedbackEvent, struct_size) - 0usize];
2215    ["Offset of field: JSJitFeedbackEvent::kind"]
2216        [::core::mem::offset_of!(JSJitFeedbackEvent, kind) - 4usize];
2217    ["Offset of field: JSJitFeedbackEvent::function"]
2218        [::core::mem::offset_of!(JSJitFeedbackEvent, function) - 8usize];
2219    ["Offset of field: JSJitFeedbackEvent::callee"]
2220        [::core::mem::offset_of!(JSJitFeedbackEvent, callee) - 32usize];
2221    ["Offset of field: JSJitFeedbackEvent::pc"]
2222        [::core::mem::offset_of!(JSJitFeedbackEvent, pc) - 56usize];
2223    ["Offset of field: JSJitFeedbackEvent::slot"]
2224        [::core::mem::offset_of!(JSJitFeedbackEvent, slot) - 60usize];
2225    ["Offset of field: JSJitFeedbackEvent::type_count"]
2226        [::core::mem::offset_of!(JSJitFeedbackEvent, type_count) - 64usize];
2227    ["Offset of field: JSJitFeedbackEvent::flags"]
2228        [::core::mem::offset_of!(JSJitFeedbackEvent, flags) - 68usize];
2229    ["Offset of field: JSJitFeedbackEvent::types"]
2230        [::core::mem::offset_of!(JSJitFeedbackEvent, types) - 72usize];
2231    ["Offset of field: JSJitFeedbackEvent::shape_identity"]
2232        [::core::mem::offset_of!(JSJitFeedbackEvent, shape_identity) - 80usize];
2233    ["Offset of field: JSJitFeedbackEvent::shape_generation"]
2234        [::core::mem::offset_of!(JSJitFeedbackEvent, shape_generation) - 88usize];
2235    ["Offset of field: JSJitFeedbackEvent::prototype_identity"]
2236        [::core::mem::offset_of!(JSJitFeedbackEvent, prototype_identity) - 96usize];
2237    ["Offset of field: JSJitFeedbackEvent::prototype_generation"]
2238        [::core::mem::offset_of!(JSJitFeedbackEvent, prototype_generation) - 104usize];
2239    ["Offset of field: JSJitFeedbackEvent::property_offset"]
2240        [::core::mem::offset_of!(JSJitFeedbackEvent, property_offset) - 112usize];
2241    ["Offset of field: JSJitFeedbackEvent::property_attributes"]
2242        [::core::mem::offset_of!(JSJitFeedbackEvent, property_attributes) - 116usize];
2243};
2244pub const JSJitOperandFormat_JS_JIT_FMT_none: JSJitOperandFormat = 0;
2245pub const JSJitOperandFormat_JS_JIT_FMT_none_int: JSJitOperandFormat = 1;
2246pub const JSJitOperandFormat_JS_JIT_FMT_none_loc: JSJitOperandFormat = 2;
2247pub const JSJitOperandFormat_JS_JIT_FMT_none_arg: JSJitOperandFormat = 3;
2248pub const JSJitOperandFormat_JS_JIT_FMT_none_var_ref: JSJitOperandFormat = 4;
2249pub const JSJitOperandFormat_JS_JIT_FMT_u8: JSJitOperandFormat = 5;
2250pub const JSJitOperandFormat_JS_JIT_FMT_i8: JSJitOperandFormat = 6;
2251pub const JSJitOperandFormat_JS_JIT_FMT_loc8: JSJitOperandFormat = 7;
2252pub const JSJitOperandFormat_JS_JIT_FMT_const8: JSJitOperandFormat = 8;
2253pub const JSJitOperandFormat_JS_JIT_FMT_label8: JSJitOperandFormat = 9;
2254pub const JSJitOperandFormat_JS_JIT_FMT_u16: JSJitOperandFormat = 10;
2255pub const JSJitOperandFormat_JS_JIT_FMT_i16: JSJitOperandFormat = 11;
2256pub const JSJitOperandFormat_JS_JIT_FMT_label16: JSJitOperandFormat = 12;
2257pub const JSJitOperandFormat_JS_JIT_FMT_npop: JSJitOperandFormat = 13;
2258pub const JSJitOperandFormat_JS_JIT_FMT_npopx: JSJitOperandFormat = 14;
2259pub const JSJitOperandFormat_JS_JIT_FMT_npop_u16: JSJitOperandFormat = 15;
2260pub const JSJitOperandFormat_JS_JIT_FMT_loc: JSJitOperandFormat = 16;
2261pub const JSJitOperandFormat_JS_JIT_FMT_arg: JSJitOperandFormat = 17;
2262pub const JSJitOperandFormat_JS_JIT_FMT_var_ref: JSJitOperandFormat = 18;
2263pub const JSJitOperandFormat_JS_JIT_FMT_u32: JSJitOperandFormat = 19;
2264pub const JSJitOperandFormat_JS_JIT_FMT_u32x2: JSJitOperandFormat = 20;
2265pub const JSJitOperandFormat_JS_JIT_FMT_i32: JSJitOperandFormat = 21;
2266pub const JSJitOperandFormat_JS_JIT_FMT_const: JSJitOperandFormat = 22;
2267pub const JSJitOperandFormat_JS_JIT_FMT_label: JSJitOperandFormat = 23;
2268pub const JSJitOperandFormat_JS_JIT_FMT_atom: JSJitOperandFormat = 24;
2269pub const JSJitOperandFormat_JS_JIT_FMT_atom_u8: JSJitOperandFormat = 25;
2270pub const JSJitOperandFormat_JS_JIT_FMT_atom_u16: JSJitOperandFormat = 26;
2271pub const JSJitOperandFormat_JS_JIT_FMT_atom_label_u8: JSJitOperandFormat = 27;
2272pub const JSJitOperandFormat_JS_JIT_FMT_atom_label_u16: JSJitOperandFormat = 28;
2273pub const JSJitOperandFormat_JS_JIT_FMT_label_u16: JSJitOperandFormat = 29;
2274pub const JSJitOperandFormat_JS_JIT_FMT_COUNT: JSJitOperandFormat = 30;
2275pub type JSJitOperandFormat = ::core::ffi::c_uint;
2276pub const JSJitOpcode_JS_JIT_OP_invalid: JSJitOpcode = 0;
2277pub const JSJitOpcode_JS_JIT_OP_push_i32: JSJitOpcode = 1;
2278pub const JSJitOpcode_JS_JIT_OP_push_const: JSJitOpcode = 2;
2279pub const JSJitOpcode_JS_JIT_OP_fclosure: JSJitOpcode = 3;
2280pub const JSJitOpcode_JS_JIT_OP_push_atom_value: JSJitOpcode = 4;
2281pub const JSJitOpcode_JS_JIT_OP_private_symbol: JSJitOpcode = 5;
2282pub const JSJitOpcode_JS_JIT_OP_undefined: JSJitOpcode = 6;
2283pub const JSJitOpcode_JS_JIT_OP_null: JSJitOpcode = 7;
2284pub const JSJitOpcode_JS_JIT_OP_push_this: JSJitOpcode = 8;
2285pub const JSJitOpcode_JS_JIT_OP_push_false: JSJitOpcode = 9;
2286pub const JSJitOpcode_JS_JIT_OP_push_true: JSJitOpcode = 10;
2287pub const JSJitOpcode_JS_JIT_OP_object: JSJitOpcode = 11;
2288pub const JSJitOpcode_JS_JIT_OP_special_object: JSJitOpcode = 12;
2289pub const JSJitOpcode_JS_JIT_OP_rest: JSJitOpcode = 13;
2290pub const JSJitOpcode_JS_JIT_OP_drop: JSJitOpcode = 14;
2291pub const JSJitOpcode_JS_JIT_OP_nip: JSJitOpcode = 15;
2292pub const JSJitOpcode_JS_JIT_OP_nip1: JSJitOpcode = 16;
2293pub const JSJitOpcode_JS_JIT_OP_dup: JSJitOpcode = 17;
2294pub const JSJitOpcode_JS_JIT_OP_dup1: JSJitOpcode = 18;
2295pub const JSJitOpcode_JS_JIT_OP_dup2: JSJitOpcode = 19;
2296pub const JSJitOpcode_JS_JIT_OP_dup3: JSJitOpcode = 20;
2297pub const JSJitOpcode_JS_JIT_OP_insert2: JSJitOpcode = 21;
2298pub const JSJitOpcode_JS_JIT_OP_insert3: JSJitOpcode = 22;
2299pub const JSJitOpcode_JS_JIT_OP_insert4: JSJitOpcode = 23;
2300pub const JSJitOpcode_JS_JIT_OP_perm3: JSJitOpcode = 24;
2301pub const JSJitOpcode_JS_JIT_OP_perm4: JSJitOpcode = 25;
2302pub const JSJitOpcode_JS_JIT_OP_perm5: JSJitOpcode = 26;
2303pub const JSJitOpcode_JS_JIT_OP_swap: JSJitOpcode = 27;
2304pub const JSJitOpcode_JS_JIT_OP_swap2: JSJitOpcode = 28;
2305pub const JSJitOpcode_JS_JIT_OP_rot3l: JSJitOpcode = 29;
2306pub const JSJitOpcode_JS_JIT_OP_rot3r: JSJitOpcode = 30;
2307pub const JSJitOpcode_JS_JIT_OP_rot4l: JSJitOpcode = 31;
2308pub const JSJitOpcode_JS_JIT_OP_rot5l: JSJitOpcode = 32;
2309pub const JSJitOpcode_JS_JIT_OP_call_constructor: JSJitOpcode = 33;
2310pub const JSJitOpcode_JS_JIT_OP_call: JSJitOpcode = 34;
2311pub const JSJitOpcode_JS_JIT_OP_tail_call: JSJitOpcode = 35;
2312pub const JSJitOpcode_JS_JIT_OP_call_method: JSJitOpcode = 36;
2313pub const JSJitOpcode_JS_JIT_OP_tail_call_method: JSJitOpcode = 37;
2314pub const JSJitOpcode_JS_JIT_OP_array_from: JSJitOpcode = 38;
2315pub const JSJitOpcode_JS_JIT_OP_apply: JSJitOpcode = 39;
2316pub const JSJitOpcode_JS_JIT_OP_return: JSJitOpcode = 40;
2317pub const JSJitOpcode_JS_JIT_OP_return_undef: JSJitOpcode = 41;
2318pub const JSJitOpcode_JS_JIT_OP_check_ctor_return: JSJitOpcode = 42;
2319pub const JSJitOpcode_JS_JIT_OP_check_ctor: JSJitOpcode = 43;
2320pub const JSJitOpcode_JS_JIT_OP_init_ctor: JSJitOpcode = 44;
2321pub const JSJitOpcode_JS_JIT_OP_check_brand: JSJitOpcode = 45;
2322pub const JSJitOpcode_JS_JIT_OP_add_brand: JSJitOpcode = 46;
2323pub const JSJitOpcode_JS_JIT_OP_return_async: JSJitOpcode = 47;
2324pub const JSJitOpcode_JS_JIT_OP_throw: JSJitOpcode = 48;
2325pub const JSJitOpcode_JS_JIT_OP_throw_error: JSJitOpcode = 49;
2326pub const JSJitOpcode_JS_JIT_OP_eval: JSJitOpcode = 50;
2327pub const JSJitOpcode_JS_JIT_OP_apply_eval: JSJitOpcode = 51;
2328pub const JSJitOpcode_JS_JIT_OP_regexp: JSJitOpcode = 52;
2329pub const JSJitOpcode_JS_JIT_OP_get_super: JSJitOpcode = 53;
2330pub const JSJitOpcode_JS_JIT_OP_import: JSJitOpcode = 54;
2331pub const JSJitOpcode_JS_JIT_OP_get_var_undef: JSJitOpcode = 55;
2332pub const JSJitOpcode_JS_JIT_OP_get_var: JSJitOpcode = 56;
2333pub const JSJitOpcode_JS_JIT_OP_put_var: JSJitOpcode = 57;
2334pub const JSJitOpcode_JS_JIT_OP_put_var_init: JSJitOpcode = 58;
2335pub const JSJitOpcode_JS_JIT_OP_get_ref_value: JSJitOpcode = 59;
2336pub const JSJitOpcode_JS_JIT_OP_put_ref_value: JSJitOpcode = 60;
2337pub const JSJitOpcode_JS_JIT_OP_define_var: JSJitOpcode = 61;
2338pub const JSJitOpcode_JS_JIT_OP_check_define_var: JSJitOpcode = 62;
2339pub const JSJitOpcode_JS_JIT_OP_define_func: JSJitOpcode = 63;
2340pub const JSJitOpcode_JS_JIT_OP_get_field: JSJitOpcode = 64;
2341pub const JSJitOpcode_JS_JIT_OP_get_field2: JSJitOpcode = 65;
2342pub const JSJitOpcode_JS_JIT_OP_put_field: JSJitOpcode = 66;
2343pub const JSJitOpcode_JS_JIT_OP_get_private_field: JSJitOpcode = 67;
2344pub const JSJitOpcode_JS_JIT_OP_put_private_field: JSJitOpcode = 68;
2345pub const JSJitOpcode_JS_JIT_OP_define_private_field: JSJitOpcode = 69;
2346pub const JSJitOpcode_JS_JIT_OP_get_array_el: JSJitOpcode = 70;
2347pub const JSJitOpcode_JS_JIT_OP_get_array_el2: JSJitOpcode = 71;
2348pub const JSJitOpcode_JS_JIT_OP_put_array_el: JSJitOpcode = 72;
2349pub const JSJitOpcode_JS_JIT_OP_get_super_value: JSJitOpcode = 73;
2350pub const JSJitOpcode_JS_JIT_OP_put_super_value: JSJitOpcode = 74;
2351pub const JSJitOpcode_JS_JIT_OP_define_field: JSJitOpcode = 75;
2352pub const JSJitOpcode_JS_JIT_OP_set_name: JSJitOpcode = 76;
2353pub const JSJitOpcode_JS_JIT_OP_set_name_computed: JSJitOpcode = 77;
2354pub const JSJitOpcode_JS_JIT_OP_set_proto: JSJitOpcode = 78;
2355pub const JSJitOpcode_JS_JIT_OP_set_home_object: JSJitOpcode = 79;
2356pub const JSJitOpcode_JS_JIT_OP_define_array_el: JSJitOpcode = 80;
2357pub const JSJitOpcode_JS_JIT_OP_append: JSJitOpcode = 81;
2358pub const JSJitOpcode_JS_JIT_OP_copy_data_properties: JSJitOpcode = 82;
2359pub const JSJitOpcode_JS_JIT_OP_define_method: JSJitOpcode = 83;
2360pub const JSJitOpcode_JS_JIT_OP_define_method_computed: JSJitOpcode = 84;
2361pub const JSJitOpcode_JS_JIT_OP_define_class: JSJitOpcode = 85;
2362pub const JSJitOpcode_JS_JIT_OP_define_class_computed: JSJitOpcode = 86;
2363pub const JSJitOpcode_JS_JIT_OP_get_loc: JSJitOpcode = 87;
2364pub const JSJitOpcode_JS_JIT_OP_put_loc: JSJitOpcode = 88;
2365pub const JSJitOpcode_JS_JIT_OP_set_loc: JSJitOpcode = 89;
2366pub const JSJitOpcode_JS_JIT_OP_get_arg: JSJitOpcode = 90;
2367pub const JSJitOpcode_JS_JIT_OP_put_arg: JSJitOpcode = 91;
2368pub const JSJitOpcode_JS_JIT_OP_set_arg: JSJitOpcode = 92;
2369pub const JSJitOpcode_JS_JIT_OP_get_var_ref: JSJitOpcode = 93;
2370pub const JSJitOpcode_JS_JIT_OP_put_var_ref: JSJitOpcode = 94;
2371pub const JSJitOpcode_JS_JIT_OP_set_var_ref: JSJitOpcode = 95;
2372pub const JSJitOpcode_JS_JIT_OP_set_loc_uninitialized: JSJitOpcode = 96;
2373pub const JSJitOpcode_JS_JIT_OP_get_loc_check: JSJitOpcode = 97;
2374pub const JSJitOpcode_JS_JIT_OP_put_loc_check: JSJitOpcode = 98;
2375pub const JSJitOpcode_JS_JIT_OP_put_loc_check_init: JSJitOpcode = 99;
2376pub const JSJitOpcode_JS_JIT_OP_get_var_ref_check: JSJitOpcode = 100;
2377pub const JSJitOpcode_JS_JIT_OP_put_var_ref_check: JSJitOpcode = 101;
2378pub const JSJitOpcode_JS_JIT_OP_put_var_ref_check_init: JSJitOpcode = 102;
2379pub const JSJitOpcode_JS_JIT_OP_close_loc: JSJitOpcode = 103;
2380pub const JSJitOpcode_JS_JIT_OP_if_false: JSJitOpcode = 104;
2381pub const JSJitOpcode_JS_JIT_OP_if_true: JSJitOpcode = 105;
2382pub const JSJitOpcode_JS_JIT_OP_goto: JSJitOpcode = 106;
2383pub const JSJitOpcode_JS_JIT_OP_catch: JSJitOpcode = 107;
2384pub const JSJitOpcode_JS_JIT_OP_gosub: JSJitOpcode = 108;
2385pub const JSJitOpcode_JS_JIT_OP_ret: JSJitOpcode = 109;
2386pub const JSJitOpcode_JS_JIT_OP_nip_catch: JSJitOpcode = 110;
2387pub const JSJitOpcode_JS_JIT_OP_check_object: JSJitOpcode = 111;
2388pub const JSJitOpcode_JS_JIT_OP_to_object: JSJitOpcode = 112;
2389pub const JSJitOpcode_JS_JIT_OP_to_propkey: JSJitOpcode = 113;
2390pub const JSJitOpcode_JS_JIT_OP_to_propkey2: JSJitOpcode = 114;
2391pub const JSJitOpcode_JS_JIT_OP_with_get_var: JSJitOpcode = 115;
2392pub const JSJitOpcode_JS_JIT_OP_with_put_var: JSJitOpcode = 116;
2393pub const JSJitOpcode_JS_JIT_OP_with_delete_var: JSJitOpcode = 117;
2394pub const JSJitOpcode_JS_JIT_OP_with_make_ref: JSJitOpcode = 118;
2395pub const JSJitOpcode_JS_JIT_OP_with_get_ref: JSJitOpcode = 119;
2396pub const JSJitOpcode_JS_JIT_OP_with_get_ref_undef: JSJitOpcode = 120;
2397pub const JSJitOpcode_JS_JIT_OP_make_loc_ref: JSJitOpcode = 121;
2398pub const JSJitOpcode_JS_JIT_OP_make_arg_ref: JSJitOpcode = 122;
2399pub const JSJitOpcode_JS_JIT_OP_make_var_ref_ref: JSJitOpcode = 123;
2400pub const JSJitOpcode_JS_JIT_OP_make_var_ref: JSJitOpcode = 124;
2401pub const JSJitOpcode_JS_JIT_OP_for_in_start: JSJitOpcode = 125;
2402pub const JSJitOpcode_JS_JIT_OP_for_of_start: JSJitOpcode = 126;
2403pub const JSJitOpcode_JS_JIT_OP_for_await_of_start: JSJitOpcode = 127;
2404pub const JSJitOpcode_JS_JIT_OP_for_in_next: JSJitOpcode = 128;
2405pub const JSJitOpcode_JS_JIT_OP_for_of_next: JSJitOpcode = 129;
2406pub const JSJitOpcode_JS_JIT_OP_iterator_get_value_done: JSJitOpcode = 130;
2407pub const JSJitOpcode_JS_JIT_OP_iterator_close: JSJitOpcode = 131;
2408pub const JSJitOpcode_JS_JIT_OP_iterator_next: JSJitOpcode = 132;
2409pub const JSJitOpcode_JS_JIT_OP_iterator_call: JSJitOpcode = 133;
2410pub const JSJitOpcode_JS_JIT_OP_initial_yield: JSJitOpcode = 134;
2411pub const JSJitOpcode_JS_JIT_OP_yield: JSJitOpcode = 135;
2412pub const JSJitOpcode_JS_JIT_OP_yield_star: JSJitOpcode = 136;
2413pub const JSJitOpcode_JS_JIT_OP_async_yield_star: JSJitOpcode = 137;
2414pub const JSJitOpcode_JS_JIT_OP_await: JSJitOpcode = 138;
2415pub const JSJitOpcode_JS_JIT_OP_neg: JSJitOpcode = 139;
2416pub const JSJitOpcode_JS_JIT_OP_plus: JSJitOpcode = 140;
2417pub const JSJitOpcode_JS_JIT_OP_dec: JSJitOpcode = 141;
2418pub const JSJitOpcode_JS_JIT_OP_inc: JSJitOpcode = 142;
2419pub const JSJitOpcode_JS_JIT_OP_post_dec: JSJitOpcode = 143;
2420pub const JSJitOpcode_JS_JIT_OP_post_inc: JSJitOpcode = 144;
2421pub const JSJitOpcode_JS_JIT_OP_dec_loc: JSJitOpcode = 145;
2422pub const JSJitOpcode_JS_JIT_OP_inc_loc: JSJitOpcode = 146;
2423pub const JSJitOpcode_JS_JIT_OP_add_loc: JSJitOpcode = 147;
2424pub const JSJitOpcode_JS_JIT_OP_not: JSJitOpcode = 148;
2425pub const JSJitOpcode_JS_JIT_OP_lnot: JSJitOpcode = 149;
2426pub const JSJitOpcode_JS_JIT_OP_typeof: JSJitOpcode = 150;
2427pub const JSJitOpcode_JS_JIT_OP_delete: JSJitOpcode = 151;
2428pub const JSJitOpcode_JS_JIT_OP_delete_var: JSJitOpcode = 152;
2429pub const JSJitOpcode_JS_JIT_OP_mul: JSJitOpcode = 153;
2430pub const JSJitOpcode_JS_JIT_OP_div: JSJitOpcode = 154;
2431pub const JSJitOpcode_JS_JIT_OP_mod: JSJitOpcode = 155;
2432pub const JSJitOpcode_JS_JIT_OP_add: JSJitOpcode = 156;
2433pub const JSJitOpcode_JS_JIT_OP_sub: JSJitOpcode = 157;
2434pub const JSJitOpcode_JS_JIT_OP_shl: JSJitOpcode = 158;
2435pub const JSJitOpcode_JS_JIT_OP_sar: JSJitOpcode = 159;
2436pub const JSJitOpcode_JS_JIT_OP_shr: JSJitOpcode = 160;
2437pub const JSJitOpcode_JS_JIT_OP_and: JSJitOpcode = 161;
2438pub const JSJitOpcode_JS_JIT_OP_xor: JSJitOpcode = 162;
2439pub const JSJitOpcode_JS_JIT_OP_or: JSJitOpcode = 163;
2440pub const JSJitOpcode_JS_JIT_OP_pow: JSJitOpcode = 164;
2441pub const JSJitOpcode_JS_JIT_OP_lt: JSJitOpcode = 165;
2442pub const JSJitOpcode_JS_JIT_OP_lte: JSJitOpcode = 166;
2443pub const JSJitOpcode_JS_JIT_OP_gt: JSJitOpcode = 167;
2444pub const JSJitOpcode_JS_JIT_OP_gte: JSJitOpcode = 168;
2445pub const JSJitOpcode_JS_JIT_OP_instanceof: JSJitOpcode = 169;
2446pub const JSJitOpcode_JS_JIT_OP_in: JSJitOpcode = 170;
2447pub const JSJitOpcode_JS_JIT_OP_eq: JSJitOpcode = 171;
2448pub const JSJitOpcode_JS_JIT_OP_neq: JSJitOpcode = 172;
2449pub const JSJitOpcode_JS_JIT_OP_strict_eq: JSJitOpcode = 173;
2450pub const JSJitOpcode_JS_JIT_OP_strict_neq: JSJitOpcode = 174;
2451pub const JSJitOpcode_JS_JIT_OP_is_undefined_or_null: JSJitOpcode = 175;
2452pub const JSJitOpcode_JS_JIT_OP_private_in: JSJitOpcode = 176;
2453pub const JSJitOpcode_JS_JIT_OP_push_bigint_i32: JSJitOpcode = 177;
2454pub const JSJitOpcode_JS_JIT_OP_using_dispose_init: JSJitOpcode = 178;
2455pub const JSJitOpcode_JS_JIT_OP_using_dispose: JSJitOpcode = 179;
2456pub const JSJitOpcode_JS_JIT_OP_using_dispose_async: JSJitOpcode = 180;
2457pub const JSJitOpcode_JS_JIT_OP_using_dispose_merge: JSJitOpcode = 181;
2458pub const JSJitOpcode_JS_JIT_OP_using_dispose_end: JSJitOpcode = 182;
2459pub const JSJitOpcode_JS_JIT_OP_using_check: JSJitOpcode = 183;
2460pub const JSJitOpcode_JS_JIT_OP_nop: JSJitOpcode = 184;
2461pub const JSJitOpcode_JS_JIT_OP_push_minus1: JSJitOpcode = 185;
2462pub const JSJitOpcode_JS_JIT_OP_push_0: JSJitOpcode = 186;
2463pub const JSJitOpcode_JS_JIT_OP_push_1: JSJitOpcode = 187;
2464pub const JSJitOpcode_JS_JIT_OP_push_2: JSJitOpcode = 188;
2465pub const JSJitOpcode_JS_JIT_OP_push_3: JSJitOpcode = 189;
2466pub const JSJitOpcode_JS_JIT_OP_push_4: JSJitOpcode = 190;
2467pub const JSJitOpcode_JS_JIT_OP_push_5: JSJitOpcode = 191;
2468pub const JSJitOpcode_JS_JIT_OP_push_6: JSJitOpcode = 192;
2469pub const JSJitOpcode_JS_JIT_OP_push_7: JSJitOpcode = 193;
2470pub const JSJitOpcode_JS_JIT_OP_push_i8: JSJitOpcode = 194;
2471pub const JSJitOpcode_JS_JIT_OP_push_i16: JSJitOpcode = 195;
2472pub const JSJitOpcode_JS_JIT_OP_push_const8: JSJitOpcode = 196;
2473pub const JSJitOpcode_JS_JIT_OP_fclosure8: JSJitOpcode = 197;
2474pub const JSJitOpcode_JS_JIT_OP_push_empty_string: JSJitOpcode = 198;
2475pub const JSJitOpcode_JS_JIT_OP_get_loc8: JSJitOpcode = 199;
2476pub const JSJitOpcode_JS_JIT_OP_put_loc8: JSJitOpcode = 200;
2477pub const JSJitOpcode_JS_JIT_OP_set_loc8: JSJitOpcode = 201;
2478pub const JSJitOpcode_JS_JIT_OP_get_loc0_loc1: JSJitOpcode = 202;
2479pub const JSJitOpcode_JS_JIT_OP_get_loc0: JSJitOpcode = 203;
2480pub const JSJitOpcode_JS_JIT_OP_get_loc1: JSJitOpcode = 204;
2481pub const JSJitOpcode_JS_JIT_OP_get_loc2: JSJitOpcode = 205;
2482pub const JSJitOpcode_JS_JIT_OP_get_loc3: JSJitOpcode = 206;
2483pub const JSJitOpcode_JS_JIT_OP_put_loc0: JSJitOpcode = 207;
2484pub const JSJitOpcode_JS_JIT_OP_put_loc1: JSJitOpcode = 208;
2485pub const JSJitOpcode_JS_JIT_OP_put_loc2: JSJitOpcode = 209;
2486pub const JSJitOpcode_JS_JIT_OP_put_loc3: JSJitOpcode = 210;
2487pub const JSJitOpcode_JS_JIT_OP_set_loc0: JSJitOpcode = 211;
2488pub const JSJitOpcode_JS_JIT_OP_set_loc1: JSJitOpcode = 212;
2489pub const JSJitOpcode_JS_JIT_OP_set_loc2: JSJitOpcode = 213;
2490pub const JSJitOpcode_JS_JIT_OP_set_loc3: JSJitOpcode = 214;
2491pub const JSJitOpcode_JS_JIT_OP_get_arg0: JSJitOpcode = 215;
2492pub const JSJitOpcode_JS_JIT_OP_get_arg1: JSJitOpcode = 216;
2493pub const JSJitOpcode_JS_JIT_OP_get_arg2: JSJitOpcode = 217;
2494pub const JSJitOpcode_JS_JIT_OP_get_arg3: JSJitOpcode = 218;
2495pub const JSJitOpcode_JS_JIT_OP_put_arg0: JSJitOpcode = 219;
2496pub const JSJitOpcode_JS_JIT_OP_put_arg1: JSJitOpcode = 220;
2497pub const JSJitOpcode_JS_JIT_OP_put_arg2: JSJitOpcode = 221;
2498pub const JSJitOpcode_JS_JIT_OP_put_arg3: JSJitOpcode = 222;
2499pub const JSJitOpcode_JS_JIT_OP_set_arg0: JSJitOpcode = 223;
2500pub const JSJitOpcode_JS_JIT_OP_set_arg1: JSJitOpcode = 224;
2501pub const JSJitOpcode_JS_JIT_OP_set_arg2: JSJitOpcode = 225;
2502pub const JSJitOpcode_JS_JIT_OP_set_arg3: JSJitOpcode = 226;
2503pub const JSJitOpcode_JS_JIT_OP_get_var_ref0: JSJitOpcode = 227;
2504pub const JSJitOpcode_JS_JIT_OP_get_var_ref1: JSJitOpcode = 228;
2505pub const JSJitOpcode_JS_JIT_OP_get_var_ref2: JSJitOpcode = 229;
2506pub const JSJitOpcode_JS_JIT_OP_get_var_ref3: JSJitOpcode = 230;
2507pub const JSJitOpcode_JS_JIT_OP_put_var_ref0: JSJitOpcode = 231;
2508pub const JSJitOpcode_JS_JIT_OP_put_var_ref1: JSJitOpcode = 232;
2509pub const JSJitOpcode_JS_JIT_OP_put_var_ref2: JSJitOpcode = 233;
2510pub const JSJitOpcode_JS_JIT_OP_put_var_ref3: JSJitOpcode = 234;
2511pub const JSJitOpcode_JS_JIT_OP_set_var_ref0: JSJitOpcode = 235;
2512pub const JSJitOpcode_JS_JIT_OP_set_var_ref1: JSJitOpcode = 236;
2513pub const JSJitOpcode_JS_JIT_OP_set_var_ref2: JSJitOpcode = 237;
2514pub const JSJitOpcode_JS_JIT_OP_set_var_ref3: JSJitOpcode = 238;
2515pub const JSJitOpcode_JS_JIT_OP_get_length: JSJitOpcode = 239;
2516pub const JSJitOpcode_JS_JIT_OP_if_false8: JSJitOpcode = 240;
2517pub const JSJitOpcode_JS_JIT_OP_if_true8: JSJitOpcode = 241;
2518pub const JSJitOpcode_JS_JIT_OP_goto8: JSJitOpcode = 242;
2519pub const JSJitOpcode_JS_JIT_OP_goto16: JSJitOpcode = 243;
2520pub const JSJitOpcode_JS_JIT_OP_call0: JSJitOpcode = 244;
2521pub const JSJitOpcode_JS_JIT_OP_call1: JSJitOpcode = 245;
2522pub const JSJitOpcode_JS_JIT_OP_call2: JSJitOpcode = 246;
2523pub const JSJitOpcode_JS_JIT_OP_call3: JSJitOpcode = 247;
2524pub const JSJitOpcode_JS_JIT_OP_is_undefined: JSJitOpcode = 248;
2525pub const JSJitOpcode_JS_JIT_OP_is_null: JSJitOpcode = 249;
2526pub const JSJitOpcode_JS_JIT_OP_typeof_is_undefined: JSJitOpcode = 250;
2527pub const JSJitOpcode_JS_JIT_OP_typeof_is_function: JSJitOpcode = 251;
2528pub const JSJitOpcode_JS_JIT_OPCODE_COUNT: JSJitOpcode = 252;
2529pub type JSJitOpcode = ::core::ffi::c_uint;
2530#[repr(C)]
2531#[derive(Debug, Copy, Clone)]
2532pub struct JSJitOpcodeInfo {
2533    pub opcode: u8,
2534    pub size: u8,
2535    pub n_pop: u8,
2536    pub n_push: u8,
2537    pub format: u8,
2538    pub reserved: [u8; 3usize],
2539    pub name: *const ::core::ffi::c_char,
2540}
2541#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2542const _: () = {
2543    ["Size of JSJitOpcodeInfo"][::core::mem::size_of::<JSJitOpcodeInfo>() - 16usize];
2544    ["Alignment of JSJitOpcodeInfo"][::core::mem::align_of::<JSJitOpcodeInfo>() - 8usize];
2545    ["Offset of field: JSJitOpcodeInfo::opcode"]
2546        [::core::mem::offset_of!(JSJitOpcodeInfo, opcode) - 0usize];
2547    ["Offset of field: JSJitOpcodeInfo::size"]
2548        [::core::mem::offset_of!(JSJitOpcodeInfo, size) - 1usize];
2549    ["Offset of field: JSJitOpcodeInfo::n_pop"]
2550        [::core::mem::offset_of!(JSJitOpcodeInfo, n_pop) - 2usize];
2551    ["Offset of field: JSJitOpcodeInfo::n_push"]
2552        [::core::mem::offset_of!(JSJitOpcodeInfo, n_push) - 3usize];
2553    ["Offset of field: JSJitOpcodeInfo::format"]
2554        [::core::mem::offset_of!(JSJitOpcodeInfo, format) - 4usize];
2555    ["Offset of field: JSJitOpcodeInfo::reserved"]
2556        [::core::mem::offset_of!(JSJitOpcodeInfo, reserved) - 5usize];
2557    ["Offset of field: JSJitOpcodeInfo::name"]
2558        [::core::mem::offset_of!(JSJitOpcodeInfo, name) - 8usize];
2559};
2560pub const JSJitConstantKind_JS_JIT_CONSTANT_IMMEDIATE: JSJitConstantKind = 0;
2561pub const JSJitConstantKind_JS_JIT_CONSTANT_STRING: JSJitConstantKind = 1;
2562pub const JSJitConstantKind_JS_JIT_CONSTANT_BIG_INT: JSJitConstantKind = 2;
2563pub const JSJitConstantKind_JS_JIT_CONSTANT_FUNCTION: JSJitConstantKind = 3;
2564pub const JSJitConstantKind_JS_JIT_CONSTANT_OBJECT: JSJitConstantKind = 4;
2565pub type JSJitConstantKind = ::core::ffi::c_uint;
2566#[repr(C)]
2567#[derive(Debug, Copy, Clone)]
2568pub struct JSJitConstantDescriptor {
2569    pub index: u32,
2570    pub tag: i32,
2571    pub kind: u32,
2572    pub reserved: u32,
2573    pub payload: u64,
2574}
2575#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2576const _: () = {
2577    ["Size of JSJitConstantDescriptor"]
2578        [::core::mem::size_of::<JSJitConstantDescriptor>() - 24usize];
2579    ["Alignment of JSJitConstantDescriptor"]
2580        [::core::mem::align_of::<JSJitConstantDescriptor>() - 8usize];
2581    ["Offset of field: JSJitConstantDescriptor::index"]
2582        [::core::mem::offset_of!(JSJitConstantDescriptor, index) - 0usize];
2583    ["Offset of field: JSJitConstantDescriptor::tag"]
2584        [::core::mem::offset_of!(JSJitConstantDescriptor, tag) - 4usize];
2585    ["Offset of field: JSJitConstantDescriptor::kind"]
2586        [::core::mem::offset_of!(JSJitConstantDescriptor, kind) - 8usize];
2587    ["Offset of field: JSJitConstantDescriptor::reserved"]
2588        [::core::mem::offset_of!(JSJitConstantDescriptor, reserved) - 12usize];
2589    ["Offset of field: JSJitConstantDescriptor::payload"]
2590        [::core::mem::offset_of!(JSJitConstantDescriptor, payload) - 16usize];
2591};
2592pub const JSJitSnapshotStatus_JS_JIT_SNAPSHOT_OK: JSJitSnapshotStatus = 0;
2593pub const JSJitSnapshotStatus_JS_JIT_SNAPSHOT_INVALID_ARGUMENT: JSJitSnapshotStatus = -1;
2594pub const JSJitSnapshotStatus_JS_JIT_SNAPSHOT_NOT_BYTECODE: JSJitSnapshotStatus = -2;
2595pub const JSJitSnapshotStatus_JS_JIT_SNAPSHOT_GENERATOR: JSJitSnapshotStatus = -3;
2596pub const JSJitSnapshotStatus_JS_JIT_SNAPSHOT_ASYNC: JSJitSnapshotStatus = -4;
2597pub const JSJitSnapshotStatus_JS_JIT_SNAPSHOT_EVAL: JSJitSnapshotStatus = -5;
2598pub const JSJitSnapshotStatus_JS_JIT_SNAPSHOT_WITH: JSJitSnapshotStatus = -6;
2599pub const JSJitSnapshotStatus_JS_JIT_SNAPSHOT_OUT_OF_MEMORY: JSJitSnapshotStatus = -7;
2600pub const JSJitSnapshotStatus_JS_JIT_SNAPSHOT_TOO_LARGE: JSJitSnapshotStatus = -8;
2601pub const JSJitSnapshotStatus_JS_JIT_SNAPSHOT_INVALID_BYTECODE: JSJitSnapshotStatus = -9;
2602pub type JSJitSnapshotStatus = ::core::ffi::c_int;
2603#[repr(C)]
2604#[derive(Debug, Copy, Clone)]
2605pub struct JSJitFunctionSnapshot {
2606    pub struct_size: u32,
2607    pub flags: u32,
2608    pub function: JSJitFunctionId,
2609    pub opaque: *mut ::core::ffi::c_void,
2610    pub source_revision: u64,
2611    pub opcode_fingerprint: u64,
2612    pub bytecode: *const u8,
2613    pub bytecode_len: u32,
2614    pub arg_count: u16,
2615    pub local_count: u16,
2616    pub closure_count: u16,
2617    pub stack_size: u16,
2618    pub constants: *const JSJitConstantDescriptor,
2619    pub constant_count: u32,
2620    pub exception_map: *const u8,
2621    pub exception_map_len: u32,
2622    pub source_map: *const u8,
2623    pub source_map_len: u32,
2624}
2625#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2626const _: () = {
2627    ["Size of JSJitFunctionSnapshot"][::core::mem::size_of::<JSJitFunctionSnapshot>() - 128usize];
2628    ["Alignment of JSJitFunctionSnapshot"]
2629        [::core::mem::align_of::<JSJitFunctionSnapshot>() - 8usize];
2630    ["Offset of field: JSJitFunctionSnapshot::struct_size"]
2631        [::core::mem::offset_of!(JSJitFunctionSnapshot, struct_size) - 0usize];
2632    ["Offset of field: JSJitFunctionSnapshot::flags"]
2633        [::core::mem::offset_of!(JSJitFunctionSnapshot, flags) - 4usize];
2634    ["Offset of field: JSJitFunctionSnapshot::function"]
2635        [::core::mem::offset_of!(JSJitFunctionSnapshot, function) - 8usize];
2636    ["Offset of field: JSJitFunctionSnapshot::opaque"]
2637        [::core::mem::offset_of!(JSJitFunctionSnapshot, opaque) - 32usize];
2638    ["Offset of field: JSJitFunctionSnapshot::source_revision"]
2639        [::core::mem::offset_of!(JSJitFunctionSnapshot, source_revision) - 40usize];
2640    ["Offset of field: JSJitFunctionSnapshot::opcode_fingerprint"]
2641        [::core::mem::offset_of!(JSJitFunctionSnapshot, opcode_fingerprint) - 48usize];
2642    ["Offset of field: JSJitFunctionSnapshot::bytecode"]
2643        [::core::mem::offset_of!(JSJitFunctionSnapshot, bytecode) - 56usize];
2644    ["Offset of field: JSJitFunctionSnapshot::bytecode_len"]
2645        [::core::mem::offset_of!(JSJitFunctionSnapshot, bytecode_len) - 64usize];
2646    ["Offset of field: JSJitFunctionSnapshot::arg_count"]
2647        [::core::mem::offset_of!(JSJitFunctionSnapshot, arg_count) - 68usize];
2648    ["Offset of field: JSJitFunctionSnapshot::local_count"]
2649        [::core::mem::offset_of!(JSJitFunctionSnapshot, local_count) - 70usize];
2650    ["Offset of field: JSJitFunctionSnapshot::closure_count"]
2651        [::core::mem::offset_of!(JSJitFunctionSnapshot, closure_count) - 72usize];
2652    ["Offset of field: JSJitFunctionSnapshot::stack_size"]
2653        [::core::mem::offset_of!(JSJitFunctionSnapshot, stack_size) - 74usize];
2654    ["Offset of field: JSJitFunctionSnapshot::constants"]
2655        [::core::mem::offset_of!(JSJitFunctionSnapshot, constants) - 80usize];
2656    ["Offset of field: JSJitFunctionSnapshot::constant_count"]
2657        [::core::mem::offset_of!(JSJitFunctionSnapshot, constant_count) - 88usize];
2658    ["Offset of field: JSJitFunctionSnapshot::exception_map"]
2659        [::core::mem::offset_of!(JSJitFunctionSnapshot, exception_map) - 96usize];
2660    ["Offset of field: JSJitFunctionSnapshot::exception_map_len"]
2661        [::core::mem::offset_of!(JSJitFunctionSnapshot, exception_map_len) - 104usize];
2662    ["Offset of field: JSJitFunctionSnapshot::source_map"]
2663        [::core::mem::offset_of!(JSJitFunctionSnapshot, source_map) - 112usize];
2664    ["Offset of field: JSJitFunctionSnapshot::source_map_len"]
2665        [::core::mem::offset_of!(JSJitFunctionSnapshot, source_map_len) - 120usize];
2666};
2667pub const JSJitExitKind_JS_JIT_EXIT_DONE: JSJitExitKind = 0;
2668pub const JSJitExitKind_JS_JIT_EXIT_EXCEPTION: JSJitExitKind = 1;
2669pub const JSJitExitKind_JS_JIT_EXIT_INTERRUPT: JSJitExitKind = 2;
2670pub const JSJitExitKind_JS_JIT_EXIT_DEOPT: JSJitExitKind = 3;
2671pub const JSJitExitKind_JS_JIT_EXIT_RETRY_INTERPRETER: JSJitExitKind = 4;
2672pub type JSJitExitKind = ::core::ffi::c_uint;
2673pub type JSJitHelperStatus = i32;
2674pub const JS_JIT_HELPER_OK: _bindgen_ty_4 = 0;
2675pub const JS_JIT_HELPER_GUARD_MISS: _bindgen_ty_4 = 1;
2676pub const JS_JIT_HELPER_MATERIALIZED: _bindgen_ty_4 = 2;
2677pub const JS_JIT_HELPER_EXCEPTION: _bindgen_ty_4 = -1;
2678pub type _bindgen_ty_4 = ::core::ffi::c_int;
2679pub const JSJitOwnerSourceKind_JS_JIT_OWNER_SOURCE_ARGUMENT: JSJitOwnerSourceKind = 0;
2680pub const JSJitOwnerSourceKind_JS_JIT_OWNER_SOURCE_LOCAL: JSJitOwnerSourceKind = 1;
2681pub const JSJitOwnerSourceKind_JS_JIT_OWNER_SOURCE_OWNED_STACK: JSJitOwnerSourceKind = 2;
2682pub type JSJitOwnerSourceKind = ::core::ffi::c_uint;
2683pub const JSJitHelperABIType_JS_JIT_HELPER_ABI_NONE: JSJitHelperABIType = 0;
2684pub const JSJitHelperABIType_JS_JIT_HELPER_ABI_STATUS: JSJitHelperABIType = 1;
2685pub const JSJitHelperABIType_JS_JIT_HELPER_ABI_FRAME: JSJitHelperABIType = 2;
2686pub const JSJitHelperABIType_JS_JIT_HELPER_ABI_U32: JSJitHelperABIType = 3;
2687pub type JSJitHelperABIType = ::core::ffi::c_uint;
2688pub const JSJitHelperOwnership_JS_JIT_HELPER_NONE: JSJitHelperOwnership = 0;
2689pub const JSJitHelperOwnership_JS_JIT_HELPER_BORROWED: JSJitHelperOwnership = 1;
2690pub const JSJitHelperOwnership_JS_JIT_HELPER_CONSUMED: JSJitHelperOwnership = 2;
2691pub const JSJitHelperOwnership_JS_JIT_HELPER_OWNED: JSJitHelperOwnership = 3;
2692pub type JSJitHelperOwnership = ::core::ffi::c_uint;
2693pub const JS_JIT_HELPER_THROWING: _bindgen_ty_5 = 1;
2694pub const JS_JIT_HELPER_ALLOCATING: _bindgen_ty_5 = 2;
2695pub const JS_JIT_HELPER_REENTRANT: _bindgen_ty_5 = 4;
2696pub const JS_JIT_HELPER_FINALIZING: _bindgen_ty_5 = 8;
2697pub type _bindgen_ty_5 = ::core::ffi::c_uint;
2698pub const JSJitCompareOp_JS_JIT_COMPARE_LT: JSJitCompareOp = 0;
2699pub const JSJitCompareOp_JS_JIT_COMPARE_LTE: JSJitCompareOp = 1;
2700pub const JSJitCompareOp_JS_JIT_COMPARE_GT: JSJitCompareOp = 2;
2701pub const JSJitCompareOp_JS_JIT_COMPARE_GTE: JSJitCompareOp = 3;
2702pub const JSJitCompareOp_JS_JIT_COMPARE_EQ: JSJitCompareOp = 4;
2703pub const JSJitCompareOp_JS_JIT_COMPARE_NEQ: JSJitCompareOp = 5;
2704pub const JSJitCompareOp_JS_JIT_COMPARE_STRICT_EQ: JSJitCompareOp = 6;
2705pub const JSJitCompareOp_JS_JIT_COMPARE_STRICT_NEQ: JSJitCompareOp = 7;
2706pub type JSJitCompareOp = ::core::ffi::c_uint;
2707pub const JSJitHelperId_JS_JIT_HELPER_POLL: JSJitHelperId = 0;
2708pub const JSJitHelperId_JS_JIT_HELPER_DUP: JSJitHelperId = 1;
2709pub const JSJitHelperId_JS_JIT_HELPER_FREE: JSJitHelperId = 2;
2710pub const JSJitHelperId_JS_JIT_HELPER_RESOLVE_CONST: JSJitHelperId = 3;
2711pub const JSJitHelperId_JS_JIT_HELPER_TO_NUMERIC: JSJitHelperId = 4;
2712pub const JSJitHelperId_JS_JIT_HELPER_TO_BOOL: JSJitHelperId = 5;
2713pub const JSJitHelperId_JS_JIT_HELPER_ADD_SLOW: JSJitHelperId = 6;
2714pub const JSJitHelperId_JS_JIT_HELPER_COMPARE_SLOW: JSJitHelperId = 7;
2715pub const JSJitHelperId_JS_JIT_HELPER_GET_PROPERTY: JSJitHelperId = 8;
2716pub const JSJitHelperId_JS_JIT_HELPER_SET_PROPERTY: JSJitHelperId = 9;
2717pub const JSJitHelperId_JS_JIT_HELPER_CALL: JSJitHelperId = 10;
2718pub const JSJitHelperId_JS_JIT_HELPER_NEW_ARRAY: JSJitHelperId = 11;
2719pub const JSJitHelperId_JS_JIT_HELPER_NEW_OBJECT: JSJitHelperId = 12;
2720pub const JSJitHelperId_JS_JIT_HELPER_SHAPE_GUARD: JSJitHelperId = 13;
2721pub const JSJitHelperId_JS_JIT_HELPER_MATERIALIZE_OWNER: JSJitHelperId = 14;
2722pub const JSJitHelperId_JS_JIT_HELPER_GET_ELEMENT: JSJitHelperId = 15;
2723pub const JSJitHelperId_JS_JIT_HELPER_SET_ELEMENT: JSJitHelperId = 16;
2724pub const JSJitHelperId_JS_JIT_HELPER_TO_PROPKEY: JSJitHelperId = 17;
2725pub const JSJitHelperId_JS_JIT_HELPER_GET_GLOBAL: JSJitHelperId = 18;
2726pub const JSJitHelperId_JS_JIT_HELPER_CALL_CONSTRUCTOR: JSJitHelperId = 19;
2727pub const JSJitHelperId_JS_JIT_HELPER_REGEXP: JSJitHelperId = 20;
2728pub const JSJitHelperId_JS_JIT_HELPER_ATOM_VALUE: JSJitHelperId = 21;
2729pub const JSJitHelperId_JS_JIT_HELPER_COUNT: JSJitHelperId = 22;
2730pub type JSJitHelperId = ::core::ffi::c_uint;
2731#[repr(C)]
2732#[derive(Debug, Copy, Clone)]
2733pub struct JSJitHelperInfo {
2734    pub id: u16,
2735    pub abi_type_count: u8,
2736    pub value_arity: u8,
2737    pub abi_types: [u8; 8usize],
2738    pub value_ownership: [u8; 4usize],
2739    pub output_ownership: u8,
2740    pub reserved: [u8; 3usize],
2741    pub flags: u32,
2742    pub name: *const ::core::ffi::c_char,
2743}
2744#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2745const _: () = {
2746    ["Size of JSJitHelperInfo"][::core::mem::size_of::<JSJitHelperInfo>() - 32usize];
2747    ["Alignment of JSJitHelperInfo"][::core::mem::align_of::<JSJitHelperInfo>() - 8usize];
2748    ["Offset of field: JSJitHelperInfo::id"][::core::mem::offset_of!(JSJitHelperInfo, id) - 0usize];
2749    ["Offset of field: JSJitHelperInfo::abi_type_count"]
2750        [::core::mem::offset_of!(JSJitHelperInfo, abi_type_count) - 2usize];
2751    ["Offset of field: JSJitHelperInfo::value_arity"]
2752        [::core::mem::offset_of!(JSJitHelperInfo, value_arity) - 3usize];
2753    ["Offset of field: JSJitHelperInfo::abi_types"]
2754        [::core::mem::offset_of!(JSJitHelperInfo, abi_types) - 4usize];
2755    ["Offset of field: JSJitHelperInfo::value_ownership"]
2756        [::core::mem::offset_of!(JSJitHelperInfo, value_ownership) - 12usize];
2757    ["Offset of field: JSJitHelperInfo::output_ownership"]
2758        [::core::mem::offset_of!(JSJitHelperInfo, output_ownership) - 16usize];
2759    ["Offset of field: JSJitHelperInfo::reserved"]
2760        [::core::mem::offset_of!(JSJitHelperInfo, reserved) - 17usize];
2761    ["Offset of field: JSJitHelperInfo::flags"]
2762        [::core::mem::offset_of!(JSJitHelperInfo, flags) - 20usize];
2763    ["Offset of field: JSJitHelperInfo::name"]
2764        [::core::mem::offset_of!(JSJitHelperInfo, name) - 24usize];
2765};
2766unsafe extern "C" {
2767    pub fn JS_JitHelperPoll(frame: *mut JSJitExecFrame) -> JSJitHelperStatus;
2768}
2769unsafe extern "C" {
2770    pub fn JS_JitHelperDup(
2771        frame: *mut JSJitExecFrame,
2772        stack_map_id: u32,
2773        output: u32,
2774        input: u32,
2775    ) -> JSJitHelperStatus;
2776}
2777unsafe extern "C" {
2778    pub fn JS_JitHelperFree(
2779        frame: *mut JSJitExecFrame,
2780        stack_map_id: u32,
2781        input: u32,
2782    ) -> JSJitHelperStatus;
2783}
2784unsafe extern "C" {
2785    pub fn JS_JitHelperResolveConst(
2786        frame: *mut JSJitExecFrame,
2787        stack_map_id: u32,
2788        output: u32,
2789        input: u32,
2790    ) -> JSJitHelperStatus;
2791}
2792unsafe extern "C" {
2793    pub fn JS_JitHelperToNumeric(
2794        frame: *mut JSJitExecFrame,
2795        stack_map_id: u32,
2796        output: u32,
2797        input: u32,
2798    ) -> JSJitHelperStatus;
2799}
2800unsafe extern "C" {
2801    pub fn JS_JitHelperToBool(
2802        frame: *mut JSJitExecFrame,
2803        stack_map_id: u32,
2804        output: u32,
2805        input: u32,
2806    ) -> JSJitHelperStatus;
2807}
2808unsafe extern "C" {
2809    pub fn JS_JitHelperAddSlow(
2810        frame: *mut JSJitExecFrame,
2811        stack_map_id: u32,
2812        output: u32,
2813        left: u32,
2814        right: u32,
2815    ) -> JSJitHelperStatus;
2816}
2817unsafe extern "C" {
2818    pub fn JS_JitHelperCompareSlow(
2819        frame: *mut JSJitExecFrame,
2820        stack_map_id: u32,
2821        output: u32,
2822        left: u32,
2823        right: u32,
2824        operation: u32,
2825    ) -> JSJitHelperStatus;
2826}
2827unsafe extern "C" {
2828    pub fn JS_JitHelperGetProperty(
2829        frame: *mut JSJitExecFrame,
2830        stack_map_id: u32,
2831        output: u32,
2832        object: u32,
2833        atom: u32,
2834    ) -> JSJitHelperStatus;
2835}
2836unsafe extern "C" {
2837    pub fn JS_JitHelperSetProperty(
2838        frame: *mut JSJitExecFrame,
2839        stack_map_id: u32,
2840        object: u32,
2841        atom: u32,
2842        value: u32,
2843    ) -> JSJitHelperStatus;
2844}
2845unsafe extern "C" {
2846    pub fn JS_JitHelperCall(
2847        frame: *mut JSJitExecFrame,
2848        stack_map_id: u32,
2849        output: u32,
2850        function: u32,
2851        this_value: u32,
2852        argv: u32,
2853        argc: u32,
2854    ) -> JSJitHelperStatus;
2855}
2856unsafe extern "C" {
2857    pub fn JS_JitHelperNewArray(
2858        frame: *mut JSJitExecFrame,
2859        stack_map_id: u32,
2860        output: u32,
2861    ) -> JSJitHelperStatus;
2862}
2863unsafe extern "C" {
2864    pub fn JS_JitHelperNewObject(
2865        frame: *mut JSJitExecFrame,
2866        stack_map_id: u32,
2867        output: u32,
2868    ) -> JSJitHelperStatus;
2869}
2870unsafe extern "C" {
2871    pub fn JS_JitHelperShapeGuard(
2872        frame: *mut JSJitExecFrame,
2873        stack_map_id: u32,
2874        object: u32,
2875        identity_lo: u32,
2876        identity_hi: u32,
2877        generation_lo: u32,
2878        generation_hi: u32,
2879    ) -> JSJitHelperStatus;
2880}
2881unsafe extern "C" {
2882    pub fn JS_JitHelperMaterializeOwner(
2883        frame: *mut JSJitExecFrame,
2884        stack_map_id: u32,
2885        output_stack_index: u32,
2886        source_kind: u32,
2887        source_index: u32,
2888    ) -> JSJitHelperStatus;
2889}
2890unsafe extern "C" {
2891    pub fn JS_JitHelperGetElement(
2892        frame: *mut JSJitExecFrame,
2893        stack_map_id: u32,
2894        output: u32,
2895        left: u32,
2896        right: u32,
2897    ) -> JSJitHelperStatus;
2898}
2899unsafe extern "C" {
2900    pub fn JS_JitHelperSetElement(
2901        frame: *mut JSJitExecFrame,
2902        stack_map_id: u32,
2903        output: u32,
2904        left: u32,
2905        right: u32,
2906    ) -> JSJitHelperStatus;
2907}
2908unsafe extern "C" {
2909    pub fn JS_JitHelperToPropKey(
2910        frame: *mut JSJitExecFrame,
2911        stack_map_id: u32,
2912        output: u32,
2913        input: u32,
2914    ) -> JSJitHelperStatus;
2915}
2916unsafe extern "C" {
2917    pub fn JS_JitHelperGetGlobal(
2918        frame: *mut JSJitExecFrame,
2919        stack_map_id: u32,
2920        output: u32,
2921        input: u32,
2922    ) -> JSJitHelperStatus;
2923}
2924unsafe extern "C" {
2925    pub fn JS_JitHelperCallConstructor(
2926        frame: *mut JSJitExecFrame,
2927        stack_map_id: u32,
2928        output: u32,
2929        function: u32,
2930        this_value: u32,
2931        argv: u32,
2932        argc: u32,
2933    ) -> JSJitHelperStatus;
2934}
2935unsafe extern "C" {
2936    pub fn JS_JitHelperRegexp(
2937        frame: *mut JSJitExecFrame,
2938        stack_map_id: u32,
2939        output: u32,
2940        left: u32,
2941        right: u32,
2942    ) -> JSJitHelperStatus;
2943}
2944unsafe extern "C" {
2945    pub fn JS_JitHelperAtomValue(
2946        frame: *mut JSJitExecFrame,
2947        stack_map_id: u32,
2948        output: u32,
2949        input: u32,
2950    ) -> JSJitHelperStatus;
2951}
2952unsafe extern "C" {
2953    pub fn JS_JitGetHelperTable(count: *mut u32, fingerprint: *mut u64) -> *const JSJitHelperInfo;
2954}
2955#[repr(C)]
2956#[derive(Debug, Copy, Clone)]
2957pub struct JSJitRuntimeAPI {
2958    pub struct_size: u32,
2959    pub major: u16,
2960    pub minor: u16,
2961    pub interrupt_poll: ::core::option::Option<
2962        unsafe extern "C" fn(frame: *mut JSJitExecFrame) -> JSJitHelperStatus,
2963    >,
2964    pub dup: ::core::option::Option<
2965        unsafe extern "C" fn(
2966            frame: *mut JSJitExecFrame,
2967            stack_map_id: u32,
2968            output: u32,
2969            input: u32,
2970        ) -> JSJitHelperStatus,
2971    >,
2972    pub free: ::core::option::Option<
2973        unsafe extern "C" fn(
2974            frame: *mut JSJitExecFrame,
2975            stack_map_id: u32,
2976            input: u32,
2977        ) -> JSJitHelperStatus,
2978    >,
2979    pub resolve_const: ::core::option::Option<
2980        unsafe extern "C" fn(
2981            frame: *mut JSJitExecFrame,
2982            stack_map_id: u32,
2983            output: u32,
2984            input: u32,
2985        ) -> JSJitHelperStatus,
2986    >,
2987    pub to_numeric: ::core::option::Option<
2988        unsafe extern "C" fn(
2989            frame: *mut JSJitExecFrame,
2990            stack_map_id: u32,
2991            output: u32,
2992            input: u32,
2993        ) -> JSJitHelperStatus,
2994    >,
2995    pub to_bool: ::core::option::Option<
2996        unsafe extern "C" fn(
2997            frame: *mut JSJitExecFrame,
2998            stack_map_id: u32,
2999            output: u32,
3000            input: u32,
3001        ) -> JSJitHelperStatus,
3002    >,
3003    pub add_slow: ::core::option::Option<
3004        unsafe extern "C" fn(
3005            frame: *mut JSJitExecFrame,
3006            stack_map_id: u32,
3007            output: u32,
3008            left: u32,
3009            right: u32,
3010        ) -> JSJitHelperStatus,
3011    >,
3012    pub compare_slow: ::core::option::Option<
3013        unsafe extern "C" fn(
3014            frame: *mut JSJitExecFrame,
3015            stack_map_id: u32,
3016            output: u32,
3017            left: u32,
3018            right: u32,
3019            operation: u32,
3020        ) -> JSJitHelperStatus,
3021    >,
3022    pub get_property: ::core::option::Option<
3023        unsafe extern "C" fn(
3024            frame: *mut JSJitExecFrame,
3025            stack_map_id: u32,
3026            output: u32,
3027            object: u32,
3028            atom: u32,
3029        ) -> JSJitHelperStatus,
3030    >,
3031    pub set_property: ::core::option::Option<
3032        unsafe extern "C" fn(
3033            frame: *mut JSJitExecFrame,
3034            stack_map_id: u32,
3035            object: u32,
3036            atom: u32,
3037            value: u32,
3038        ) -> JSJitHelperStatus,
3039    >,
3040    pub call: ::core::option::Option<
3041        unsafe extern "C" fn(
3042            frame: *mut JSJitExecFrame,
3043            stack_map_id: u32,
3044            output: u32,
3045            function: u32,
3046            this_value: u32,
3047            argv: u32,
3048            argc: u32,
3049        ) -> JSJitHelperStatus,
3050    >,
3051    pub new_array: ::core::option::Option<
3052        unsafe extern "C" fn(
3053            frame: *mut JSJitExecFrame,
3054            stack_map_id: u32,
3055            output: u32,
3056        ) -> JSJitHelperStatus,
3057    >,
3058    pub new_object: ::core::option::Option<
3059        unsafe extern "C" fn(
3060            frame: *mut JSJitExecFrame,
3061            stack_map_id: u32,
3062            output: u32,
3063        ) -> JSJitHelperStatus,
3064    >,
3065    pub shape_guard: ::core::option::Option<
3066        unsafe extern "C" fn(
3067            frame: *mut JSJitExecFrame,
3068            stack_map_id: u32,
3069            object: u32,
3070            identity_lo: u32,
3071            identity_hi: u32,
3072            generation_lo: u32,
3073            generation_hi: u32,
3074        ) -> JSJitHelperStatus,
3075    >,
3076    pub materialize_owner: ::core::option::Option<
3077        unsafe extern "C" fn(
3078            frame: *mut JSJitExecFrame,
3079            stack_map_id: u32,
3080            output_stack_index: u32,
3081            source_kind: u32,
3082            source_index: u32,
3083        ) -> JSJitHelperStatus,
3084    >,
3085    pub get_element: ::core::option::Option<
3086        unsafe extern "C" fn(
3087            frame: *mut JSJitExecFrame,
3088            stack_map_id: u32,
3089            output: u32,
3090            left: u32,
3091            right: u32,
3092        ) -> JSJitHelperStatus,
3093    >,
3094    pub set_element: ::core::option::Option<
3095        unsafe extern "C" fn(
3096            frame: *mut JSJitExecFrame,
3097            stack_map_id: u32,
3098            output: u32,
3099            left: u32,
3100            right: u32,
3101        ) -> JSJitHelperStatus,
3102    >,
3103    pub to_propkey: ::core::option::Option<
3104        unsafe extern "C" fn(
3105            frame: *mut JSJitExecFrame,
3106            stack_map_id: u32,
3107            output: u32,
3108            input: u32,
3109        ) -> JSJitHelperStatus,
3110    >,
3111    pub get_global: ::core::option::Option<
3112        unsafe extern "C" fn(
3113            frame: *mut JSJitExecFrame,
3114            stack_map_id: u32,
3115            output: u32,
3116            input: u32,
3117        ) -> JSJitHelperStatus,
3118    >,
3119    pub call_constructor: ::core::option::Option<
3120        unsafe extern "C" fn(
3121            frame: *mut JSJitExecFrame,
3122            stack_map_id: u32,
3123            output: u32,
3124            function: u32,
3125            this_value: u32,
3126            argv: u32,
3127            argc: u32,
3128        ) -> JSJitHelperStatus,
3129    >,
3130    pub regexp: ::core::option::Option<
3131        unsafe extern "C" fn(
3132            frame: *mut JSJitExecFrame,
3133            stack_map_id: u32,
3134            output: u32,
3135            left: u32,
3136            right: u32,
3137        ) -> JSJitHelperStatus,
3138    >,
3139    pub atom_value: ::core::option::Option<
3140        unsafe extern "C" fn(
3141            frame: *mut JSJitExecFrame,
3142            stack_map_id: u32,
3143            output: u32,
3144            input: u32,
3145        ) -> JSJitHelperStatus,
3146    >,
3147}
3148#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3149const _: () = {
3150    ["Size of JSJitRuntimeAPI"][::core::mem::size_of::<JSJitRuntimeAPI>() - 184usize];
3151    ["Alignment of JSJitRuntimeAPI"][::core::mem::align_of::<JSJitRuntimeAPI>() - 8usize];
3152    ["Offset of field: JSJitRuntimeAPI::struct_size"]
3153        [::core::mem::offset_of!(JSJitRuntimeAPI, struct_size) - 0usize];
3154    ["Offset of field: JSJitRuntimeAPI::major"]
3155        [::core::mem::offset_of!(JSJitRuntimeAPI, major) - 4usize];
3156    ["Offset of field: JSJitRuntimeAPI::minor"]
3157        [::core::mem::offset_of!(JSJitRuntimeAPI, minor) - 6usize];
3158    ["Offset of field: JSJitRuntimeAPI::interrupt_poll"]
3159        [::core::mem::offset_of!(JSJitRuntimeAPI, interrupt_poll) - 8usize];
3160    ["Offset of field: JSJitRuntimeAPI::dup"]
3161        [::core::mem::offset_of!(JSJitRuntimeAPI, dup) - 16usize];
3162    ["Offset of field: JSJitRuntimeAPI::free"]
3163        [::core::mem::offset_of!(JSJitRuntimeAPI, free) - 24usize];
3164    ["Offset of field: JSJitRuntimeAPI::resolve_const"]
3165        [::core::mem::offset_of!(JSJitRuntimeAPI, resolve_const) - 32usize];
3166    ["Offset of field: JSJitRuntimeAPI::to_numeric"]
3167        [::core::mem::offset_of!(JSJitRuntimeAPI, to_numeric) - 40usize];
3168    ["Offset of field: JSJitRuntimeAPI::to_bool"]
3169        [::core::mem::offset_of!(JSJitRuntimeAPI, to_bool) - 48usize];
3170    ["Offset of field: JSJitRuntimeAPI::add_slow"]
3171        [::core::mem::offset_of!(JSJitRuntimeAPI, add_slow) - 56usize];
3172    ["Offset of field: JSJitRuntimeAPI::compare_slow"]
3173        [::core::mem::offset_of!(JSJitRuntimeAPI, compare_slow) - 64usize];
3174    ["Offset of field: JSJitRuntimeAPI::get_property"]
3175        [::core::mem::offset_of!(JSJitRuntimeAPI, get_property) - 72usize];
3176    ["Offset of field: JSJitRuntimeAPI::set_property"]
3177        [::core::mem::offset_of!(JSJitRuntimeAPI, set_property) - 80usize];
3178    ["Offset of field: JSJitRuntimeAPI::call"]
3179        [::core::mem::offset_of!(JSJitRuntimeAPI, call) - 88usize];
3180    ["Offset of field: JSJitRuntimeAPI::new_array"]
3181        [::core::mem::offset_of!(JSJitRuntimeAPI, new_array) - 96usize];
3182    ["Offset of field: JSJitRuntimeAPI::new_object"]
3183        [::core::mem::offset_of!(JSJitRuntimeAPI, new_object) - 104usize];
3184    ["Offset of field: JSJitRuntimeAPI::shape_guard"]
3185        [::core::mem::offset_of!(JSJitRuntimeAPI, shape_guard) - 112usize];
3186    ["Offset of field: JSJitRuntimeAPI::materialize_owner"]
3187        [::core::mem::offset_of!(JSJitRuntimeAPI, materialize_owner) - 120usize];
3188    ["Offset of field: JSJitRuntimeAPI::get_element"]
3189        [::core::mem::offset_of!(JSJitRuntimeAPI, get_element) - 128usize];
3190    ["Offset of field: JSJitRuntimeAPI::set_element"]
3191        [::core::mem::offset_of!(JSJitRuntimeAPI, set_element) - 136usize];
3192    ["Offset of field: JSJitRuntimeAPI::to_propkey"]
3193        [::core::mem::offset_of!(JSJitRuntimeAPI, to_propkey) - 144usize];
3194    ["Offset of field: JSJitRuntimeAPI::get_global"]
3195        [::core::mem::offset_of!(JSJitRuntimeAPI, get_global) - 152usize];
3196    ["Offset of field: JSJitRuntimeAPI::call_constructor"]
3197        [::core::mem::offset_of!(JSJitRuntimeAPI, call_constructor) - 160usize];
3198    ["Offset of field: JSJitRuntimeAPI::regexp"]
3199        [::core::mem::offset_of!(JSJitRuntimeAPI, regexp) - 168usize];
3200    ["Offset of field: JSJitRuntimeAPI::atom_value"]
3201        [::core::mem::offset_of!(JSJitRuntimeAPI, atom_value) - 176usize];
3202};
3203#[repr(C)]
3204#[derive(Debug, Copy, Clone)]
3205pub struct JSJitExit {
3206    pub kind: u32,
3207    pub reserved: u32,
3208    pub resume_pc: *const u8,
3209    pub resume_stack_top: *mut JSValue,
3210}
3211#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3212const _: () = {
3213    ["Size of JSJitExit"][::core::mem::size_of::<JSJitExit>() - 24usize];
3214    ["Alignment of JSJitExit"][::core::mem::align_of::<JSJitExit>() - 8usize];
3215    ["Offset of field: JSJitExit::kind"][::core::mem::offset_of!(JSJitExit, kind) - 0usize];
3216    ["Offset of field: JSJitExit::reserved"][::core::mem::offset_of!(JSJitExit, reserved) - 4usize];
3217    ["Offset of field: JSJitExit::resume_pc"]
3218        [::core::mem::offset_of!(JSJitExit, resume_pc) - 8usize];
3219    ["Offset of field: JSJitExit::resume_stack_top"]
3220        [::core::mem::offset_of!(JSJitExit, resume_stack_top) - 16usize];
3221};
3222pub type JSJitEntryFn =
3223    ::core::option::Option<unsafe extern "C" fn(frame: *mut JSJitExecFrame) -> JSJitExit>;
3224#[repr(C)]
3225#[derive(Debug, Copy, Clone)]
3226pub struct JSJitEntryHandle {
3227    pub struct_size: u32,
3228    pub reserved: u32,
3229    pub entry: JSJitEntryFn,
3230    pub pin: *mut ::core::ffi::c_void,
3231    pub stack_map_count: u32,
3232    pub helper_abi_version: u32,
3233}
3234#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3235const _: () = {
3236    ["Size of JSJitEntryHandle"][::core::mem::size_of::<JSJitEntryHandle>() - 32usize];
3237    ["Alignment of JSJitEntryHandle"][::core::mem::align_of::<JSJitEntryHandle>() - 8usize];
3238    ["Offset of field: JSJitEntryHandle::struct_size"]
3239        [::core::mem::offset_of!(JSJitEntryHandle, struct_size) - 0usize];
3240    ["Offset of field: JSJitEntryHandle::reserved"]
3241        [::core::mem::offset_of!(JSJitEntryHandle, reserved) - 4usize];
3242    ["Offset of field: JSJitEntryHandle::entry"]
3243        [::core::mem::offset_of!(JSJitEntryHandle, entry) - 8usize];
3244    ["Offset of field: JSJitEntryHandle::pin"]
3245        [::core::mem::offset_of!(JSJitEntryHandle, pin) - 16usize];
3246    ["Offset of field: JSJitEntryHandle::stack_map_count"]
3247        [::core::mem::offset_of!(JSJitEntryHandle, stack_map_count) - 24usize];
3248    ["Offset of field: JSJitEntryHandle::helper_abi_version"]
3249        [::core::mem::offset_of!(JSJitEntryHandle, helper_abi_version) - 28usize];
3250};
3251#[repr(C)]
3252#[derive(Copy, Clone)]
3253pub struct JSJitExecFrame {
3254    pub struct_size: u32,
3255    pub flags: u32,
3256    pub rt: *mut JSRuntime,
3257    pub ctx: *mut JSContext,
3258    pub function_id: u64,
3259    pub generation: u64,
3260    pub arg_buf: *mut JSValue,
3261    pub var_buf: *mut JSValue,
3262    pub stack_base: *mut JSValue,
3263    pub stack_top: *mut JSValue,
3264    pub bytecode_start: *const u8,
3265    pub pc: *const u8,
3266    pub result: JSValue,
3267    pub entry: JSJitEntryHandle,
3268    pub runtime_api: *const JSJitRuntimeAPI,
3269    pub runtime_id: u64,
3270    pub frame_cookie: u64,
3271    pub stack_capacity: *mut JSValue,
3272}
3273#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3274const _: () = {
3275    ["Size of JSJitExecFrame"][::core::mem::size_of::<JSJitExecFrame>() - 168usize];
3276    ["Alignment of JSJitExecFrame"][::core::mem::align_of::<JSJitExecFrame>() - 8usize];
3277    ["Offset of field: JSJitExecFrame::struct_size"]
3278        [::core::mem::offset_of!(JSJitExecFrame, struct_size) - 0usize];
3279    ["Offset of field: JSJitExecFrame::flags"]
3280        [::core::mem::offset_of!(JSJitExecFrame, flags) - 4usize];
3281    ["Offset of field: JSJitExecFrame::rt"][::core::mem::offset_of!(JSJitExecFrame, rt) - 8usize];
3282    ["Offset of field: JSJitExecFrame::ctx"]
3283        [::core::mem::offset_of!(JSJitExecFrame, ctx) - 16usize];
3284    ["Offset of field: JSJitExecFrame::function_id"]
3285        [::core::mem::offset_of!(JSJitExecFrame, function_id) - 24usize];
3286    ["Offset of field: JSJitExecFrame::generation"]
3287        [::core::mem::offset_of!(JSJitExecFrame, generation) - 32usize];
3288    ["Offset of field: JSJitExecFrame::arg_buf"]
3289        [::core::mem::offset_of!(JSJitExecFrame, arg_buf) - 40usize];
3290    ["Offset of field: JSJitExecFrame::var_buf"]
3291        [::core::mem::offset_of!(JSJitExecFrame, var_buf) - 48usize];
3292    ["Offset of field: JSJitExecFrame::stack_base"]
3293        [::core::mem::offset_of!(JSJitExecFrame, stack_base) - 56usize];
3294    ["Offset of field: JSJitExecFrame::stack_top"]
3295        [::core::mem::offset_of!(JSJitExecFrame, stack_top) - 64usize];
3296    ["Offset of field: JSJitExecFrame::bytecode_start"]
3297        [::core::mem::offset_of!(JSJitExecFrame, bytecode_start) - 72usize];
3298    ["Offset of field: JSJitExecFrame::pc"][::core::mem::offset_of!(JSJitExecFrame, pc) - 80usize];
3299    ["Offset of field: JSJitExecFrame::result"]
3300        [::core::mem::offset_of!(JSJitExecFrame, result) - 88usize];
3301    ["Offset of field: JSJitExecFrame::entry"]
3302        [::core::mem::offset_of!(JSJitExecFrame, entry) - 104usize];
3303    ["Offset of field: JSJitExecFrame::runtime_api"]
3304        [::core::mem::offset_of!(JSJitExecFrame, runtime_api) - 136usize];
3305    ["Offset of field: JSJitExecFrame::runtime_id"]
3306        [::core::mem::offset_of!(JSJitExecFrame, runtime_id) - 144usize];
3307    ["Offset of field: JSJitExecFrame::frame_cookie"]
3308        [::core::mem::offset_of!(JSJitExecFrame, frame_cookie) - 152usize];
3309    ["Offset of field: JSJitExecFrame::stack_capacity"]
3310        [::core::mem::offset_of!(JSJitExecFrame, stack_capacity) - 160usize];
3311};
3312#[repr(C)]
3313#[derive(Debug, Copy, Clone)]
3314pub struct JSJitElementLayout {
3315    pub struct_size: u32,
3316    pub object_class_id_offset: u32,
3317    pub object_flags_offset: u32,
3318    pub object_fast_array_mask: u32,
3319    pub object_exotic_mask: u32,
3320    pub object_union_offset: u32,
3321    pub array_size_offset: u32,
3322    pub array_count_offset: u32,
3323    pub array_data_offset: u32,
3324    pub typed_array_ptr_offset: u32,
3325    pub typed_array_buffer_offset: u32,
3326    pub typed_array_byte_offset_offset: u32,
3327    pub typed_array_byte_length_offset: u32,
3328    pub typed_array_track_rab_offset: u32,
3329    pub array_buffer_data_offset: u32,
3330    pub array_buffer_byte_length_offset: u32,
3331    pub array_buffer_max_byte_length_offset: u32,
3332    pub array_buffer_detached_offset: u32,
3333    pub array_buffer_immutable_offset: u32,
3334    pub array_class_id: u32,
3335    pub int32_array_class_id: u32,
3336    pub float64_array_class_id: u32,
3337}
3338#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3339const _: () = {
3340    ["Size of JSJitElementLayout"][::core::mem::size_of::<JSJitElementLayout>() - 88usize];
3341    ["Alignment of JSJitElementLayout"][::core::mem::align_of::<JSJitElementLayout>() - 4usize];
3342    ["Offset of field: JSJitElementLayout::struct_size"]
3343        [::core::mem::offset_of!(JSJitElementLayout, struct_size) - 0usize];
3344    ["Offset of field: JSJitElementLayout::object_class_id_offset"]
3345        [::core::mem::offset_of!(JSJitElementLayout, object_class_id_offset) - 4usize];
3346    ["Offset of field: JSJitElementLayout::object_flags_offset"]
3347        [::core::mem::offset_of!(JSJitElementLayout, object_flags_offset) - 8usize];
3348    ["Offset of field: JSJitElementLayout::object_fast_array_mask"]
3349        [::core::mem::offset_of!(JSJitElementLayout, object_fast_array_mask) - 12usize];
3350    ["Offset of field: JSJitElementLayout::object_exotic_mask"]
3351        [::core::mem::offset_of!(JSJitElementLayout, object_exotic_mask) - 16usize];
3352    ["Offset of field: JSJitElementLayout::object_union_offset"]
3353        [::core::mem::offset_of!(JSJitElementLayout, object_union_offset) - 20usize];
3354    ["Offset of field: JSJitElementLayout::array_size_offset"]
3355        [::core::mem::offset_of!(JSJitElementLayout, array_size_offset) - 24usize];
3356    ["Offset of field: JSJitElementLayout::array_count_offset"]
3357        [::core::mem::offset_of!(JSJitElementLayout, array_count_offset) - 28usize];
3358    ["Offset of field: JSJitElementLayout::array_data_offset"]
3359        [::core::mem::offset_of!(JSJitElementLayout, array_data_offset) - 32usize];
3360    ["Offset of field: JSJitElementLayout::typed_array_ptr_offset"]
3361        [::core::mem::offset_of!(JSJitElementLayout, typed_array_ptr_offset) - 36usize];
3362    ["Offset of field: JSJitElementLayout::typed_array_buffer_offset"]
3363        [::core::mem::offset_of!(JSJitElementLayout, typed_array_buffer_offset) - 40usize];
3364    ["Offset of field: JSJitElementLayout::typed_array_byte_offset_offset"]
3365        [::core::mem::offset_of!(JSJitElementLayout, typed_array_byte_offset_offset) - 44usize];
3366    ["Offset of field: JSJitElementLayout::typed_array_byte_length_offset"]
3367        [::core::mem::offset_of!(JSJitElementLayout, typed_array_byte_length_offset) - 48usize];
3368    ["Offset of field: JSJitElementLayout::typed_array_track_rab_offset"]
3369        [::core::mem::offset_of!(JSJitElementLayout, typed_array_track_rab_offset) - 52usize];
3370    ["Offset of field: JSJitElementLayout::array_buffer_data_offset"]
3371        [::core::mem::offset_of!(JSJitElementLayout, array_buffer_data_offset) - 56usize];
3372    ["Offset of field: JSJitElementLayout::array_buffer_byte_length_offset"]
3373        [::core::mem::offset_of!(JSJitElementLayout, array_buffer_byte_length_offset) - 60usize];
3374    ["Offset of field: JSJitElementLayout::array_buffer_max_byte_length_offset"][::core::mem::offset_of!(
3375        JSJitElementLayout,
3376        array_buffer_max_byte_length_offset
3377    ) - 64usize];
3378    ["Offset of field: JSJitElementLayout::array_buffer_detached_offset"]
3379        [::core::mem::offset_of!(JSJitElementLayout, array_buffer_detached_offset) - 68usize];
3380    ["Offset of field: JSJitElementLayout::array_buffer_immutable_offset"]
3381        [::core::mem::offset_of!(JSJitElementLayout, array_buffer_immutable_offset) - 72usize];
3382    ["Offset of field: JSJitElementLayout::array_class_id"]
3383        [::core::mem::offset_of!(JSJitElementLayout, array_class_id) - 76usize];
3384    ["Offset of field: JSJitElementLayout::int32_array_class_id"]
3385        [::core::mem::offset_of!(JSJitElementLayout, int32_array_class_id) - 80usize];
3386    ["Offset of field: JSJitElementLayout::float64_array_class_id"]
3387        [::core::mem::offset_of!(JSJitElementLayout, float64_array_class_id) - 84usize];
3388};
3389#[repr(C)]
3390#[derive(Debug, Copy, Clone)]
3391pub struct JSJitABIInfo {
3392    pub struct_size: u32,
3393    pub major: u16,
3394    pub minor: u16,
3395    pub pointer_width: u8,
3396    pub little_endian: u8,
3397    pub value_size: u16,
3398    pub source_revision: u64,
3399    pub opcode_fingerprint: u64,
3400    pub value_layout_fingerprint: u64,
3401    pub build_feature_flags: u64,
3402    pub build_fingerprint: u64,
3403    pub abi_info_layout_fingerprint: u64,
3404    pub function_id_layout_fingerprint: u64,
3405    pub hot_event_layout_fingerprint: u64,
3406    pub function_snapshot_layout_fingerprint: u64,
3407    pub entry_handle_layout_fingerprint: u64,
3408    pub backend_vtable_layout_fingerprint: u64,
3409    pub exec_frame_layout_fingerprint: u64,
3410    pub exit_layout_fingerprint: u64,
3411    pub runtime_api_layout_fingerprint: u64,
3412    pub helper_table_fingerprint: u64,
3413    pub element_layout_fingerprint: u64,
3414    pub element_layout: JSJitElementLayout,
3415}
3416#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3417const _: () = {
3418    ["Size of JSJitABIInfo"][::core::mem::size_of::<JSJitABIInfo>() - 232usize];
3419    ["Alignment of JSJitABIInfo"][::core::mem::align_of::<JSJitABIInfo>() - 8usize];
3420    ["Offset of field: JSJitABIInfo::struct_size"]
3421        [::core::mem::offset_of!(JSJitABIInfo, struct_size) - 0usize];
3422    ["Offset of field: JSJitABIInfo::major"][::core::mem::offset_of!(JSJitABIInfo, major) - 4usize];
3423    ["Offset of field: JSJitABIInfo::minor"][::core::mem::offset_of!(JSJitABIInfo, minor) - 6usize];
3424    ["Offset of field: JSJitABIInfo::pointer_width"]
3425        [::core::mem::offset_of!(JSJitABIInfo, pointer_width) - 8usize];
3426    ["Offset of field: JSJitABIInfo::little_endian"]
3427        [::core::mem::offset_of!(JSJitABIInfo, little_endian) - 9usize];
3428    ["Offset of field: JSJitABIInfo::value_size"]
3429        [::core::mem::offset_of!(JSJitABIInfo, value_size) - 10usize];
3430    ["Offset of field: JSJitABIInfo::source_revision"]
3431        [::core::mem::offset_of!(JSJitABIInfo, source_revision) - 16usize];
3432    ["Offset of field: JSJitABIInfo::opcode_fingerprint"]
3433        [::core::mem::offset_of!(JSJitABIInfo, opcode_fingerprint) - 24usize];
3434    ["Offset of field: JSJitABIInfo::value_layout_fingerprint"]
3435        [::core::mem::offset_of!(JSJitABIInfo, value_layout_fingerprint) - 32usize];
3436    ["Offset of field: JSJitABIInfo::build_feature_flags"]
3437        [::core::mem::offset_of!(JSJitABIInfo, build_feature_flags) - 40usize];
3438    ["Offset of field: JSJitABIInfo::build_fingerprint"]
3439        [::core::mem::offset_of!(JSJitABIInfo, build_fingerprint) - 48usize];
3440    ["Offset of field: JSJitABIInfo::abi_info_layout_fingerprint"]
3441        [::core::mem::offset_of!(JSJitABIInfo, abi_info_layout_fingerprint) - 56usize];
3442    ["Offset of field: JSJitABIInfo::function_id_layout_fingerprint"]
3443        [::core::mem::offset_of!(JSJitABIInfo, function_id_layout_fingerprint) - 64usize];
3444    ["Offset of field: JSJitABIInfo::hot_event_layout_fingerprint"]
3445        [::core::mem::offset_of!(JSJitABIInfo, hot_event_layout_fingerprint) - 72usize];
3446    ["Offset of field: JSJitABIInfo::function_snapshot_layout_fingerprint"]
3447        [::core::mem::offset_of!(JSJitABIInfo, function_snapshot_layout_fingerprint) - 80usize];
3448    ["Offset of field: JSJitABIInfo::entry_handle_layout_fingerprint"]
3449        [::core::mem::offset_of!(JSJitABIInfo, entry_handle_layout_fingerprint) - 88usize];
3450    ["Offset of field: JSJitABIInfo::backend_vtable_layout_fingerprint"]
3451        [::core::mem::offset_of!(JSJitABIInfo, backend_vtable_layout_fingerprint) - 96usize];
3452    ["Offset of field: JSJitABIInfo::exec_frame_layout_fingerprint"]
3453        [::core::mem::offset_of!(JSJitABIInfo, exec_frame_layout_fingerprint) - 104usize];
3454    ["Offset of field: JSJitABIInfo::exit_layout_fingerprint"]
3455        [::core::mem::offset_of!(JSJitABIInfo, exit_layout_fingerprint) - 112usize];
3456    ["Offset of field: JSJitABIInfo::runtime_api_layout_fingerprint"]
3457        [::core::mem::offset_of!(JSJitABIInfo, runtime_api_layout_fingerprint) - 120usize];
3458    ["Offset of field: JSJitABIInfo::helper_table_fingerprint"]
3459        [::core::mem::offset_of!(JSJitABIInfo, helper_table_fingerprint) - 128usize];
3460    ["Offset of field: JSJitABIInfo::element_layout_fingerprint"]
3461        [::core::mem::offset_of!(JSJitABIInfo, element_layout_fingerprint) - 136usize];
3462    ["Offset of field: JSJitABIInfo::element_layout"]
3463        [::core::mem::offset_of!(JSJitABIInfo, element_layout) - 144usize];
3464};
3465#[repr(C)]
3466#[derive(Debug, Copy, Clone)]
3467pub struct JSJitHelperCounters {
3468    pub struct_size: u32,
3469    pub reserved: u32,
3470    pub dup_count: u64,
3471    pub free_count: u64,
3472}
3473#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3474const _: () = {
3475    ["Size of JSJitHelperCounters"][::core::mem::size_of::<JSJitHelperCounters>() - 24usize];
3476    ["Alignment of JSJitHelperCounters"][::core::mem::align_of::<JSJitHelperCounters>() - 8usize];
3477    ["Offset of field: JSJitHelperCounters::struct_size"]
3478        [::core::mem::offset_of!(JSJitHelperCounters, struct_size) - 0usize];
3479    ["Offset of field: JSJitHelperCounters::reserved"]
3480        [::core::mem::offset_of!(JSJitHelperCounters, reserved) - 4usize];
3481    ["Offset of field: JSJitHelperCounters::dup_count"]
3482        [::core::mem::offset_of!(JSJitHelperCounters, dup_count) - 8usize];
3483    ["Offset of field: JSJitHelperCounters::free_count"]
3484        [::core::mem::offset_of!(JSJitHelperCounters, free_count) - 16usize];
3485};
3486#[repr(C)]
3487#[derive(Debug, Copy, Clone)]
3488pub struct JSJitBackendVTable {
3489    pub struct_size: u32,
3490    pub record_hot: ::core::option::Option<
3491        unsafe extern "C" fn(opaque: *mut ::core::ffi::c_void, event: *const JSJitHotEvent) -> u32,
3492    >,
3493    pub submit_snapshot: ::core::option::Option<
3494        unsafe extern "C" fn(
3495            opaque: *mut ::core::ffi::c_void,
3496            snapshot: *mut JSJitFunctionSnapshot,
3497        ),
3498    >,
3499    pub acquire_entry: ::core::option::Option<
3500        unsafe extern "C" fn(
3501            opaque: *mut ::core::ffi::c_void,
3502            id: u64,
3503            generation: u64,
3504            pc: u32,
3505        ) -> JSJitEntryHandle,
3506    >,
3507    pub release_entry: ::core::option::Option<
3508        unsafe extern "C" fn(opaque: *mut ::core::ffi::c_void, entry: JSJitEntryHandle),
3509    >,
3510    pub runtime_detach: ::core::option::Option<
3511        unsafe extern "C" fn(opaque: *mut ::core::ffi::c_void, rt: *mut JSRuntime),
3512    >,
3513    pub function_retire: ::core::option::Option<
3514        unsafe extern "C" fn(opaque: *mut ::core::ffi::c_void, id: u64, generation: u64),
3515    >,
3516    pub memory_used:
3517        ::core::option::Option<unsafe extern "C" fn(opaque: *mut ::core::ffi::c_void) -> size_t>,
3518    pub native_enter: ::core::option::Option<
3519        unsafe extern "C" fn(opaque: *mut ::core::ffi::c_void, id: u64, generation: u64, pc: u32),
3520    >,
3521    pub native_exit: ::core::option::Option<
3522        unsafe extern "C" fn(
3523            opaque: *mut ::core::ffi::c_void,
3524            id: u64,
3525            generation: u64,
3526            pc: u32,
3527            exit_kind: u32,
3528        ),
3529    >,
3530    pub record_feedback: ::core::option::Option<
3531        unsafe extern "C" fn(opaque: *mut ::core::ffi::c_void, event: *const JSJitFeedbackEvent),
3532    >,
3533}
3534#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3535const _: () = {
3536    ["Size of JSJitBackendVTable"][::core::mem::size_of::<JSJitBackendVTable>() - 88usize];
3537    ["Alignment of JSJitBackendVTable"][::core::mem::align_of::<JSJitBackendVTable>() - 8usize];
3538    ["Offset of field: JSJitBackendVTable::struct_size"]
3539        [::core::mem::offset_of!(JSJitBackendVTable, struct_size) - 0usize];
3540    ["Offset of field: JSJitBackendVTable::record_hot"]
3541        [::core::mem::offset_of!(JSJitBackendVTable, record_hot) - 8usize];
3542    ["Offset of field: JSJitBackendVTable::submit_snapshot"]
3543        [::core::mem::offset_of!(JSJitBackendVTable, submit_snapshot) - 16usize];
3544    ["Offset of field: JSJitBackendVTable::acquire_entry"]
3545        [::core::mem::offset_of!(JSJitBackendVTable, acquire_entry) - 24usize];
3546    ["Offset of field: JSJitBackendVTable::release_entry"]
3547        [::core::mem::offset_of!(JSJitBackendVTable, release_entry) - 32usize];
3548    ["Offset of field: JSJitBackendVTable::runtime_detach"]
3549        [::core::mem::offset_of!(JSJitBackendVTable, runtime_detach) - 40usize];
3550    ["Offset of field: JSJitBackendVTable::function_retire"]
3551        [::core::mem::offset_of!(JSJitBackendVTable, function_retire) - 48usize];
3552    ["Offset of field: JSJitBackendVTable::memory_used"]
3553        [::core::mem::offset_of!(JSJitBackendVTable, memory_used) - 56usize];
3554    ["Offset of field: JSJitBackendVTable::native_enter"]
3555        [::core::mem::offset_of!(JSJitBackendVTable, native_enter) - 64usize];
3556    ["Offset of field: JSJitBackendVTable::native_exit"]
3557        [::core::mem::offset_of!(JSJitBackendVTable, native_exit) - 72usize];
3558    ["Offset of field: JSJitBackendVTable::record_feedback"]
3559        [::core::mem::offset_of!(JSJitBackendVTable, record_feedback) - 80usize];
3560};
3561pub const JS_JIT_BACKEND_OK: _bindgen_ty_6 = 0;
3562pub const JS_JIT_BACKEND_INVALID_ARGUMENT: _bindgen_ty_6 = -1;
3563pub const JS_JIT_BACKEND_ALREADY_ATTACHED: _bindgen_ty_6 = -2;
3564pub const JS_JIT_BACKEND_INVALID_VTABLE: _bindgen_ty_6 = -3;
3565pub const JS_JIT_BACKEND_BUSY: _bindgen_ty_6 = -4;
3566pub type _bindgen_ty_6 = ::core::ffi::c_int;
3567unsafe extern "C" {
3568    pub fn JS_GetJitABIInfo(out: *mut JSJitABIInfo) -> ::core::ffi::c_int;
3569}
3570unsafe extern "C" {
3571    pub fn JS_GetJitRuntimeId(rt: *mut JSRuntime) -> u64;
3572}
3573unsafe extern "C" {
3574    pub fn JS_JitGetHelperCounters(
3575        rt: *mut JSRuntime,
3576        counters: *mut JSJitHelperCounters,
3577    ) -> ::core::ffi::c_int;
3578}
3579unsafe extern "C" {
3580    pub fn JS_JitResetHelperCounters(rt: *mut JSRuntime) -> ::core::ffi::c_int;
3581}
3582#[repr(C)]
3583#[derive(Debug, Copy, Clone)]
3584pub struct JSJitTraceEvent {
3585    pub pc: u32,
3586    pub opcode: u8,
3587    pub kind: u8,
3588    pub helper_id: u8,
3589    pub reserved: u8,
3590}
3591#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3592const _: () = {
3593    ["Size of JSJitTraceEvent"][::core::mem::size_of::<JSJitTraceEvent>() - 8usize];
3594    ["Alignment of JSJitTraceEvent"][::core::mem::align_of::<JSJitTraceEvent>() - 4usize];
3595    ["Offset of field: JSJitTraceEvent::pc"][::core::mem::offset_of!(JSJitTraceEvent, pc) - 0usize];
3596    ["Offset of field: JSJitTraceEvent::opcode"]
3597        [::core::mem::offset_of!(JSJitTraceEvent, opcode) - 4usize];
3598    ["Offset of field: JSJitTraceEvent::kind"]
3599        [::core::mem::offset_of!(JSJitTraceEvent, kind) - 5usize];
3600    ["Offset of field: JSJitTraceEvent::helper_id"]
3601        [::core::mem::offset_of!(JSJitTraceEvent, helper_id) - 6usize];
3602    ["Offset of field: JSJitTraceEvent::reserved"]
3603        [::core::mem::offset_of!(JSJitTraceEvent, reserved) - 7usize];
3604};
3605unsafe extern "C" {
3606    pub fn JS_JitGetHelperCount(
3607        rt: *mut JSRuntime,
3608        helper_id: u32,
3609        count: *mut u64,
3610    ) -> ::core::ffi::c_int;
3611}
3612unsafe extern "C" {
3613    pub fn JS_JitSetExecutionTrace(
3614        rt: *mut JSRuntime,
3615        events: *mut JSJitTraceEvent,
3616        capacity: u32,
3617    ) -> ::core::ffi::c_int;
3618}
3619unsafe extern "C" {
3620    pub fn JS_JitGetExecutionTraceLength(
3621        rt: *mut JSRuntime,
3622        length: *mut u32,
3623        overflowed: *mut u32,
3624    ) -> ::core::ffi::c_int;
3625}
3626unsafe extern "C" {
3627    pub fn JS_SetJitBackend(
3628        rt: *mut JSRuntime,
3629        vtable: *const JSJitBackendVTable,
3630        opaque: *mut ::core::ffi::c_void,
3631    ) -> ::core::ffi::c_int;
3632}
3633unsafe extern "C" {
3634    pub fn JS_SetJitSuspended(
3635        rt: *mut JSRuntime,
3636        suspended: ::core::ffi::c_int,
3637    ) -> ::core::ffi::c_int;
3638}
3639unsafe extern "C" {
3640    pub fn JS_IsJitSuspended(rt: *mut JSRuntime) -> ::core::ffi::c_int;
3641}
3642unsafe extern "C" {
3643    pub fn JS_JitGetOpcodeTable(count: *mut u32, fingerprint: *mut u64) -> *const JSJitOpcodeInfo;
3644}
3645unsafe extern "C" {
3646    pub fn JS_JitSnapshotFunction(
3647        ctx: *mut JSContext,
3648        function: JSValue,
3649        out: *mut *mut JSJitFunctionSnapshot,
3650    ) -> ::core::ffi::c_int;
3651}
3652unsafe extern "C" {
3653    pub fn JS_JitFreeSnapshot(snapshot: *mut JSJitFunctionSnapshot);
3654}
3655unsafe extern "C" {
3656    pub fn JS_JitInvalidateFunction(ctx: *mut JSContext, function: JSValue) -> ::core::ffi::c_int;
3657}
3658pub const __JS_ATOM_NULL: _bindgen_ty_7 = 0;
3659pub const JS_ATOM_null: _bindgen_ty_7 = 1;
3660pub const JS_ATOM_false: _bindgen_ty_7 = 2;
3661pub const JS_ATOM_true: _bindgen_ty_7 = 3;
3662pub const JS_ATOM_if: _bindgen_ty_7 = 4;
3663pub const JS_ATOM_else: _bindgen_ty_7 = 5;
3664pub const JS_ATOM_return: _bindgen_ty_7 = 6;
3665pub const JS_ATOM_var: _bindgen_ty_7 = 7;
3666pub const JS_ATOM_this: _bindgen_ty_7 = 8;
3667pub const JS_ATOM_delete: _bindgen_ty_7 = 9;
3668pub const JS_ATOM_void: _bindgen_ty_7 = 10;
3669pub const JS_ATOM_typeof: _bindgen_ty_7 = 11;
3670pub const JS_ATOM_new: _bindgen_ty_7 = 12;
3671pub const JS_ATOM_in: _bindgen_ty_7 = 13;
3672pub const JS_ATOM_instanceof: _bindgen_ty_7 = 14;
3673pub const JS_ATOM_do: _bindgen_ty_7 = 15;
3674pub const JS_ATOM_while: _bindgen_ty_7 = 16;
3675pub const JS_ATOM_for: _bindgen_ty_7 = 17;
3676pub const JS_ATOM_break: _bindgen_ty_7 = 18;
3677pub const JS_ATOM_continue: _bindgen_ty_7 = 19;
3678pub const JS_ATOM_switch: _bindgen_ty_7 = 20;
3679pub const JS_ATOM_case: _bindgen_ty_7 = 21;
3680pub const JS_ATOM_default: _bindgen_ty_7 = 22;
3681pub const JS_ATOM_throw: _bindgen_ty_7 = 23;
3682pub const JS_ATOM_try: _bindgen_ty_7 = 24;
3683pub const JS_ATOM_catch: _bindgen_ty_7 = 25;
3684pub const JS_ATOM_finally: _bindgen_ty_7 = 26;
3685pub const JS_ATOM_function: _bindgen_ty_7 = 27;
3686pub const JS_ATOM_debugger: _bindgen_ty_7 = 28;
3687pub const JS_ATOM_with: _bindgen_ty_7 = 29;
3688pub const JS_ATOM_class: _bindgen_ty_7 = 30;
3689pub const JS_ATOM_const: _bindgen_ty_7 = 31;
3690pub const JS_ATOM_enum: _bindgen_ty_7 = 32;
3691pub const JS_ATOM_export: _bindgen_ty_7 = 33;
3692pub const JS_ATOM_extends: _bindgen_ty_7 = 34;
3693pub const JS_ATOM_import: _bindgen_ty_7 = 35;
3694pub const JS_ATOM_super: _bindgen_ty_7 = 36;
3695pub const JS_ATOM_using: _bindgen_ty_7 = 37;
3696pub const JS_ATOM_implements: _bindgen_ty_7 = 38;
3697pub const JS_ATOM_interface: _bindgen_ty_7 = 39;
3698pub const JS_ATOM_let: _bindgen_ty_7 = 40;
3699pub const JS_ATOM_package: _bindgen_ty_7 = 41;
3700pub const JS_ATOM_private: _bindgen_ty_7 = 42;
3701pub const JS_ATOM_protected: _bindgen_ty_7 = 43;
3702pub const JS_ATOM_public: _bindgen_ty_7 = 44;
3703pub const JS_ATOM_static: _bindgen_ty_7 = 45;
3704pub const JS_ATOM_yield: _bindgen_ty_7 = 46;
3705pub const JS_ATOM_await: _bindgen_ty_7 = 47;
3706pub const JS_ATOM_empty_string: _bindgen_ty_7 = 48;
3707pub const JS_ATOM_keys: _bindgen_ty_7 = 49;
3708pub const JS_ATOM_size: _bindgen_ty_7 = 50;
3709pub const JS_ATOM_length: _bindgen_ty_7 = 51;
3710pub const JS_ATOM_message: _bindgen_ty_7 = 52;
3711pub const JS_ATOM_cause: _bindgen_ty_7 = 53;
3712pub const JS_ATOM_errors: _bindgen_ty_7 = 54;
3713pub const JS_ATOM_error: _bindgen_ty_7 = 55;
3714pub const JS_ATOM_suppressed: _bindgen_ty_7 = 56;
3715pub const JS_ATOM_stack: _bindgen_ty_7 = 57;
3716pub const JS_ATOM_name: _bindgen_ty_7 = 58;
3717pub const JS_ATOM_toString: _bindgen_ty_7 = 59;
3718pub const JS_ATOM_toLocaleString: _bindgen_ty_7 = 60;
3719pub const JS_ATOM_valueOf: _bindgen_ty_7 = 61;
3720pub const JS_ATOM_eval: _bindgen_ty_7 = 62;
3721pub const JS_ATOM_prototype: _bindgen_ty_7 = 63;
3722pub const JS_ATOM_constructor: _bindgen_ty_7 = 64;
3723pub const JS_ATOM_configurable: _bindgen_ty_7 = 65;
3724pub const JS_ATOM_writable: _bindgen_ty_7 = 66;
3725pub const JS_ATOM_enumerable: _bindgen_ty_7 = 67;
3726pub const JS_ATOM_value: _bindgen_ty_7 = 68;
3727pub const JS_ATOM_get: _bindgen_ty_7 = 69;
3728pub const JS_ATOM_set: _bindgen_ty_7 = 70;
3729pub const JS_ATOM_of: _bindgen_ty_7 = 71;
3730pub const JS_ATOM___proto__: _bindgen_ty_7 = 72;
3731pub const JS_ATOM_undefined: _bindgen_ty_7 = 73;
3732pub const JS_ATOM_number: _bindgen_ty_7 = 74;
3733pub const JS_ATOM_boolean: _bindgen_ty_7 = 75;
3734pub const JS_ATOM_string: _bindgen_ty_7 = 76;
3735pub const JS_ATOM_object: _bindgen_ty_7 = 77;
3736pub const JS_ATOM_symbol: _bindgen_ty_7 = 78;
3737pub const JS_ATOM_integer: _bindgen_ty_7 = 79;
3738pub const JS_ATOM_unknown: _bindgen_ty_7 = 80;
3739pub const JS_ATOM_arguments: _bindgen_ty_7 = 81;
3740pub const JS_ATOM_callee: _bindgen_ty_7 = 82;
3741pub const JS_ATOM_caller: _bindgen_ty_7 = 83;
3742pub const JS_ATOM__eval_: _bindgen_ty_7 = 84;
3743pub const JS_ATOM__ret_: _bindgen_ty_7 = 85;
3744pub const JS_ATOM__var_: _bindgen_ty_7 = 86;
3745pub const JS_ATOM__arg_var_: _bindgen_ty_7 = 87;
3746pub const JS_ATOM__with_: _bindgen_ty_7 = 88;
3747pub const JS_ATOM__using_dispose_: _bindgen_ty_7 = 89;
3748pub const JS_ATOM_use: _bindgen_ty_7 = 90;
3749pub const JS_ATOM_dispose: _bindgen_ty_7 = 91;
3750pub const JS_ATOM_disposeAsync: _bindgen_ty_7 = 92;
3751pub const JS_ATOM_lastIndex: _bindgen_ty_7 = 93;
3752pub const JS_ATOM_target: _bindgen_ty_7 = 94;
3753pub const JS_ATOM_index: _bindgen_ty_7 = 95;
3754pub const JS_ATOM_input: _bindgen_ty_7 = 96;
3755pub const JS_ATOM_defineProperties: _bindgen_ty_7 = 97;
3756pub const JS_ATOM_apply: _bindgen_ty_7 = 98;
3757pub const JS_ATOM_join: _bindgen_ty_7 = 99;
3758pub const JS_ATOM_concat: _bindgen_ty_7 = 100;
3759pub const JS_ATOM_split: _bindgen_ty_7 = 101;
3760pub const JS_ATOM_construct: _bindgen_ty_7 = 102;
3761pub const JS_ATOM_getPrototypeOf: _bindgen_ty_7 = 103;
3762pub const JS_ATOM_setPrototypeOf: _bindgen_ty_7 = 104;
3763pub const JS_ATOM_isExtensible: _bindgen_ty_7 = 105;
3764pub const JS_ATOM_preventExtensions: _bindgen_ty_7 = 106;
3765pub const JS_ATOM_has: _bindgen_ty_7 = 107;
3766pub const JS_ATOM_deleteProperty: _bindgen_ty_7 = 108;
3767pub const JS_ATOM_defineProperty: _bindgen_ty_7 = 109;
3768pub const JS_ATOM_getOwnPropertyDescriptor: _bindgen_ty_7 = 110;
3769pub const JS_ATOM_ownKeys: _bindgen_ty_7 = 111;
3770pub const JS_ATOM_add: _bindgen_ty_7 = 112;
3771pub const JS_ATOM_done: _bindgen_ty_7 = 113;
3772pub const JS_ATOM_next: _bindgen_ty_7 = 114;
3773pub const JS_ATOM_values: _bindgen_ty_7 = 115;
3774pub const JS_ATOM_source: _bindgen_ty_7 = 116;
3775pub const JS_ATOM_flags: _bindgen_ty_7 = 117;
3776pub const JS_ATOM_global: _bindgen_ty_7 = 118;
3777pub const JS_ATOM_unicode: _bindgen_ty_7 = 119;
3778pub const JS_ATOM_raw: _bindgen_ty_7 = 120;
3779pub const JS_ATOM_rawJSON: _bindgen_ty_7 = 121;
3780pub const JS_ATOM_new_target: _bindgen_ty_7 = 122;
3781pub const JS_ATOM_this_active_func: _bindgen_ty_7 = 123;
3782pub const JS_ATOM_home_object: _bindgen_ty_7 = 124;
3783pub const JS_ATOM_computed_field: _bindgen_ty_7 = 125;
3784pub const JS_ATOM_static_computed_field: _bindgen_ty_7 = 126;
3785pub const JS_ATOM_class_fields_init: _bindgen_ty_7 = 127;
3786pub const JS_ATOM_brand: _bindgen_ty_7 = 128;
3787pub const JS_ATOM_hash_constructor: _bindgen_ty_7 = 129;
3788pub const JS_ATOM_as: _bindgen_ty_7 = 130;
3789pub const JS_ATOM_from: _bindgen_ty_7 = 131;
3790pub const JS_ATOM_fromAsync: _bindgen_ty_7 = 132;
3791pub const JS_ATOM_meta: _bindgen_ty_7 = 133;
3792pub const JS_ATOM__default_: _bindgen_ty_7 = 134;
3793pub const JS_ATOM__star_: _bindgen_ty_7 = 135;
3794pub const JS_ATOM_Module: _bindgen_ty_7 = 136;
3795pub const JS_ATOM_then: _bindgen_ty_7 = 137;
3796pub const JS_ATOM_resolve: _bindgen_ty_7 = 138;
3797pub const JS_ATOM_reject: _bindgen_ty_7 = 139;
3798pub const JS_ATOM_promise: _bindgen_ty_7 = 140;
3799pub const JS_ATOM_proxy: _bindgen_ty_7 = 141;
3800pub const JS_ATOM_revoke: _bindgen_ty_7 = 142;
3801pub const JS_ATOM_async: _bindgen_ty_7 = 143;
3802pub const JS_ATOM_exec: _bindgen_ty_7 = 144;
3803pub const JS_ATOM_groups: _bindgen_ty_7 = 145;
3804pub const JS_ATOM_indices: _bindgen_ty_7 = 146;
3805pub const JS_ATOM_status: _bindgen_ty_7 = 147;
3806pub const JS_ATOM_reason: _bindgen_ty_7 = 148;
3807pub const JS_ATOM_globalThis: _bindgen_ty_7 = 149;
3808pub const JS_ATOM_bigint: _bindgen_ty_7 = 150;
3809pub const JS_ATOM_not_equal: _bindgen_ty_7 = 151;
3810pub const JS_ATOM_timed_out: _bindgen_ty_7 = 152;
3811pub const JS_ATOM_ok: _bindgen_ty_7 = 153;
3812pub const JS_ATOM_toJSON: _bindgen_ty_7 = 154;
3813pub const JS_ATOM_maxByteLength: _bindgen_ty_7 = 155;
3814pub const JS_ATOM_zip: _bindgen_ty_7 = 156;
3815pub const JS_ATOM_zipKeyed: _bindgen_ty_7 = 157;
3816pub const JS_ATOM_Object: _bindgen_ty_7 = 158;
3817pub const JS_ATOM_Array: _bindgen_ty_7 = 159;
3818pub const JS_ATOM_Error: _bindgen_ty_7 = 160;
3819pub const JS_ATOM_Number: _bindgen_ty_7 = 161;
3820pub const JS_ATOM_String: _bindgen_ty_7 = 162;
3821pub const JS_ATOM_Boolean: _bindgen_ty_7 = 163;
3822pub const JS_ATOM_Symbol: _bindgen_ty_7 = 164;
3823pub const JS_ATOM_Arguments: _bindgen_ty_7 = 165;
3824pub const JS_ATOM_Math: _bindgen_ty_7 = 166;
3825pub const JS_ATOM_JSON: _bindgen_ty_7 = 167;
3826pub const JS_ATOM_Date: _bindgen_ty_7 = 168;
3827pub const JS_ATOM_Function: _bindgen_ty_7 = 169;
3828pub const JS_ATOM_GeneratorFunction: _bindgen_ty_7 = 170;
3829pub const JS_ATOM_ForInIterator: _bindgen_ty_7 = 171;
3830pub const JS_ATOM_RegExp: _bindgen_ty_7 = 172;
3831pub const JS_ATOM_ArrayBuffer: _bindgen_ty_7 = 173;
3832pub const JS_ATOM_SharedArrayBuffer: _bindgen_ty_7 = 174;
3833pub const JS_ATOM_Uint8ClampedArray: _bindgen_ty_7 = 175;
3834pub const JS_ATOM_Int8Array: _bindgen_ty_7 = 176;
3835pub const JS_ATOM_Uint8Array: _bindgen_ty_7 = 177;
3836pub const JS_ATOM_Int16Array: _bindgen_ty_7 = 178;
3837pub const JS_ATOM_Uint16Array: _bindgen_ty_7 = 179;
3838pub const JS_ATOM_Int32Array: _bindgen_ty_7 = 180;
3839pub const JS_ATOM_Uint32Array: _bindgen_ty_7 = 181;
3840pub const JS_ATOM_BigInt64Array: _bindgen_ty_7 = 182;
3841pub const JS_ATOM_BigUint64Array: _bindgen_ty_7 = 183;
3842pub const JS_ATOM_Float16Array: _bindgen_ty_7 = 184;
3843pub const JS_ATOM_Float32Array: _bindgen_ty_7 = 185;
3844pub const JS_ATOM_Float64Array: _bindgen_ty_7 = 186;
3845pub const JS_ATOM_DataView: _bindgen_ty_7 = 187;
3846pub const JS_ATOM_BigInt: _bindgen_ty_7 = 188;
3847pub const JS_ATOM_WeakRef: _bindgen_ty_7 = 189;
3848pub const JS_ATOM_FinalizationRegistry: _bindgen_ty_7 = 190;
3849pub const JS_ATOM_Map: _bindgen_ty_7 = 191;
3850pub const JS_ATOM_Set: _bindgen_ty_7 = 192;
3851pub const JS_ATOM_WeakMap: _bindgen_ty_7 = 193;
3852pub const JS_ATOM_WeakSet: _bindgen_ty_7 = 194;
3853pub const JS_ATOM_Iterator: _bindgen_ty_7 = 195;
3854pub const JS_ATOM_IteratorConcat: _bindgen_ty_7 = 196;
3855pub const JS_ATOM_IteratorHelper: _bindgen_ty_7 = 197;
3856pub const JS_ATOM_IteratorWrap: _bindgen_ty_7 = 198;
3857pub const JS_ATOM_Map_Iterator: _bindgen_ty_7 = 199;
3858pub const JS_ATOM_Set_Iterator: _bindgen_ty_7 = 200;
3859pub const JS_ATOM_Array_Iterator: _bindgen_ty_7 = 201;
3860pub const JS_ATOM_String_Iterator: _bindgen_ty_7 = 202;
3861pub const JS_ATOM_RegExp_String_Iterator: _bindgen_ty_7 = 203;
3862pub const JS_ATOM_Generator: _bindgen_ty_7 = 204;
3863pub const JS_ATOM_Proxy: _bindgen_ty_7 = 205;
3864pub const JS_ATOM_Promise: _bindgen_ty_7 = 206;
3865pub const JS_ATOM_PromiseResolveFunction: _bindgen_ty_7 = 207;
3866pub const JS_ATOM_PromiseRejectFunction: _bindgen_ty_7 = 208;
3867pub const JS_ATOM_AsyncFunction: _bindgen_ty_7 = 209;
3868pub const JS_ATOM_AsyncFunctionResolve: _bindgen_ty_7 = 210;
3869pub const JS_ATOM_AsyncFunctionReject: _bindgen_ty_7 = 211;
3870pub const JS_ATOM_AsyncGeneratorFunction: _bindgen_ty_7 = 212;
3871pub const JS_ATOM_AsyncGenerator: _bindgen_ty_7 = 213;
3872pub const JS_ATOM_EvalError: _bindgen_ty_7 = 214;
3873pub const JS_ATOM_RangeError: _bindgen_ty_7 = 215;
3874pub const JS_ATOM_ReferenceError: _bindgen_ty_7 = 216;
3875pub const JS_ATOM_SyntaxError: _bindgen_ty_7 = 217;
3876pub const JS_ATOM_TypeError: _bindgen_ty_7 = 218;
3877pub const JS_ATOM_URIError: _bindgen_ty_7 = 219;
3878pub const JS_ATOM_InternalError: _bindgen_ty_7 = 220;
3879pub const JS_ATOM_DOMException: _bindgen_ty_7 = 221;
3880pub const JS_ATOM_CallSite: _bindgen_ty_7 = 222;
3881pub const JS_ATOM_DisposableStack: _bindgen_ty_7 = 223;
3882pub const JS_ATOM_AsyncDisposableStack: _bindgen_ty_7 = 224;
3883pub const JS_ATOM_SuppressedError: _bindgen_ty_7 = 225;
3884pub const JS_ATOM_Private_brand: _bindgen_ty_7 = 226;
3885pub const JS_ATOM_Symbol_toPrimitive: _bindgen_ty_7 = 227;
3886pub const JS_ATOM_Symbol_iterator: _bindgen_ty_7 = 228;
3887pub const JS_ATOM_Symbol_match: _bindgen_ty_7 = 229;
3888pub const JS_ATOM_Symbol_matchAll: _bindgen_ty_7 = 230;
3889pub const JS_ATOM_Symbol_replace: _bindgen_ty_7 = 231;
3890pub const JS_ATOM_Symbol_search: _bindgen_ty_7 = 232;
3891pub const JS_ATOM_Symbol_split: _bindgen_ty_7 = 233;
3892pub const JS_ATOM_Symbol_toStringTag: _bindgen_ty_7 = 234;
3893pub const JS_ATOM_Symbol_isConcatSpreadable: _bindgen_ty_7 = 235;
3894pub const JS_ATOM_Symbol_hasInstance: _bindgen_ty_7 = 236;
3895pub const JS_ATOM_Symbol_species: _bindgen_ty_7 = 237;
3896pub const JS_ATOM_Symbol_unscopables: _bindgen_ty_7 = 238;
3897pub const JS_ATOM_Symbol_asyncIterator: _bindgen_ty_7 = 239;
3898pub const JS_ATOM_Symbol_dispose: _bindgen_ty_7 = 240;
3899pub const JS_ATOM_Symbol_asyncDispose: _bindgen_ty_7 = 241;
3900pub const JS_ATOM_END: _bindgen_ty_7 = 242;
3901pub type _bindgen_ty_7 = ::core::ffi::c_uint;