blob: e75ba1113646dae4e4edbf807b3ec88e392718d5 [file]
//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------
#pragma once
class ScriptContextInfo
{
public:
virtual intptr_t GetNullAddr() const = 0;
virtual intptr_t GetUndefinedAddr() const = 0;
virtual intptr_t GetTrueAddr() const = 0;
virtual intptr_t GetFalseAddr() const = 0;
virtual intptr_t GetUndeclBlockVarAddr() const = 0;
virtual intptr_t GetEmptyStringAddr() const = 0;
virtual intptr_t GetNegativeZeroAddr() const = 0;
virtual intptr_t GetNumberTypeStaticAddr() const = 0;
virtual intptr_t GetStringTypeStaticAddr() const = 0;
virtual intptr_t GetObjectTypeAddr() const = 0;
virtual intptr_t GetObjectHeaderInlinedTypeAddr() const = 0;
virtual intptr_t GetRegexTypeAddr() const = 0;
virtual intptr_t GetArrayTypeAddr() const = 0;
virtual intptr_t GetNativeIntArrayTypeAddr() const = 0;
virtual intptr_t GetNativeFloatArrayTypeAddr() const = 0;
virtual intptr_t GetArrayConstructorAddr() const = 0;
virtual intptr_t GetCharStringCacheAddr() const = 0;
virtual intptr_t GetSideEffectsAddr() const = 0;
virtual intptr_t GetArraySetElementFastPathVtableAddr() const = 0;
virtual intptr_t GetIntArraySetElementFastPathVtableAddr() const = 0;
virtual intptr_t GetFloatArraySetElementFastPathVtableAddr() const = 0;
virtual intptr_t GetLibraryAddr() const = 0;
virtual intptr_t GetGlobalObjectAddr() const = 0;
virtual intptr_t GetGlobalObjectThisAddr() const = 0;
virtual intptr_t GetNumberAllocatorAddr() const = 0;
virtual intptr_t GetRecyclerAddr() const = 0;
virtual bool GetRecyclerAllowNativeCodeBumpAllocation() const = 0;
virtual bool IsSIMDEnabled() const = 0;
virtual bool IsPRNGSeeded() const = 0;
virtual intptr_t GetBuiltinFunctionsBaseAddr() const = 0;
virtual intptr_t GetAddr() const = 0;
virtual intptr_t GetVTableAddress(VTableValue vtableType) const = 0;
virtual bool IsRecyclerVerifyEnabled() const = 0;
virtual uint GetRecyclerVerifyPad() const = 0;
virtual bool IsClosed() const = 0;
virtual Field(Js::Var)* GetModuleExportSlotArrayAddress(uint moduleIndex, uint slotIndex) = 0;
virtual intptr_t GetDebuggingFlagsAddr() const = 0;
virtual intptr_t GetDebugStepTypeAddr() const = 0;
virtual intptr_t GetDebugFrameAddressAddr() const = 0;
virtual intptr_t GetDebugScriptIdWhenSetAddr() const = 0;
virtual intptr_t GetChakraLibAddr() const = 0;
#if ENABLE_NATIVE_CODEGEN
virtual void AddToDOMFastPathHelperMap(intptr_t funcInfoAddr, IR::JnHelperMethod helper) = 0;
virtual IR::JnHelperMethod GetDOMFastPathHelper(intptr_t funcInfoAddr) = 0;
typedef JsUtil::BaseDictionary<intptr_t, IR::JnHelperMethod, HeapAllocator, PowerOf2SizePolicy,
DefaultComparer, JsUtil::SimpleDictionaryEntry, JsUtil::AsymetricResizeLock> JITDOMFastPathHelperMap;
#endif
};