summaryrefslogtreecommitdiff
path: root/ext/fetch
diff options
context:
space:
mode:
authorsevenwithawp <sevenwithawp@gmail.com>2022-07-09 21:28:02 +0300
committerGitHub <noreply@github.com>2022-07-09 14:28:02 -0400
commit213d831ae3403402d55d3d084b2434c3ba8da70f (patch)
treed693407f283d97ec2311621a1906bf08ec13226a /ext/fetch
parent132c761e87679aec52b9ed8324ee2a4b00705620 (diff)
refactor(ext) Decrease of StringPrototypeReplace recurrent usage (#15058)
Co-authored-by: Bartek IwaƄczuk <biwanczuk@gmail.com>
Diffstat (limited to 'ext/fetch')
-rw-r--r--ext/fetch/21_formdata.js25
1 files changed, 12 insertions, 13 deletions
diff --git a/ext/fetch/21_formdata.js b/ext/fetch/21_formdata.js
index a134fe5f7..72f83a860 100644
--- a/ext/fetch/21_formdata.js
+++ b/ext/fetch/21_formdata.js
@@ -271,20 +271,19 @@
webidl.configurePrototype(FormData);
const FormDataPrototype = FormData.prototype;
- const escape = (str, isFilename) =>
- StringPrototypeReplace(
- StringPrototypeReplace(
- StringPrototypeReplace(
- isFilename ? str : StringPrototypeReplace(str, /\r?\n|\r/g, "\r\n"),
- /\n/g,
- "%0A",
- ),
- /\r/g,
- "%0D",
- ),
- /"/g,
- "%22",
+ const escape = (str, isFilename) => {
+ const escapeMap = {
+ "\n": "%0A",
+ "\r": "%0D",
+ '"': "%22",
+ };
+
+ return StringPrototypeReplace(
+ isFilename ? str : StringPrototypeReplace(str, /\r?\n|\r/g, "\r\n"),
+ /([\n\r"])/g,
+ (c) => escapeMap[c],
);
+ };
/**
* convert FormData to a Blob synchronous without reading all of the files