Skip to content
This repository was archived by the owner on Mar 13, 2018. It is now read-only.

Commit 50449e5

Browse files
committed
Add FormData wrapper
Fixes Polymer/polymer#587
1 parent b2c730a commit 50449e5

File tree

5 files changed

+46
-0
lines changed

5 files changed

+46
-0
lines changed

build.json

+1
Original file line numberDiff line numberDiff line change
@@ -45,5 +45,6 @@
4545
"src/wrappers/Document.js",
4646
"src/wrappers/Window.js",
4747
"src/wrappers/DataTransfer.js",
48+
"src/wrappers/FormData.js",
4849
"src/wrappers/override-constructors.js"
4950
]

shadowdom.js

+1
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
'src/wrappers/Document.js',
6262
'src/wrappers/Window.js',
6363
'src/wrappers/DataTransfer.js',
64+
'src/wrappers/FormData.js',
6465
'src/wrappers/override-constructors.js'
6566
].forEach(function(src) {
6667
document.write('<script src="' + base + src + '"></script>');

src/wrappers/FormData.js

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/**
2+
* Copyright 2014 The Polymer Authors. All rights reserved.
3+
* Use of this source code is goverened by a BSD-style
4+
* license that can be found in the LICENSE file.
5+
*/
6+
7+
(function(scope) {
8+
'use strict';
9+
10+
var registerWrapper = scope.registerWrapper;
11+
var unwrap = scope.unwrap;
12+
13+
var OriginalFormData = window.FormData;
14+
15+
function FormData(formElement) {
16+
this.impl = new OriginalFormData(formElement && unwrap(formElement));
17+
}
18+
19+
registerWrapper(OriginalFormData, FormData, new OriginalFormData());
20+
21+
scope.wrappers.FormData = FormData;
22+
23+
})(window.ShadowDOMPolyfill);

test/js/FormData.js

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*
2+
* Copyright 2014 The Polymer Authors. All rights reserved.
3+
* Use of this source code is goverened by a BSD-style
4+
* license that can be found in the LICENSE file.
5+
*/
6+
7+
suite('FormData', function() {
8+
9+
test('instanceof', function() {
10+
var fd = new FormData();
11+
assert.instanceOf(fd, FormData);
12+
});
13+
14+
test('form element', function() {
15+
var formElement = document.createElement('form');
16+
var fd = new FormData(formElement)
17+
assert.instanceOf(fd, FormData);
18+
});
19+
20+
});

test/test.main.js

+1
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ var modules = [
7878
'DOMTokenList.js',
7979
'Document.js',
8080
'Element.js',
81+
'FormData.js',
8182
'HTMLAudioElement.js',
8283
'HTMLBodyElement.js',
8384
'HTMLButtonElement.js',

0 commit comments

Comments
 (0)