diff options
author | 2022-03-27 02:42:02 -0700 | |
---|---|---|
committer | 2022-03-27 02:45:30 -0700 | |
commit | 309350e74cf0bf854c0148b627f6df8b5282ad2f (patch) | |
tree | e698660375ef137b1b16b06ba5c474fed18ce65b /src/javascript/jsc/bindings/BunGCOutputConstraint.cpp | |
parent | 0132b7164e956d56bf74dd8c45ad4cf90769961b (diff) | |
download | bun-309350e74cf0bf854c0148b627f6df8b5282ad2f.tar.gz bun-309350e74cf0bf854c0148b627f6df8b5282ad2f.tar.zst bun-309350e74cf0bf854c0148b627f6df8b5282ad2f.zip |
[bun.js] begin the webkit-ing
Diffstat (limited to 'src/javascript/jsc/bindings/BunGCOutputConstraint.cpp')
-rw-r--r-- | src/javascript/jsc/bindings/BunGCOutputConstraint.cpp | 60 |
1 files changed, 33 insertions, 27 deletions
diff --git a/src/javascript/jsc/bindings/BunGCOutputConstraint.cpp b/src/javascript/jsc/bindings/BunGCOutputConstraint.cpp index bc99ef2e2..53f4bbb90 100644 --- a/src/javascript/jsc/bindings/BunGCOutputConstraint.cpp +++ b/src/javascript/jsc/bindings/BunGCOutputConstraint.cpp @@ -14,34 +14,40 @@ // 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); -// }); +// 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()) +// { // } -// void BunGCOutputConstraint::executeImpl(AbstractSlotVisitor &visitor) { executeImplImpl(visitor); -// } void BunGCOutputConstraint::executeImpl(SlotVisitor &visitor) { executeImplImpl(visitor); } +// 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 |