From 5b9d5d55e8340fce7fb2a3dc37297f149cf418c9 Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Thu, 24 Feb 2022 00:13:29 -0800 Subject: [PATCH] move GCDeferralContext --- .../jsc/bindings/GCDefferalContext.h | 21 +++++++++++++++++++ .../jsc/bindings/ZigConsoleClient.cpp | 21 +++---------------- 2 files changed, 24 insertions(+), 18 deletions(-) create mode 100644 src/javascript/jsc/bindings/GCDefferalContext.h diff --git a/src/javascript/jsc/bindings/GCDefferalContext.h b/src/javascript/jsc/bindings/GCDefferalContext.h new file mode 100644 index 0000000000..7bedfb3e0d --- /dev/null +++ b/src/javascript/jsc/bindings/GCDefferalContext.h @@ -0,0 +1,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 \ No newline at end of file diff --git a/src/javascript/jsc/bindings/ZigConsoleClient.cpp b/src/javascript/jsc/bindings/ZigConsoleClient.cpp index 466e387351..0b0a975045 100644 --- a/src/javascript/jsc/bindings/ZigConsoleClient.cpp +++ b/src/javascript/jsc/bindings/ZigConsoleClient.cpp @@ -6,6 +6,9 @@ #include #include #include + +#include "GCDefferalContext.h" + using ScriptArguments = Inspector::ScriptArguments; using MessageType = JSC::MessageType; using MessageLevel = JSC::MessageLevel; @@ -13,24 +16,6 @@ using JSGlobalObject = JSC__JSGlobalObject; using String = WTF::String; -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 - extern "C" { JSC__JSValue Inspector__ScriptArguments__argumentAt(Inspector__ScriptArguments* arg0, size_t i) {