blob: 53f4bbb9092363f0d758d9603d4425528ffdb8b2 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
// #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
|