diff --git a/src/game/console.js b/src/game/console.js index 8424675f..ecda225e 100644 --- a/src/game/console.js +++ b/src/game/console.js @@ -7,22 +7,38 @@ exports.makeConsole = function(id, sandboxedFunctionWrapper) { messages[id] = []; commandResults[id] = []; visual[id] = {}; - return Object.create(null, { - log: { - writable: true, - configurable: true, - value: sandboxedFunctionWrapper(function() { - if(typeof self != 'undefined' && self.navigator.userAgent) { - self['console']['log'].apply(console, arguments); - } + const rawLog = (args, escape_message = true) => { + if(typeof self != 'undefined' && self.navigator.userAgent) { + self['console']['log'].apply(console, args); + } - messages[id].push( - _.map(arguments, (i) => { + let m = _.map(args, (i) => { if(i && i.toString) return i.toString(); if(typeof i === 'undefined') return 'undefined'; return JSON.stringify(i); - }).join(' ')); + }).join(' '); + + if (escape__message) { + m = _.escape(m); + } + + messages[id].push(m); + }; + + return Object.create(null, { + unescapedLog: { + writable: true, + configurable: true, + value: sandboxedFunctionWrapper(function() { + rawLog(arguments, false); + }) + }, + log: { + writable: true, + configurable: true, + value: sandboxedFunctionWrapper(function() { + rawLog(arguments, true); }) }, commandResult: {