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

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