{"ScriptPreparationCode":"var menu =\r\n[\r\n\t{\r\n\t\t\u0022className\u0022: \u0022item\u0022,\r\n\t\t\u0022content\u0022: \u0022Open\u0022\r\n\t},\r\n\t{\r\n\t\t\u0022className\u0022: \u0022item\u0022,\r\n\t\t\u0022content\u0022: \u0022Save\u0022\r\n\t},\r\n\t{\r\n\t\t\u0022className\u0022: \u0022item\u0022,\r\n\t\t\u0022content\u0022: \u0022Close\u0022\r\n\t},\r\n\t{\r\n\t\t\u0022className\u0022: \u0022item\u0022,\r\n\t\t\u0022content\u0022: \u0022Exit\u0022\r\n\t}\r\n];\r\n\r\nDocument.prototype.createElementTree1 = function(template, defaultTagName)\r\n{\r\n\tvar result;\r\n\tvar index;\r\n\tvar limit;\r\n\tvar attribute;\r\n\r\n\tif(template instanceof Object)\r\n\t\tif(\u0022length\u0022 in template)\r\n\t\t{\r\n\t\t\tresult = this.createDocumentFragment();\r\n\t\t\tlimit = template.length;\r\n\t\t\tfor(index = 0; index \u003C limit; index\u002B\u002B)\r\n\t\t\t\tresult.appendChild(this.createElementTree1(template[index], defaultTagName));\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tresult = this.createElement(template.tagName || defaultTagName || \u0022div\u0022);\r\n\t\t\tfor(attribute in template)\r\n\t\t\t\tswitch(attribute)\r\n\t\t\t\t{\r\n\t\t\t\t\tcase \u0022tagName\u0022:\r\n\t\t\t\t\tcase \u0022content\u0022:\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tresult[attribute] = template[attribute];\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\tif(template.content)\r\n\t\t\t\tresult.appendChild(this.createElementTree1(template.content, defaultTagName));\r\n\t\t}\r\n\telse\r\n\t\tresult = this.createTextNode(template);\r\n\r\n\treturn(result);\r\n};\r\n\r\nDocument.prototype.createElementTree2 = function(template, defaultTagName)\r\n{\r\n\tvar result;\r\n\tvar attribute;\r\n\r\n\tif(template instanceof Object)\r\n\t\tif(\u0022length\u0022 in template)\r\n\t\t{\r\n\t\t\tresult = this.createDocumentFragment();\r\n\t\t\ttemplate.forEach(item =\u003E result.appendChild(this.createElementTree2(item, defaultTagName)));\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tresult = this.createElement(template.tagName || defaultTagName || \u0022div\u0022);\r\n\t\t\tfor(attribute in template)\r\n\t\t\t\tswitch(attribute)\r\n\t\t\t\t{\r\n\t\t\t\t\tcase \u0022tagName\u0022:\r\n\t\t\t\t\tcase \u0022content\u0022:\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tresult[attribute] = template[attribute];\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\tif(template.content)\r\n\t\t\t\tresult.appendChild(this.createElementTree2(template.content, defaultTagName));\r\n\t\t}\r\n\telse\r\n\t\tresult = this.createTextNode(template);\r\n\r\n\treturn(result);\r\n};\r\n","TestCases":[{"Name":"Indexed","Code":"document.createElementTree1(menu);","IsDeferred":false},{"Name":"ForEach","Code":"document.createElementTree2(menu);","IsDeferred":false}]}