From 41c2b34542c33311c0a346bac012765f43a65673 Mon Sep 17 00:00:00 2001 From: Martok Date: Sat, 21 Jan 2023 00:55:40 +0100 Subject: [PATCH] No issue - Remove "code" from jsprototype.h macros Based-on: m-c 1394084 --- js/src/jsapi.cpp | 4 +- js/src/jsatom.cpp | 4 +- js/src/jsatom.h | 2 +- js/src/jsobj.cpp | 4 +- js/src/jsprototypes.h | 113 ++++++++++++++++++------------------- js/src/jspubtd.h | 2 +- js/src/vm/GlobalObject.cpp | 6 +- js/src/vm/Runtime.h | 2 +- 8 files changed, 68 insertions(+), 69 deletions(-) diff --git a/js/src/jsapi.cpp b/js/src/jsapi.cpp index d16df26ba7..ca6289344b 100644 --- a/js/src/jsapi.cpp +++ b/js/src/jsapi.cpp @@ -984,8 +984,8 @@ LookupStdName(const JSAtomState& names, JSAtom* name, const JSStdName* table) * JSProtoKey does not correspond to a class with a meaningful constructor, we * insert a null entry into the table. */ -#define STD_NAME_ENTRY(name, code, init, clasp) { EAGER_ATOM(name), static_cast(code) }, -#define STD_DUMMY_ENTRY(name, code, init, dummy) { 0, JSProto_Null }, +#define STD_NAME_ENTRY(name, init, clasp) { EAGER_ATOM(name), JSProto_##name }, +#define STD_DUMMY_ENTRY(name, init, dummy) { 0, JSProto_Null }, static const JSStdName standard_class_names[] = { JS_FOR_PROTOTYPES(STD_NAME_ENTRY, STD_DUMMY_ENTRY) { 0, JSProto_LIMIT } diff --git a/js/src/jsatom.cpp b/js/src/jsatom.cpp index 7c90e19d25..6a1ca82011 100644 --- a/js/src/jsatom.cpp +++ b/js/src/jsatom.cpp @@ -44,7 +44,7 @@ js::AtomToPrintableString(ExclusiveContext* cx, JSAtom* atom, JSAutoByteString* return bytes->encodeLatin1(cx, str); } -#define DEFINE_PROTO_STRING(name,code,init,clasp) const char js_##name##_str[] = #name; +#define DEFINE_PROTO_STRING(name,init,clasp) const char js_##name##_str[] = #name; JS_FOR_EACH_PROTOTYPE(DEFINE_PROTO_STRING) #undef DEFINE_PROTO_STRING @@ -98,7 +98,7 @@ JSRuntime::initializeAtoms(JSContext* cx) #define COMMON_NAME_INFO(idpart, id, text) { js_##idpart##_str, sizeof(text) - 1 }, FOR_EACH_COMMON_PROPERTYNAME(COMMON_NAME_INFO) #undef COMMON_NAME_INFO -#define COMMON_NAME_INFO(name, code, init, clasp) { js_##name##_str, sizeof(#name) - 1 }, +#define COMMON_NAME_INFO(name, init, clasp) { js_##name##_str, sizeof(#name) - 1 }, JS_FOR_EACH_PROTOTYPE(COMMON_NAME_INFO) #undef COMMON_NAME_INFO #define COMMON_NAME_INFO(name) { #name, sizeof(#name) - 1 }, diff --git a/js/src/jsatom.h b/js/src/jsatom.h index 8f076171cd..eb43442e63 100644 --- a/js/src/jsatom.h +++ b/js/src/jsatom.h @@ -132,7 +132,7 @@ extern bool AtomIsPinned(JSContext* cx, JSAtom* atom); /* Well-known predefined C strings. */ -#define DECLARE_PROTO_STR(name,code,init,clasp) extern const char js_##name##_str[]; +#define DECLARE_PROTO_STR(name,init,clasp) extern const char js_##name##_str[]; JS_FOR_EACH_PROTOTYPE(DECLARE_PROTO_STR) #undef DECLARE_PROTO_STR diff --git a/js/src/jsobj.cpp b/js/src/jsobj.cpp index a23ac63366..4b3d5758d7 100644 --- a/js/src/jsobj.cpp +++ b/js/src/jsobj.cpp @@ -3196,8 +3196,8 @@ GetObjectSlotNameFunctor::operator()(JS::CallbackTracer* trc, char* buf, size_t pattern = "CLASS_OBJECT(%s)"; if (false) ; -#define TEST_SLOT_MATCHES_PROTOTYPE(name,code,init,clasp) \ - else if ((code) == slot) { slotname = js_##name##_str; } +#define TEST_SLOT_MATCHES_PROTOTYPE(name,init,clasp) \ + else if ((JSProto_##name) == slot) { slotname = js_##name##_str; } JS_FOR_EACH_PROTOTYPE(TEST_SLOT_MATCHES_PROTOTYPE) #undef TEST_SLOT_MATCHES_PROTOTYPE } else { diff --git a/js/src/jsprototypes.h b/js/src/jsprototypes.h index 615368a847..880fc1054e 100644 --- a/js/src/jsprototypes.h +++ b/js/src/jsprototypes.h @@ -9,9 +9,8 @@ /* A higher-order macro for enumerating all JSProtoKey values. */ /* * Consumers define macros as follows: - * macro(name, code, init, clasp) + * macro(name, init, clasp) * name: The canonical name of the class. - * code: The enumerator code. There are part of the XDR API, and must not change. * init: Initialization function. These are |extern "C";|, and clients should use * |extern "C" {}| as appropriate when using this macro. * clasp: The JSClass for this object, or "dummy" if it doesn't exist. @@ -57,61 +56,61 @@ #endif #define JS_FOR_PROTOTYPES(real,imaginary) \ - imaginary(Null, 0, InitNullClass, dummy) \ - real(Object, 1, InitViaClassSpec, OCLASP(Plain)) \ - real(Function, 2, InitViaClassSpec, &JSFunction::class_) \ - real(Array, 3, InitViaClassSpec, OCLASP(Array)) \ - real(Boolean, 4, InitBooleanClass, OCLASP(Boolean)) \ - real(JSON, 5, InitJSONClass, CLASP(JSON)) \ - real(Date, 6, InitViaClassSpec, OCLASP(Date)) \ - real(Math, 7, InitMathClass, CLASP(Math)) \ - real(Number, 8, InitNumberClass, OCLASP(Number)) \ - real(String, 9, InitStringClass, OCLASP(String)) \ - real(RegExp, 10, InitViaClassSpec, OCLASP(RegExp)) \ - real(Error, 11, InitViaClassSpec, ERROR_CLASP(JSEXN_ERR)) \ - real(InternalError, 12, InitViaClassSpec, ERROR_CLASP(JSEXN_INTERNALERR)) \ - real(EvalError, 13, InitViaClassSpec, ERROR_CLASP(JSEXN_EVALERR)) \ - real(RangeError, 14, InitViaClassSpec, ERROR_CLASP(JSEXN_RANGEERR)) \ - real(ReferenceError, 15, InitViaClassSpec, ERROR_CLASP(JSEXN_REFERENCEERR)) \ - real(SyntaxError, 16, InitViaClassSpec, ERROR_CLASP(JSEXN_SYNTAXERR)) \ - real(TypeError, 17, InitViaClassSpec, ERROR_CLASP(JSEXN_TYPEERR)) \ - real(URIError, 18, InitViaClassSpec, ERROR_CLASP(JSEXN_URIERR)) \ - real(DebuggeeWouldRun, 19, InitViaClassSpec, ERROR_CLASP(JSEXN_DEBUGGEEWOULDRUN)) \ - real(CompileError, 20, InitViaClassSpec, ERROR_CLASP(JSEXN_WASMCOMPILEERROR)) \ - real(RuntimeError, 21, InitViaClassSpec, ERROR_CLASP(JSEXN_WASMRUNTIMEERROR)) \ - real(Iterator, 22, InitLegacyIteratorClass,OCLASP(PropertyIterator)) \ - real(StopIteration, 23, InitStopIterationClass, OCLASP(StopIteration)) \ - real(ArrayBuffer, 24, InitViaClassSpec, OCLASP(ArrayBuffer)) \ - real(Int8Array, 25, InitViaClassSpec, TYPED_ARRAY_CLASP(Int8)) \ - real(Uint8Array, 26, InitViaClassSpec, TYPED_ARRAY_CLASP(Uint8)) \ - real(Int16Array, 27, InitViaClassSpec, TYPED_ARRAY_CLASP(Int16)) \ - real(Uint16Array, 28, InitViaClassSpec, TYPED_ARRAY_CLASP(Uint16)) \ - real(Int32Array, 29, InitViaClassSpec, TYPED_ARRAY_CLASP(Int32)) \ - real(Uint32Array, 30, InitViaClassSpec, TYPED_ARRAY_CLASP(Uint32)) \ - real(Float32Array, 31, InitViaClassSpec, TYPED_ARRAY_CLASP(Float32)) \ - real(Float64Array, 32, InitViaClassSpec, TYPED_ARRAY_CLASP(Float64)) \ - real(Uint8ClampedArray, 33, InitViaClassSpec, TYPED_ARRAY_CLASP(Uint8Clamped)) \ - real(Proxy, 34, InitProxyClass, js::ProxyClassPtr) \ - real(WeakMap, 35, InitWeakMapClass, OCLASP(WeakMap)) \ - real(Map, 36, InitMapClass, OCLASP(Map)) \ - real(Set, 37, InitSetClass, OCLASP(Set)) \ - real(DataView, 38, InitDataViewClass, OCLASP(DataView)) \ - real(Symbol, 39, InitSymbolClass, OCLASP(Symbol)) \ -IF_SAB(real,imaginary)(SharedArrayBuffer, 40, InitViaClassSpec, OCLASP(SharedArrayBuffer)) \ -IF_INTL(real,imaginary) (Intl, 41, InitIntlClass, CLASP(Intl)) \ -IF_BDATA(real,imaginary)(TypedObject, 42, InitTypedObjectModuleObject, OCLASP(TypedObjectModule)) \ - real(Reflect, 43, InitReflect, nullptr) \ -IF_SIMD(real,imaginary)(SIMD, 44, InitSimdClass, OCLASP(Simd)) \ - real(WeakSet, 45, InitWeakSetClass, OCLASP(WeakSet)) \ - real(TypedArray, 46, InitViaClassSpec, &js::TypedArrayObject::sharedTypedArrayPrototypeClass) \ -IF_SAB(real,imaginary)(Atomics, 47, InitAtomicsClass, OCLASP(Atomics)) \ - real(SavedFrame, 48, InitViaClassSpec, &js::SavedFrame::class_) \ - real(WebAssembly, 49, InitWebAssemblyClass, CLASP(WebAssembly)) \ - imaginary(WasmModule, 50, dummy, dummy) \ - imaginary(WasmInstance, 51, dummy, dummy) \ - imaginary(WasmMemory, 52, dummy, dummy) \ - imaginary(WasmTable, 53, dummy, dummy) \ - real(Promise, 54, InitViaClassSpec, OCLASP(Promise)) \ + imaginary(Null, InitNullClass, dummy) \ + real(Object, InitViaClassSpec, OCLASP(Plain)) \ + real(Function, InitViaClassSpec, &JSFunction::class_) \ + real(Array, InitViaClassSpec, OCLASP(Array)) \ + real(Boolean, InitBooleanClass, OCLASP(Boolean)) \ + real(JSON, InitJSONClass, CLASP(JSON)) \ + real(Date, InitViaClassSpec, OCLASP(Date)) \ + real(Math, InitMathClass, CLASP(Math)) \ + real(Number, InitNumberClass, OCLASP(Number)) \ + real(String, InitStringClass, OCLASP(String)) \ + real(RegExp, InitViaClassSpec, OCLASP(RegExp)) \ + real(Error, InitViaClassSpec, ERROR_CLASP(JSEXN_ERR)) \ + real(InternalError, InitViaClassSpec, ERROR_CLASP(JSEXN_INTERNALERR)) \ + real(EvalError, InitViaClassSpec, ERROR_CLASP(JSEXN_EVALERR)) \ + real(RangeError, InitViaClassSpec, ERROR_CLASP(JSEXN_RANGEERR)) \ + real(ReferenceError, InitViaClassSpec, ERROR_CLASP(JSEXN_REFERENCEERR)) \ + real(SyntaxError, InitViaClassSpec, ERROR_CLASP(JSEXN_SYNTAXERR)) \ + real(TypeError, InitViaClassSpec, ERROR_CLASP(JSEXN_TYPEERR)) \ + real(URIError, InitViaClassSpec, ERROR_CLASP(JSEXN_URIERR)) \ + real(DebuggeeWouldRun, InitViaClassSpec, ERROR_CLASP(JSEXN_DEBUGGEEWOULDRUN)) \ + real(CompileError, InitViaClassSpec, ERROR_CLASP(JSEXN_WASMCOMPILEERROR)) \ + real(RuntimeError, InitViaClassSpec, ERROR_CLASP(JSEXN_WASMRUNTIMEERROR)) \ + real(Iterator, InitLegacyIteratorClass,OCLASP(PropertyIterator)) \ + real(StopIteration, InitStopIterationClass, OCLASP(StopIteration)) \ + real(ArrayBuffer, InitViaClassSpec, OCLASP(ArrayBuffer)) \ + real(Int8Array, InitViaClassSpec, TYPED_ARRAY_CLASP(Int8)) \ + real(Uint8Array, InitViaClassSpec, TYPED_ARRAY_CLASP(Uint8)) \ + real(Int16Array, InitViaClassSpec, TYPED_ARRAY_CLASP(Int16)) \ + real(Uint16Array, InitViaClassSpec, TYPED_ARRAY_CLASP(Uint16)) \ + real(Int32Array, InitViaClassSpec, TYPED_ARRAY_CLASP(Int32)) \ + real(Uint32Array, InitViaClassSpec, TYPED_ARRAY_CLASP(Uint32)) \ + real(Float32Array, InitViaClassSpec, TYPED_ARRAY_CLASP(Float32)) \ + real(Float64Array, InitViaClassSpec, TYPED_ARRAY_CLASP(Float64)) \ + real(Uint8ClampedArray, InitViaClassSpec, TYPED_ARRAY_CLASP(Uint8Clamped)) \ + real(Proxy, InitProxyClass, js::ProxyClassPtr) \ + real(WeakMap, InitWeakMapClass, OCLASP(WeakMap)) \ + real(Map, InitMapClass, OCLASP(Map)) \ + real(Set, InitSetClass, OCLASP(Set)) \ + real(DataView, InitDataViewClass, OCLASP(DataView)) \ + real(Symbol, InitSymbolClass, OCLASP(Symbol)) \ +IF_SAB(real,imaginary)(SharedArrayBuffer, InitViaClassSpec, OCLASP(SharedArrayBuffer)) \ +IF_INTL(real,imaginary) (Intl, InitIntlClass, CLASP(Intl)) \ +IF_BDATA(real,imaginary)(TypedObject, InitTypedObjectModuleObject, OCLASP(TypedObjectModule)) \ + real(Reflect, InitReflect, nullptr) \ +IF_SIMD(real,imaginary)(SIMD, InitSimdClass, OCLASP(Simd)) \ + real(WeakSet, InitWeakSetClass, OCLASP(WeakSet)) \ + real(TypedArray, InitViaClassSpec, &js::TypedArrayObject::sharedTypedArrayPrototypeClass) \ +IF_SAB(real,imaginary)(Atomics, InitAtomicsClass, OCLASP(Atomics)) \ + real(SavedFrame, InitViaClassSpec, &js::SavedFrame::class_) \ + real(WebAssembly, InitWebAssemblyClass, CLASP(WebAssembly)) \ + imaginary(WasmModule, dummy, dummy) \ + imaginary(WasmInstance, dummy, dummy) \ + imaginary(WasmMemory, dummy, dummy) \ + imaginary(WasmTable, dummy, dummy) \ + real(Promise, InitViaClassSpec, OCLASP(Promise)) \ #define JS_FOR_EACH_PROTOTYPE(macro) JS_FOR_PROTOTYPES(macro,macro) diff --git a/js/src/jspubtd.h b/js/src/jspubtd.h index 7b57624637..065d2790ec 100644 --- a/js/src/jspubtd.h +++ b/js/src/jspubtd.h @@ -84,7 +84,7 @@ enum JSType { /* Dense index into cached prototypes and class atoms for standard objects. */ enum JSProtoKey { -#define PROTOKEY_AND_INITIALIZER(name,code,init,clasp) JSProto_##name = code, +#define PROTOKEY_AND_INITIALIZER(name,init,clasp) JSProto_##name, JS_FOR_EACH_PROTOTYPE(PROTOKEY_AND_INITIALIZER) #undef PROTOKEY_AND_INITIALIZER JSProto_LIMIT diff --git a/js/src/vm/GlobalObject.cpp b/js/src/vm/GlobalObject.cpp index ce663cf907..2c379eee89 100644 --- a/js/src/vm/GlobalObject.cpp +++ b/js/src/vm/GlobalObject.cpp @@ -51,7 +51,7 @@ struct ProtoTableEntry { namespace js { -#define DECLARE_PROTOTYPE_CLASS_INIT(name,code,init,clasp) \ +#define DECLARE_PROTOTYPE_CLASS_INIT(name,init,clasp) \ extern JSObject* init(JSContext* cx, Handle obj); JS_FOR_EACH_PROTOTYPE(DECLARE_PROTOTYPE_CLASS_INIT) #undef DECLARE_PROTOTYPE_CLASS_INIT @@ -65,8 +65,8 @@ js::InitViaClassSpec(JSContext* cx, Handle obj) } static const ProtoTableEntry protoTable[JSProto_LIMIT] = { -#define INIT_FUNC(name,code,init,clasp) { clasp, init }, -#define INIT_FUNC_DUMMY(name,code,init,clasp) { nullptr, nullptr }, +#define INIT_FUNC(name,init,clasp) { clasp, init }, +#define INIT_FUNC_DUMMY(name,init,clasp) { nullptr, nullptr }, JS_FOR_PROTOTYPES(INIT_FUNC, INIT_FUNC_DUMMY) #undef INIT_FUNC_DUMMY #undef INIT_FUNC diff --git a/js/src/vm/Runtime.h b/js/src/vm/Runtime.h index f1f2e07094..1bbe4658fb 100644 --- a/js/src/vm/Runtime.h +++ b/js/src/vm/Runtime.h @@ -169,7 +169,7 @@ struct JSAtomState #define PROPERTYNAME_FIELD(idpart, id, text) js::ImmutablePropertyNamePtr id; FOR_EACH_COMMON_PROPERTYNAME(PROPERTYNAME_FIELD) #undef PROPERTYNAME_FIELD -#define PROPERTYNAME_FIELD(name, code, init, clasp) js::ImmutablePropertyNamePtr name; +#define PROPERTYNAME_FIELD(name, init, clasp) js::ImmutablePropertyNamePtr name; JS_FOR_EACH_PROTOTYPE(PROPERTYNAME_FIELD) #undef PROPERTYNAME_FIELD #define PROPERTYNAME_FIELD(name) js::ImmutablePropertyNamePtr name;