ScriptContextInfo.h 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. #pragma once
  6. class ScriptContextInfo
  7. {
  8. public:
  9. virtual intptr_t GetNullAddr() const = 0;
  10. virtual intptr_t GetUndefinedAddr() const = 0;
  11. virtual intptr_t GetTrueAddr() const = 0;
  12. virtual intptr_t GetFalseAddr() const = 0;
  13. virtual intptr_t GetUndeclBlockVarAddr() const = 0;
  14. virtual intptr_t GetEmptyStringAddr() const = 0;
  15. virtual intptr_t GetNegativeZeroAddr() const = 0;
  16. virtual intptr_t GetNumberTypeStaticAddr() const = 0;
  17. virtual intptr_t GetStringTypeStaticAddr() const = 0;
  18. virtual intptr_t GetSymbolTypeStaticAddr() const = 0;
  19. virtual intptr_t GetObjectTypeAddr() const = 0;
  20. virtual intptr_t GetObjectHeaderInlinedTypeAddr() const = 0;
  21. virtual intptr_t GetRegexTypeAddr() const = 0;
  22. virtual intptr_t GetArrayTypeAddr() const = 0;
  23. virtual intptr_t GetNativeIntArrayTypeAddr() const = 0;
  24. virtual intptr_t GetNativeFloatArrayTypeAddr() const = 0;
  25. virtual intptr_t GetArrayConstructorAddr() const = 0;
  26. virtual intptr_t GetCharStringCacheAddr() const = 0;
  27. virtual intptr_t GetSideEffectsAddr() const = 0;
  28. virtual intptr_t GetArraySetElementFastPathVtableAddr() const = 0;
  29. virtual intptr_t GetIntArraySetElementFastPathVtableAddr() const = 0;
  30. virtual intptr_t GetFloatArraySetElementFastPathVtableAddr() const = 0;
  31. virtual intptr_t GetLibraryAddr() const = 0;
  32. virtual intptr_t GetGlobalObjectAddr() const = 0;
  33. virtual intptr_t GetGlobalObjectThisAddr() const = 0;
  34. virtual intptr_t GetNumberAllocatorAddr() const = 0;
  35. virtual intptr_t GetRecyclerAddr() const = 0;
  36. virtual bool GetRecyclerAllowNativeCodeBumpAllocation() const = 0;
  37. virtual bool IsPRNGSeeded() const = 0;
  38. virtual intptr_t GetBuiltinFunctionsBaseAddr() const = 0;
  39. virtual intptr_t GetAddr() const = 0;
  40. virtual intptr_t GetVTableAddress(VTableValue vtableType) const = 0;
  41. virtual bool IsRecyclerVerifyEnabled() const = 0;
  42. virtual uint GetRecyclerVerifyPad() const = 0;
  43. virtual bool IsClosed() const = 0;
  44. virtual Field(Js::Var)* GetModuleExportSlotArrayAddress(uint moduleIndex, uint slotIndex) = 0;
  45. #ifdef ENABLE_SCRIPT_DEBUGGING
  46. virtual intptr_t GetDebuggingFlagsAddr() const = 0;
  47. virtual intptr_t GetDebugStepTypeAddr() const = 0;
  48. virtual intptr_t GetDebugFrameAddressAddr() const = 0;
  49. virtual intptr_t GetDebugScriptIdWhenSetAddr() const = 0;
  50. #endif
  51. virtual intptr_t GetChakraLibAddr() const = 0;
  52. #if ENABLE_NATIVE_CODEGEN
  53. virtual void AddToDOMFastPathHelperMap(intptr_t funcInfoAddr, IR::JnHelperMethod helper) = 0;
  54. virtual IR::JnHelperMethod GetDOMFastPathHelper(intptr_t funcInfoAddr) = 0;
  55. typedef JsUtil::BaseDictionary<intptr_t, IR::JnHelperMethod, HeapAllocator, PowerOf2SizePolicy,
  56. DefaultComparer, JsUtil::SimpleDictionaryEntry, JsUtil::AsymetricResizeLock> JITDOMFastPathHelperMap;
  57. #endif
  58. };