{"ScriptPreparationCode":"var html = \u0022Self-closing tags do not exist in HTML. HTML elements that can\u2019t have any child nodes\u0022;\r\n","TestCases":[{"Name":"escape","Code":"function escape(s) {\r\n return s.replace(/[\u0026\u003C\u003E\\u00A0]/g, function(c) {\r\n switch(c) {\r\n case \u0027\u0026\u0027: return \u0027\u0026amp;\u0027;\r\n case \u0027\u003C\u0027: return \u0027\u0026lt;\u0027;\r\n case \u0027\u003E\u0027: return \u0027\u0026gt;\u0027;\r\n case \u0027\\u00A0\u0027: return \u0027\u0026nbsp;\u0027;\r\n }\r\n });\r\n}\r\n\r\nescape(html)\r\n","IsDeferred":false},{"Name":"escapeAttr","Code":"function escapeAttr(s) {\r\n var toEscape = /[\u0026\u0022\u003C\u003E\\u00A0]/g;\r\n if (!toEscape.test(s)) {\r\n // nothing to do, fast path\r\n return s;\r\n } else {\r\n return s.replace(toEscape, function(c) {\r\n switch(c) {\r\n case \u0027\u0026\u0027: return \u0027\u0026amp;\u0027;\r\n case \u0027\u003C\u0027: return \u0027\u0026lt;\u0027;\r\n case \u0027\u003E\u0027: return \u0027\u0026gt;\u0027;\r\n case \u0027\\u00A0\u0027: return \u0027\u0026nbsp;\u0027;\r\n }\r\n });\r\n }\r\n}\r\n\r\nescapeAttr(html)","IsDeferred":false},{"Name":"escapeLoop","Code":"function escapeLoop(s) {\r\n for (let index = 0; index \u003C s.length; index\u002B\u002B) {\r\n switch (s[index]) {\r\n case \u0022\u0026\u0022:\r\n s[index]= \u0022\u0026amp;\u0022;\r\n break;\r\n case \u0022\u003C\u0022:\r\n s[index]= \u0022\u0026lt;\u0022;\r\n break;\r\n case \u0022\u003E\u0022:\r\n s[index]= \u0022\u0026gt;\u0022;\r\n break;\r\n case \u0022\\u00A0\u0022:\r\n s[index]= \u0022\u0026nbsp;\u0022;\r\n break;\r\n }\r\n }\r\n\r\n return s;\r\n}\r\nescapeLoop(html)","IsDeferred":false}]}