mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1088214 - Remove JSCLASS_IMPLEMENTS_BARRIERS now this is implemented everywhere r=terrence
This commit is contained in:
parent
cf4c5e89de
commit
5099b9c1ad
@ -428,7 +428,7 @@ class CGDOMJSClass(CGThing):
|
||||
""",
|
||||
objectMoved=objectMovedHook)
|
||||
if self.descriptor.isGlobal():
|
||||
classFlags += "JSCLASS_DOM_GLOBAL | JSCLASS_GLOBAL_FLAGS_WITH_SLOTS(DOM_GLOBAL_SLOTS) | JSCLASS_IMPLEMENTS_BARRIERS"
|
||||
classFlags += "JSCLASS_DOM_GLOBAL | JSCLASS_GLOBAL_FLAGS_WITH_SLOTS(DOM_GLOBAL_SLOTS)"
|
||||
traceHook = "JS_GlobalObjectTraceHook"
|
||||
reservedSlots = "JSCLASS_GLOBAL_APPLICATION_SLOTS"
|
||||
if self.descriptor.interface.identifier.name == "Window":
|
||||
|
@ -206,7 +206,7 @@ CreateNPObjectMember(NPP npp, JSContext *cx, JSObject *obj, NPObject* npobj,
|
||||
const static js::Class sNPObjectJSWrapperClass =
|
||||
{
|
||||
NPRUNTIME_JSCLASS_NAME,
|
||||
JSCLASS_HAS_PRIVATE | JSCLASS_IMPLEMENTS_BARRIERS,
|
||||
JSCLASS_HAS_PRIVATE,
|
||||
NPObjWrapper_AddProperty,
|
||||
NPObjWrapper_DelProperty,
|
||||
NPObjWrapper_GetProperty,
|
||||
@ -264,7 +264,7 @@ NPObjectMember_Trace(JSTracer *trc, JSObject *obj);
|
||||
|
||||
static const JSClass sNPObjectMemberClass =
|
||||
{
|
||||
"NPObject Ambiguous Member class", JSCLASS_HAS_PRIVATE | JSCLASS_IMPLEMENTS_BARRIERS,
|
||||
"NPObject Ambiguous Member class", JSCLASS_HAS_PRIVATE,
|
||||
nullptr, nullptr, nullptr, nullptr,
|
||||
nullptr, nullptr, nullptr, NPObjectMember_Convert,
|
||||
NPObjectMember_Finalize, NPObjectMember_Call,
|
||||
|
@ -619,8 +619,7 @@ struct JSClass {
|
||||
// SetNewObjectMetadata itself
|
||||
#define JSCLASS_PRIVATE_IS_NSISUPPORTS (1<<3) // private is (nsISupports*)
|
||||
#define JSCLASS_IS_DOMJSCLASS (1<<4) // objects are DOM
|
||||
#define JSCLASS_IMPLEMENTS_BARRIERS (1<<5) // Correctly implements GC read
|
||||
// and write barriers
|
||||
// Bit 5 is unused.
|
||||
#define JSCLASS_EMULATES_UNDEFINED (1<<6) // objects of this class act
|
||||
// like the value undefined,
|
||||
// in some contexts
|
||||
|
@ -213,9 +213,6 @@ GCForReason(JSRuntime* rt, JSGCInvocationKind gckind, gcreason::Reason reason);
|
||||
* JS_GC().
|
||||
* - The GC mode must have been set to JSGC_MODE_INCREMENTAL with
|
||||
* JS_SetGCParameter().
|
||||
* - All native objects that have their own trace hook must indicate that they
|
||||
* implement read and write barriers with the JSCLASS_IMPLEMENTS_BARRIERS
|
||||
* flag.
|
||||
*
|
||||
* Note: Even if incremental GC is enabled and working correctly,
|
||||
* non-incremental collections can still happen when low on memory.
|
||||
|
@ -1025,7 +1025,7 @@ AsmJSModuleObject_trace(JSTracer* trc, JSObject* obj)
|
||||
|
||||
const Class AsmJSModuleObject::class_ = {
|
||||
"AsmJSModuleObject",
|
||||
JSCLASS_IS_ANONYMOUS | JSCLASS_IMPLEMENTS_BARRIERS | JSCLASS_DELAY_METADATA_CALLBACK |
|
||||
JSCLASS_IS_ANONYMOUS | JSCLASS_DELAY_METADATA_CALLBACK |
|
||||
JSCLASS_HAS_RESERVED_SLOTS(AsmJSModuleObject::RESERVED_SLOTS),
|
||||
nullptr, /* addProperty */
|
||||
nullptr, /* delProperty */
|
||||
|
@ -106,7 +106,6 @@ namespace {
|
||||
|
||||
const Class MapIteratorObject::class_ = {
|
||||
"Map Iterator",
|
||||
JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_HAS_RESERVED_SLOTS(MapIteratorObject::SlotCount),
|
||||
nullptr, /* addProperty */
|
||||
nullptr, /* delProperty */
|
||||
@ -223,7 +222,7 @@ MapIteratorObject::next(JSContext* cx, Handle<MapIteratorObject*> mapIterator,
|
||||
|
||||
const Class MapObject::class_ = {
|
||||
"Map",
|
||||
JSCLASS_HAS_PRIVATE | JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_HAS_PRIVATE |
|
||||
JSCLASS_HAS_CACHED_PROTO(JSProto_Map),
|
||||
nullptr, // addProperty
|
||||
nullptr, // delProperty
|
||||
@ -831,7 +830,6 @@ class SetIteratorObject : public NativeObject
|
||||
|
||||
const Class SetIteratorObject::class_ = {
|
||||
"Set Iterator",
|
||||
JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_HAS_RESERVED_SLOTS(SetIteratorObject::SlotCount),
|
||||
nullptr, /* addProperty */
|
||||
nullptr, /* delProperty */
|
||||
@ -972,7 +970,7 @@ SetIteratorObject::next(JSContext* cx, unsigned argc, Value* vp)
|
||||
|
||||
const Class SetObject::class_ = {
|
||||
"Set",
|
||||
JSCLASS_HAS_PRIVATE | JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_HAS_PRIVATE |
|
||||
JSCLASS_HAS_CACHED_PROTO(JSProto_Set),
|
||||
nullptr, // addProperty
|
||||
nullptr, // delProperty
|
||||
|
@ -69,8 +69,7 @@ ImportEntryObject::class_ = {
|
||||
"ImportEntry",
|
||||
JSCLASS_HAS_RESERVED_SLOTS(ImportEntryObject::SlotCount) |
|
||||
JSCLASS_HAS_CACHED_PROTO(JSProto_ImportEntry) |
|
||||
JSCLASS_IS_ANONYMOUS |
|
||||
JSCLASS_IMPLEMENTS_BARRIERS
|
||||
JSCLASS_IS_ANONYMOUS
|
||||
};
|
||||
|
||||
DEFINE_GETTER_FUNCTIONS(ImportEntryObject, moduleRequest, ModuleRequestSlot)
|
||||
@ -138,8 +137,7 @@ ExportEntryObject::class_ = {
|
||||
"ExportEntry",
|
||||
JSCLASS_HAS_RESERVED_SLOTS(ExportEntryObject::SlotCount) |
|
||||
JSCLASS_HAS_CACHED_PROTO(JSProto_ExportEntry) |
|
||||
JSCLASS_IS_ANONYMOUS |
|
||||
JSCLASS_IMPLEMENTS_BARRIERS
|
||||
JSCLASS_IS_ANONYMOUS
|
||||
};
|
||||
|
||||
DEFINE_GETTER_FUNCTIONS(ExportEntryObject, exportName, ExportNameSlot)
|
||||
@ -218,8 +216,7 @@ ModuleObject::class_ = {
|
||||
"Module",
|
||||
JSCLASS_HAS_RESERVED_SLOTS(ModuleObject::SlotCount) |
|
||||
JSCLASS_HAS_CACHED_PROTO(JSProto_Module) |
|
||||
JSCLASS_IS_ANONYMOUS |
|
||||
JSCLASS_IMPLEMENTS_BARRIERS,
|
||||
JSCLASS_IS_ANONYMOUS,
|
||||
nullptr, /* addProperty */
|
||||
nullptr, /* delProperty */
|
||||
nullptr, /* getProperty */
|
||||
|
@ -2247,7 +2247,7 @@ OutlineTransparentTypedObject::getOrCreateBuffer(JSContext* cx)
|
||||
#define DEFINE_TYPEDOBJ_CLASS(Name, Trace) \
|
||||
const Class Name::class_ = { \
|
||||
# Name, \
|
||||
Class::NON_NATIVE | JSCLASS_IMPLEMENTS_BARRIERS, \
|
||||
Class::NON_NATIVE, \
|
||||
nullptr, /* addProperty */ \
|
||||
nullptr, /* delProperty */ \
|
||||
nullptr, /* getProperty */ \
|
||||
|
@ -25,7 +25,7 @@ using mozilla::UniquePtr;
|
||||
|
||||
const Class WeakSetObject::class_ = {
|
||||
"WeakSet",
|
||||
JSCLASS_IMPLEMENTS_BARRIERS | JSCLASS_HAS_CACHED_PROTO(JSProto_WeakSet) |
|
||||
JSCLASS_HAS_CACHED_PROTO(JSProto_WeakSet) |
|
||||
JSCLASS_HAS_RESERVED_SLOTS(WeakSetObject::RESERVED_SLOTS)
|
||||
};
|
||||
|
||||
|
@ -559,7 +559,7 @@ static const JSClass sCDataProtoClass = {
|
||||
|
||||
static const JSClass sCTypeClass = {
|
||||
"CType",
|
||||
JSCLASS_IMPLEMENTS_BARRIERS | JSCLASS_HAS_RESERVED_SLOTS(CTYPE_SLOTS),
|
||||
JSCLASS_HAS_RESERVED_SLOTS(CTYPE_SLOTS),
|
||||
nullptr, nullptr, nullptr, nullptr, nullptr,
|
||||
nullptr, nullptr, nullptr, CType::Finalize,
|
||||
CType::ConstructData, CType::HasInstance, CType::ConstructData,
|
||||
@ -576,7 +576,7 @@ static const JSClass sCDataClass = {
|
||||
|
||||
static const JSClass sCClosureClass = {
|
||||
"CClosure",
|
||||
JSCLASS_IMPLEMENTS_BARRIERS | JSCLASS_HAS_RESERVED_SLOTS(CCLOSURE_SLOTS),
|
||||
JSCLASS_HAS_RESERVED_SLOTS(CCLOSURE_SLOTS),
|
||||
nullptr, nullptr, nullptr, nullptr, nullptr,
|
||||
nullptr, nullptr, nullptr, CClosure::Finalize,
|
||||
nullptr, nullptr, nullptr, CClosure::Trace
|
||||
|
@ -1182,13 +1182,6 @@ CallTraceHook(Functor f, JSTracer* trc, JSObject* obj, CheckGeneration check, Ar
|
||||
if (!clasp->trace)
|
||||
return &obj->as<NativeObject>();
|
||||
|
||||
// Global objects all have the same trace hook. That hook is safe without barriers
|
||||
// if the global has no custom trace hook of its own, or has been moved to a different
|
||||
// compartment, and so can't have one.
|
||||
MOZ_ASSERT_IF(!(clasp->trace == JS_GlobalObjectTraceHook &&
|
||||
(!obj->compartment()->options().getTrace() || !obj->isOwnGlobal())),
|
||||
clasp->flags & JSCLASS_IMPLEMENTS_BARRIERS);
|
||||
|
||||
if (clasp->trace == InlineTypedObject::obj_trace) {
|
||||
Shape** pshape = obj->as<InlineTypedObject>().addressOfShapeFromGC();
|
||||
f(pshape, mozilla::Forward<Args>(args)...);
|
||||
|
@ -22,7 +22,8 @@ int BarkWhenTracedClass::finalizeCount;
|
||||
int BarkWhenTracedClass::traceCount;
|
||||
|
||||
const JSClass BarkWhenTracedClass::class_ = {
|
||||
"BarkWhenTracedClass", JSCLASS_IMPLEMENTS_BARRIERS,
|
||||
"BarkWhenTracedClass",
|
||||
0,
|
||||
nullptr,
|
||||
nullptr,
|
||||
nullptr,
|
||||
|
@ -68,7 +68,6 @@ static const JSFunctionSpec exception_methods[] = {
|
||||
#define IMPLEMENT_ERROR_SUBCLASS(name) \
|
||||
{ \
|
||||
js_Error_str, /* yes, really */ \
|
||||
JSCLASS_IMPLEMENTS_BARRIERS | \
|
||||
JSCLASS_HAS_CACHED_PROTO(JSProto_##name) | \
|
||||
JSCLASS_HAS_RESERVED_SLOTS(ErrorObject::RESERVED_SLOTS), \
|
||||
nullptr, /* addProperty */ \
|
||||
@ -100,7 +99,6 @@ const Class
|
||||
ErrorObject::classes[JSEXN_LIMIT] = {
|
||||
{
|
||||
js_Error_str,
|
||||
JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_HAS_CACHED_PROTO(JSProto_Error) |
|
||||
JSCLASS_HAS_RESERVED_SLOTS(ErrorObject::RESERVED_SLOTS),
|
||||
nullptr, /* addProperty */
|
||||
|
@ -315,7 +315,6 @@ namespace js {
|
||||
name, \
|
||||
js::Class::NON_NATIVE | \
|
||||
JSCLASS_IS_PROXY | \
|
||||
JSCLASS_IMPLEMENTS_BARRIERS | \
|
||||
JSCLASS_DELAY_METADATA_CALLBACK | \
|
||||
flags, \
|
||||
nullptr, /* addProperty */ \
|
||||
|
@ -811,7 +811,6 @@ CreateFunctionPrototype(JSContext* cx, JSProtoKey key)
|
||||
|
||||
const Class JSFunction::class_ = {
|
||||
js_Function_str,
|
||||
JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_HAS_CACHED_PROTO(JSProto_Function),
|
||||
nullptr, /* addProperty */
|
||||
nullptr, /* delProperty */
|
||||
|
@ -33,9 +33,6 @@
|
||||
* - the GC mode must have been set to JSGC_MODE_INCREMENTAL with
|
||||
* JS_SetGCParameter()
|
||||
* - no thread may have an AutoKeepAtoms instance on the stack
|
||||
* - all native objects that have their own trace hook must indicate that they
|
||||
* implement read and write barriers with the JSCLASS_IMPLEMENTS_BARRIERS
|
||||
* flag
|
||||
*
|
||||
* The last condition is an engine-internal mechanism to ensure that incremental
|
||||
* collection is not carried out without the correct barriers being implemented.
|
||||
|
@ -992,7 +992,6 @@ PropertyIteratorObject::finalize(FreeOp* fop, JSObject* obj)
|
||||
|
||||
const Class PropertyIteratorObject::class_ = {
|
||||
"Iterator",
|
||||
JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_HAS_CACHED_PROTO(JSProto_Iterator) |
|
||||
JSCLASS_HAS_PRIVATE |
|
||||
JSCLASS_BACKGROUND_FINALIZE,
|
||||
@ -1013,7 +1012,7 @@ const Class PropertyIteratorObject::class_ = {
|
||||
|
||||
static const Class ArrayIteratorPrototypeClass = {
|
||||
"Array Iterator",
|
||||
JSCLASS_IMPLEMENTS_BARRIERS
|
||||
0
|
||||
};
|
||||
|
||||
enum {
|
||||
@ -1025,7 +1024,6 @@ enum {
|
||||
|
||||
const Class ArrayIteratorObject::class_ = {
|
||||
"Array Iterator",
|
||||
JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_HAS_RESERVED_SLOTS(ArrayIteratorSlotCount)
|
||||
};
|
||||
|
||||
@ -1037,7 +1035,7 @@ static const JSFunctionSpec array_iterator_methods[] = {
|
||||
|
||||
static const Class StringIteratorPrototypeClass = {
|
||||
"String Iterator",
|
||||
JSCLASS_IMPLEMENTS_BARRIERS
|
||||
0
|
||||
};
|
||||
|
||||
enum {
|
||||
@ -1048,7 +1046,6 @@ enum {
|
||||
|
||||
const Class StringIteratorObject::class_ = {
|
||||
"String Iterator",
|
||||
JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_HAS_RESERVED_SLOTS(StringIteratorSlotCount)
|
||||
};
|
||||
|
||||
|
@ -692,11 +692,6 @@ NewObject(ExclusiveContext* cx, HandleObjectGroup group, gc::AllocKind kind,
|
||||
obj = nobj;
|
||||
}
|
||||
|
||||
bool globalWithoutCustomTrace = clasp->trace == JS_GlobalObjectTraceHook &&
|
||||
!cx->compartment()->options().getTrace();
|
||||
if (clasp->trace && !globalWithoutCustomTrace)
|
||||
MOZ_RELEASE_ASSERT(clasp->flags & JSCLASS_IMPLEMENTS_BARRIERS);
|
||||
|
||||
probes::CreateObject(cx, obj);
|
||||
return obj;
|
||||
}
|
||||
|
@ -1494,7 +1494,7 @@ ScriptSourceObject::finalize(FreeOp* fop, JSObject* obj)
|
||||
const Class ScriptSourceObject::class_ = {
|
||||
"ScriptSource",
|
||||
JSCLASS_HAS_RESERVED_SLOTS(RESERVED_SLOTS) |
|
||||
JSCLASS_IMPLEMENTS_BARRIERS | JSCLASS_IS_ANONYMOUS,
|
||||
JSCLASS_IS_ANONYMOUS,
|
||||
nullptr, /* addProperty */
|
||||
nullptr, /* delProperty */
|
||||
nullptr, /* getProperty */
|
||||
|
@ -614,7 +614,7 @@ WeakMap_construct(JSContext* cx, unsigned argc, Value* vp)
|
||||
|
||||
const Class WeakMapObject::class_ = {
|
||||
"WeakMap",
|
||||
JSCLASS_HAS_PRIVATE | JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_HAS_PRIVATE |
|
||||
JSCLASS_HAS_CACHED_PROTO(JSProto_WeakMap),
|
||||
nullptr, /* addProperty */
|
||||
nullptr, /* delProperty */
|
||||
|
@ -626,7 +626,7 @@ ArgumentsObject::objectMovedDuringMinorGC(JSTracer* trc, JSObject* dst, JSObject
|
||||
*/
|
||||
const Class NormalArgumentsObject::class_ = {
|
||||
"Arguments",
|
||||
JSCLASS_IMPLEMENTS_BARRIERS | JSCLASS_DELAY_METADATA_CALLBACK |
|
||||
JSCLASS_DELAY_METADATA_CALLBACK |
|
||||
JSCLASS_HAS_RESERVED_SLOTS(NormalArgumentsObject::RESERVED_SLOTS) |
|
||||
JSCLASS_HAS_CACHED_PROTO(JSProto_Object) |
|
||||
JSCLASS_SKIP_NURSERY_FINALIZE |
|
||||
@ -653,7 +653,7 @@ const Class NormalArgumentsObject::class_ = {
|
||||
*/
|
||||
const Class StrictArgumentsObject::class_ = {
|
||||
"Arguments",
|
||||
JSCLASS_IMPLEMENTS_BARRIERS | JSCLASS_DELAY_METADATA_CALLBACK |
|
||||
JSCLASS_DELAY_METADATA_CALLBACK |
|
||||
JSCLASS_HAS_RESERVED_SLOTS(StrictArgumentsObject::RESERVED_SLOTS) |
|
||||
JSCLASS_HAS_CACHED_PROTO(JSProto_Object) |
|
||||
JSCLASS_SKIP_NURSERY_FINALIZE |
|
||||
|
@ -99,7 +99,6 @@ const Class ArrayBufferObject::protoClass = {
|
||||
|
||||
const Class ArrayBufferObject::class_ = {
|
||||
"ArrayBuffer",
|
||||
JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_DELAY_METADATA_CALLBACK |
|
||||
JSCLASS_HAS_RESERVED_SLOTS(RESERVED_SLOTS) |
|
||||
JSCLASS_HAS_CACHED_PROTO(JSProto_ArrayBuffer) |
|
||||
|
@ -2594,7 +2594,7 @@ Debugger::finalize(FreeOp* fop, JSObject* obj)
|
||||
|
||||
const Class Debugger::jsclass = {
|
||||
"Debugger",
|
||||
JSCLASS_HAS_PRIVATE | JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_HAS_PRIVATE |
|
||||
JSCLASS_HAS_RESERVED_SLOTS(JSSLOT_DEBUG_COUNT),
|
||||
nullptr, nullptr, nullptr, nullptr, nullptr,
|
||||
nullptr, nullptr, nullptr, Debugger::finalize,
|
||||
@ -4483,7 +4483,7 @@ DebuggerScript_trace(JSTracer* trc, JSObject* obj)
|
||||
|
||||
const Class DebuggerScript_class = {
|
||||
"Script",
|
||||
JSCLASS_HAS_PRIVATE | JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_HAS_PRIVATE |
|
||||
JSCLASS_HAS_RESERVED_SLOTS(JSSLOT_DEBUGSCRIPT_COUNT),
|
||||
nullptr, nullptr, nullptr, nullptr, nullptr,
|
||||
nullptr, nullptr, nullptr, nullptr,
|
||||
@ -5491,7 +5491,7 @@ DebuggerSource_trace(JSTracer* trc, JSObject* obj)
|
||||
|
||||
const Class DebuggerSource_class = {
|
||||
"Source",
|
||||
JSCLASS_HAS_PRIVATE | JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_HAS_PRIVATE |
|
||||
JSCLASS_HAS_RESERVED_SLOTS(JSSLOT_DEBUGSOURCE_COUNT),
|
||||
nullptr, nullptr, nullptr, nullptr, nullptr,
|
||||
nullptr, nullptr, nullptr, nullptr,
|
||||
@ -6617,7 +6617,7 @@ DebuggerObject_trace(JSTracer* trc, JSObject* obj)
|
||||
|
||||
const Class DebuggerObject_class = {
|
||||
"Object",
|
||||
JSCLASS_HAS_PRIVATE | JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_HAS_PRIVATE |
|
||||
JSCLASS_HAS_RESERVED_SLOTS(JSSLOT_DEBUGOBJECT_COUNT),
|
||||
nullptr, nullptr, nullptr, nullptr, nullptr,
|
||||
nullptr, nullptr, nullptr, nullptr,
|
||||
@ -7563,7 +7563,7 @@ DebuggerEnv_trace(JSTracer* trc, JSObject* obj)
|
||||
|
||||
const Class DebuggerEnv_class = {
|
||||
"Environment",
|
||||
JSCLASS_HAS_PRIVATE | JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_HAS_PRIVATE |
|
||||
JSCLASS_HAS_RESERVED_SLOTS(JSSLOT_DEBUGENV_COUNT),
|
||||
nullptr, nullptr, nullptr, nullptr, nullptr,
|
||||
nullptr, nullptr, nullptr, nullptr,
|
||||
|
@ -75,7 +75,7 @@ DebuggerMemory::construct(JSContext* cx, unsigned argc, Value* vp)
|
||||
|
||||
/* static */ const Class DebuggerMemory::class_ = {
|
||||
"Memory",
|
||||
JSCLASS_HAS_PRIVATE | JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_HAS_PRIVATE |
|
||||
JSCLASS_HAS_RESERVED_SLOTS(JSSLOT_COUNT)
|
||||
};
|
||||
|
||||
|
@ -295,7 +295,7 @@ ForOfPIC_traceObject(JSTracer* trc, JSObject* obj)
|
||||
}
|
||||
|
||||
const Class ForOfPIC::jsclass = {
|
||||
"ForOfPIC", JSCLASS_HAS_PRIVATE | JSCLASS_IMPLEMENTS_BARRIERS,
|
||||
"ForOfPIC", JSCLASS_HAS_PRIVATE,
|
||||
nullptr, nullptr, nullptr, nullptr, nullptr,
|
||||
nullptr, nullptr, nullptr, ForOfPIC_finalize,
|
||||
nullptr, /* call */
|
||||
|
@ -91,7 +91,6 @@ class ProxyObject : public JSObject
|
||||
// Proxy classes are not allowed to have call or construct hooks directly. Their
|
||||
// callability is instead decided by handler()->isCallable().
|
||||
return clasp->isProxy() &&
|
||||
(clasp->flags & JSCLASS_IMPLEMENTS_BARRIERS) &&
|
||||
clasp->trace == proxy_Trace &&
|
||||
!clasp->call && !clasp->construct;
|
||||
}
|
||||
|
@ -242,7 +242,7 @@ RegExpObject::trace(JSTracer* trc, JSObject* obj)
|
||||
|
||||
const Class RegExpObject::class_ = {
|
||||
js_RegExp_str,
|
||||
JSCLASS_HAS_PRIVATE | JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_HAS_PRIVATE |
|
||||
JSCLASS_HAS_RESERVED_SLOTS(RegExpObject::RESERVED_SLOTS) |
|
||||
JSCLASS_HAS_CACHED_PROTO(JSProto_RegExp),
|
||||
nullptr, /* addProperty */
|
||||
|
@ -37,7 +37,7 @@ resc_trace(JSTracer* trc, JSObject* obj)
|
||||
|
||||
const Class RegExpStaticsObject::class_ = {
|
||||
"RegExpStatics",
|
||||
JSCLASS_HAS_PRIVATE | JSCLASS_IMPLEMENTS_BARRIERS,
|
||||
JSCLASS_HAS_PRIVATE,
|
||||
nullptr, /* addProperty */
|
||||
nullptr, /* delProperty */
|
||||
nullptr, /* getProperty */
|
||||
|
@ -282,7 +282,7 @@ SavedFrame::finishSavedFrameInit(JSContext* cx, HandleObject ctor, HandleObject
|
||||
|
||||
/* static */ const Class SavedFrame::class_ = {
|
||||
"SavedFrame",
|
||||
JSCLASS_HAS_PRIVATE | JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_HAS_PRIVATE |
|
||||
JSCLASS_HAS_RESERVED_SLOTS(SavedFrame::JSSLOT_COUNT) |
|
||||
JSCLASS_HAS_CACHED_PROTO(JSProto_SavedFrame) |
|
||||
JSCLASS_IS_ANONYMOUS,
|
||||
|
@ -315,7 +315,6 @@ const Class CallObject::class_ = {
|
||||
|
||||
const Class ModuleEnvironmentObject::class_ = {
|
||||
"ModuleEnvironmentObject",
|
||||
JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_HAS_RESERVED_SLOTS(ModuleEnvironmentObject::RESERVED_SLOTS) |
|
||||
JSCLASS_IS_ANONYMOUS
|
||||
};
|
||||
@ -546,7 +545,6 @@ with_ThisObject(JSContext* cx, HandleObject obj)
|
||||
|
||||
const Class StaticWithObject::class_ = {
|
||||
"WithTemplate",
|
||||
JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_HAS_RESERVED_SLOTS(StaticWithObject::RESERVED_SLOTS) |
|
||||
JSCLASS_IS_ANONYMOUS
|
||||
};
|
||||
@ -788,7 +786,6 @@ StaticBlockObject::addVar(ExclusiveContext* cx, Handle<StaticBlockObject*> block
|
||||
|
||||
const Class BlockObject::class_ = {
|
||||
"Block",
|
||||
JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_HAS_RESERVED_SLOTS(BlockObject::RESERVED_SLOTS) |
|
||||
JSCLASS_IS_ANONYMOUS
|
||||
};
|
||||
|
@ -304,7 +304,6 @@ const Class SharedArrayBufferObject::protoClass = {
|
||||
|
||||
const Class SharedArrayBufferObject::class_ = {
|
||||
"SharedArrayBuffer",
|
||||
JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_DELAY_METADATA_CALLBACK |
|
||||
JSCLASS_HAS_RESERVED_SLOTS(SharedArrayBufferObject::RESERVED_SLOTS) |
|
||||
JSCLASS_HAS_CACHED_PROTO(JSProto_SharedArrayBuffer),
|
||||
|
@ -726,7 +726,7 @@ IMPL_SHARED_TYPED_ARRAY_COMBINED_UNWRAPPERS(Float64, double, double)
|
||||
{ \
|
||||
"Shared" #_typedArray, \
|
||||
JSCLASS_HAS_RESERVED_SLOTS(SharedTypedArrayObject::RESERVED_SLOTS) | \
|
||||
JSCLASS_HAS_PRIVATE | JSCLASS_IMPLEMENTS_BARRIERS | \
|
||||
JSCLASS_HAS_PRIVATE | \
|
||||
JSCLASS_HAS_CACHED_PROTO(JSProto_Shared##_typedArray), \
|
||||
nullptr, /* addProperty */ \
|
||||
nullptr, /* delProperty */ \
|
||||
|
@ -1786,7 +1786,7 @@ IMPL_TYPED_ARRAY_COMBINED_UNWRAPPERS(Float64, double, double)
|
||||
{ \
|
||||
#_typedArray, \
|
||||
JSCLASS_HAS_RESERVED_SLOTS(TypedArrayLayout::RESERVED_SLOTS) | \
|
||||
JSCLASS_HAS_PRIVATE | JSCLASS_IMPLEMENTS_BARRIERS | \
|
||||
JSCLASS_HAS_PRIVATE | \
|
||||
JSCLASS_HAS_CACHED_PROTO(JSProto_##_typedArray) | \
|
||||
JSCLASS_DELAY_METADATA_CALLBACK, \
|
||||
nullptr, /* addProperty */ \
|
||||
@ -1888,7 +1888,6 @@ const Class DataViewObject::protoClass = {
|
||||
const Class DataViewObject::class_ = {
|
||||
"DataView",
|
||||
JSCLASS_HAS_PRIVATE |
|
||||
JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_HAS_RESERVED_SLOTS(TypedArrayLayout::RESERVED_SLOTS) |
|
||||
JSCLASS_HAS_CACHED_PROTO(JSProto_DataView),
|
||||
nullptr, /* addProperty */
|
||||
|
@ -927,13 +927,12 @@ UnboxedPlainObject::obj_enumerate(JSContext* cx, HandleObject obj, AutoIdVector&
|
||||
|
||||
const Class UnboxedExpandoObject::class_ = {
|
||||
"UnboxedExpandoObject",
|
||||
JSCLASS_IMPLEMENTS_BARRIERS
|
||||
0
|
||||
};
|
||||
|
||||
const Class UnboxedPlainObject::class_ = {
|
||||
js_Object_str,
|
||||
Class::NON_NATIVE |
|
||||
JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_HAS_CACHED_PROTO(JSProto_Object),
|
||||
nullptr, /* addProperty */
|
||||
nullptr, /* delProperty */
|
||||
@ -1600,7 +1599,6 @@ UnboxedArrayObject::obj_enumerate(JSContext* cx, HandleObject obj, AutoIdVector&
|
||||
const Class UnboxedArrayObject::class_ = {
|
||||
"Array",
|
||||
Class::NON_NATIVE |
|
||||
JSCLASS_IMPLEMENTS_BARRIERS |
|
||||
JSCLASS_SKIP_NURSERY_FINALIZE |
|
||||
JSCLASS_BACKGROUND_FINALIZE,
|
||||
nullptr, /* addProperty */
|
||||
|
@ -210,7 +210,7 @@ extern const char XPC_XPCONNECT_CONTRACTID[];
|
||||
return (result || !src) ? NS_OK : NS_ERROR_OUT_OF_MEMORY
|
||||
|
||||
|
||||
#define WRAPPER_FLAGS (JSCLASS_HAS_PRIVATE | JSCLASS_IMPLEMENTS_BARRIERS )
|
||||
#define WRAPPER_FLAGS JSCLASS_HAS_PRIVATE
|
||||
|
||||
#define INVALID_OBJECT ((JSObject*)1)
|
||||
|
||||
|
@ -151,7 +151,7 @@ struct RuntimeStats;
|
||||
|
||||
#define XPCONNECT_GLOBAL_FLAGS_WITH_EXTRA_SLOTS(n) \
|
||||
JSCLASS_DOM_GLOBAL | JSCLASS_HAS_PRIVATE | \
|
||||
JSCLASS_PRIVATE_IS_NSISUPPORTS | JSCLASS_IMPLEMENTS_BARRIERS | \
|
||||
JSCLASS_PRIVATE_IS_NSISUPPORTS | \
|
||||
JSCLASS_GLOBAL_FLAGS_WITH_SLOTS(DOM_GLOBAL_SLOTS + n)
|
||||
|
||||
#define XPCONNECT_GLOBAL_EXTRA_SLOT_OFFSET (JSCLASS_GLOBAL_SLOT_COUNT + DOM_GLOBAL_SLOTS)
|
||||
|
Loading…
Reference in New Issue
Block a user