JSDOMConvertXPathNSResolver.h [plain text]
#pragma once
#include "IDLTypes.h"
#include "JSDOMConvertBase.h"
namespace WebCore {
template<typename T> struct Converter<IDLXPathNSResolver<T>> : DefaultConverter<IDLXPathNSResolver<T>> {
using ReturnType = RefPtr<T>;
using WrapperType = typename JSDOMWrapperConverterTraits<T>::WrapperClass;
template<typename ExceptionThrower = DefaultExceptionThrower>
static ReturnType convert(JSC::JSGlobalObject& lexicalGlobalObject, JSC::JSValue value, ExceptionThrower&& exceptionThrower = ExceptionThrower())
{
JSC::VM& vm = JSC::getVM(&lexicalGlobalObject);
auto scope = DECLARE_THROW_SCOPE(vm);
ReturnType object = WrapperType::toWrapped(vm, lexicalGlobalObject, value);
if (UNLIKELY(!object))
exceptionThrower(lexicalGlobalObject, scope);
return object;
}
};
template<typename T> struct JSConverter<IDLXPathNSResolver<T>> {
static constexpr bool needsState = true;
static constexpr bool needsGlobalObject = true;
template <typename U>
static JSC::JSValue convert(JSC::JSGlobalObject& lexicalGlobalObject, JSDOMGlobalObject& globalObject, const U& value)
{
return toJS(&lexicalGlobalObject, &globalObject, Detail::getPtrOrRef(value));
}
template<typename U>
static JSC::JSValue convertNewlyCreated(JSC::JSGlobalObject& lexicalGlobalObject, JSDOMGlobalObject& globalObject, U&& value)
{
return toJSNewlyCreated(&lexicalGlobalObject, &globalObject, std::forward<U>(value));
}
};
}