DOMAttributeGetterSetter.h [plain text]
#pragma once
#include "CustomGetterSetter.h"
#include "DOMAnnotation.h"
namespace JSC {
namespace DOMJIT {
class GetterSetter;
}
class DOMAttributeGetterSetter final : public CustomGetterSetter {
public:
using Base = CustomGetterSetter;
static DOMAttributeGetterSetter* create(VM& vm, CustomGetter customGetter, CustomSetter customSetter, DOMAttributeAnnotation domAttribute)
{
DOMAttributeGetterSetter* customGetterSetter = new (NotNull, allocateCell<DOMAttributeGetterSetter>(vm.heap)) DOMAttributeGetterSetter(vm, customGetter, customSetter, domAttribute);
customGetterSetter->finishCreation(vm);
return customGetterSetter;
}
DOMAttributeAnnotation domAttribute() const { return m_domAttribute; }
static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype)
{
return Structure::create(vm, globalObject, prototype, TypeInfo(CustomGetterSetterType, StructureFlags), info());
}
DECLARE_EXPORT_INFO;
private:
DOMAttributeGetterSetter(VM& vm, CustomGetter getter, CustomSetter setter, DOMAttributeAnnotation domAttribute)
: Base(vm, vm.domAttributeGetterSetterStructure.get(), getter, setter)
, m_domAttribute(domAttribute)
{
}
DOMAttributeAnnotation m_domAttribute;
};
inline bool isDOMAttributeGetterSetter(VM& vm, JSCell* cell)
{
return cell->classInfo(vm) == DOMAttributeGetterSetter::info();
}
}