{"ScriptPreparationCode":"class Log {\r\n buffer = \u0022\u0022;\r\n bufferCounter = 0;\r\n\r\n\r\n log(level, message, tag) {\r\n\r\n const style = \u0022\u0022;\r\n this.buffer \u002B= \u0060\u003Clog severity=\u0022${level}\u0022 style=\u0022${style}\u0022\u003E[123][${tag}] ${message}\u003C/log\u003E\\n\u0060;\r\n this.bufferCounter\u002B\u002B;\r\n this.flushBufferIfNecessary();\r\n }\r\n\r\n info(message, tag) {\r\n this.log(1, message, tag);\r\n }\r\n\r\n flushBufferIfNecessary(force = false) {\r\n if (this.bufferCounter \u003E= 100 || force) {\r\n if (this.buffer.length \u003E 0) {\r\n console.log(this.buffer);\r\n }\r\n this.buffer = \u0022\u0022;\r\n this.bufferCounter = 0;\r\n }\r\n }\r\n\r\n postTick() {\r\n this.flushBufferIfNecessary(true);\r\n }\r\n}\r\n\r\nvar logger = new Log();\r\nconsole.log(logger);\r\nvar getProxyLogger = (tag) =\u003E new Proxy(logger, {\r\n get(target, prop) {\r\n const origMethod = target[prop];\r\n if (typeof origMethod == \u0027function\u0027 \u0026\u0026 prop == \u0022log\u0022) {\r\n return function(...args) {\r\n args[2] = tag;\r\n let result = origMethod.apply(target, args)\r\n return result\r\n }\r\n }\r\n return origMethod;\r\n }\r\n});\r\n\r\nvar logger2 = getProxyLogger(\u0022abc\u0022)","TestCases":[{"Name":"shitty","Code":"logger.info(\u0022test\u0022);","IsDeferred":false},{"Name":"even shittier","Code":"logger2.info(\u0022test\u0022)","IsDeferred":false}]}