diff --git a/lib/fetch/body.js b/lib/fetch/body.js index c02f79f97b4..415e4ea34da 100644 --- a/lib/fetch/body.js +++ b/lib/fetch/body.js @@ -71,7 +71,7 @@ function extractBody (object, keepalive = false) { // Set source to a copy of the bytes held by object. source = new Uint8Array(object) - } else if (object instanceof FormData || util.isFormDataLike(object)) { + } else if (util.isFormDataLike(object)) { const boundary = '----formdata-undici-' + Math.random() const prefix = `--${boundary}\r\nContent-Disposition: form-data` diff --git a/lib/fetch/formdata.js b/lib/fetch/formdata.js index 0a84f1f384b..e12d2b42bd2 100644 --- a/lib/fetch/formdata.js +++ b/lib/fetch/formdata.js @@ -6,6 +6,8 @@ const { File, FileLike } = require('./file') const { Blob } = require('buffer') class FormData { + static name = 'FormData' + constructor (...args) { if (args.length > 0 && !(args[0]?.constructor?.name === 'HTMLFormElement')) { throw new TypeError( diff --git a/test/fetch/formdata.js b/test/fetch/formdata.js index 9b7f3d4a096..0563de0720c 100644 --- a/test/fetch/formdata.js +++ b/test/fetch/formdata.js @@ -216,3 +216,9 @@ test('formData toStringTag', (t) => { t.equal(FormData.prototype[Symbol.toStringTag], 'FormData') t.end() }) + +test('formData.constructor.name', (t) => { + const form = new FormData() + t.equal(form.constructor.name, 'FormData') + t.end() +})