aboutsummaryrefslogtreecommitdiff
path: root/src/javascript/jsc/bindings/BunGCOutputConstraint.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/javascript/jsc/bindings/BunGCOutputConstraint.cpp')
-rw-r--r--src/javascript/jsc/bindings/BunGCOutputConstraint.cpp47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/javascript/jsc/bindings/BunGCOutputConstraint.cpp b/src/javascript/jsc/bindings/BunGCOutputConstraint.cpp
new file mode 100644
index 000000000..bc99ef2e2
--- /dev/null
+++ b/src/javascript/jsc/bindings/BunGCOutputConstraint.cpp
@@ -0,0 +1,47 @@
+
+
+// #include "BunGCOutputConstraint.h"
+
+// #include "BunClientData.h"
+// #include <JavaScriptCore/BlockDirectoryInlines.h>
+// #include <JavaScriptCore/HeapInlines.h>
+// #include <JavaScriptCore/MarkedBlockInlines.h>
+// #include <JavaScriptCore/MarkingConstraint.h>
+// #include <JavaScriptCore/SubspaceInlines.h>
+// #include <JavaScriptCore/VM.h>
+
+// namespace Bun {
+
+// using namespace JSC;
+
+// BunGCOutputConstraint::BunGCOutputConstraint(VM &vm, Bun::JSVMClientData &clientData)
+// : MarkingConstraint("Domo", "DOM Output", ConstraintVolatility::SeldomGreyed,
+// ConstraintConcurrency::Concurrent, ConstraintParallelism::Parallel),
+// m_vm(vm),
+// m_clientData(clientData),
+// m_lastExecutionVersion(vm.heap.mutatorExecutionVersion()) {}
+
+// template <typename Visitor> void BunGCOutputConstraint::executeImplImpl(Visitor &visitor) {
+// Heap &heap = m_vm.heap;
+
+// if (heap.mutatorExecutionVersion() == m_lastExecutionVersion) return;
+
+// m_lastExecutionVersion = heap.mutatorExecutionVersion();
+
+// m_clientData.forEachOutputConstraintSpace([&](Subspace &subspace) {
+// auto func = [](Visitor &visitor, HeapCell *heapCell, HeapCell::Kind) {
+// SetRootMarkReasonScope rootScope(visitor, RootMarkReason::DOMGCOutput);
+// JSCell *cell = static_cast<JSCell *>(heapCell);
+// cell->methodTable(visitor.vm())->visitOutputConstraints(cell, visitor);
+// };
+
+// RefPtr<SharedTask<void(Visitor &)>> task =
+// subspace.template forEachMarkedCellInParallel<Visitor>(func);
+// visitor.addParallelConstraintTask(task);
+// });
+// }
+
+// void BunGCOutputConstraint::executeImpl(AbstractSlotVisitor &visitor) { executeImplImpl(visitor);
+// } void BunGCOutputConstraint::executeImpl(SlotVisitor &visitor) { executeImplImpl(visitor); }
+
+// } // namespace Bun