No issue - Remove "code" from jsprototype.h macros

Based-on: m-c 1394084
This commit is contained in:
Martok 2023-01-21 00:55:40 +01:00 • committed by roytam1
commit 41c2b34542
8 changed files with 68 additions and 69 deletions

View file

@ -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<JSProtoKey>(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 }

View file

@ -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 },

View file

@ -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

View file

@ -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 {

View file

@ -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)

View file

@ -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

View file

@ -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<JSObject*> obj);
JS_FOR_EACH_PROTOTYPE(DECLARE_PROTOTYPE_CLASS_INIT)
#undef DECLARE_PROTOTYPE_CLASS_INIT
@ -65,8 +65,8 @@ js::InitViaClassSpec(JSContext* cx, Handle<JSObject*> 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

View file

@ -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;