From b70f38bcedb40a06f5cd67518cea166f7dbfbdb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bargull?= Date: Thu, 24 Jan 2019 05:35:52 -0800 Subject: [PATCH] Bug 1522465 - Part 1: Remove JSCLASS_IS_ANONYMOUS for classes without a JSProtoKey. r=jorendorff --- js/src/builtin/ModuleObject.cpp | 11 ++++------- js/src/builtin/TestingFunctions.cpp | 3 +-- js/src/vm/EnvironmentObject.cpp | 27 +++++++++------------------ js/src/vm/GlobalObject.cpp | 3 +-- js/src/vm/JSScript.cpp | 3 +-- 5 files changed, 16 insertions(+), 31 deletions(-) diff --git a/js/src/builtin/ModuleObject.cpp b/js/src/builtin/ModuleObject.cpp index 8babf063e97b..628e807a6f08 100644 --- a/js/src/builtin/ModuleObject.cpp +++ b/js/src/builtin/ModuleObject.cpp @@ -79,8 +79,7 @@ static bool ModuleValueGetter(JSContext* cx, unsigned argc, Value* vp) { // ImportEntryObject /* static */ const Class ImportEntryObject::class_ = { - "ImportEntry", JSCLASS_HAS_RESERVED_SLOTS(ImportEntryObject::SlotCount) | - JSCLASS_IS_ANONYMOUS}; + "ImportEntry", JSCLASS_HAS_RESERVED_SLOTS(ImportEntryObject::SlotCount)}; DEFINE_GETTER_FUNCTIONS(ImportEntryObject, moduleRequest, ModuleRequestSlot) DEFINE_GETTER_FUNCTIONS(ImportEntryObject, importName, ImportNameSlot) @@ -149,8 +148,7 @@ DEFINE_UINT32_ACCESSOR_METHOD(ImportEntryObject, columnNumber) // ExportEntryObject /* static */ const Class ExportEntryObject::class_ = { - "ExportEntry", JSCLASS_HAS_RESERVED_SLOTS(ExportEntryObject::SlotCount) | - JSCLASS_IS_ANONYMOUS}; + "ExportEntry", JSCLASS_HAS_RESERVED_SLOTS(ExportEntryObject::SlotCount)}; DEFINE_GETTER_FUNCTIONS(ExportEntryObject, exportName, ExportNameSlot) DEFINE_GETTER_FUNCTIONS(ExportEntryObject, moduleRequest, ModuleRequestSlot) @@ -233,8 +231,7 @@ static Value StringOrNullValue(JSString* maybeString) { /* static */ const Class RequestedModuleObject::class_ = { "RequestedModule", - JSCLASS_HAS_RESERVED_SLOTS(RequestedModuleObject::SlotCount) | - JSCLASS_IS_ANONYMOUS}; + JSCLASS_HAS_RESERVED_SLOTS(RequestedModuleObject::SlotCount)}; DEFINE_GETTER_FUNCTIONS(RequestedModuleObject, moduleSpecifier, ModuleSpecifierSlot) @@ -692,7 +689,7 @@ void FunctionDeclaration::trace(JSTracer* trc) { /* static */ const Class ModuleObject::class_ = { "Module", - JSCLASS_HAS_RESERVED_SLOTS(ModuleObject::SlotCount) | JSCLASS_IS_ANONYMOUS | + JSCLASS_HAS_RESERVED_SLOTS(ModuleObject::SlotCount) | JSCLASS_BACKGROUND_FINALIZE, &ModuleObject::classOps_}; diff --git a/js/src/builtin/TestingFunctions.cpp b/js/src/builtin/TestingFunctions.cpp index 497fa64d1b29..2991f1474daf 100644 --- a/js/src/builtin/TestingFunctions.cpp +++ b/js/src/builtin/TestingFunctions.cpp @@ -2299,8 +2299,7 @@ static const JSClassOps FinalizeCounterClassOps = {nullptr, /* addProperty */ finalize_counter_finalize}; static const JSClass FinalizeCounterClass = { - "FinalizeCounter", JSCLASS_IS_ANONYMOUS | JSCLASS_FOREGROUND_FINALIZE, - &FinalizeCounterClassOps}; + "FinalizeCounter", JSCLASS_FOREGROUND_FINALIZE, &FinalizeCounterClassOps}; static bool MakeFinalizeObserver(JSContext* cx, unsigned argc, Value* vp) { CallArgs args = CallArgsFromVp(argc, vp); diff --git a/js/src/vm/EnvironmentObject.cpp b/js/src/vm/EnvironmentObject.cpp index db56c6db4881..3a79e525fad2 100644 --- a/js/src/vm/EnvironmentObject.cpp +++ b/js/src/vm/EnvironmentObject.cpp @@ -222,8 +222,7 @@ CallObject* CallObject::createHollowForDebug(JSContext* cx, } const Class CallObject::class_ = { - "Call", JSCLASS_IS_ANONYMOUS | - JSCLASS_HAS_RESERVED_SLOTS(CallObject::RESERVED_SLOTS)}; + "Call", JSCLASS_HAS_RESERVED_SLOTS(CallObject::RESERVED_SLOTS)}; /*****************************************************************************/ @@ -318,8 +317,7 @@ const Class CallObject::class_ = { } const Class VarEnvironmentObject::class_ = { - "Var", JSCLASS_IS_ANONYMOUS | JSCLASS_HAS_RESERVED_SLOTS( - VarEnvironmentObject::RESERVED_SLOTS)}; + "Var", JSCLASS_HAS_RESERVED_SLOTS(VarEnvironmentObject::RESERVED_SLOTS)}; /*****************************************************************************/ @@ -342,8 +340,7 @@ const ClassOps ModuleEnvironmentObject::classOps_ = { const Class ModuleEnvironmentObject::class_ = { "ModuleEnvironmentObject", - JSCLASS_HAS_RESERVED_SLOTS(ModuleEnvironmentObject::RESERVED_SLOTS) | - JSCLASS_IS_ANONYMOUS, + JSCLASS_HAS_RESERVED_SLOTS(ModuleEnvironmentObject::RESERVED_SLOTS), &ModuleEnvironmentObject::classOps_, JS_NULL_CLASS_SPEC, JS_NULL_CLASS_EXT, @@ -554,8 +551,7 @@ void ModuleEnvironmentObject::fixEnclosingEnvironmentAfterCompartmentMerge( const Class WasmInstanceEnvironmentObject::class_ = { "WasmInstance", - JSCLASS_IS_ANONYMOUS | JSCLASS_HAS_RESERVED_SLOTS( - WasmInstanceEnvironmentObject::RESERVED_SLOTS)}; + JSCLASS_HAS_RESERVED_SLOTS(WasmInstanceEnvironmentObject::RESERVED_SLOTS)}; /* static */ WasmInstanceEnvironmentObject* WasmInstanceEnvironmentObject::createHollowForDebug( @@ -591,8 +587,7 @@ WasmInstanceEnvironmentObject::createHollowForDebug( const Class WasmFunctionCallObject::class_ = { "WasmCall", - JSCLASS_IS_ANONYMOUS | - JSCLASS_HAS_RESERVED_SLOTS(WasmFunctionCallObject::RESERVED_SLOTS)}; + JSCLASS_HAS_RESERVED_SLOTS(WasmFunctionCallObject::RESERVED_SLOTS)}; /* static */ WasmFunctionCallObject* WasmFunctionCallObject::createHollowForDebug(JSContext* cx, @@ -791,8 +786,7 @@ static const ObjectOps WithEnvironmentObjectOps = { const Class WithEnvironmentObject::class_ = { "With", - JSCLASS_HAS_RESERVED_SLOTS(WithEnvironmentObject::RESERVED_SLOTS) | - JSCLASS_IS_ANONYMOUS, + JSCLASS_HAS_RESERVED_SLOTS(WithEnvironmentObject::RESERVED_SLOTS), JS_NULL_CLASS_OPS, JS_NULL_CLASS_SPEC, JS_NULL_CLASS_EXT, @@ -818,8 +812,7 @@ const Class WithEnvironmentObject::class_ = { const Class NonSyntacticVariablesObject::class_ = { "NonSyntacticVariablesObject", - JSCLASS_HAS_RESERVED_SLOTS(NonSyntacticVariablesObject::RESERVED_SLOTS) | - JSCLASS_IS_ANONYMOUS}; + JSCLASS_HAS_RESERVED_SLOTS(NonSyntacticVariablesObject::RESERVED_SLOTS)}; bool js::CreateNonSyntacticEnvironmentChain(JSContext* cx, AutoObjectVector& envChain, @@ -1069,8 +1062,7 @@ void LexicalEnvironmentObject::setWindowProxyThisValue(JSObject* obj) { const Class LexicalEnvironmentObject::class_ = { "LexicalEnvironment", - JSCLASS_HAS_RESERVED_SLOTS(LexicalEnvironmentObject::RESERVED_SLOTS) | - JSCLASS_IS_ANONYMOUS, + JSCLASS_HAS_RESERVED_SLOTS(LexicalEnvironmentObject::RESERVED_SLOTS), JS_NULL_CLASS_OPS, JS_NULL_CLASS_SPEC, JS_NULL_CLASS_EXT, @@ -1211,8 +1203,7 @@ static const ObjectOps RuntimeLexicalErrorObjectObjectOps = { const Class RuntimeLexicalErrorObject::class_ = { "RuntimeLexicalError", - JSCLASS_HAS_RESERVED_SLOTS(RuntimeLexicalErrorObject::RESERVED_SLOTS) | - JSCLASS_IS_ANONYMOUS, + JSCLASS_HAS_RESERVED_SLOTS(RuntimeLexicalErrorObject::RESERVED_SLOTS), JS_NULL_CLASS_OPS, JS_NULL_CLASS_SPEC, JS_NULL_CLASS_EXT, diff --git a/js/src/vm/GlobalObject.cpp b/js/src/vm/GlobalObject.cpp index ec275bff00f3..ff62a1701941 100644 --- a/js/src/vm/GlobalObject.cpp +++ b/js/src/vm/GlobalObject.cpp @@ -348,8 +348,7 @@ TypedObjectModuleObject& js::GlobalObject::getTypedObjectModule() const { } const Class GlobalObject::OffThreadPlaceholderObject::class_ = { - "off-thread-prototype-placeholder", - JSCLASS_IS_ANONYMOUS | JSCLASS_HAS_RESERVED_SLOTS(1)}; + "off-thread-prototype-placeholder", JSCLASS_HAS_RESERVED_SLOTS(1)}; /* static */ GlobalObject::OffThreadPlaceholderObject* GlobalObject::OffThreadPlaceholderObject::New(JSContext* cx, unsigned slot) { diff --git a/js/src/vm/JSScript.cpp b/js/src/vm/JSScript.cpp index 6ed8517dd3ae..218ff56ff918 100644 --- a/js/src/vm/JSScript.cpp +++ b/js/src/vm/JSScript.cpp @@ -1346,8 +1346,7 @@ static const ClassOps ScriptSourceObjectClassOps = { const Class ScriptSourceObject::class_ = { "ScriptSource", - JSCLASS_HAS_RESERVED_SLOTS(RESERVED_SLOTS) | JSCLASS_IS_ANONYMOUS | - JSCLASS_FOREGROUND_FINALIZE, + JSCLASS_HAS_RESERVED_SLOTS(RESERVED_SLOTS) | JSCLASS_FOREGROUND_FINALIZE, &ScriptSourceObjectClassOps}; ScriptSourceObject* ScriptSourceObject::createInternal(JSContext* cx,