aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-08-21 21:24:49 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-08-21 21:24:49 -0700
commited14b64e657de1446a65da58f51d431d3a915bdf (patch)
treea349e8bbdf12dcd798a0e472e06f61c030f20367
parentbca1bcf29c3bf925299b89dc75523c65549ca1fb (diff)
downloadbun-ed14b64e657de1446a65da58f51d431d3a915bdf.tar.gz
bun-ed14b64e657de1446a65da58f51d431d3a915bdf.tar.zst
bun-ed14b64e657de1446a65da58f51d431d3a915bdf.zip
Make the code generator less duplicative
-rw-r--r--src/bun.js/bindings/ZigGeneratedClasses.cpp119
-rw-r--r--src/bun.js/scripts/generate-classes.ts4
2 files changed, 39 insertions, 84 deletions
diff --git a/src/bun.js/bindings/ZigGeneratedClasses.cpp b/src/bun.js/bindings/ZigGeneratedClasses.cpp
index 7106357b2..3f8a92e3d 100644
--- a/src/bun.js/bindings/ZigGeneratedClasses.cpp
+++ b/src/bun.js/bindings/ZigGeneratedClasses.cpp
@@ -1258,10 +1258,7 @@ void JSBigIntStats::visitChildrenImpl(JSCell* cell, Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_atime);
- visitor.append(thisObject->m_birthtime);
- visitor.append(thisObject->m_ctime);
- visitor.append(thisObject->m_mtime);
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSBigIntStats);
@@ -1882,7 +1879,7 @@ void JSBlob::visitChildrenImpl(JSCell* cell, Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_name);
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSBlob);
@@ -2424,12 +2421,7 @@ void JSBuildArtifact::visitChildrenImpl(JSCell* cell, Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_hash);
- visitor.append(thisObject->m_kind);
- visitor.append(thisObject->m_loader);
- visitor.append(thisObject->m_path);
- visitor.append(thisObject->m_sourcemap);
- visitor.append(thisObject->m_type);
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSBuildArtifact);
@@ -2911,9 +2903,7 @@ void JSBuildMessage::visitChildrenImpl(JSCell* cell, Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_level);
- visitor.append(thisObject->m_message);
- visitor.append(thisObject->m_position);
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSBuildMessage);
@@ -4110,8 +4100,7 @@ void JSCryptoHasher::visitChildrenImpl(JSCell* cell, Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_algorithms);
- visitor.append(thisObject->m_algorithm);
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSCryptoHasher);
@@ -4558,7 +4547,7 @@ void JSDebugHTTPSServer::visitChildrenImpl(JSCell* cell, Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_hostname);
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSDebugHTTPSServer);
@@ -5004,7 +4993,7 @@ void JSDebugHTTPServer::visitChildrenImpl(JSCell* cell, Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_hostname);
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSDebugHTTPServer);
@@ -5538,7 +5527,7 @@ void JSDirent::visitChildrenImpl(JSCell* cell, Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_name);
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSDirent);
@@ -5984,9 +5973,7 @@ void JSDocType::visitChildrenImpl(JSCell* cell, Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_name);
- visitor.append(thisObject->m_publicId);
- visitor.append(thisObject->m_systemId);
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSDocType);
@@ -6704,7 +6691,7 @@ void JSElement::visitChildrenImpl(JSCell* cell, Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_namespaceURI);
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSElement);
@@ -9331,8 +9318,8 @@ void JSExpect::visitChildrenImpl(JSCell* cell, Visitor& visitor)
JSExpect* thisObject = jsCast<JSExpect*>(cell);
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_capturedValue);
- visitor.append(thisObject->m_resultValue);
+
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSExpect);
@@ -9500,7 +9487,8 @@ void JSExpectAny::visitChildrenImpl(JSCell* cell, Visitor& visitor)
JSExpectAny* thisObject = jsCast<JSExpectAny*>(cell);
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_constructorValue);
+
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSExpectAny);
@@ -9790,7 +9778,8 @@ void JSExpectStringContaining::visitChildrenImpl(JSCell* cell, Visitor& visitor)
JSExpectStringContaining* thisObject = jsCast<JSExpectStringContaining*>(cell);
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_stringValue);
+
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSExpectStringContaining);
@@ -9957,7 +9946,8 @@ void JSExpectStringMatching::visitChildrenImpl(JSCell* cell, Visitor& visitor)
JSExpectStringMatching* thisObject = jsCast<JSExpectStringMatching*>(cell);
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_testValue);
+
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSExpectStringMatching);
@@ -10206,7 +10196,8 @@ void JSFFI::visitChildrenImpl(JSCell* cell, Visitor& visitor)
JSFFI* thisObject = jsCast<JSFFI*>(cell);
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_symbolsValue);
+
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSFFI);
@@ -10507,9 +10498,8 @@ void JSFSWatcher::visitChildrenImpl(JSCell* cell, Visitor& visitor)
JSFSWatcher* thisObject = jsCast<JSFSWatcher*>(cell);
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_listener);
- visitor.addOpaqueRoot(thisObject->wrapped());
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSFSWatcher);
@@ -10954,9 +10944,7 @@ void JSFileSystemRouter::visitChildrenImpl(JSCell* cell, Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_origin);
- visitor.append(thisObject->m_routes);
- visitor.append(thisObject->m_style);
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSFileSystemRouter);
@@ -11742,7 +11730,7 @@ void JSHTTPSServer::visitChildrenImpl(JSCell* cell, Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_hostname);
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSHTTPSServer);
@@ -12188,7 +12176,7 @@ void JSHTTPServer::visitChildrenImpl(JSCell* cell, Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_hostname);
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSHTTPServer);
@@ -12603,8 +12591,7 @@ void JSListener::visitChildrenImpl(JSCell* cell, Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_hostname);
- visitor.append(thisObject->m_unix);
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSListener);
@@ -13716,13 +13703,7 @@ void JSMatchedRoute::visitChildrenImpl(JSCell* cell, Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_filePath);
- visitor.append(thisObject->m_kind);
- visitor.append(thisObject->m_name);
- visitor.append(thisObject->m_params);
- visitor.append(thisObject->m_pathname);
- visitor.append(thisObject->m_query);
- visitor.append(thisObject->m_scriptSrc);
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSMatchedRoute);
@@ -17360,14 +17341,10 @@ void JSRequest::visitChildrenImpl(JSCell* cell, Visitor& visitor)
JSRequest* thisObject = jsCast<JSRequest*>(cell);
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
-
if (auto* ptr = thisObject->wrapped()) {
visitor.reportExtraMemoryVisited(Request__estimatedSize(ptr));
}
- visitor.append(thisObject->m_body);
- visitor.append(thisObject->m_headers);
- visitor.append(thisObject->m_signal);
- visitor.append(thisObject->m_url);
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSRequest);
@@ -17987,13 +17964,7 @@ void JSResolveMessage::visitChildrenImpl(JSCell* cell, Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_code);
- visitor.append(thisObject->m_importKind);
- visitor.append(thisObject->m_level);
- visitor.append(thisObject->m_message);
- visitor.append(thisObject->m_position);
- visitor.append(thisObject->m_referrer);
- visitor.append(thisObject->m_specifier);
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSResolveMessage);
@@ -18697,14 +18668,10 @@ void JSResponse::visitChildrenImpl(JSCell* cell, Visitor& visitor)
JSResponse* thisObject = jsCast<JSResponse*>(cell);
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
-
if (auto* ptr = thisObject->wrapped()) {
visitor.reportExtraMemoryVisited(Response__estimatedSize(ptr));
}
- visitor.append(thisObject->m_body);
- visitor.append(thisObject->m_headers);
- visitor.append(thisObject->m_statusText);
- visitor.append(thisObject->m_url);
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSResponse);
@@ -21644,8 +21611,7 @@ void JSServerWebSocket::visitChildrenImpl(JSCell* cell, Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_data);
- visitor.append(thisObject->m_remoteAddress);
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSServerWebSocket);
@@ -22616,9 +22582,7 @@ void JSStats::visitChildrenImpl(JSCell* cell, Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_atime);
- visitor.append(thisObject->m_ctime);
- visitor.append(thisObject->m_mtime);
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSStats);
@@ -23148,10 +23112,7 @@ void JSSubprocess::visitChildrenImpl(JSCell* cell, Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_stderr);
- visitor.append(thisObject->m_stdin);
- visitor.append(thisObject->m_stdout);
- visitor.addOpaqueRoot(thisObject->wrapped());
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSSubprocess);
@@ -24263,9 +24224,7 @@ void JSTCPSocket::visitChildrenImpl(JSCell* cell, Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_data);
- visitor.append(thisObject->m_remoteAddress);
- visitor.addOpaqueRoot(thisObject->wrapped());
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSTCPSocket);
@@ -25376,9 +25335,7 @@ void JSTLSSocket::visitChildrenImpl(JSCell* cell, Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_data);
- visitor.append(thisObject->m_remoteAddress);
- visitor.addOpaqueRoot(thisObject->wrapped());
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSTLSSocket);
@@ -25746,7 +25703,7 @@ void JSTextChunk::visitChildrenImpl(JSCell* cell, Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_lastInTextNode);
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSTextChunk);
@@ -26122,7 +26079,7 @@ void JSTextDecoder::visitChildrenImpl(JSCell* cell, Visitor& visitor)
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_encoding);
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSTextDecoder);
@@ -26463,8 +26420,8 @@ void JSTimeout::visitChildrenImpl(JSCell* cell, Visitor& visitor)
JSTimeout* thisObject = jsCast<JSTimeout*>(cell);
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- visitor.append(thisObject->m_arguments);
- visitor.append(thisObject->m_callback);
+
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(JSTimeout);
diff --git a/src/bun.js/scripts/generate-classes.ts b/src/bun.js/scripts/generate-classes.ts
index 0b88a3eb1..b6fbe0915 100644
--- a/src/bun.js/scripts/generate-classes.ts
+++ b/src/bun.js/scripts/generate-classes.ts
@@ -1033,7 +1033,6 @@ void ${name}::visitChildrenImpl(JSCell* cell, Visitor& visitor)
${name}* thisObject = jsCast<${name}*>(cell);
ASSERT_GC_OBJECT_INHERITS(thisObject, info());
Base::visitChildren(thisObject, visitor);
- ${values}
${
estimatedSize
? `if (auto* ptr = thisObject->wrapped()) {
@@ -1041,8 +1040,7 @@ visitor.reportExtraMemoryVisited(${symbolName(obj.name, "estimatedSize")}(ptr));
}`
: ""
}
-${DEFINE_VISIT_CHILDREN_LIST}
-${hasPendingActivity ? `visitor.addOpaqueRoot(thisObject->wrapped());` : ""}
+ thisObject->visitAdditionalChildren<Visitor>(visitor);
}
DEFINE_VISIT_CHILDREN(${name});