JITTimeConstructorCache.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  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 JITTimeConstructorCache
  7. {
  8. public:
  9. JITTimeConstructorCache(const Js::JavascriptFunction* constructor, Js::ConstructorCache* runtimeCache);
  10. JITTimeConstructorCache(const JITTimeConstructorCache* other);
  11. JITTimeConstructorCache* Clone(JitArenaAllocator* allocator) const;
  12. BVSparse<JitArenaAllocator>* GetGuardedPropOps() const;
  13. void EnsureGuardedPropOps(JitArenaAllocator* allocator);
  14. void SetGuardedPropOp(uint propOpId);
  15. void AddGuardedPropOps(const BVSparse<JitArenaAllocator>* propOps);
  16. intptr_t GetRuntimeCacheAddr() const;
  17. intptr_t GetRuntimeCacheGuardAddr() const;
  18. JITTypeHolder GetType() const;
  19. int GetSlotCount() const;
  20. int16 GetInlineSlotCount() const;
  21. bool SkipNewScObject() const;
  22. bool CtorHasNoExplicitReturnValue() const;
  23. bool IsTypeFinal() const;
  24. bool IsUsed() const;
  25. void SetUsed(bool val);
  26. JITTimeConstructorCacheIDL * GetData();
  27. private:
  28. Field(JITTimeConstructorCacheIDL) m_data;
  29. };
  30. #pragma once