1wrap!(jsapi: pub fn ReportOutOfMemory(cx: &mut JSContext));
2wrap!(jsapi: pub fn ReportLargeOutOfMemory(cx: &mut JSContext));
3wrap!(jsapi: pub fn SetContextProfilingStack(cx: &mut JSContext, profilingStack: *mut ProfilingStack));
4wrap!(jsapi: pub fn EnableContextProfilingStack(cx: &mut JSContext, enabled: bool));
5wrap!(jsapi: pub fn RegisterContextProfilingEventMarker(cx: &mut JSContext, mark: ::std::option::Option<unsafe extern "C" fn(arg1: MarkerCategory, arg2: *const ::std::os::raw::c_char, arg3: *const ::std::os::raw::c_char)>, interval: ::std::option::Option<unsafe extern "C" fn(arg1: MarkerCategory, arg2: *const ::std::os::raw::c_char, arg3: TimeStamp, arg4: *const ::std::os::raw::c_char)>));
6wrap!(jsapi: pub fn SetStackFormat(cx: &mut JSContext, format: StackFormat));
7wrap!(jsapi: pub fn GetStackFormat(cx: &mut JSContext) -> StackFormat);
8wrap!(jsapi: pub fn ToBooleanSlow(v: HandleValue) -> bool);
9wrap!(jsapi: pub fn ToNumberSlow(cx: &mut JSContext, v: HandleValue, dp: *mut f64) -> bool);
10wrap!(jsapi: pub fn ToInt8Slow(cx: &mut JSContext, v: HandleValue, out: *mut i8) -> bool);
11wrap!(jsapi: pub fn ToUint8Slow(cx: &mut JSContext, v: HandleValue, out: *mut u8) -> bool);
12wrap!(jsapi: pub fn ToInt16Slow(cx: &mut JSContext, v: HandleValue, out: *mut i16) -> bool);
13wrap!(jsapi: pub fn ToInt32Slow(cx: &mut JSContext, v: HandleValue, out: *mut i32) -> bool);
14wrap!(jsapi: pub fn ToUint32Slow(cx: &mut JSContext, v: HandleValue, out: *mut u32) -> bool);
15wrap!(jsapi: pub fn ToUint16Slow(cx: &mut JSContext, v: HandleValue, out: *mut u16) -> bool);
16wrap!(jsapi: pub fn ToInt64Slow(cx: &mut JSContext, v: HandleValue, out: *mut i64) -> bool);
17wrap!(jsapi: pub fn ToUint64Slow(cx: &mut JSContext, v: HandleValue, out: *mut u64) -> bool);
18wrap!(jsapi: pub fn ToStringSlow(cx: &mut JSContext, v: HandleValue) -> *mut JSString);
19wrap!(jsapi: pub fn ToObjectSlow(cx: &mut JSContext, v: HandleValue, reportScanStack: bool) -> *mut JSObject);
20wrap!(jsapi: pub fn NukeNonCCWProxy(cx: &mut JSContext, proxy: HandleObject));
21wrap!(jsapi: pub fn NukeRemovedCrossCompartmentWrapper(cx: &mut JSContext, wrapper: *mut JSObject));
22wrap!(jsapi: pub fn GetFirstSubsumedSavedFrame(cx: &mut JSContext, principals: *mut JSPrincipals, savedFrame: Handle<*mut JSObject>, selfHosted: SavedFrameSelfHosted) -> *mut JSObject);
23wrap!(jsapi: pub fn TransparentObjectWrapper(cx: &mut JSContext, existing: HandleObject, obj: HandleObject) -> *mut JSObject);
24wrap!(jsapi: pub fn CheckedUnwrapDynamic(obj: *mut JSObject, cx: &mut JSContext, stopAtWindowProxy: bool) -> *mut JSObject);
25wrap!(jsapi: pub fn UnwrapOneCheckedDynamic(obj: HandleObject, cx: &mut JSContext, stopAtWindowProxy: bool) -> *mut JSObject);
26wrap!(jsapi: pub fn ReportAccessDenied(cx: &mut JSContext));
27wrap!(jsapi: pub fn NukeCrossCompartmentWrapper(cx: &mut JSContext, wrapper: *mut JSObject));
28wrap!(jsapi: pub fn NukeCrossCompartmentWrapperIfExists(cx: &mut JSContext, source: *mut Compartment, target: *mut JSObject));
29wrap!(jsapi: pub fn RemapWrapper(cx: &mut JSContext, wobj: *mut JSObject, newTarget: *mut JSObject));
30wrap!(jsapi: pub fn RemapDeadWrapper(cx: &mut JSContext, wobj: HandleObject, newTarget: HandleObject));
31wrap!(jsapi: pub fn RemapAllWrappersForObject(cx: &mut JSContext, oldTarget: HandleObject, newTarget: HandleObject) -> bool);
32wrap!(jsapi: pub fn RecomputeWrappers(cx: &mut JSContext, sourceFilter: *const CompartmentFilter, targetFilter: *const CompartmentFilter) -> bool);
33wrap!(jsapi: pub fn SetWindowProxyClass(cx: &mut JSContext, clasp: *const JSClass));
34wrap!(jsapi: pub fn SetWindowProxy(cx: &mut JSContext, global: Handle<*mut JSObject>, windowProxy: Handle<*mut JSObject>));
35wrap!(jsapi: pub fn IsArgumentsObject(obj: HandleObject) -> bool);
36wrap!(jsapi: pub fn AddRawValueRoot(cx: &mut JSContext, vp: *mut Value, name: *const ::std::os::raw::c_char) -> bool);
37wrap!(jsapi: pub fn RemoveRawValueRoot(cx: &mut JSContext, vp: *mut Value));
38wrap!(jsapi: pub fn UseInternalJobQueues(cx: &mut JSContext) -> bool);
39wrap!(jsapi: pub fn EnqueueJob(cx: &mut JSContext, job: HandleObject) -> bool);
40wrap!(jsapi: pub fn StopDrainingJobQueue(cx: &mut JSContext));
41wrap!(jsapi: pub fn RestartDrainingJobQueue(cx: &mut JSContext));
42wrap!(jsapi: pub fn RunJobs(cx: &mut JSContext));
43wrap!(jsapi: pub fn ShouldIgnorePropertyDefinition(cx: &mut JSContext, key: JSProtoKey, id: jsid) -> bool);
44wrap!(jsapi: pub fn AssertSameCompartment(cx: &mut JSContext, obj: *mut JSObject));
45wrap!(jsapi: pub fn AssertSameCompartment1(cx: &mut JSContext, v: HandleValue));
46wrap!(jsapi: pub fn DefineFunctionWithReserved(cx: &mut JSContext, obj: *mut JSObject, name: *const ::std::os::raw::c_char, call: JSNative, nargs: ::std::os::raw::c_uint, attrs: ::std::os::raw::c_uint) -> *mut JSFunction);
47wrap!(jsapi: pub fn NewFunctionWithReserved(cx: &mut JSContext, call: JSNative, nargs: ::std::os::raw::c_uint, flags: ::std::os::raw::c_uint, name: *const ::std::os::raw::c_char) -> *mut JSFunction);
48wrap!(jsapi: pub fn NewFunctionByIdWithReserved(cx: &mut JSContext, native: JSNative, nargs: ::std::os::raw::c_uint, flags: ::std::os::raw::c_uint, id: jsid) -> *mut JSFunction);
49wrap!(jsapi: pub fn NewFunctionByIdWithReservedAndProto(cx: &mut JSContext, native: JSNative, proto: Handle<*mut JSObject>, nargs: ::std::os::raw::c_uint, flags: ::std::os::raw::c_uint, id: jsid) -> *mut JSFunction);
50wrap!(jsapi: pub fn GetObjectProto(cx: &mut JSContext, obj: HandleObject, proto: MutableHandleObject) -> bool);
51wrap!(jsapi: pub fn GetRealmOriginalEval(cx: &mut JSContext, eval: MutableHandleObject) -> bool);
52wrap!(jsapi: pub fn GetPropertyKeys(cx: &mut JSContext, obj: HandleObject, flags: ::std::os::raw::c_uint, props: MutableHandleIdVector) -> bool);
53wrap!(jsapi: pub fn SetPreserveWrapperCallbacks(cx: &mut JSContext, preserveWrapper: PreserveWrapperCallback, hasReleasedWrapper: HasReleasedWrapperCallback));
54wrap!(jsapi: pub fn IsObjectInContextCompartment(obj: *mut JSObject, cx: &JSContext) -> bool);
55wrap!(jsapi: pub fn SetDOMCallbacks(cx: &mut JSContext, callbacks: *const DOMCallbacks));
56wrap!(jsapi: pub fn GetDOMCallbacks(cx: &mut JSContext) -> *const DOMCallbacks);
57wrap!(jsapi: pub fn GetTestingFunctions(cx: &mut JSContext) -> *mut JSObject);
58wrap!(jsapi: pub fn GetErrorTypeName(cx: &mut JSContext, exnType: i16) -> *mut JSLinearString);
59wrap!(jsapi: pub fn NukeCrossCompartmentWrappers(cx: &mut JSContext, sourceFilter: *const CompartmentFilter, target: *mut Realm, nukeReferencesToWindow: NukeReferencesToWindow, nukeReferencesFromTarget: NukeReferencesFromTarget) -> bool);
60wrap!(jsapi: pub fn DateIsValid(cx: &mut JSContext, obj: HandleObject, isValid: *mut bool) -> bool);
61wrap!(jsapi: pub fn DateGetMsecSinceEpoch(cx: &mut JSContext, obj: HandleObject, msecSinceEpoch: *mut f64) -> bool);
62wrap!(jsapi: pub fn PrepareScriptEnvironmentAndInvoke(cx: &mut JSContext, global: HandleObject, closure: *mut ScriptEnvironmentPreparer_Closure));
63wrap!(jsapi: pub fn SetScriptEnvironmentPreparer(cx: &mut JSContext, preparer: *mut ScriptEnvironmentPreparer));
64wrap!(jsapi: pub fn SetAllocationMetadataBuilder(cx: &mut JSContext, callback: *const AllocationMetadataBuilder));
65wrap!(jsapi: pub fn GetElementsWithAdder(cx: &mut JSContext, obj: HandleObject, receiver: HandleObject, begin: u32, end: u32, adder: *mut ElementAdder) -> bool);
66wrap!(jsapi: pub fn ForwardToNative(cx: &mut JSContext, native: JSNative, args: *const CallArgs) -> bool);
67wrap!(jsapi: pub fn ExecuteInFrameScriptEnvironment(cx: &mut JSContext, obj: HandleObject, script: HandleScript, scope: MutableHandleObject) -> bool);
68wrap!(jsapi: pub fn ReportIsNotFunction(cx: &mut JSContext, v: HandleValue) -> bool);
69wrap!(jsapi: pub fn GetGCHeapUsage(cx: &mut JSContext) -> u64);
70wrap!(jsapi: pub fn RemapRemoteWindowProxies(cx: &mut JSContext, callback: *mut CompartmentTransplantCallback, newTarget: MutableHandleObject));
71wrap!(jsapi: pub fn ComputeThis(cx: &mut JSContext, vp: *mut Value, thisObject: MutableHandleObject) -> bool);
72wrap!(jsapi: pub fn StringToLinearStringSlow(cx: &mut JSContext, str_: *mut JSString) -> *mut JSLinearString);
73wrap!(jsapi: pub fn BigIntFromInt64(cx: &mut JSContext, num: i64) -> *mut BigInt);
74wrap!(jsapi: pub fn BigIntFromUint64(cx: &mut JSContext, num: u64) -> *mut BigInt);
75wrap!(jsapi: pub fn BigIntFromBool(cx: &mut JSContext, b: bool) -> *mut BigInt);
76wrap!(jsapi: pub fn CallMethodIfWrapped(cx: &mut JSContext, test: IsAcceptableThis, impl_: NativeImpl, args: *const CallArgs) -> bool);
77wrap!(jsapi: pub fn ReportSourceTooLong(cx: &mut JSContext));
78wrap!(jsapi: pub fn IsIncrementalBarrierNeeded(cx: &mut JSContext) -> bool);
79wrap!(jsapi: pub fn GetCurrentRealmOrNull(cx: &mut JSContext) -> *mut Realm);
80wrap!(jsapi: pub fn SetDestroyRealmCallback(cx: &mut JSContext, callback: DestroyRealmCallback));
81wrap!(jsapi: pub fn SetRealmNameCallback(cx: &mut JSContext, callback: RealmNameCallback));
82wrap!(jsapi: pub fn InitRealmStandardClasses(cx: &mut JSContext) -> bool);
83wrap!(jsapi: pub fn MaybeFreezeCtorAndPrototype(cx: &mut JSContext, ctor: HandleObject, maybeProto: HandleObject) -> bool);
84wrap!(jsapi: pub fn GetRealmObjectPrototype(cx: &mut JSContext) -> *mut JSObject);
85wrap!(jsapi: pub fn GetRealmFunctionPrototype(cx: &mut JSContext) -> *mut JSObject);
86wrap!(jsapi: pub fn GetRealmArrayPrototype(cx: &mut JSContext) -> *mut JSObject);
87wrap!(jsapi: pub fn GetRealmErrorPrototype(cx: &mut JSContext) -> *mut JSObject);
88wrap!(jsapi: pub fn GetRealmIteratorPrototype(cx: &mut JSContext) -> *mut JSObject);
89wrap!(jsapi: pub fn GetRealmAsyncIteratorPrototype(cx: &mut JSContext) -> *mut JSObject);
90wrap!(jsapi: pub fn GetRealmKeyObject(cx: &mut JSContext) -> *mut JSObject);
91wrap!(jsapi: pub fn GetFunctionRealm(cx: &mut JSContext, objArg: HandleObject) -> *mut Realm);
92wrap!(jsapi: pub fn EnterRealm(cx: &mut JSContext, target: *mut JSObject) -> *mut Realm);
93wrap!(jsapi: pub fn LeaveRealm(cx: &mut JSContext, oldRealm: *mut Realm));
94wrap!(jsapi: pub fn ResetRealmMathRandomSeed(cx: &mut JSContext));
95wrap!(jsapi: pub fn Call(cx: &mut JSContext, thisv: Handle<Value>, fun: Handle<Value>, args: *const HandleValueArray, rval: MutableHandle<Value>) -> bool);
96wrap!(jsapi: pub fn Construct(cx: &mut JSContext, fun: Handle<Value>, newTarget: Handle<*mut JSObject>, args: *const HandleValueArray, objp: MutableHandle<*mut JSObject>) -> bool);
97wrap!(jsapi: pub fn Construct1(cx: &mut JSContext, fun: Handle<Value>, args: *const HandleValueArray, objp: MutableHandle<*mut JSObject>) -> bool);
98wrap!(jsapi: pub fn LossyTwoByteCharsToNewLatin1CharsZ(cx: &mut JSContext, tbchars: *const Range<u16>) -> Latin1CharsZ);
99wrap!(jsapi: pub fn UTF8CharsToNewTwoByteCharsZ(cx: &mut JSContext, utf8: *const UTF8Chars, outlen: *mut usize, destArenaId: arena_id_t) -> TwoByteCharsZ);
100wrap!(jsapi: pub fn LossyUTF8CharsToNewTwoByteCharsZ(cx: &mut JSContext, utf8: *const UTF8Chars, outlen: *mut usize, destArenaId: arena_id_t) -> TwoByteCharsZ);
101wrap!(jsapi: pub fn UTF8CharsToNewLatin1CharsZ(cx: &mut JSContext, utf8: *const UTF8Chars, outlen: *mut usize, destArenaId: arena_id_t) -> Latin1CharsZ);
102wrap!(jsapi: pub fn EncodeNarrowToUtf8(cx: &mut JSContext, chars: *const ::std::os::raw::c_char) -> UniqueChars);
103wrap!(jsapi: pub fn EncodeUtf8ToNarrow(cx: &mut JSContext, chars: *const ::std::os::raw::c_char) -> UniqueChars);
104wrap!(jsapi: pub fn EncodeUtf8ToWide(cx: &mut JSContext, chars: *const ::std::os::raw::c_char) -> UniqueWideChars);
105wrap!(jsapi: pub fn GetWellKnownSymbolKey(cx: &mut JSContext, which: SymbolCode) -> PropertyKey);
106wrap!(jsapi: pub fn ToGetterId(cx: &mut JSContext, id: Handle<PropertyKey>, getterId: MutableHandle<PropertyKey>) -> bool);
107wrap!(jsapi: pub fn ToSetterId(cx: &mut JSContext, id: Handle<PropertyKey>, setterId: MutableHandle<PropertyKey>) -> bool);
108wrap!(jsapi: pub fn SetHostEnsureCanAddPrivateElementHook(cx: &mut JSContext, op: EnsureCanAddPrivateElementOp));
109wrap!(jsapi: pub fn SetBrittleMode(cx: &mut JSContext, setting: bool) -> bool);
110wrap!(jsapi: pub fn PrepareZoneForGC(cx: &mut JSContext, zone: *mut Zone));
111wrap!(jsapi: pub fn PrepareForFullGC(cx: &mut JSContext));
112wrap!(jsapi: pub fn PrepareForIncrementalGC(cx: &mut JSContext));
113wrap!(jsapi: pub fn IsGCScheduled(cx: &mut JSContext) -> bool);
114wrap!(jsapi: pub fn SkipZoneForGC(cx: &mut JSContext, zone: *mut Zone));
115wrap!(jsapi: pub fn NonIncrementalGC(cx: &mut JSContext, options: GCOptions, reason: GCReason));
116wrap!(jsapi: pub fn StartIncrementalGC(cx: &mut JSContext, options: GCOptions, reason: GCReason, budget: *const SliceBudget));
117wrap!(jsapi: pub fn IncrementalGCSlice(cx: &mut JSContext, reason: GCReason, budget: *const SliceBudget));
118wrap!(jsapi: pub fn IncrementalGCHasForegroundWork(cx: &mut JSContext) -> bool);
119wrap!(jsapi: pub fn FinishIncrementalGC(cx: &mut JSContext, reason: GCReason));
120wrap!(jsapi: pub fn AbortIncrementalGC(cx: &mut JSContext));
121wrap!(jsapi: pub fn MinorGcToJSON(cx: &mut JSContext) -> UniqueChars);
122wrap!(jsapi: pub fn SetGCSliceCallback(cx: &mut JSContext, callback: GCSliceCallback) -> GCSliceCallback);
123wrap!(jsapi: pub fn AddGCNurseryCollectionCallback(cx: &mut JSContext, callback: GCNurseryCollectionCallback, data: *mut ::std::os::raw::c_void) -> bool);
124wrap!(jsapi: pub fn RemoveGCNurseryCollectionCallback(cx: &mut JSContext, callback: GCNurseryCollectionCallback, data: *mut ::std::os::raw::c_void));
125wrap!(jsapi: pub fn SetDoCycleCollectionCallback(cx: &mut JSContext, callback: DoCycleCollectionCallback) -> DoCycleCollectionCallback);
126wrap!(jsapi: pub fn SetCreateGCSliceBudgetCallback(cx: &mut JSContext, cb: CreateSliceBudgetCallback));
127wrap!(jsapi: pub fn IsIncrementalGCEnabled(cx: &mut JSContext) -> bool);
128wrap!(jsapi: pub fn IsIncrementalGCInProgress(cx: &mut JSContext) -> bool);
129wrap!(jsapi: pub fn SetLowMemoryState(cx: &mut JSContext, newState: bool));
130wrap!(jsapi: pub fn NotifyGCRootsRemoved(cx: &mut JSContext));
131wrap!(jsapi: pub fn SetHostCleanupFinalizationRegistryCallback(cx: &mut JSContext, cb: JSHostCleanupFinalizationRegistryCallback, data: *mut ::std::os::raw::c_void));
132wrap!(jsapi: pub fn ClearKeptObjects(cx: &mut JSContext));
133wrap!(jsapi: pub fn ReportUncatchableException(cx: &mut JSContext));
134wrap!(jsapi: pub fn GetPendingExceptionStack(cx: &mut JSContext, exceptionStack: *mut ExceptionStack) -> bool);
135wrap!(jsapi: pub fn StealPendingExceptionStack(cx: &mut JSContext, exceptionStack: *mut ExceptionStack) -> bool);
136wrap!(jsapi: pub fn SetPendingExceptionStack(cx: &mut JSContext, exceptionStack: *const ExceptionStack));
137wrap!(jsapi: pub fn ExceptionStackOrNull(obj: HandleObject) -> *mut JSObject);
138wrap!(jsapi: pub fn CurrentGlobalOrNull(cx: &mut JSContext) -> *mut JSObject);
139wrap!(jsapi: pub fn NewMapObject(cx: &mut JSContext) -> *mut JSObject);
140wrap!(jsapi: pub fn MapSize(cx: &mut JSContext, obj: HandleObject) -> u32);
141wrap!(jsapi: pub fn MapGet(cx: &mut JSContext, obj: HandleObject, key: HandleValue, rval: MutableHandleValue) -> bool);
142wrap!(jsapi: pub fn MapHas(cx: &mut JSContext, obj: HandleObject, key: HandleValue, rval: *mut bool) -> bool);
143wrap!(jsapi: pub fn MapSet(cx: &mut JSContext, obj: HandleObject, key: HandleValue, val: HandleValue) -> bool);
144wrap!(jsapi: pub fn MapDelete(cx: &mut JSContext, obj: HandleObject, key: HandleValue, rval: *mut bool) -> bool);
145wrap!(jsapi: pub fn MapClear(cx: &mut JSContext, obj: HandleObject) -> bool);
146wrap!(jsapi: pub fn MapKeys(cx: &mut JSContext, obj: HandleObject, rval: MutableHandleValue) -> bool);
147wrap!(jsapi: pub fn MapValues(cx: &mut JSContext, obj: HandleObject, rval: MutableHandleValue) -> bool);
148wrap!(jsapi: pub fn MapEntries(cx: &mut JSContext, obj: HandleObject, rval: MutableHandleValue) -> bool);
149wrap!(jsapi: pub fn MapForEach(cx: &mut JSContext, obj: HandleObject, callbackFn: HandleValue, thisVal: HandleValue) -> bool);
150wrap!(jsapi: pub fn NewSetObject(cx: &mut JSContext) -> *mut JSObject);
151wrap!(jsapi: pub fn SetSize(cx: &mut JSContext, obj: HandleObject) -> u32);
152wrap!(jsapi: pub fn SetHas(cx: &mut JSContext, obj: HandleObject, key: HandleValue, rval: *mut bool) -> bool);
153wrap!(jsapi: pub fn SetDelete(cx: &mut JSContext, obj: HandleObject, key: HandleValue, rval: *mut bool) -> bool);
154wrap!(jsapi: pub fn SetAdd(cx: &mut JSContext, obj: HandleObject, key: HandleValue) -> bool);
155wrap!(jsapi: pub fn SetClear(cx: &mut JSContext, obj: HandleObject) -> bool);
156wrap!(jsapi: pub fn SetKeys(cx: &mut JSContext, obj: HandleObject, rval: MutableHandleValue) -> bool);
157wrap!(jsapi: pub fn SetValues(cx: &mut JSContext, obj: HandleObject, rval: MutableHandleValue) -> bool);
158wrap!(jsapi: pub fn SetEntries(cx: &mut JSContext, obj: HandleObject, rval: MutableHandleValue) -> bool);
159wrap!(jsapi: pub fn SetForEach(cx: &mut JSContext, obj: HandleObject, callbackFn: HandleValue, thisVal: HandleValue) -> bool);
160wrap!(jsapi: pub fn SetOutOfMemoryCallback(cx: &mut JSContext, cb: OutOfMemoryCallback, data: *mut ::std::os::raw::c_void));
161wrap!(jsapi: pub fn ToCompletePropertyDescriptor(cx: &mut JSContext, descriptor: Handle<Value>, desc: MutableHandle<PropertyDescriptor>) -> bool);
162wrap!(jsapi: pub fn NewSymbol(cx: &mut JSContext, description: Handle<*mut JSString>) -> *mut Symbol);
163wrap!(jsapi: pub fn GetSymbolFor(cx: &mut JSContext, key: Handle<*mut JSString>) -> *mut Symbol);
164wrap!(jsapi: pub fn GetSymbolDescription(symbol: Handle<*mut Symbol>) -> *mut JSString);
165wrap!(jsapi: pub fn GetSymbolCode(symbol: Handle<*mut Symbol>) -> SymbolCode);
166wrap!(jsapi: pub fn GetWellKnownSymbol(cx: &mut JSContext, which: SymbolCode) -> *mut Symbol);
167wrap!(jsapi: pub fn IterateRealms(cx: &mut JSContext, data: *mut ::std::os::raw::c_void, realmCallback: IterateRealmCallback));
168wrap!(jsapi: pub fn IterateRealmsWithPrincipals(cx: &mut JSContext, principals: *mut JSPrincipals, data: *mut ::std::os::raw::c_void, realmCallback: IterateRealmCallback));
169wrap!(jsapi: pub fn IterateRealmsInCompartment(cx: &mut JSContext, compartment: *mut Compartment, data: *mut ::std::os::raw::c_void, realmCallback: IterateRealmCallback));
170wrap!(jsapi: pub fn RealmCreationOptionsRef1(cx: &mut JSContext) -> *const RealmCreationOptions);
171wrap!(jsapi: pub fn RealmBehaviorsRef1(cx: &mut JSContext) -> *const RealmBehaviors);
172wrap!(jsapi: pub fn CaptureCurrentStack(cx: &mut JSContext, stackp: MutableHandleObject, capture: *mut StackCapture, startAfter: HandleObject) -> bool);
173wrap!(jsapi: pub fn IsAsyncStackCaptureEnabledForRealm(cx: &mut JSContext) -> bool);
174wrap!(jsapi: pub fn BuildStackString(cx: &mut JSContext, principals: *mut JSPrincipals, stack: HandleObject, stringp: MutableHandleString, indent: usize, stackFormat: StackFormat) -> bool);
175wrap!(jsapi: pub fn InitConsumeStreamCallback(cx: &mut JSContext, consume: ConsumeStreamCallback, report: ReportStreamErrorCallback));
176wrap!(jsapi: pub fn NewStringFromLatin1Buffer(cx: &mut JSContext, buffer: RefPtr<StringBuffer>, length: usize) -> *mut JSString);
177wrap!(jsapi: pub fn NewStringFromKnownLiveLatin1Buffer(cx: &mut JSContext, buffer: *mut StringBuffer, length: usize) -> *mut JSString);
178wrap!(jsapi: pub fn NewStringFromTwoByteBuffer(cx: &mut JSContext, buffer: RefPtr<StringBuffer>, length: usize) -> *mut JSString);
179wrap!(jsapi: pub fn NewStringFromKnownLiveTwoByteBuffer(cx: &mut JSContext, buffer: *mut StringBuffer, length: usize) -> *mut JSString);
180wrap!(jsapi: pub fn NewStringFromUTF8Buffer(cx: &mut JSContext, buffer: RefPtr<StringBuffer>, length: usize) -> *mut JSString);
181wrap!(jsapi: pub fn NewStringFromKnownLiveUTF8Buffer(cx: &mut JSContext, buffer: *mut StringBuffer, length: usize) -> *mut JSString);
182wrap!(jsapi: pub fn GetJSTimers(cx: &mut JSContext) -> JSTimers);
183wrap!(jsapi: pub fn NewWeakMapObject(cx: &mut JSContext) -> *mut JSObject);
184wrap!(jsapi: pub fn GetWeakMapEntry(cx: &mut JSContext, mapObj: HandleObject, key: HandleValue, val: MutableHandleValue) -> bool);
185wrap!(jsapi: pub fn SetWeakMapEntry(cx: &mut JSContext, mapObj: HandleObject, key: HandleValue, val: HandleValue) -> bool);
186wrap!(jsapi: pub fn ProtoKeyToId(cx: &mut JSContext, key: JSProtoKey, idp: MutableHandleId));
187wrap!(jsapi: pub fn ToPrimitive(cx: &mut JSContext, obj: HandleObject, hint: JSType, vp: MutableHandleValue) -> bool);
188wrap!(jsapi: pub fn GetFirstArgumentAsTypeHint(cx: &mut JSContext, args: *const CallArgs, result: *mut JSType) -> bool);
189wrap!(jsapi: pub fn OrdinaryHasInstance(cx: &mut JSContext, objArg: HandleObject, v: HandleValue, bp: *mut bool) -> bool);
190wrap!(jsapi: pub fn IsMapObject(cx: &mut JSContext, obj: HandleObject, isMap: *mut bool) -> bool);
191wrap!(jsapi: pub fn IsSetObject(cx: &mut JSContext, obj: HandleObject, isSet: *mut bool) -> bool);
192wrap!(jsapi: pub fn GetSelfHostedFunction(cx: &mut JSContext, selfHostedName: *const ::std::os::raw::c_char, id: HandleId, nargs: ::std::os::raw::c_uint) -> *mut JSFunction);
193wrap!(jsapi: pub fn NewFunctionFromSpec(cx: &mut JSContext, fs: *const JSFunctionSpec, id: HandleId) -> *mut JSFunction);
194wrap!(jsapi: pub fn NewFunctionFromSpec1(cx: &mut JSContext, fs: *const JSFunctionSpec) -> *mut JSFunction);
195wrap!(jsapi: pub fn PropertySpecNameEqualsId(name: JSPropertySpec_Name, id: HandleId) -> bool);
196wrap!(jsapi: pub fn PropertySpecNameToPermanentId(cx: &mut JSContext, name: JSPropertySpec_Name, idp: *mut jsid) -> bool);
197wrap!(jsapi: pub fn GetScriptedCallerGlobal(cx: &mut JSContext) -> *mut JSObject);
198wrap!(jsapi: pub fn HideScriptedCaller(cx: &mut JSContext));
199wrap!(jsapi: pub fn UnhideScriptedCaller(cx: &mut JSContext));
200wrap!(jsapi: pub fn NewArrayBuffer(cx: &mut JSContext, nbytes: usize) -> *mut JSObject);
201wrap!(jsapi: pub fn CopyArrayBuffer(cx: &mut JSContext, maybeArrayBuffer: Handle<*mut JSObject>) -> *mut JSObject);
202wrap!(jsapi: pub fn NewArrayBufferWithUserOwnedContents(cx: &mut JSContext, nbytes: usize, contents: *mut ::std::os::raw::c_void) -> *mut JSObject);
203wrap!(jsapi: pub fn NewMappedArrayBufferWithContents(cx: &mut JSContext, nbytes: usize, contents: *mut ::std::os::raw::c_void) -> *mut JSObject);
204wrap!(jsapi: pub fn DetachArrayBuffer(cx: &mut JSContext, obj: Handle<*mut JSObject>) -> bool);
205wrap!(jsapi: pub fn HasDefinedArrayBufferDetachKey(cx: &mut JSContext, obj: Handle<*mut JSObject>, isDefined: *mut bool) -> bool);
206wrap!(jsapi: pub fn StealArrayBufferContents(cx: &mut JSContext, obj: Handle<*mut JSObject>) -> *mut ::std::os::raw::c_void);
207wrap!(jsapi: pub fn ArrayBufferCopyData(cx: &mut JSContext, toBlock: Handle<*mut JSObject>, toIndex: usize, fromBlock: Handle<*mut JSObject>, fromIndex: usize, count: usize) -> bool);
208wrap!(jsapi: pub fn ArrayBufferClone(cx: &mut JSContext, srcBuffer: Handle<*mut JSObject>, srcByteOffset: usize, srcLength: usize) -> *mut JSObject);
209wrap!(jsapi: pub fn NumberToBigInt(cx: &mut JSContext, num: f64) -> *mut BigInt);
210wrap!(jsapi: pub fn StringToBigInt(cx: &mut JSContext, chars: *const Range<Latin1Char>) -> *mut BigInt);
211wrap!(jsapi: pub fn StringToBigInt1(cx: &mut JSContext, chars: *const Range<u16>) -> *mut BigInt);
212wrap!(jsapi: pub fn ToBigInt(cx: &mut JSContext, val: Handle<Value>) -> *mut BigInt);
213wrap!(jsapi: pub fn BigIntToString(cx: &mut JSContext, bi: Handle<*mut BigInt>, radix: u8) -> *mut JSString);
214wrap!(jsapi: pub fn Evaluate(cx: &mut JSContext, options: *const ReadOnlyCompileOptions, srcBuf: *mut SourceText<u16>, rval: MutableHandle<Value>) -> bool);
215wrap!(jsapi: pub fn Evaluate1(cx: &mut JSContext, envChain: *const EnvironmentChain, options: *const ReadOnlyCompileOptions, srcBuf: *mut SourceText<u16>, rval: MutableHandle<Value>) -> bool);
216wrap!(jsapi: pub fn Evaluate2(cx: &mut JSContext, options: *const ReadOnlyCompileOptions, srcBuf: *mut SourceText<Utf8Unit>, rval: MutableHandle<Value>) -> bool);
217wrap!(jsapi: pub fn EvaluateUtf8Path(cx: &mut JSContext, options: *const ReadOnlyCompileOptions, filename: *const ::std::os::raw::c_char, rval: MutableHandle<Value>) -> bool);
218wrap!(jsapi: pub fn Compile(cx: &mut JSContext, options: *const ReadOnlyCompileOptions, srcBuf: *mut SourceText<u16>) -> *mut JSScript);
219wrap!(jsapi: pub fn Compile1(cx: &mut JSContext, options: *const ReadOnlyCompileOptions, srcBuf: *mut SourceText<Utf8Unit>) -> *mut JSScript);
220wrap!(jsapi: pub fn CompileUtf8File(cx: &mut JSContext, options: *const ReadOnlyCompileOptions, file: *mut FILE) -> *mut JSScript);
221wrap!(jsapi: pub fn CompileUtf8Path(cx: &mut JSContext, options: *const ReadOnlyCompileOptions, filename: *const ::std::os::raw::c_char) -> *mut JSScript);
222wrap!(jsapi: pub fn CompileFunction(cx: &mut JSContext, envChain: *const EnvironmentChain, options: *const ReadOnlyCompileOptions, name: *const ::std::os::raw::c_char, nargs: ::std::os::raw::c_uint, argnames: *const *const ::std::os::raw::c_char, srcBuf: *mut SourceText<u16>) -> *mut JSFunction);
223wrap!(jsapi: pub fn CompileFunction1(cx: &mut JSContext, envChain: *const EnvironmentChain, options: *const ReadOnlyCompileOptions, name: *const ::std::os::raw::c_char, nargs: ::std::os::raw::c_uint, argnames: *const *const ::std::os::raw::c_char, srcBuf: *mut SourceText<Utf8Unit>) -> *mut JSFunction);
224wrap!(jsapi: pub fn CompileFunctionUtf8(cx: &mut JSContext, envChain: *const EnvironmentChain, options: *const ReadOnlyCompileOptions, name: *const ::std::os::raw::c_char, nargs: ::std::os::raw::c_uint, argnames: *const *const ::std::os::raw::c_char, utf8: *const ::std::os::raw::c_char, length: usize) -> *mut JSFunction);
225wrap!(jsapi: pub fn ExposeScriptToDebugger(cx: &mut JSContext, script: Handle<*mut JSScript>));
226wrap!(jsapi: pub fn UpdateDebugMetadata(cx: &mut JSContext, script: Handle<*mut JSScript>, options: *const InstantiateOptions, privateValue: HandleValue, elementAttributeName: HandleString, introScript: HandleScript, scriptOrModule: HandleScript) -> bool);
227wrap!(jsapi: pub fn ContextOptionsRef(cx: &mut JSContext) -> *mut ContextOptions);
228wrap!(jsapi: pub fn OrdinaryToPrimitive(cx: &mut JSContext, obj: HandleObject, type_: JSType, vp: MutableHandleValue) -> bool);
229wrap!(jsapi: pub fn NewDateObject(cx: &mut JSContext, time: ClippedTime) -> *mut JSObject);
230wrap!(jsapi: pub fn NewDateObject1(cx: &mut JSContext, year: ::std::os::raw::c_int, mon: ::std::os::raw::c_int, mday: ::std::os::raw::c_int, hour: ::std::os::raw::c_int, min: ::std::os::raw::c_int, sec: ::std::os::raw::c_int) -> *mut JSObject);
231wrap!(jsapi: pub fn ObjectIsDate(cx: &mut JSContext, obj: Handle<*mut JSObject>, isDate: *mut bool) -> bool);
232wrap!(jsapi: pub fn IsISOStyleDate(cx: &mut JSContext, str_: *const Latin1Chars) -> bool);
233wrap!(jsapi: pub fn StrictlyEqual(cx: &mut JSContext, v1: Handle<Value>, v2: Handle<Value>, equal: *mut bool) -> bool);
234wrap!(jsapi: pub fn LooselyEqual(cx: &mut JSContext, v1: Handle<Value>, v2: Handle<Value>, equal: *mut bool) -> bool);
235wrap!(jsapi: pub fn SameValue(cx: &mut JSContext, v1: Handle<Value>, v2: Handle<Value>, same: *mut bool) -> bool);
236wrap!(jsapi: pub fn InitSelfHostedCode(cx: &mut JSContext, cache: SelfHostedCache, writer: SelfHostedWriter) -> bool);
237wrap!(jsapi: pub fn ToJSONMaybeSafely(cx: &mut JSContext, input: Handle<*mut JSObject>, callback: JSONWriteCallback, data: *mut ::std::os::raw::c_void) -> bool);
238wrap!(jsapi: pub fn ToJSON(cx: &mut JSContext, value: Handle<Value>, replacer: Handle<*mut JSObject>, space: Handle<Value>, callback: JSONWriteCallback, data: *mut ::std::os::raw::c_void) -> bool);
239wrap!(jsapi: pub fn ParseJSONWithHandler(chars: *const Latin1Char, len: u32, handler: *mut JSONParseHandler) -> bool);
240wrap!(jsapi: pub fn ParseJSONWithHandler1(chars: *const u16, len: u32, handler: *mut JSONParseHandler) -> bool);
241wrap!(jsapi: pub fn CollectRuntimeStats(cx: &mut JSContext, rtStats: *mut RuntimeStats, opv: *mut ObjectPrivateVisitor, anonymize: bool) -> bool);
242wrap!(jsapi: pub fn SystemCompartmentCount(cx: &mut JSContext) -> usize);
243wrap!(jsapi: pub fn UserCompartmentCount(cx: &mut JSContext) -> usize);
244wrap!(jsapi: pub fn SystemRealmCount(cx: &mut JSContext) -> usize);
245wrap!(jsapi: pub fn UserRealmCount(cx: &mut JSContext) -> usize);
246wrap!(jsapi: pub fn PeakSizeOfTemporary(cx: &JSContext) -> usize);
247wrap!(jsapi: pub fn AddSizeOfTab(cx: &mut JSContext, obj: HandleObject, mallocSizeOf: MallocSizeOf, opv: *mut ObjectPrivateVisitor, sizes: *mut TabSizes) -> bool);
248wrap!(jsapi: pub fn AddServoSizeOf(cx: &mut JSContext, mallocSizeOf: MallocSizeOf, opv: *mut ObjectPrivateVisitor, sizes: *mut ServoSizes) -> bool);
249wrap!(jsapi: pub fn FinishDynamicModuleImport(cx: &mut JSContext, evaluationPromise: Handle<*mut JSObject>, referencingPrivate: Handle<Value>, moduleRequest: Handle<*mut JSObject>, promise: Handle<*mut JSObject>) -> bool);
250wrap!(jsapi: pub fn CompileModule(cx: &mut JSContext, options: *const ReadOnlyCompileOptions, srcBuf: *mut SourceText<u16>) -> *mut JSObject);
251wrap!(jsapi: pub fn CompileModule1(cx: &mut JSContext, options: *const ReadOnlyCompileOptions, srcBuf: *mut SourceText<Utf8Unit>) -> *mut JSObject);
252wrap!(jsapi: pub fn CompileJsonModule(cx: &mut JSContext, options: *const ReadOnlyCompileOptions, srcBuf: *mut SourceText<u16>) -> *mut JSObject);
253wrap!(jsapi: pub fn CompileJsonModule1(cx: &mut JSContext, options: *const ReadOnlyCompileOptions, srcBuf: *mut SourceText<Utf8Unit>) -> *mut JSObject);
254wrap!(jsapi: pub fn ModuleLink(cx: &mut JSContext, moduleRecord: Handle<*mut JSObject>) -> bool);
255wrap!(jsapi: pub fn ModuleEvaluate(cx: &mut JSContext, moduleRecord: Handle<*mut JSObject>, rval: MutableHandleValue) -> bool);
256wrap!(jsapi: pub fn ThrowOnModuleEvaluationFailure(cx: &mut JSContext, evaluationPromise: Handle<*mut JSObject>, errorBehaviour: ModuleErrorBehaviour) -> bool);
257wrap!(jsapi: pub fn GetRequestedModulesCount(cx: &mut JSContext, moduleRecord: Handle<*mut JSObject>) -> u32);
258wrap!(jsapi: pub fn GetRequestedModuleSpecifier(cx: &mut JSContext, moduleRecord: Handle<*mut JSObject>, index: u32) -> *mut JSString);
259wrap!(jsapi: pub fn GetRequestedModuleSourcePos(cx: &mut JSContext, moduleRecord: Handle<*mut JSObject>, index: u32, lineNumber: *mut u32, columnNumber: *mut ColumnNumberOneOrigin));
260wrap!(jsapi: pub fn GetRequestedModuleType(cx: &mut JSContext, moduleRecord: Handle<*mut JSObject>, index: u32) -> ModuleType);
261wrap!(jsapi: pub fn GetModuleScript(moduleRecord: Handle<*mut JSObject>) -> *mut JSScript);
262wrap!(jsapi: pub fn CreateModuleRequest(cx: &mut JSContext, specifierArg: Handle<*mut JSString>, moduleType: ModuleType) -> *mut JSObject);
263wrap!(jsapi: pub fn GetModuleRequestSpecifier(cx: &mut JSContext, moduleRequestArg: Handle<*mut JSObject>) -> *mut JSString);
264wrap!(jsapi: pub fn GetModuleRequestType(cx: &mut JSContext, moduleRequestArg: Handle<*mut JSObject>) -> ModuleType);
265wrap!(jsapi: pub fn GetModuleObject(moduleScript: Handle<*mut JSScript>) -> *mut JSObject);
266wrap!(jsapi: pub fn GetModuleNamespace(cx: &mut JSContext, moduleRecord: Handle<*mut JSObject>) -> *mut JSObject);
267wrap!(jsapi: pub fn GetModuleForNamespace(cx: &mut JSContext, moduleNamespace: Handle<*mut JSObject>) -> *mut JSObject);
268wrap!(jsapi: pub fn GetModuleEnvironment(cx: &mut JSContext, moduleObj: Handle<*mut JSObject>) -> *mut JSObject);
269wrap!(jsapi: pub fn GetBuiltinClass(cx: &mut JSContext, obj: Handle<*mut JSObject>, cls: *mut ESClass) -> bool);
270wrap!(jsapi: pub fn SetJobQueue(cx: &mut JSContext, queue: *mut JobQueue));
271wrap!(jsapi: pub fn SetPromiseRejectionTrackerCallback(cx: &mut JSContext, callback: PromiseRejectionTrackerCallback, data: *mut ::std::os::raw::c_void));
272wrap!(jsapi: pub fn JobQueueIsEmpty(cx: &mut JSContext));
273wrap!(jsapi: pub fn JobQueueMayNotBeEmpty(cx: &mut JSContext));
274wrap!(jsapi: pub fn NewPromiseObject(cx: &mut JSContext, executor: HandleObject) -> *mut JSObject);
275wrap!(jsapi: pub fn IsPromiseObject(obj: HandleObject) -> bool);
276wrap!(jsapi: pub fn GetPromiseConstructor(cx: &mut JSContext) -> *mut JSObject);
277wrap!(jsapi: pub fn GetPromisePrototype(cx: &mut JSContext) -> *mut JSObject);
278wrap!(jsapi: pub fn GetPromiseState(promise: HandleObject) -> PromiseState);
279wrap!(jsapi: pub fn GetPromiseID(promise: HandleObject) -> u64);
280wrap!(jsapi: pub fn GetPromiseIsHandled(promise: HandleObject) -> bool);
281wrap!(jsapi: pub fn SetSettledPromiseIsHandled(cx: &mut JSContext, promise: HandleObject) -> bool);
282wrap!(jsapi: pub fn SetAnyPromiseIsHandled(cx: &mut JSContext, promise: HandleObject) -> bool);
283wrap!(jsapi: pub fn GetPromiseAllocationSite(promise: HandleObject) -> *mut JSObject);
284wrap!(jsapi: pub fn GetPromiseResolutionSite(promise: HandleObject) -> *mut JSObject);
285wrap!(jsapi: pub fn CallOriginalPromiseResolve(cx: &mut JSContext, resolutionValue: HandleValue) -> *mut JSObject);
286wrap!(jsapi: pub fn CallOriginalPromiseReject(cx: &mut JSContext, rejectionValue: HandleValue) -> *mut JSObject);
287wrap!(jsapi: pub fn ResolvePromise(cx: &mut JSContext, promiseObj: HandleObject, resolutionValue: HandleValue) -> bool);
288wrap!(jsapi: pub fn RejectPromise(cx: &mut JSContext, promiseObj: HandleObject, rejectionValue: HandleValue) -> bool);
289wrap!(jsapi: pub fn CallOriginalPromiseThen(cx: &mut JSContext, promise: HandleObject, onFulfilled: HandleObject, onRejected: HandleObject) -> *mut JSObject);
290wrap!(jsapi: pub fn AddPromiseReactions(cx: &mut JSContext, promise: HandleObject, onFulfilled: HandleObject, onRejected: HandleObject) -> bool);
291wrap!(jsapi: pub fn AddPromiseReactionsIgnoringUnhandledRejection(cx: &mut JSContext, promise: HandleObject, onFulfilled: HandleObject, onRejected: HandleObject) -> bool);
292wrap!(jsapi: pub fn GetPromiseUserInputEventHandlingState(promise: HandleObject) -> PromiseUserInputEventHandlingState);
293wrap!(jsapi: pub fn SetPromiseUserInputEventHandlingState(promise: HandleObject, state: PromiseUserInputEventHandlingState) -> bool);
294wrap!(jsapi: pub fn GetWaitForAllPromise(cx: &mut JSContext, promises: HandleObjectVector) -> *mut JSObject);
295wrap!(jsapi: pub fn InitDispatchsToEventLoop(cx: &mut JSContext, callback: DispatchToEventLoopCallback, delayedCallback: DelayedDispatchToEventLoopCallback, closure: *mut ::std::os::raw::c_void));
296wrap!(jsapi: pub fn ShutdownAsyncTasks(cx: &mut JSContext));
297wrap!(jsapi: pub fn NewArrayObject(cx: &mut JSContext, contents: *const HandleValueArray) -> *mut JSObject);
298wrap!(jsapi: pub fn NewArrayObject1(cx: &mut JSContext, length: usize) -> *mut JSObject);
299wrap!(jsapi: pub fn IsArrayObject(cx: &mut JSContext, value: Handle<Value>, isArray: *mut bool) -> bool);
300wrap!(jsapi: pub fn IsArrayObject1(cx: &mut JSContext, obj: Handle<*mut JSObject>, isArray: *mut bool) -> bool);
301wrap!(jsapi: pub fn GetArrayLength(cx: &mut JSContext, obj: Handle<*mut JSObject>, lengthp: *mut u32) -> bool);
302wrap!(jsapi: pub fn SetArrayLength(cx: &mut JSContext, obj: Handle<*mut JSObject>, length: u32) -> bool);
303wrap!(jsapi: pub fn IsArray(cx: &mut JSContext, obj: Handle<*mut JSObject>, isArray: *mut bool) -> bool);
304wrap!(jsapi: pub fn IsArray1(cx: &mut JSContext, obj: Handle<*mut JSObject>, answer: *mut IsArrayAnswer) -> bool);
305wrap!(jsapi: pub fn NewRegExpObject(cx: &mut JSContext, bytes: *const ::std::os::raw::c_char, length: usize, flags: RegExpFlags) -> *mut JSObject);
306wrap!(jsapi: pub fn NewUCRegExpObject(cx: &mut JSContext, chars: *const u16, length: usize, flags: RegExpFlags) -> *mut JSObject);
307wrap!(jsapi: pub fn SetRegExpInput(cx: &mut JSContext, obj: Handle<*mut JSObject>, input: Handle<*mut JSString>) -> bool);
308wrap!(jsapi: pub fn ClearRegExpStatics(cx: &mut JSContext, obj: Handle<*mut JSObject>) -> bool);
309wrap!(jsapi: pub fn ExecuteRegExp(cx: &mut JSContext, obj: Handle<*mut JSObject>, reobj: Handle<*mut JSObject>, chars: *const u16, length: usize, indexp: *mut usize, test: bool, rval: MutableHandle<Value>) -> bool);
310wrap!(jsapi: pub fn ExecuteRegExpNoStatics(cx: &mut JSContext, reobj: Handle<*mut JSObject>, chars: *const u16, length: usize, indexp: *mut usize, test: bool, rval: MutableHandle<Value>) -> bool);
311wrap!(jsapi: pub fn ObjectIsRegExp(cx: &mut JSContext, obj: Handle<*mut JSObject>, isRegExp: *mut bool) -> bool);
312wrap!(jsapi: pub fn GetRegExpSource(cx: &mut JSContext, obj: Handle<*mut JSObject>) -> *mut JSString);
313wrap!(jsapi: pub fn CheckRegExpSyntax(cx: &mut JSContext, chars: *const u16, length: usize, flags: RegExpFlags, error: MutableHandle<Value>) -> bool);
314wrap!(jsapi: pub fn GetSavedFrameSource(cx: &mut JSContext, principals: *mut JSPrincipals, savedFrame: Handle<*mut JSObject>, sourcep: MutableHandle<*mut JSString>, selfHosted: SavedFrameSelfHosted) -> SavedFrameResult);
315wrap!(jsapi: pub fn GetSavedFrameSourceId(cx: &mut JSContext, principals: *mut JSPrincipals, savedFrame: Handle<*mut JSObject>, sourceIdp: *mut u32, selfHosted: SavedFrameSelfHosted) -> SavedFrameResult);
316wrap!(jsapi: pub fn GetSavedFrameLine(cx: &mut JSContext, principals: *mut JSPrincipals, savedFrame: Handle<*mut JSObject>, linep: *mut u32, selfHosted: SavedFrameSelfHosted) -> SavedFrameResult);
317wrap!(jsapi: pub fn GetSavedFrameColumn(cx: &mut JSContext, principals: *mut JSPrincipals, savedFrame: Handle<*mut JSObject>, columnp: *mut TaggedColumnNumberOneOrigin, selfHosted: SavedFrameSelfHosted) -> SavedFrameResult);
318wrap!(jsapi: pub fn GetSavedFrameFunctionDisplayName(cx: &mut JSContext, principals: *mut JSPrincipals, savedFrame: Handle<*mut JSObject>, namep: MutableHandle<*mut JSString>, selfHosted: SavedFrameSelfHosted) -> SavedFrameResult);
319wrap!(jsapi: pub fn GetSavedFrameAsyncCause(cx: &mut JSContext, principals: *mut JSPrincipals, savedFrame: Handle<*mut JSObject>, asyncCausep: MutableHandle<*mut JSString>, selfHosted: SavedFrameSelfHosted) -> SavedFrameResult);
320wrap!(jsapi: pub fn GetSavedFrameAsyncParent(cx: &mut JSContext, principals: *mut JSPrincipals, savedFrame: Handle<*mut JSObject>, asyncParentp: MutableHandle<*mut JSObject>, selfHosted: SavedFrameSelfHosted) -> SavedFrameResult);
321wrap!(jsapi: pub fn GetSavedFrameParent(cx: &mut JSContext, principals: *mut JSPrincipals, savedFrame: Handle<*mut JSObject>, parentp: MutableHandle<*mut JSObject>, selfHosted: SavedFrameSelfHosted) -> SavedFrameResult);
322wrap!(jsapi: pub fn ConvertSavedFrameToPlainObject(cx: &mut JSContext, savedFrame: HandleObject, selfHosted: SavedFrameSelfHosted) -> *mut JSObject);
323wrap!(jsapi: pub fn NewSharedArrayBuffer(cx: &mut JSContext, nbytes: usize) -> *mut JSObject);
324wrap!(jsapi: pub fn ContainsSharedArrayBuffer(cx: &mut JSContext) -> bool);
325wrap!(jsapi: pub fn GetWarningReporter(cx: &mut JSContext) -> WarningReporter);
326wrap!(jsapi: pub fn SetWarningReporter(cx: &mut JSContext, reporter: WarningReporter) -> WarningReporter);
327wrap!(jsapi: pub fn IsWasmModuleObject(obj: HandleObject) -> bool);
328wrap!(jsapi: pub fn GetWasmModule(obj: HandleObject) -> RefPtr<WasmModule>);
329wrap!(jsapi: pub fn CompileGlobalScriptToStencil(cx: &mut JSContext, options: *const ReadOnlyCompileOptions, srcBuf: *mut SourceText<Utf8Unit>) -> already_AddRefed<Stencil>);
330wrap!(jsapi: pub fn CompileGlobalScriptToStencil1(cx: &mut JSContext, options: *const ReadOnlyCompileOptions, srcBuf: *mut SourceText<u16>) -> already_AddRefed<Stencil>);
331wrap!(jsapi: pub fn CompileModuleScriptToStencil(cx: &mut JSContext, options: *const ReadOnlyCompileOptions, srcBuf: *mut SourceText<Utf8Unit>) -> already_AddRefed<Stencil>);
332wrap!(jsapi: pub fn CompileModuleScriptToStencil1(cx: &mut JSContext, options: *const ReadOnlyCompileOptions, srcBuf: *mut SourceText<u16>) -> already_AddRefed<Stencil>);
333wrap!(jsapi: pub fn InstantiateGlobalStencil(cx: &mut JSContext, options: *const InstantiateOptions, stencil: *mut Stencil, storage: *mut InstantiationStorage) -> *mut JSScript);
334wrap!(jsapi: pub fn InstantiateModuleStencil(cx: &mut JSContext, options: *const InstantiateOptions, stencil: *mut Stencil, storage: *mut InstantiationStorage) -> *mut JSObject);
335wrap!(jsapi: pub fn DecodeStencil(cx: &mut JSContext, options: *const ReadOnlyDecodeOptions, range: *const TranscodeRange, stencilOut: *mut *mut Stencil) -> TranscodeResult);
336wrap!(jsapi: pub fn StartCollectingDelazifications(cx: &mut JSContext, script: Handle<*mut JSScript>, stencil: *mut Stencil, alreadyStarted: *mut bool) -> bool);
337wrap!(jsapi: pub fn StartCollectingDelazifications1(cx: &mut JSContext, module: Handle<*mut JSObject>, stencil: *mut Stencil, alreadyStarted: *mut bool) -> bool);
338wrap!(jsapi: pub fn FinishCollectingDelazifications(cx: &mut JSContext, script: Handle<*mut JSScript>, buffer: *mut TranscodeBuffer) -> bool);
339wrap!(jsapi: pub fn FinishCollectingDelazifications1(cx: &mut JSContext, module: Handle<*mut JSObject>, buffer: *mut TranscodeBuffer) -> bool);
340wrap!(jsapi: pub fn FinishCollectingDelazifications2(cx: &mut JSContext, script: Handle<*mut JSScript>, stencilOut: *mut *mut Stencil) -> bool);
341wrap!(jsapi: pub fn AbortCollectingDelazifications(script: Handle<*mut JSScript>));
342wrap!(jsapi: pub fn AbortCollectingDelazifications1(module: Handle<*mut JSObject>));
343wrap!(jsapi: pub fn EnsureNonInlineArrayBufferOrView(cx: &mut JSContext, obj: *mut JSObject) -> bool);
344wrap!(jsapi: pub fn ForceLexicalInitialization(cx: &mut JSContext, obj: HandleObject) -> bool);
345wrap!(jsapi: pub fn JS_ReportOutOfMemory(cx: &mut JSContext));
346wrap!(jsapi: pub fn JS_CallFunctionValue(cx: &mut JSContext, obj: Handle<*mut JSObject>, fval: Handle<Value>, args: *const HandleValueArray, rval: MutableHandle<Value>) -> bool);
347wrap!(jsapi: pub fn JS_CallFunction(cx: &mut JSContext, obj: Handle<*mut JSObject>, fun: Handle<*mut JSFunction>, args: *const HandleValueArray, rval: MutableHandle<Value>) -> bool);
348wrap!(jsapi: pub fn JS_CallFunctionName(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const ::std::os::raw::c_char, args: *const HandleValueArray, rval: MutableHandle<Value>) -> bool);
349wrap!(jsapi: pub fn JS_EncodeStringToLatin1(cx: &mut JSContext, str_: *mut JSString) -> UniqueChars);
350wrap!(jsapi: pub fn JS_EncodeStringToUTF8(cx: &mut JSContext, str_: Handle<*mut JSString>) -> UniqueChars);
351wrap!(jsapi: pub fn JS_EncodeStringToASCII(cx: &mut JSContext, str_: *mut JSString) -> UniqueChars);
352wrap!(jsapi: pub fn JS_DestroyContext(cx: &mut JSContext));
353wrap!(jsapi: pub fn JS_GetContextPrivate(cx: &mut JSContext) -> *mut ::std::os::raw::c_void);
354wrap!(jsapi: pub fn JS_SetContextPrivate(cx: &mut JSContext, data: *mut ::std::os::raw::c_void));
355wrap!(jsapi: pub fn JS_GetParentRuntime(cx: &JSContext) -> *mut JSRuntime);
356wrap!(jsapi: pub fn JS_GetRuntime(cx: &JSContext) -> *mut JSRuntime);
357wrap!(jsapi: pub fn JS_SetFutexCanWait(cx: &mut JSContext));
358wrap!(jsapi: pub fn JS_AddExtraGCRootsTracer(cx: &mut JSContext, traceOp: JSTraceDataOp, data: *mut ::std::os::raw::c_void) -> bool);
359wrap!(jsapi: pub fn JS_RemoveExtraGCRootsTracer(cx: &mut JSContext, traceOp: JSTraceDataOp, data: *mut ::std::os::raw::c_void));
360wrap!(jsapi: pub fn JS_GC(cx: &mut JSContext, reason: GCReason));
361wrap!(jsapi: pub fn JS_MaybeGC(cx: &mut JSContext));
362wrap!(jsapi: pub fn JS_SetGCCallback(cx: &mut JSContext, cb: JSGCCallback, data: *mut ::std::os::raw::c_void));
363wrap!(jsapi: pub fn JS_SetObjectsTenuredCallback(cx: &mut JSContext, cb: JSObjectsTenuredCallback, data: *mut ::std::os::raw::c_void));
364wrap!(jsapi: pub fn JS_AddFinalizeCallback(cx: &mut JSContext, cb: JSFinalizeCallback, data: *mut ::std::os::raw::c_void) -> bool);
365wrap!(jsapi: pub fn JS_RemoveFinalizeCallback(cx: &mut JSContext, cb: JSFinalizeCallback));
366wrap!(jsapi: pub fn JS_AddWeakPointerZonesCallback(cx: &mut JSContext, cb: JSWeakPointerZonesCallback, data: *mut ::std::os::raw::c_void) -> bool);
367wrap!(jsapi: pub fn JS_RemoveWeakPointerZonesCallback(cx: &mut JSContext, cb: JSWeakPointerZonesCallback));
368wrap!(jsapi: pub fn JS_AddWeakPointerCompartmentCallback(cx: &mut JSContext, cb: JSWeakPointerCompartmentCallback, data: *mut ::std::os::raw::c_void) -> bool);
369wrap!(jsapi: pub fn JS_RemoveWeakPointerCompartmentCallback(cx: &mut JSContext, cb: JSWeakPointerCompartmentCallback));
370wrap!(jsapi: pub fn JS_SetGCParameter(cx: &mut JSContext, key: JSGCParamKey, value: u32));
371wrap!(jsapi: pub fn JS_ResetGCParameter(cx: &mut JSContext, key: JSGCParamKey));
372wrap!(jsapi: pub fn JS_GetGCParameter(cx: &JSContext, key: JSGCParamKey) -> u32);
373wrap!(jsapi: pub fn JS_SetGCParametersBasedOnAvailableMemory(cx: &mut JSContext, availMemMB: u32));
374wrap!(jsapi: pub fn JS_NewExternalStringLatin1(cx: &mut JSContext, chars: *const Latin1Char, length: usize, callbacks: *const JSExternalStringCallbacks) -> *mut JSString);
375wrap!(jsapi: pub fn JS_NewExternalUCString(cx: &mut JSContext, chars: *const u16, length: usize, callbacks: *const JSExternalStringCallbacks) -> *mut JSString);
376wrap!(jsapi: pub fn JS_NewMaybeExternalStringLatin1(cx: &mut JSContext, chars: *const Latin1Char, length: usize, callbacks: *const JSExternalStringCallbacks, allocatedExternal: *mut bool) -> *mut JSString);
377wrap!(jsapi: pub fn JS_NewMaybeExternalUCString(cx: &mut JSContext, chars: *const u16, length: usize, callbacks: *const JSExternalStringCallbacks, allocatedExternal: *mut bool) -> *mut JSString);
378wrap!(jsapi: pub fn JS_NewMaybeExternalStringUTF8(cx: &mut JSContext, utf8: *const UTF8Chars, callbacks: *const JSExternalStringCallbacks, allocatedExternal: *mut bool) -> *mut JSString);
379wrap!(jsapi: pub fn JS_DefineDebuggerObject(cx: &mut JSContext, obj: HandleObject) -> bool);
380wrap!(jsapi: pub fn JS_TracerEnterLabelLatin1(cx: &mut JSContext, label: *const ::std::os::raw::c_char));
381wrap!(jsapi: pub fn JS_TracerEnterLabelTwoByte(cx: &mut JSContext, label: *const u16));
382wrap!(jsapi: pub fn JS_TracerIsTracing(cx: &mut JSContext) -> bool);
383wrap!(jsapi: pub fn JS_TracerLeaveLabelLatin1(cx: &mut JSContext, label: *const ::std::os::raw::c_char));
384wrap!(jsapi: pub fn JS_TracerLeaveLabelTwoByte(cx: &mut JSContext, label: *const u16));
385wrap!(jsapi: pub fn JS_ReportErrorNumberUTF8Array(cx: &mut JSContext, errorCallback: JSErrorCallback, userRef: *mut ::std::os::raw::c_void, errorNumber: ::std::os::raw::c_uint, args: *mut *const ::std::os::raw::c_char));
386wrap!(jsapi: pub fn JS_ReportErrorNumberUCArray(cx: &mut JSContext, errorCallback: JSErrorCallback, userRef: *mut ::std::os::raw::c_void, errorNumber: ::std::os::raw::c_uint, args: *mut *const u16));
387wrap!(jsapi: pub fn JS_ReportAllocationOverflow(cx: &mut JSContext));
388wrap!(jsapi: pub fn JS_IsExceptionPending(cx: &mut JSContext) -> bool);
389wrap!(jsapi: pub fn JS_IsThrowingOutOfMemory(cx: &mut JSContext) -> bool);
390wrap!(jsapi: pub fn JS_GetPendingException(cx: &mut JSContext, vp: MutableHandleValue) -> bool);
391wrap!(jsapi: pub fn JS_SetPendingException(cx: &mut JSContext, v: HandleValue, behavior: ExceptionStackBehavior));
392wrap!(jsapi: pub fn JS_ClearPendingException(cx: &mut JSContext));
393wrap!(jsapi: pub fn JS_ErrorFromException(cx: &mut JSContext, obj: HandleObject) -> *mut JSErrorReport);
394wrap!(jsapi: pub fn JS_NewGlobalObject(cx: &mut JSContext, clasp: *const JSClass, principals: *mut JSPrincipals, hookOption: OnNewGlobalHookOption, options: *const RealmOptions) -> *mut JSObject);
395wrap!(jsapi: pub fn JS_FireOnNewGlobalObject(cx: &mut JSContext, global: HandleObject));
396wrap!(jsapi: pub fn JS_CheckForInterrupt(cx: &mut JSContext) -> bool);
397wrap!(jsapi: pub fn JS_AddInterruptCallback(cx: &mut JSContext, callback: JSInterruptCallback) -> bool);
398wrap!(jsapi: pub fn JS_DisableInterruptCallback(cx: &mut JSContext) -> bool);
399wrap!(jsapi: pub fn JS_ResetInterruptCallback(cx: &mut JSContext, enable: bool));
400wrap!(jsapi: pub fn JS_RequestInterruptCallback(cx: &mut JSContext));
401wrap!(jsapi: pub fn JS_RequestInterruptCallbackCanWait(cx: &mut JSContext));
402wrap!(jsapi: pub fn JS_malloc(cx: &mut JSContext, nbytes: usize) -> *mut ::std::os::raw::c_void);
403wrap!(jsapi: pub fn JS_realloc(cx: &mut JSContext, p: *mut ::std::os::raw::c_void, oldBytes: usize, newBytes: usize) -> *mut ::std::os::raw::c_void);
404wrap!(jsapi: pub fn JS_free(cx: &mut JSContext, p: *mut ::std::os::raw::c_void));
405wrap!(jsapi: pub fn JS_string_malloc(cx: &mut JSContext, nbytes: usize) -> *mut ::std::os::raw::c_void);
406wrap!(jsapi: pub fn JS_string_realloc(cx: &mut JSContext, p: *mut ::std::os::raw::c_void, oldBytes: usize, newBytes: usize) -> *mut ::std::os::raw::c_void);
407wrap!(jsapi: pub fn JS_string_free(cx: &mut JSContext, p: *mut ::std::os::raw::c_void));
408wrap!(jsapi: pub fn JS_DropPrincipals(cx: &mut JSContext, principals: *mut JSPrincipals));
409wrap!(jsapi: pub fn JS_SetSecurityCallbacks(cx: &mut JSContext, callbacks: *const JSSecurityCallbacks));
410wrap!(jsapi: pub fn JS_GetSecurityCallbacks(cx: &mut JSContext) -> *const JSSecurityCallbacks);
411wrap!(jsapi: pub fn JS_SetTrustedPrincipals(cx: &mut JSContext, prin: *mut JSPrincipals));
412wrap!(jsapi: pub fn JS_InitDestroyPrincipalsCallback(cx: &mut JSContext, destroyPrincipals: JSDestroyPrincipalsOp));
413wrap!(jsapi: pub fn JS_InitReadPrincipalsCallback(cx: &mut JSContext, read: JSReadPrincipalsOp));
414wrap!(jsapi: pub fn JS_DefinePropertyById(cx: &mut JSContext, obj: Handle<*mut JSObject>, id: Handle<jsid>, desc: Handle<PropertyDescriptor>, result: *mut ObjectOpResult) -> bool);
415wrap!(jsapi: pub fn JS_DefinePropertyById1(cx: &mut JSContext, obj: Handle<*mut JSObject>, id: Handle<jsid>, desc: Handle<PropertyDescriptor>) -> bool);
416wrap!(jsapi: pub fn JS_DefinePropertyById2(cx: &mut JSContext, obj: Handle<*mut JSObject>, id: Handle<jsid>, value: Handle<Value>, attrs: ::std::os::raw::c_uint) -> bool);
417wrap!(jsapi: pub fn JS_DefinePropertyById3(cx: &mut JSContext, obj: Handle<*mut JSObject>, id: Handle<jsid>, getter: JSNative, setter: JSNative, attrs: ::std::os::raw::c_uint) -> bool);
418wrap!(jsapi: pub fn JS_DefinePropertyById4(cx: &mut JSContext, obj: Handle<*mut JSObject>, id: Handle<jsid>, getter: Handle<*mut JSObject>, setter: Handle<*mut JSObject>, attrs: ::std::os::raw::c_uint) -> bool);
419wrap!(jsapi: pub fn JS_DefinePropertyById5(cx: &mut JSContext, obj: Handle<*mut JSObject>, id: Handle<jsid>, value: Handle<*mut JSObject>, attrs: ::std::os::raw::c_uint) -> bool);
420wrap!(jsapi: pub fn JS_DefinePropertyById6(cx: &mut JSContext, obj: Handle<*mut JSObject>, id: Handle<jsid>, value: Handle<*mut JSString>, attrs: ::std::os::raw::c_uint) -> bool);
421wrap!(jsapi: pub fn JS_DefinePropertyById7(cx: &mut JSContext, obj: Handle<*mut JSObject>, id: Handle<jsid>, value: i32, attrs: ::std::os::raw::c_uint) -> bool);
422wrap!(jsapi: pub fn JS_DefinePropertyById8(cx: &mut JSContext, obj: Handle<*mut JSObject>, id: Handle<jsid>, value: u32, attrs: ::std::os::raw::c_uint) -> bool);
423wrap!(jsapi: pub fn JS_DefinePropertyById9(cx: &mut JSContext, obj: Handle<*mut JSObject>, id: Handle<jsid>, value: f64, attrs: ::std::os::raw::c_uint) -> bool);
424wrap!(jsapi: pub fn JS_DefineProperty(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const ::std::os::raw::c_char, value: Handle<Value>, attrs: ::std::os::raw::c_uint) -> bool);
425wrap!(jsapi: pub fn JS_DefineProperty1(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const ::std::os::raw::c_char, getter: JSNative, setter: JSNative, attrs: ::std::os::raw::c_uint) -> bool);
426wrap!(jsapi: pub fn JS_DefineProperty2(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const ::std::os::raw::c_char, getter: Handle<*mut JSObject>, setter: Handle<*mut JSObject>, attrs: ::std::os::raw::c_uint) -> bool);
427wrap!(jsapi: pub fn JS_DefineProperty3(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const ::std::os::raw::c_char, value: Handle<*mut JSObject>, attrs: ::std::os::raw::c_uint) -> bool);
428wrap!(jsapi: pub fn JS_DefineProperty4(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const ::std::os::raw::c_char, value: Handle<*mut JSString>, attrs: ::std::os::raw::c_uint) -> bool);
429wrap!(jsapi: pub fn JS_DefineProperty5(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const ::std::os::raw::c_char, value: i32, attrs: ::std::os::raw::c_uint) -> bool);
430wrap!(jsapi: pub fn JS_DefineProperty6(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const ::std::os::raw::c_char, value: u32, attrs: ::std::os::raw::c_uint) -> bool);
431wrap!(jsapi: pub fn JS_DefineProperty7(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const ::std::os::raw::c_char, value: f64, attrs: ::std::os::raw::c_uint) -> bool);
432wrap!(jsapi: pub fn JS_DefineUCProperty(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const u16, namelen: usize, desc: Handle<PropertyDescriptor>, result: *mut ObjectOpResult) -> bool);
433wrap!(jsapi: pub fn JS_DefineUCProperty1(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const u16, namelen: usize, desc: Handle<PropertyDescriptor>) -> bool);
434wrap!(jsapi: pub fn JS_DefineUCProperty2(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const u16, namelen: usize, value: Handle<Value>, attrs: ::std::os::raw::c_uint) -> bool);
435wrap!(jsapi: pub fn JS_DefineUCProperty3(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const u16, namelen: usize, getter: Handle<*mut JSObject>, setter: Handle<*mut JSObject>, attrs: ::std::os::raw::c_uint) -> bool);
436wrap!(jsapi: pub fn JS_DefineUCProperty4(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const u16, namelen: usize, value: Handle<*mut JSObject>, attrs: ::std::os::raw::c_uint) -> bool);
437wrap!(jsapi: pub fn JS_DefineUCProperty5(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const u16, namelen: usize, value: Handle<*mut JSString>, attrs: ::std::os::raw::c_uint) -> bool);
438wrap!(jsapi: pub fn JS_DefineUCProperty6(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const u16, namelen: usize, value: i32, attrs: ::std::os::raw::c_uint) -> bool);
439wrap!(jsapi: pub fn JS_DefineUCProperty7(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const u16, namelen: usize, value: u32, attrs: ::std::os::raw::c_uint) -> bool);
440wrap!(jsapi: pub fn JS_DefineUCProperty8(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const u16, namelen: usize, value: f64, attrs: ::std::os::raw::c_uint) -> bool);
441wrap!(jsapi: pub fn JS_DefineElement(cx: &mut JSContext, obj: Handle<*mut JSObject>, index: u32, value: Handle<Value>, attrs: ::std::os::raw::c_uint) -> bool);
442wrap!(jsapi: pub fn JS_DefineElement1(cx: &mut JSContext, obj: Handle<*mut JSObject>, index: u32, getter: Handle<*mut JSObject>, setter: Handle<*mut JSObject>, attrs: ::std::os::raw::c_uint) -> bool);
443wrap!(jsapi: pub fn JS_DefineElement2(cx: &mut JSContext, obj: Handle<*mut JSObject>, index: u32, value: Handle<*mut JSObject>, attrs: ::std::os::raw::c_uint) -> bool);
444wrap!(jsapi: pub fn JS_DefineElement3(cx: &mut JSContext, obj: Handle<*mut JSObject>, index: u32, value: Handle<*mut JSString>, attrs: ::std::os::raw::c_uint) -> bool);
445wrap!(jsapi: pub fn JS_DefineElement4(cx: &mut JSContext, obj: Handle<*mut JSObject>, index: u32, value: i32, attrs: ::std::os::raw::c_uint) -> bool);
446wrap!(jsapi: pub fn JS_DefineElement5(cx: &mut JSContext, obj: Handle<*mut JSObject>, index: u32, value: u32, attrs: ::std::os::raw::c_uint) -> bool);
447wrap!(jsapi: pub fn JS_DefineElement6(cx: &mut JSContext, obj: Handle<*mut JSObject>, index: u32, value: f64, attrs: ::std::os::raw::c_uint) -> bool);
448wrap!(jsapi: pub fn JS_HasPropertyById(cx: &mut JSContext, obj: Handle<*mut JSObject>, id: Handle<jsid>, foundp: *mut bool) -> bool);
449wrap!(jsapi: pub fn JS_HasProperty(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const ::std::os::raw::c_char, foundp: *mut bool) -> bool);
450wrap!(jsapi: pub fn JS_HasUCProperty(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const u16, namelen: usize, vp: *mut bool) -> bool);
451wrap!(jsapi: pub fn JS_HasElement(cx: &mut JSContext, obj: Handle<*mut JSObject>, index: u32, foundp: *mut bool) -> bool);
452wrap!(jsapi: pub fn JS_HasOwnPropertyById(cx: &mut JSContext, obj: Handle<*mut JSObject>, id: Handle<jsid>, foundp: *mut bool) -> bool);
453wrap!(jsapi: pub fn JS_HasOwnProperty(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const ::std::os::raw::c_char, foundp: *mut bool) -> bool);
454wrap!(jsapi: pub fn JS_ForwardGetPropertyTo(cx: &mut JSContext, obj: Handle<*mut JSObject>, id: Handle<jsid>, receiver: Handle<Value>, vp: MutableHandleValue) -> bool);
455wrap!(jsapi: pub fn JS_ForwardGetElementTo(cx: &mut JSContext, obj: Handle<*mut JSObject>, index: u32, receiver: Handle<*mut JSObject>, vp: MutableHandleValue) -> bool);
456wrap!(jsapi: pub fn JS_GetPropertyById(cx: &mut JSContext, obj: Handle<*mut JSObject>, id: Handle<jsid>, vp: MutableHandleValue) -> bool);
457wrap!(jsapi: pub fn JS_GetProperty(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const ::std::os::raw::c_char, vp: MutableHandleValue) -> bool);
458wrap!(jsapi: pub fn JS_GetUCProperty(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const u16, namelen: usize, vp: MutableHandleValue) -> bool);
459wrap!(jsapi: pub fn JS_GetElement(cx: &mut JSContext, obj: Handle<*mut JSObject>, index: u32, vp: MutableHandleValue) -> bool);
460wrap!(jsapi: pub fn JS_ForwardSetPropertyTo(cx: &mut JSContext, obj: Handle<*mut JSObject>, id: Handle<jsid>, v: Handle<Value>, receiver: Handle<Value>, result: *mut ObjectOpResult) -> bool);
461wrap!(jsapi: pub fn JS_SetPropertyById(cx: &mut JSContext, obj: Handle<*mut JSObject>, id: Handle<jsid>, v: Handle<Value>) -> bool);
462wrap!(jsapi: pub fn JS_SetProperty(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const ::std::os::raw::c_char, v: Handle<Value>) -> bool);
463wrap!(jsapi: pub fn JS_SetUCProperty(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const u16, namelen: usize, v: Handle<Value>) -> bool);
464wrap!(jsapi: pub fn JS_SetElement(cx: &mut JSContext, obj: Handle<*mut JSObject>, index: u32, v: Handle<Value>) -> bool);
465wrap!(jsapi: pub fn JS_SetElement1(cx: &mut JSContext, obj: Handle<*mut JSObject>, index: u32, v: Handle<*mut JSObject>) -> bool);
466wrap!(jsapi: pub fn JS_SetElement2(cx: &mut JSContext, obj: Handle<*mut JSObject>, index: u32, v: Handle<*mut JSString>) -> bool);
467wrap!(jsapi: pub fn JS_SetElement3(cx: &mut JSContext, obj: Handle<*mut JSObject>, index: u32, v: i32) -> bool);
468wrap!(jsapi: pub fn JS_SetElement4(cx: &mut JSContext, obj: Handle<*mut JSObject>, index: u32, v: u32) -> bool);
469wrap!(jsapi: pub fn JS_SetElement5(cx: &mut JSContext, obj: Handle<*mut JSObject>, index: u32, v: f64) -> bool);
470wrap!(jsapi: pub fn JS_DeletePropertyById(cx: &mut JSContext, obj: Handle<*mut JSObject>, id: Handle<jsid>, result: *mut ObjectOpResult) -> bool);
471wrap!(jsapi: pub fn JS_DeleteProperty(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const ::std::os::raw::c_char, result: *mut ObjectOpResult) -> bool);
472wrap!(jsapi: pub fn JS_DeleteUCProperty(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const u16, namelen: usize, result: *mut ObjectOpResult) -> bool);
473wrap!(jsapi: pub fn JS_DeleteElement(cx: &mut JSContext, obj: Handle<*mut JSObject>, index: u32, result: *mut ObjectOpResult) -> bool);
474wrap!(jsapi: pub fn JS_DeletePropertyById1(cx: &mut JSContext, obj: Handle<*mut JSObject>, id: Handle<jsid>) -> bool);
475wrap!(jsapi: pub fn JS_DeleteProperty1(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const ::std::os::raw::c_char) -> bool);
476wrap!(jsapi: pub fn JS_DeleteElement1(cx: &mut JSContext, obj: Handle<*mut JSObject>, index: u32) -> bool);
477wrap!(jsapi: pub fn JS_DefineObject(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const ::std::os::raw::c_char, clasp: *const JSClass, attrs: ::std::os::raw::c_uint) -> *mut JSObject);
478wrap!(jsapi: pub fn JS_DefineProperties(cx: &mut JSContext, obj: Handle<*mut JSObject>, ps: *const JSPropertySpec) -> bool);
479wrap!(jsapi: pub fn JS_AlreadyHasOwnPropertyById(cx: &mut JSContext, obj: Handle<*mut JSObject>, id: Handle<jsid>, foundp: *mut bool) -> bool);
480wrap!(jsapi: pub fn JS_AlreadyHasOwnProperty(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const ::std::os::raw::c_char, foundp: *mut bool) -> bool);
481wrap!(jsapi: pub fn JS_AlreadyHasOwnUCProperty(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const u16, namelen: usize, foundp: *mut bool) -> bool);
482wrap!(jsapi: pub fn JS_AlreadyHasOwnElement(cx: &mut JSContext, obj: Handle<*mut JSObject>, index: u32, foundp: *mut bool) -> bool);
483wrap!(jsapi: pub fn JS_DefineFunctions(cx: &mut JSContext, obj: Handle<*mut JSObject>, fs: *const JSFunctionSpec) -> bool);
484wrap!(jsapi: pub fn JS_DefineFunction(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const ::std::os::raw::c_char, call: JSNative, nargs: ::std::os::raw::c_uint, attrs: ::std::os::raw::c_uint) -> *mut JSFunction);
485wrap!(jsapi: pub fn JS_DefineUCFunction(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const u16, namelen: usize, call: JSNative, nargs: ::std::os::raw::c_uint, attrs: ::std::os::raw::c_uint) -> *mut JSFunction);
486wrap!(jsapi: pub fn JS_DefineFunctionById(cx: &mut JSContext, obj: Handle<*mut JSObject>, id: Handle<jsid>, call: JSNative, nargs: ::std::os::raw::c_uint, attrs: ::std::os::raw::c_uint) -> *mut JSFunction);
487wrap!(jsapi: pub fn JS_IterateCompartments(cx: &mut JSContext, data: *mut ::std::os::raw::c_void, compartmentCallback: JSIterateCompartmentCallback));
488wrap!(jsapi: pub fn JS_IterateCompartmentsInZone(cx: &mut JSContext, zone: *mut Zone, data: *mut ::std::os::raw::c_void, compartmentCallback: JSIterateCompartmentCallback));
489wrap!(jsapi: pub fn JS_SetNativeStackQuota(cx: &mut JSContext, systemCodeStackSize: NativeStackSize, trustedScriptStackSize: NativeStackSize, untrustedScriptStackSize: NativeStackSize));
490wrap!(jsapi: pub fn JS_GetEmptyString(cx: &mut JSContext) -> *mut JSString);
491wrap!(jsapi: pub fn JS_NewStringCopyN(cx: &mut JSContext, s: *const ::std::os::raw::c_char, n: usize) -> *mut JSString);
492wrap!(jsapi: pub fn JS_NewStringCopyZ(cx: &mut JSContext, s: *const ::std::os::raw::c_char) -> *mut JSString);
493wrap!(jsapi: pub fn JS_NewStringCopyUTF8Z(cx: &mut JSContext, s: ConstUTF8CharsZ) -> *mut JSString);
494wrap!(jsapi: pub fn JS_NewStringCopyUTF8N(cx: &mut JSContext, s: *const UTF8Chars) -> *mut JSString);
495wrap!(jsapi: pub fn JS_AtomizeStringN(cx: &mut JSContext, s: *const ::std::os::raw::c_char, length: usize) -> *mut JSString);
496wrap!(jsapi: pub fn JS_AtomizeString(cx: &mut JSContext, s: *const ::std::os::raw::c_char) -> *mut JSString);
497wrap!(jsapi: pub fn JS_AtomizeAndPinStringN(cx: &mut JSContext, s: *const ::std::os::raw::c_char, length: usize) -> *mut JSString);
498wrap!(jsapi: pub fn JS_AtomizeAndPinString(cx: &mut JSContext, s: *const ::std::os::raw::c_char) -> *mut JSString);
499wrap!(jsapi: pub fn JS_NewUCStringCopyN(cx: &mut JSContext, s: *const u16, n: usize) -> *mut JSString);
500wrap!(jsapi: pub fn JS_NewUCStringCopyZ(cx: &mut JSContext, s: *const u16) -> *mut JSString);
501wrap!(jsapi: pub fn JS_AtomizeUCStringN(cx: &mut JSContext, s: *const u16, length: usize) -> *mut JSString);
502wrap!(jsapi: pub fn JS_AtomizeUCString(cx: &mut JSContext, s: *const u16) -> *mut JSString);
503wrap!(jsapi: pub fn JS_CompareStrings(cx: &mut JSContext, str1: *mut JSString, str2: *mut JSString, result: *mut i32) -> bool);
504wrap!(jsapi: pub fn JS_StringEqualsAscii(cx: &mut JSContext, str_: *mut JSString, asciiBytes: *const ::std::os::raw::c_char, match_: *mut bool) -> bool);
505wrap!(jsapi: pub fn JS_StringEqualsAscii1(cx: &mut JSContext, str_: *mut JSString, asciiBytes: *const ::std::os::raw::c_char, length: usize, match_: *mut bool) -> bool);
506wrap!(jsapi: pub fn JS_PutEscapedString(cx: &mut JSContext, buffer: *mut ::std::os::raw::c_char, size: usize, str_: *mut JSString, quote: ::std::os::raw::c_char) -> usize);
507wrap!(jsapi: pub fn JS_GetLatin1StringCharsAndLength(cx: &JSContext, nogc: *const AutoRequireNoGC, str_: *mut JSString, length: *mut usize) -> *const Latin1Char);
508wrap!(jsapi: pub fn JS_GetTwoByteStringCharsAndLength(cx: &JSContext, nogc: *const AutoRequireNoGC, str_: *mut JSString, length: *mut usize) -> *const u16);
509wrap!(jsapi: pub fn JS_GetStringCharAt(cx: &mut JSContext, str_: *mut JSString, index: usize, res: *mut u16) -> bool);
510wrap!(jsapi: pub fn JS_CopyStringChars(cx: &mut JSContext, dest: *const Range<u16>, str_: *mut JSString) -> bool);
511wrap!(jsapi: pub fn JS_CopyStringCharsZ(cx: &mut JSContext, str_: *mut JSString) -> UniqueTwoByteChars);
512wrap!(jsapi: pub fn JS_EnsureLinearString(cx: &mut JSContext, str_: *mut JSString) -> *mut JSLinearString);
513wrap!(jsapi: pub fn JS_NewDependentString(cx: &mut JSContext, str_: Handle<*mut JSString>, start: usize, length: usize) -> *mut JSString);
514wrap!(jsapi: pub fn JS_ConcatStrings(cx: &mut JSContext, left: Handle<*mut JSString>, right: Handle<*mut JSString>) -> *mut JSString);
515wrap!(jsapi: pub fn JS_DecodeBytes(cx: &mut JSContext, src: *const ::std::os::raw::c_char, srclen: usize, dst: *mut u16, dstlenp: *mut usize) -> bool);
516wrap!(jsapi: pub fn JS_GetStringEncodingLength(cx: &mut JSContext, str_: *mut JSString) -> usize);
517wrap!(jsapi: pub fn JS_EncodeStringToBuffer(cx: &mut JSContext, str_: *mut JSString, buffer: *mut ::std::os::raw::c_char, length: usize) -> bool);
518wrap!(jsapi: pub fn JS_SetDestroyZoneCallback(cx: &mut JSContext, callback: JSDestroyZoneCallback));
519wrap!(jsapi: pub fn JS_SetDestroyCompartmentCallback(cx: &mut JSContext, callback: JSDestroyCompartmentCallback));
520wrap!(jsapi: pub fn JS_SetSizeOfIncludingThisCompartmentCallback(cx: &mut JSContext, callback: JSSizeOfIncludingThisCompartmentCallback));
521wrap!(jsapi: pub fn JS_RefreshCrossCompartmentWrappers(cx: &mut JSContext, obj: Handle<*mut JSObject>) -> bool);
522wrap!(jsapi: pub fn JS_MarkCrossZoneId(cx: &mut JSContext, id: jsid));
523wrap!(jsapi: pub fn JS_MarkCrossZoneIdValue(cx: &mut JSContext, value: *const Value));
524wrap!(jsapi: pub fn JS_StringHasBeenPinned(cx: &mut JSContext, str_: *mut JSString) -> bool);
525wrap!(jsapi: pub fn JS_ValueToObject(cx: &mut JSContext, v: HandleValue, objp: MutableHandleObject) -> bool);
526wrap!(jsapi: pub fn JS_ValueToFunction(cx: &mut JSContext, v: HandleValue) -> *mut JSFunction);
527wrap!(jsapi: pub fn JS_ValueToConstructor(cx: &mut JSContext, v: HandleValue) -> *mut JSFunction);
528wrap!(jsapi: pub fn JS_ValueToSource(cx: &mut JSContext, v: Handle<Value>) -> *mut JSString);
529wrap!(jsapi: pub fn JS_TypeOfValue(cx: &mut JSContext, v: Handle<Value>) -> JSType);
530wrap!(jsapi: pub fn JS_SetWrapObjectCallbacks(cx: &mut JSContext, callbacks: *const JSWrapObjectCallbacks));
531wrap!(jsapi: pub fn JS_WrapObject(cx: &mut JSContext, objp: MutableHandleObject) -> bool);
532wrap!(jsapi: pub fn JS_WrapValue(cx: &mut JSContext, vp: MutableHandleValue) -> bool);
533wrap!(jsapi: pub fn JS_TransplantObject(cx: &mut JSContext, origobj: HandleObject, target: HandleObject) -> *mut JSObject);
534wrap!(jsapi: pub fn JS_ResolveStandardClass(cx: &mut JSContext, obj: HandleObject, id: HandleId, resolved: *mut bool) -> bool);
535wrap!(jsapi: pub fn JS_EnumerateStandardClasses(cx: &mut JSContext, obj: HandleObject) -> bool);
536wrap!(jsapi: pub fn JS_NewEnumerateStandardClasses(cx: &mut JSContext, obj: HandleObject, properties: MutableHandleIdVector, enumerableOnly: bool) -> bool);
537wrap!(jsapi: pub fn JS_NewEnumerateStandardClassesIncludingResolved(cx: &mut JSContext, obj: HandleObject, properties: MutableHandleIdVector, enumerableOnly: bool) -> bool);
538wrap!(jsapi: pub fn JS_GetClassObject(cx: &mut JSContext, key: JSProtoKey, objp: MutableHandle<*mut JSObject>) -> bool);
539wrap!(jsapi: pub fn JS_GetClassPrototype(cx: &mut JSContext, key: JSProtoKey, objp: MutableHandle<*mut JSObject>) -> bool);
540wrap!(jsapi: pub fn JS_IdToProtoKey(cx: &mut JSContext, id: HandleId) -> JSProtoKey);
541wrap!(jsapi: pub fn JS_InitReflectParse(cx: &mut JSContext, global: HandleObject) -> bool);
542wrap!(jsapi: pub fn JS_DefineProfilingFunctions(cx: &mut JSContext, obj: HandleObject) -> bool);
543wrap!(jsapi: pub fn JS_ValueToId(cx: &mut JSContext, v: HandleValue, idp: MutableHandleId) -> bool);
544wrap!(jsapi: pub fn JS_StringToId(cx: &mut JSContext, s: HandleString, idp: MutableHandleId) -> bool);
545wrap!(jsapi: pub fn JS_IdToValue(cx: &mut JSContext, id: jsid, vp: MutableHandle<Value>) -> bool);
546wrap!(jsapi: pub fn JS_InitClass(cx: &mut JSContext, obj: HandleObject, protoClass: *const JSClass, protoProto: HandleObject, name: *const ::std::os::raw::c_char, constructor: JSNative, nargs: ::std::os::raw::c_uint, ps: *const JSPropertySpec, fs: *const JSFunctionSpec, static_ps: *const JSPropertySpec, static_fs: *const JSFunctionSpec) -> *mut JSObject);
547wrap!(jsapi: pub fn JS_LinkConstructorAndPrototype(cx: &mut JSContext, ctor: Handle<*mut JSObject>, proto: Handle<*mut JSObject>) -> bool);
548wrap!(jsapi: pub fn JS_InstanceOf(cx: &mut JSContext, obj: Handle<*mut JSObject>, clasp: *const JSClass, args: *mut CallArgs) -> bool);
549wrap!(jsapi: pub fn JS_HasInstance(cx: &mut JSContext, obj: Handle<*mut JSObject>, v: Handle<Value>, bp: *mut bool) -> bool);
550wrap!(jsapi: pub fn JS_GetConstructor(cx: &mut JSContext, proto: Handle<*mut JSObject>) -> *mut JSObject);
551wrap!(jsapi: pub fn JS_NewObject(cx: &mut JSContext, clasp: *const JSClass) -> *mut JSObject);
552wrap!(jsapi: pub fn JS_NewObjectWithGivenProto(cx: &mut JSContext, clasp: *const JSClass, proto: Handle<*mut JSObject>) -> *mut JSObject);
553wrap!(jsapi: pub fn JS_NewPlainObject(cx: &mut JSContext) -> *mut JSObject);
554wrap!(jsapi: pub fn JS_DeepFreezeObject(cx: &mut JSContext, obj: Handle<*mut JSObject>) -> bool);
555wrap!(jsapi: pub fn JS_FreezeObject(cx: &mut JSContext, obj: Handle<*mut JSObject>) -> bool);
556wrap!(jsapi: pub fn JS_GetPrototype(cx: &mut JSContext, obj: HandleObject, result: MutableHandleObject) -> bool);
557wrap!(jsapi: pub fn JS_GetPrototypeIfOrdinary(cx: &mut JSContext, obj: HandleObject, isOrdinary: *mut bool, result: MutableHandleObject) -> bool);
558wrap!(jsapi: pub fn JS_SetPrototype(cx: &mut JSContext, obj: HandleObject, proto: HandleObject) -> bool);
559wrap!(jsapi: pub fn JS_IsExtensible(cx: &mut JSContext, obj: HandleObject, extensible: *mut bool) -> bool);
560wrap!(jsapi: pub fn JS_PreventExtensions(cx: &mut JSContext, obj: HandleObject, result: *mut ObjectOpResult) -> bool);
561wrap!(jsapi: pub fn JS_SetImmutablePrototype(cx: &mut JSContext, obj: HandleObject, succeeded: *mut bool) -> bool);
562wrap!(jsapi: pub fn JS_AssignObject(cx: &mut JSContext, target: HandleObject, src: HandleObject) -> bool);
563wrap!(jsapi: pub fn JS_SetAllNonReservedSlotsToUndefined(obj: HandleObject));
564wrap!(jsapi: pub fn JS_NewFunction(cx: &mut JSContext, call: JSNative, nargs: ::std::os::raw::c_uint, flags: ::std::os::raw::c_uint, name: *const ::std::os::raw::c_char) -> *mut JSFunction);
565wrap!(jsapi: pub fn JS_GetFunctionId(cx: &mut JSContext, fun: Handle<*mut JSFunction>, name: MutableHandle<*mut JSString>) -> bool);
566wrap!(jsapi: pub fn JS_GetFunctionDisplayId(cx: &mut JSContext, fun: Handle<*mut JSFunction>, name: MutableHandle<*mut JSString>) -> bool);
567wrap!(jsapi: pub fn JS_GetFunctionLength(cx: &mut JSContext, fun: HandleFunction, length: *mut u16) -> bool);
568wrap!(jsapi: pub fn JS_GetScriptBaseLineNumber(cx: &mut JSContext, script: *mut JSScript) -> ::std::os::raw::c_uint);
569wrap!(jsapi: pub fn JS_GetFunctionScript(cx: &mut JSContext, fun: HandleFunction) -> *mut JSScript);
570wrap!(jsapi: pub fn JS_DecompileScript(cx: &mut JSContext, script: Handle<*mut JSScript>) -> *mut JSString);
571wrap!(jsapi: pub fn JS_DecompileFunction(cx: &mut JSContext, fun: Handle<*mut JSFunction>) -> *mut JSString);
572wrap!(jsapi: pub fn JS_AbortIfWrongThread(cx: &mut JSContext));
573wrap!(jsapi: pub fn JS_NewObjectForConstructor(cx: &mut JSContext, clasp: *const JSClass, args: *const CallArgs) -> *mut JSObject);
574wrap!(jsapi: pub fn JS_SetOffthreadBaselineCompilationEnabled(cx: &mut JSContext, enabled: bool));
575wrap!(jsapi: pub fn JS_SetOffthreadIonCompilationEnabled(cx: &mut JSContext, enabled: bool));
576wrap!(jsapi: pub fn JS_SetGlobalJitCompilerOption(cx: &mut JSContext, opt: JSJitCompilerOption, value: u32));
577wrap!(jsapi: pub fn JS_GetGlobalJitCompilerOption(cx: &mut JSContext, opt: JSJitCompilerOption, valueOut: *mut u32) -> bool);
578wrap!(jsapi: pub fn JS_IndexToId(cx: &mut JSContext, index: u32, arg1: MutableHandleId) -> bool);
579wrap!(jsapi: pub fn JS_CharsToId(cx: &mut JSContext, chars: TwoByteChars, arg1: MutableHandleId) -> bool);
580wrap!(jsapi: pub fn JS_IsIdentifier(cx: &mut JSContext, str_: HandleString, isIdentifier: *mut bool) -> bool);
581wrap!(jsapi: pub fn JS_Utf8BufferIsCompilableUnit(cx: &mut JSContext, obj: Handle<*mut JSObject>, utf8: *const ::std::os::raw::c_char, length: usize) -> bool);
582wrap!(jsapi: pub fn JS_ExecuteScript(cx: &mut JSContext, script: Handle<*mut JSScript>, rval: MutableHandle<Value>) -> bool);
583wrap!(jsapi: pub fn JS_ExecuteScript1(cx: &mut JSContext, script: Handle<*mut JSScript>) -> bool);
584wrap!(jsapi: pub fn JS_ExecuteScript2(cx: &mut JSContext, envChain: *const EnvironmentChain, script: Handle<*mut JSScript>, rval: MutableHandle<Value>) -> bool);
585wrap!(jsapi: pub fn JS_ExecuteScript3(cx: &mut JSContext, envChain: *const EnvironmentChain, script: Handle<*mut JSScript>) -> bool);
586wrap!(jsapi: pub fn JS_Stringify(cx: &mut JSContext, value: MutableHandle<Value>, replacer: Handle<*mut JSObject>, space: Handle<Value>, callback: JSONWriteCallback, data: *mut ::std::os::raw::c_void) -> bool);
587wrap!(jsapi: pub fn JS_StringifyWithLengthHint(cx: &mut JSContext, value: MutableHandle<Value>, replacer: Handle<*mut JSObject>, space: Handle<Value>, callback: JSONWriteCallback, data: *mut ::std::os::raw::c_void, lengthHint: usize) -> bool);
588wrap!(jsapi: pub fn JS_ParseJSON(cx: &mut JSContext, chars: *const u16, len: u32, vp: MutableHandle<Value>) -> bool);
589wrap!(jsapi: pub fn JS_ParseJSON1(cx: &mut JSContext, str_: Handle<*mut JSString>, vp: MutableHandle<Value>) -> bool);
590wrap!(jsapi: pub fn JS_ParseJSON2(cx: &mut JSContext, chars: *const Latin1Char, len: u32, vp: MutableHandle<Value>) -> bool);
591wrap!(jsapi: pub fn JS_ParseJSONWithReviver(cx: &mut JSContext, chars: *const u16, len: u32, reviver: Handle<Value>, vp: MutableHandle<Value>) -> bool);
592wrap!(jsapi: pub fn JS_ParseJSONWithReviver1(cx: &mut JSContext, str_: Handle<*mut JSString>, reviver: Handle<Value>, vp: MutableHandle<Value>) -> bool);
593wrap!(jsapi: pub fn JS_ReadStructuredClone(cx: &mut JSContext, data: *const JSStructuredCloneData, version: u32, scope: StructuredCloneScope, vp: MutableHandleValue, cloneDataPolicy: *const CloneDataPolicy, optionalCallbacks: *const JSStructuredCloneCallbacks, closure: *mut ::std::os::raw::c_void) -> bool);
594wrap!(jsapi: pub fn JS_WriteStructuredClone(cx: &mut JSContext, v: HandleValue, data: *mut JSStructuredCloneData, scope: StructuredCloneScope, cloneDataPolicy: *const CloneDataPolicy, optionalCallbacks: *const JSStructuredCloneCallbacks, closure: *mut ::std::os::raw::c_void, transferable: HandleValue) -> bool);
595wrap!(jsapi: pub fn JS_StructuredClone(cx: &mut JSContext, v: HandleValue, vp: MutableHandleValue, optionalCallbacks: *const JSStructuredCloneCallbacks, closure: *mut ::std::os::raw::c_void) -> bool);
596wrap!(jsapi: pub fn JS_ReadString(r: *mut JSStructuredCloneReader, str_: MutableHandleString) -> bool);
597wrap!(jsapi: pub fn JS_ReadTypedArray(r: *mut JSStructuredCloneReader, vp: MutableHandleValue) -> bool);
598wrap!(jsapi: pub fn JS_WriteString(w: *mut JSStructuredCloneWriter, str_: HandleString) -> bool);
599wrap!(jsapi: pub fn JS_WriteTypedArray(w: *mut JSStructuredCloneWriter, v: HandleValue) -> bool);
600wrap!(jsapi: pub fn JS_ObjectNotWritten(w: *mut JSStructuredCloneWriter, obj: HandleObject) -> bool);
601wrap!(jsapi: pub fn JS_NewInt8Array(cx: &mut JSContext, nelements: usize) -> *mut JSObject);
602wrap!(jsapi: pub fn JS_NewInt8ArrayFromArray(cx: &mut JSContext, array: Handle<*mut JSObject>) -> *mut JSObject);
603wrap!(jsapi: pub fn JS_NewInt8ArrayWithBuffer(cx: &mut JSContext, arrayBuffer: Handle<*mut JSObject>, byteOffset: usize, length: i64) -> *mut JSObject);
604wrap!(jsapi: pub fn JS_NewUint8Array(cx: &mut JSContext, nelements: usize) -> *mut JSObject);
605wrap!(jsapi: pub fn JS_NewUint8ArrayFromArray(cx: &mut JSContext, array: Handle<*mut JSObject>) -> *mut JSObject);
606wrap!(jsapi: pub fn JS_NewUint8ArrayWithBuffer(cx: &mut JSContext, arrayBuffer: Handle<*mut JSObject>, byteOffset: usize, length: i64) -> *mut JSObject);
607wrap!(jsapi: pub fn JS_NewInt16Array(cx: &mut JSContext, nelements: usize) -> *mut JSObject);
608wrap!(jsapi: pub fn JS_NewInt16ArrayFromArray(cx: &mut JSContext, array: Handle<*mut JSObject>) -> *mut JSObject);
609wrap!(jsapi: pub fn JS_NewInt16ArrayWithBuffer(cx: &mut JSContext, arrayBuffer: Handle<*mut JSObject>, byteOffset: usize, length: i64) -> *mut JSObject);
610wrap!(jsapi: pub fn JS_NewUint16Array(cx: &mut JSContext, nelements: usize) -> *mut JSObject);
611wrap!(jsapi: pub fn JS_NewUint16ArrayFromArray(cx: &mut JSContext, array: Handle<*mut JSObject>) -> *mut JSObject);
612wrap!(jsapi: pub fn JS_NewUint16ArrayWithBuffer(cx: &mut JSContext, arrayBuffer: Handle<*mut JSObject>, byteOffset: usize, length: i64) -> *mut JSObject);
613wrap!(jsapi: pub fn JS_NewInt32Array(cx: &mut JSContext, nelements: usize) -> *mut JSObject);
614wrap!(jsapi: pub fn JS_NewInt32ArrayFromArray(cx: &mut JSContext, array: Handle<*mut JSObject>) -> *mut JSObject);
615wrap!(jsapi: pub fn JS_NewInt32ArrayWithBuffer(cx: &mut JSContext, arrayBuffer: Handle<*mut JSObject>, byteOffset: usize, length: i64) -> *mut JSObject);
616wrap!(jsapi: pub fn JS_NewUint32Array(cx: &mut JSContext, nelements: usize) -> *mut JSObject);
617wrap!(jsapi: pub fn JS_NewUint32ArrayFromArray(cx: &mut JSContext, array: Handle<*mut JSObject>) -> *mut JSObject);
618wrap!(jsapi: pub fn JS_NewUint32ArrayWithBuffer(cx: &mut JSContext, arrayBuffer: Handle<*mut JSObject>, byteOffset: usize, length: i64) -> *mut JSObject);
619wrap!(jsapi: pub fn JS_NewFloat32Array(cx: &mut JSContext, nelements: usize) -> *mut JSObject);
620wrap!(jsapi: pub fn JS_NewFloat32ArrayFromArray(cx: &mut JSContext, array: Handle<*mut JSObject>) -> *mut JSObject);
621wrap!(jsapi: pub fn JS_NewFloat32ArrayWithBuffer(cx: &mut JSContext, arrayBuffer: Handle<*mut JSObject>, byteOffset: usize, length: i64) -> *mut JSObject);
622wrap!(jsapi: pub fn JS_NewFloat64Array(cx: &mut JSContext, nelements: usize) -> *mut JSObject);
623wrap!(jsapi: pub fn JS_NewFloat64ArrayFromArray(cx: &mut JSContext, array: Handle<*mut JSObject>) -> *mut JSObject);
624wrap!(jsapi: pub fn JS_NewFloat64ArrayWithBuffer(cx: &mut JSContext, arrayBuffer: Handle<*mut JSObject>, byteOffset: usize, length: i64) -> *mut JSObject);
625wrap!(jsapi: pub fn JS_NewUint8ClampedArray(cx: &mut JSContext, nelements: usize) -> *mut JSObject);
626wrap!(jsapi: pub fn JS_NewUint8ClampedArrayFromArray(cx: &mut JSContext, array: Handle<*mut JSObject>) -> *mut JSObject);
627wrap!(jsapi: pub fn JS_NewUint8ClampedArrayWithBuffer(cx: &mut JSContext, arrayBuffer: Handle<*mut JSObject>, byteOffset: usize, length: i64) -> *mut JSObject);
628wrap!(jsapi: pub fn JS_NewBigInt64Array(cx: &mut JSContext, nelements: usize) -> *mut JSObject);
629wrap!(jsapi: pub fn JS_NewBigInt64ArrayFromArray(cx: &mut JSContext, array: Handle<*mut JSObject>) -> *mut JSObject);
630wrap!(jsapi: pub fn JS_NewBigInt64ArrayWithBuffer(cx: &mut JSContext, arrayBuffer: Handle<*mut JSObject>, byteOffset: usize, length: i64) -> *mut JSObject);
631wrap!(jsapi: pub fn JS_NewBigUint64Array(cx: &mut JSContext, nelements: usize) -> *mut JSObject);
632wrap!(jsapi: pub fn JS_NewBigUint64ArrayFromArray(cx: &mut JSContext, array: Handle<*mut JSObject>) -> *mut JSObject);
633wrap!(jsapi: pub fn JS_NewBigUint64ArrayWithBuffer(cx: &mut JSContext, arrayBuffer: Handle<*mut JSObject>, byteOffset: usize, length: i64) -> *mut JSObject);
634wrap!(jsapi: pub fn JS_NewFloat16Array(cx: &mut JSContext, nelements: usize) -> *mut JSObject);
635wrap!(jsapi: pub fn JS_NewFloat16ArrayFromArray(cx: &mut JSContext, array: Handle<*mut JSObject>) -> *mut JSObject);
636wrap!(jsapi: pub fn JS_NewFloat16ArrayWithBuffer(cx: &mut JSContext, arrayBuffer: Handle<*mut JSObject>, byteOffset: usize, length: i64) -> *mut JSObject);
637wrap!(jsapi: pub fn JS_GetArrayBufferViewBuffer(cx: &mut JSContext, obj: Handle<*mut JSObject>, isSharedMemory: *mut bool) -> *mut JSObject);
638wrap!(jsapi: pub fn JS_NewDataView(cx: &mut JSContext, buffer: Handle<*mut JSObject>, byteOffset: usize, byteLength: usize) -> *mut JSObject);
639wrap!(jsapi: pub fn JS_SetGrayGCRootsTracer(cx: &mut JSContext, traceOp: JSGrayRootsTracer, data: *mut ::std::os::raw::c_void));
640wrap!(jsapi: pub fn JS_FindCompilationScope(cx: &mut JSContext, obj: HandleObject) -> *mut JSObject);
641wrap!(jsapi: pub fn JS_NewObjectWithoutMetadata(cx: &mut JSContext, clasp: *const JSClass, proto: Handle<*mut JSObject>) -> *mut JSObject);
642wrap!(jsapi: pub fn JS_NondeterministicGetWeakMapKeys(cx: &mut JSContext, obj: HandleObject, ret: MutableHandleObject) -> bool);
643wrap!(jsapi: pub fn JS_NondeterministicGetWeakSetKeys(cx: &mut JSContext, obj: HandleObject, ret: MutableHandleObject) -> bool);
644wrap!(jsapi: pub fn JS_NewDeadWrapper(cx: &mut JSContext, origObject: *mut JSObject) -> *mut JSObject);
645wrap!(jsapi: pub fn JS_CloneObject(cx: &mut JSContext, obj: HandleObject, proto: HandleObject) -> *mut JSObject);
646wrap!(jsapi: pub fn JS_InitializePropertiesFromCompatibleNativeObject(cx: &mut JSContext, dst: HandleObject, src: HandleObject) -> bool);
647wrap!(jsapi: pub fn JS_CopyOwnPropertiesAndPrivateFields(cx: &mut JSContext, target: HandleObject, obj: HandleObject) -> bool);
648wrap!(jsapi: pub fn JS_WrapPropertyDescriptor(cx: &mut JSContext, desc: MutableHandle<PropertyDescriptor>) -> bool);
649wrap!(jsapi: pub fn JS_DefineFunctionsWithHelp(cx: &mut JSContext, obj: HandleObject, fs: *const JSFunctionSpecWithHelp) -> bool);
650wrap!(jsapi: pub fn JS_NewOwningCompileOptions(cx: &mut JSContext) -> *mut OwningCompileOptions);
651wrap!(jsapi: pub fn JS_StackCapture_FirstSubsumedFrame(cx: &mut JSContext, ignoreSelfHostedFrames: bool, capture: *mut StackCapture));
652wrap!(jsapi: pub fn NewExternalArrayBuffer(cx: &mut JSContext, nbytes: usize, contents: *mut ::std::os::raw::c_void, freeFunc: BufferContentsFreeFunc, freeUserData: *mut ::std::os::raw::c_void) -> *mut JSObject);
653wrap!(jsapi: pub fn NewArrayBufferWithContents(cx: &mut JSContext, nbytes: usize, contents: *mut ::std::os::raw::c_void) -> *mut JSObject);
654wrap!(jsapi: pub fn JS_ForOfIteratorInit(iterator: *mut ForOfIterator, iterable: HandleValue, nonIterableBehavior: ForOfIterator_NonIterableBehavior) -> bool);
655wrap!(jsapi: pub fn JS_ForOfIteratorNext(iterator: *mut ForOfIterator, val: MutableHandleValue, done: *mut bool) -> bool);
656wrap!(jsapi: pub fn FromPropertyDescriptor(cx: &mut JSContext, desc_: Handle<PropertyDescriptor>, vp: MutableHandleValue) -> bool);
657wrap!(jsapi: pub fn JS_GetPropertyDescriptor(cx: &mut JSContext, obj: Handle<*mut JSObject>, name: *const ::std::os::raw::c_char, desc: MutableHandle<PropertyDescriptor>, holder: MutableHandle<*mut JSObject>, isNone: *mut bool) -> bool);
658wrap!(jsapi: pub fn JS_GetOwnPropertyDescriptorById(cx: &mut JSContext, obj: HandleObject, id: HandleId, desc: MutableHandle<PropertyDescriptor>, isNone: *mut bool) -> bool);
659wrap!(jsapi: pub fn JS_GetOwnPropertyDescriptor(cx: &mut JSContext, obj: HandleObject, name: *const ::std::os::raw::c_char, desc: MutableHandle<PropertyDescriptor>, isNone: *mut bool) -> bool);
660wrap!(jsapi: pub fn JS_GetOwnUCPropertyDescriptor(cx: &mut JSContext, obj: HandleObject, name: *const u16, namelen: usize, desc: MutableHandle<PropertyDescriptor>, isNone: *mut bool) -> bool);
661wrap!(jsapi: pub fn JS_GetPropertyDescriptorById(cx: &mut JSContext, obj: HandleObject, id: HandleId, desc: MutableHandle<PropertyDescriptor>, holder: MutableHandleObject, isNone: *mut bool) -> bool);
662wrap!(jsapi: pub fn JS_GetUCPropertyDescriptor(cx: &mut JSContext, obj: HandleObject, name: *const u16, namelen: usize, desc: MutableHandle<PropertyDescriptor>, holder: MutableHandleObject, isNone: *mut bool) -> bool);
663wrap!(jsapi: pub fn SetPropertyIgnoringNamedGetter(cx: &mut JSContext, obj: HandleObject, id: HandleId, v: HandleValue, receiver: HandleValue, ownDesc: *const Handle<PropertyDescriptor>, result: *mut ObjectOpResult) -> bool);
664wrap!(jsapi: pub fn CreateError(cx: &mut JSContext, type_: JSExnType, stack: HandleObject, fileName: HandleString, lineNumber: u32, columnNumber: u32, report: *mut JSErrorReport, message: HandleString, cause: HandleValue, rval: MutableHandleValue) -> bool);
665wrap!(jsapi: pub fn GetExceptionCause(exc: *mut JSObject, dest: MutableHandleValue));
666wrap!(jsapi: pub fn NewEnvironmentChain(cx: &mut JSContext, supportUnscopables: SupportUnscopables) -> *mut EnvironmentChain);