Stop manual unescaping of script source data when preprocessing logs.
It appears that the fields are already being unescaped elsewhere, perhaps by the JSON writer. So if we unescape when adding the source filename and contents, unescaping will happen again later and plain backslashes will be interpreted as escape codes. Bug: v8:6240 Change-Id: Ic66b9017ae685d6dd12944ee8d254991e26fbd32 Reviewed-on: https://chromium-review.googlesource.com/1186625 Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Bret Sepulveda <bsep@chromium.org> Cr-Commit-Position: refs/heads/master@{#55401}
This commit is contained in:
parent
f1aef71dd5
commit
29879461ce
@ -1002,33 +1002,10 @@ JsonProfile.prototype.addSourcePositions = function(
|
||||
};
|
||||
};
|
||||
|
||||
function unescapeString(s) {
|
||||
s = s.split("\\");
|
||||
for (var i = 1; i < s.length; i++) {
|
||||
if (s[i] === "") {
|
||||
// Double backslash.
|
||||
s[i] = "\\";
|
||||
} else if (i > 0 && s[i].startsWith("x")) {
|
||||
// Escaped Ascii character.
|
||||
s[i] = String.fromCharCode(parseInt(s[i].substring(1, 3), 16)) +
|
||||
s[i].substring(3);
|
||||
} else if (i > 0 && s[i].startsWith("u")) {
|
||||
// Escaped unicode character.
|
||||
s[i] = String.fromCharCode(parseInt(s[i].substring(1, 5), 16)) +
|
||||
s[i].substring(5);
|
||||
} else {
|
||||
if (i > 0 && s[i - 1] !== "\\") {
|
||||
printErr("Malformed source string");
|
||||
}
|
||||
}
|
||||
}
|
||||
return s.join("");
|
||||
}
|
||||
|
||||
JsonProfile.prototype.addScriptSource = function(script, url, source) {
|
||||
this.scripts_[script] = {
|
||||
name : unescapeString(url),
|
||||
source : unescapeString(source)
|
||||
name : url,
|
||||
source : source
|
||||
};
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user