mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-11 06:04:55 +08:00
This also adds CC-BY-4.0 to the list of accepted licenses. DISABLE_THIRD_PARTY_CHECK=update dependencies Bug: chromium:1083142 Change-Id: I8612de2fba52dae32eeb71af79d5aacfde52142b Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2220097 Reviewed-by: Paul Lewis <aerotwist@chromium.org> Commit-Queue: Mathias Bynens <mathias@chromium.org>
37 lines
844 B
JavaScript
37 lines
844 B
JavaScript
'use strict'
|
|
|
|
module.exports = factory
|
|
|
|
var backslash = '\\'
|
|
|
|
// Factory to de-escape a value, based on a list at `key` in `ctx`.
|
|
function factory(ctx, key) {
|
|
return unescape
|
|
|
|
// De-escape a string using the expression at `key` in `ctx`.
|
|
function unescape(value) {
|
|
var previous = 0
|
|
var index = value.indexOf(backslash)
|
|
var escape = ctx[key]
|
|
var queue = []
|
|
var character
|
|
|
|
while (index !== -1) {
|
|
queue.push(value.slice(previous, index))
|
|
previous = index + 1
|
|
character = value.charAt(previous)
|
|
|
|
// If the following character is not a valid escape, add the slash.
|
|
if (!character || escape.indexOf(character) === -1) {
|
|
queue.push(backslash)
|
|
}
|
|
|
|
index = value.indexOf(backslash, previous + 1)
|
|
}
|
|
|
|
queue.push(value.slice(previous))
|
|
|
|
return queue.join('')
|
|
}
|
|
}
|