blob: eb8d9125cf24e96adc59d7ffb4abf6b6e2178f82 [file]
//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------
#include "RuntimeLibraryPch.h"
#include "Base/Exception.h"
#include "Base/ThreadContextTlsEntry.h"
void JsUtil::ExternalApi::RecoverUnusedMemory()
{
Js::Exception::RecoverUnusedMemory();
}
bool JsUtil::ExternalApi::RaiseOnIntOverflow()
{
::Math::DefaultOverflowPolicy();
}
bool JsUtil::ExternalApi::RaiseOutOfMemoryIfScriptActive()
{
return Js::Exception::RaiseIfScriptActive(nullptr, Js::Exception::ExceptionKind_OutOfMemory);
}
bool JsUtil::ExternalApi::RaiseStackOverflowIfScriptActive(Js::ScriptContext * scriptContext, PVOID returnAddress)
{
return Js::Exception::RaiseIfScriptActive(scriptContext, Js::Exception::ExceptionKind_StackOverflow, returnAddress);
}
ThreadContextId JsUtil::ExternalApi::GetCurrentThreadContextId()
{
return ThreadContextTLSEntry::GetCurrentThreadContextId();
}
#if DBG || defined(EXCEPTION_CHECK)
BOOL JsUtil::ExternalApi::IsScriptActiveOnCurrentThreadContext()
{
return ThreadContext::GetContextForCurrentThread() != nullptr &&
ThreadContext::GetContextForCurrentThread()->IsScriptActive();
}
#endif