1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 * vim: set ts=8 sts=2 et sw=2 tw=80:
3 * This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
11 * JS public API typedefs.
16 #include "js/ProtoKey.h"
17 #include "js/Result.h"
18 #include "js/TraceKind.h"
19 #include "js/TypeDecls.h"
21 #if defined(JS_GC_ZEAL) || defined(DEBUG)
22 # define JSGC_HASH_TABLE_CHECKS
29 class JS_PUBLIC_API RealmOptions
;
33 /* Result of typeof operator enumeration. */
35 JSTYPE_UNDEFINED
, /* undefined */
36 JSTYPE_OBJECT
, /* object */
37 JSTYPE_FUNCTION
, /* function */
38 JSTYPE_STRING
, /* string */
39 JSTYPE_NUMBER
, /* number */
40 JSTYPE_BOOLEAN
, /* boolean */
41 JSTYPE_SYMBOL
, /* symbol */
42 JSTYPE_BIGINT
, /* BigInt */
43 #ifdef ENABLE_RECORD_TUPLE
44 JSTYPE_RECORD
, /* record */
45 JSTYPE_TUPLE
, /* tuple */
50 /* Dense index into cached prototypes and class atoms for standard objects. */
52 #define PROTOKEY_AND_INITIALIZER(name, clasp) JSProto_##name,
53 JS_FOR_EACH_PROTOTYPE(PROTOKEY_AND_INITIALIZER
)
54 #undef PROTOKEY_AND_INITIALIZER
58 /* Struct forward declarations. */
61 struct JSFunctionSpec
;
63 struct JSPropertySpec
;
64 struct JSSecurityCallbacks
;
65 struct JSStructuredCloneCallbacks
;
66 struct JSStructuredCloneReader
;
67 struct JSStructuredCloneWriter
;
68 class JS_PUBLIC_API JSTracer
;
73 struct JSConstScalarSpec
;
74 using JSConstDoubleSpec
= JSConstScalarSpec
<double>;
75 using JSConstIntegerSpec
= JSConstScalarSpec
<int32_t>;
79 inline JS::Realm
* GetContextRealm(const JSContext
* cx
);
80 inline JS::Compartment
* GetContextCompartment(const JSContext
* cx
);
81 inline JS::Zone
* GetContextZone(const JSContext
* cx
);
83 // Whether the current thread is permitted access to any part of the specified
85 JS_PUBLIC_API
bool CurrentThreadCanAccessRuntime(const JSRuntime
* rt
);
88 JS_PUBLIC_API
bool CurrentThreadIsMainThread();
89 JS_PUBLIC_API
bool CurrentThreadIsPerformingGC();
96 class JS_PUBLIC_API PropertyDescriptor
;
98 // Decorates the Unlinking phase of CycleCollection so that accidental use
99 // of barriered accessors results in assertions instead of leaks.
100 class MOZ_STACK_CLASS JS_PUBLIC_API AutoEnterCycleCollection
{
105 explicit AutoEnterCycleCollection(JSRuntime
* rt
);
106 ~AutoEnterCycleCollection();
109 explicit AutoEnterCycleCollection(JSRuntime
* rt
) {}
110 ~AutoEnterCycleCollection() {}
118 // Defined in NSPR prio.h.
119 using PRFileDesc
= struct PRFileDesc
;
122 #endif /* jspubtd_h */