Prefer jsesc for quoting
This commit is contained in:
parent
1a7c08c16c
commit
53d9167682
1 changed files with 2 additions and 22 deletions
|
@ -1,6 +1,7 @@
|
||||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
const jsesc = require('jsesc')
|
||||||
const utils = require('../utils')
|
const utils = require('../utils')
|
||||||
|
|
||||||
class common extends utils {
|
class common extends utils {
|
||||||
|
@ -30,28 +31,7 @@ class common extends utils {
|
||||||
}
|
}
|
||||||
|
|
||||||
static quote (s) {
|
static quote (s) {
|
||||||
// Taken from DOMfuzz
|
return jsesc(s)
|
||||||
function escapeString (s) {
|
|
||||||
return ('\"' + // eslint-disable-line no-useless-escape
|
|
||||||
s.replace(/\\/g, '\\\\')
|
|
||||||
.replace(/\"/g, '\\\"') // eslint-disable-line no-useless-escape
|
|
||||||
.replace(/\0/g, '\\0')
|
|
||||||
.replace(/\n/g, '\\n') +
|
|
||||||
'\"') // eslint-disable-line no-useless-escape
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof s === 'string') {
|
|
||||||
if (/^[\n\x20-\x7f]*$/.exec(s) || !self.uneval) { // eslint-disable-line no-undef
|
|
||||||
// Printable ASCII characters and line breaks: try to make it pretty.
|
|
||||||
return escapeString(s)
|
|
||||||
} else {
|
|
||||||
// Non-ASCII: use uneval to get \u escapes.
|
|
||||||
return uneval(s) // eslint-disable-line no-undef
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// For other things (such as numbers, |null|, and |undefined|), just coerce to string.
|
|
||||||
return JSON.stringify(s)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static b64encode (str) {
|
static b64encode (str) {
|
||||||
|
|
Loading…
Reference in a new issue