
#pragma once

#include "JSDOMFormData.h"
#include "JSFile.h"
#include <wtf/text/WTFString.h>

namespace WebCore {

inline JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, const DOMFormData::FormDataEntryValue& value)
{
	if (value.file)
		return toJS(exec, globalObject, value.file.get());
	return toJS(exec, globalObject, value.string);
}

inline JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, Optional<DOMFormData::FormDataEntryValue> optionalValue)
{
	return optionalValue ? toJS(exec, globalObject, *optionalValue) : JSC::jsNull();
}

template<>
struct JSValueTraits<DOMFormData::FormDataEntryValue> {
	static ALWAYS_INLINE JSC::JSValue arrayJSValue(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, const DOMFormData::FormDataEntryValue& value)
	{
		return toJS(exec, globalObject, value);
	}
};

}
