diff options
Diffstat (limited to 'src/bun.js/bindings/webcore/JSFetchHeaders.cpp')
-rw-r--r-- | src/bun.js/bindings/webcore/JSFetchHeaders.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/bun.js/bindings/webcore/JSFetchHeaders.cpp b/src/bun.js/bindings/webcore/JSFetchHeaders.cpp index 11e9157c1..eec128373 100644 --- a/src/bun.js/bindings/webcore/JSFetchHeaders.cpp +++ b/src/bun.js/bindings/webcore/JSFetchHeaders.cpp @@ -317,6 +317,12 @@ void JSFetchHeaders::finishCreation(VM& vm) // static_assert(!std::is_base_of<ActiveDOMObject, FetchHeaders>::value, "Interface is not marked as [ActiveDOMObject] even though implementation class subclasses ActiveDOMObject."); } +void JSFetchHeaders::computeMemoryCost() +{ + m_memoryCost = wrapped().memoryCost(); + globalObject()->vm().heap.reportExtraMemoryAllocated(m_memoryCost); +} + JSObject* JSFetchHeaders::createPrototype(VM& vm, JSDOMGlobalObject& globalObject) { return JSFetchHeadersPrototype::create(vm, &globalObject, JSFetchHeadersPrototype::createStructure(vm, &globalObject, globalObject.objectPrototype())); @@ -645,6 +651,17 @@ bool JSFetchHeadersOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> h return false; } +template<typename Visitor> +void JSFetchHeaders::visitChildrenImpl(JSCell* cell, Visitor& visitor) +{ + auto* thisObject = jsCast<JSFetchHeaders*>(cell); + ASSERT_GC_OBJECT_INHERITS(thisObject, info()); + Base::visitChildren(thisObject, visitor); + visitor.reportExtraMemoryVisited(thisObject->m_memoryCost); +} + +DEFINE_VISIT_CHILDREN(JSFetchHeaders); + void JSFetchHeadersOwner::finalize(JSC::Handle<JSC::Unknown> handle, void* context) { auto* jsFetchHeaders = static_cast<JSFetchHeaders*>(handle.slot()->asCell()); |