Compare commits

...

6 Commits

Author SHA1 Message Date
Jarred Sumner
4dfafde8cc Merge branch 'main' into jarred/output 2025-03-07 20:12:52 -08:00
Jarred Sumner
f88f798217 Merge branch 'main' into jarred/output 2024-08-30 17:25:07 -07:00
Jarred Sumner
ab26e9c68e Merge branch 'main' into jarred/output 2024-08-18 22:35:13 -07:00
Jarred Sumner
b36dc30658 Merge branch 'main' into jarred/output 2024-08-17 02:53:28 -07:00
Jarred Sumner
32258a79b9 Merge branch 'main' into jarred/output 2024-08-16 22:52:33 -07:00
Jarred Sumner
5337f1d29d Experiment: remove visitOutputConstraints 2024-08-16 15:20:23 -07:00

View File

@@ -1255,6 +1255,7 @@ function allCachedValues(obj: ClassDefinition) {
}
var extraIncludes = [];
function generateClassHeader(typeName, obj: ClassDefinition) {
var { klass, proto, JSType = "ObjectType", values = [], callbacks = {}, zigOnly = false } = obj;
@@ -1268,7 +1269,7 @@ function generateClassHeader(typeName, obj: ClassDefinition) {
Object.keys(callbacks).length ||
obj.hasPendingActivity ||
[...Object.values(klass), ...Object.values(proto)].find(a => !!a.cache)
? "DECLARE_VISIT_CHILDREN;\ntemplate<typename Visitor> void visitAdditionalChildren(Visitor&);\nDECLARE_VISIT_OUTPUT_CONSTRAINTS;\n"
? "DECLARE_VISIT_CHILDREN;\ntemplate<typename Visitor> void visitAdditionalChildren(Visitor&);\n"
: "";
const sizeEstimator = "static size_t estimatedSize(JSCell* cell, VM& vm);";
@@ -1293,7 +1294,7 @@ function generateClassHeader(typeName, obj: ClassDefinition) {
return true;
}
return visitor.containsOpaqueRoot(context);
return false;
}
void finalize(JSC::Handle<JSC::Unknown>, void* context) final {}
};
@@ -1485,21 +1486,10 @@ void ${name}::visitAdditionalChildren(Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
${values}
${DEFINE_VISIT_CHILDREN_LIST}
${hasPendingActivity ? "visitor.addOpaqueRoot(this->wrapped());" : ""}
}
DEFINE_VISIT_ADDITIONAL_CHILDREN(${name});
template<typename Visitor>
void ${name}::visitOutputConstraintsImpl(JSCell *cell, Visitor& visitor)
{
${name}* thisObject = jsCast<${name}*>(cell);
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_OUTPUT_CONSTRAINTS(${name});
${renderCallbacksCppImpl(typeName, callbacks)}