diff options
Diffstat (limited to 'src/javascript/jsc/bindings/BunGCOutputConstraint.cpp')
-rw-r--r-- | src/javascript/jsc/bindings/BunGCOutputConstraint.cpp | 47 |
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 |