diff options
author | Siyuan Zhou <siyuan.zhou@mongodb.com> | 2019-04-26 17:22:14 -0400 |
---|---|---|
committer | Siyuan Zhou <visualzhou@gmail.com> | 2019-05-13 14:25:19 -0400 |
commit | 7c958ef34989959984983126be0ff3bc9513d489 (patch) | |
tree | cf6b0b605da8f11810599d369cd91544d565cecc | |
parent | 07d92d96d8a7f949a578b6606103a59cb7060e49 (diff) | |
download | mongo-7c958ef34989959984983126be0ff3bc9513d489.tar.gz |
SERVER-40866 Use JSON.stringify() to serialize string in tojson()
(cherry picked from commit b877bd0172b613e77365f29886d359e5230f1a3e)
-rw-r--r-- | src/mongo/shell/types.js | 43 |
1 files changed, 2 insertions, 41 deletions
diff --git a/src/mongo/shell/types.js b/src/mongo/shell/types.js index af216eed661..80c033b7b03 100644 --- a/src/mongo/shell/types.js +++ b/src/mongo/shell/types.js @@ -606,47 +606,8 @@ tojson = function(x, indent, nolint, depth) { } switch (typeof x) { - case "string": { - var out = new Array(x.length + 1); - out[0] = '"'; - for (var i = 0; i < x.length; i++) { - switch (x[i]) { - case '"': - out[out.length] = '\\"'; - break; - case '\\': - out[out.length] = '\\\\'; - break; - case '\b': - out[out.length] = '\\b'; - break; - case '\f': - out[out.length] = '\\f'; - break; - case '\n': - out[out.length] = '\\n'; - break; - case '\r': - out[out.length] = '\\r'; - break; - case '\t': - out[out.length] = '\\t'; - break; - - default: { - var code = x.charCodeAt(i); - if (code < 0x20) { - out[out.length] = - (code < 0x10 ? '\\u000' : '\\u00') + code.toString(16); - } else { - out[out.length] = x[i]; - } - } - } - } - - return out.join('') + "\""; - } + case "string": + return JSON.stringify(x); case "number": case "boolean": return "" + x; |