blob: 361b2a147475e0340bc3ca8009dd9961bd0fb873 [file] [log] [blame]
//-------------------------------------------------------------------------------------------------------
// 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 JITTimeConstructorCache
{
public:
JITTimeConstructorCache(const Js::JavascriptFunction* constructor, Js::ConstructorCache* runtimeCache);
JITTimeConstructorCache(const JITTimeConstructorCache* other);
JITTimeConstructorCache* Clone(JitArenaAllocator* allocator) const;
BVSparse<JitArenaAllocator>* GetGuardedPropOps() const;
void EnsureGuardedPropOps(JitArenaAllocator* allocator);
void SetGuardedPropOp(uint propOpId);
void AddGuardedPropOps(const BVSparse<JitArenaAllocator>* propOps);
intptr_t GetRuntimeCacheAddr() const;
intptr_t GetRuntimeCacheGuardAddr() const;
JITTypeHolder GetType() const;
int GetSlotCount() const;
int16 GetInlineSlotCount() const;
bool SkipNewScObject() const;
bool CtorHasNoExplicitReturnValue() const;
bool IsTypeFinal() const;
bool IsUsed() const;
void SetUsed(bool val);
JITTimeConstructorCacheIDL * GetData();
private:
Field(JITTimeConstructorCacheIDL) m_data;
};
#pragma once