aboutsummaryrefslogtreecommitdiff
path: root/src/javascript/jsc/bindings/GCDefferalContext.h
blob: 7bedfb3e0da84c12b41b97a269d3826e8bec7b61 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#pragma once

#include "helpers.h"

namespace JSC {

ALWAYS_INLINE GCDeferralContext::GCDeferralContext(VM& vm)
    : m_vm(vm)
{
}

ALWAYS_INLINE GCDeferralContext::~GCDeferralContext()
{
    if constexpr (validateDFGDoesGC)
        m_vm.verifyCanGC();

    if (UNLIKELY(m_shouldGC))
        m_vm.heap.collectIfNecessaryOrDefer();
}

} // namespace JSC