diff options
-rw-r--r-- | src/javascript/jsc/bindings/GCDefferalContext.h | 21 | ||||
-rw-r--r-- | src/javascript/jsc/bindings/ZigConsoleClient.cpp | 21 |
2 files changed, 24 insertions, 18 deletions
diff --git a/src/javascript/jsc/bindings/GCDefferalContext.h b/src/javascript/jsc/bindings/GCDefferalContext.h new file mode 100644 index 000000000..7bedfb3e0 --- /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 466e38735..0b0a97504 100644 --- a/src/javascript/jsc/bindings/ZigConsoleClient.cpp +++ b/src/javascript/jsc/bindings/ZigConsoleClient.cpp @@ -6,6 +6,9 @@ #include <JavaScriptCore/JSString.h> #include <JavaScriptCore/ScriptArguments.h> #include <wtf/text/WTFString.h> + +#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) { |