summaryrefslogtreecommitdiffstats
path: root/WebCore/bindings/js/JSDOMFormDataCustom.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/bindings/js/JSDOMFormDataCustom.cpp')
-rw-r--r--WebCore/bindings/js/JSDOMFormDataCustom.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/WebCore/bindings/js/JSDOMFormDataCustom.cpp b/WebCore/bindings/js/JSDOMFormDataCustom.cpp
index f207578..2559e96 100644
--- a/WebCore/bindings/js/JSDOMFormDataCustom.cpp
+++ b/WebCore/bindings/js/JSDOMFormDataCustom.cpp
@@ -32,13 +32,31 @@
#include "JSDOMFormData.h"
#include "DOMFormData.h"
+#include "HTMLFormElement.h"
#include "JSBlob.h"
+#include "JSHTMLFormElement.h"
#include <runtime/Error.h>
using namespace JSC;
namespace WebCore {
+static HTMLFormElement* toHTMLFormElement(JSC::JSValue value)
+{
+ return value.inherits(&JSHTMLFormElement::s_info) ? static_cast<HTMLFormElement*>(static_cast<JSHTMLFormElement*>(asObject(value))->impl()) : 0;
+}
+
+EncodedJSValue JSC_HOST_CALL JSDOMFormDataConstructor::constructJSDOMFormData(ExecState* exec)
+{
+ JSDOMFormDataConstructor* jsConstructor = static_cast<JSDOMFormDataConstructor*>(exec->callee());
+
+ HTMLFormElement* form = 0;
+ if (exec->argumentCount() > 0)
+ form = toHTMLFormElement(exec->argument(0));
+ RefPtr<DOMFormData> domFormData = DOMFormData::create(form);
+ return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(), domFormData.get())));
+}
+
JSValue JSDOMFormData::append(ExecState* exec)
{
if (exec->argumentCount() >= 2) {