ProxyableAccessCase.cpp [plain text]
#include "config.h"
#include "ProxyableAccessCase.h"
#if ENABLE(JIT)
namespace JSC {
ProxyableAccessCase::ProxyableAccessCase(VM& vm, JSCell* owner, AccessType accessType, PropertyOffset offset, Structure* structure,
const ObjectPropertyConditionSet& conditionSet, bool viaProxy, WatchpointSet* additionalSet, std::unique_ptr<PolyProtoAccessChain> prototypeAccessChain)
: Base(vm, owner, accessType, offset, structure, conditionSet, WTFMove(prototypeAccessChain))
, m_additionalSet(additionalSet)
{
m_viaProxy = viaProxy;
}
std::unique_ptr<AccessCase> ProxyableAccessCase::create(VM& vm, JSCell* owner, AccessType type, PropertyOffset offset, Structure* structure, const ObjectPropertyConditionSet& conditionSet, bool viaProxy, WatchpointSet* additionalSet, std::unique_ptr<PolyProtoAccessChain> prototypeAccessChain)
{
ASSERT(type == Load || type == Miss || type == GetGetter);
return std::unique_ptr<AccessCase>(new ProxyableAccessCase(vm, owner, type, offset, structure, conditionSet, viaProxy, additionalSet, WTFMove(prototypeAccessChain)));
}
ProxyableAccessCase::~ProxyableAccessCase()
{
}
std::unique_ptr<AccessCase> ProxyableAccessCase::clone() const
{
std::unique_ptr<ProxyableAccessCase> result(new ProxyableAccessCase(*this));
result->resetState();
return WTFMove(result);
}
void ProxyableAccessCase::dumpImpl(PrintStream& out, CommaPrinter& comma) const
{
Base::dumpImpl(out, comma);
out.print(comma, "viaProxy = ", viaProxy());
out.print(comma, "additionalSet = ", RawPointer(additionalSet()));
}
}
#endif // ENABLE(JIT)