{"ScriptPreparationCode":"function hasWithIndexOf(needle, haystack) {\r\n\treturn haystack.indexOf(needle) !== -1;\r\n}\r\n\r\nfunction hasWithMap(needle, haystackMap) {\r\n\treturn haystackMap[needle];\r\n}\r\n\r\n\r\nfunction prepareMap(haystack) {\r\n\tvar map = {};\r\n\tfor (var i=0, len=haystack.length; i\u003Clen; \u002B\u002Bi) {\r\n \tmap[haystack[i]] = true;\r\n }\r\n return map;\r\n}\r\n \r\n \r\nvar haystack = [];\r\nfor (var i=0; i\u003C100; \u002B\u002Bi) {\r\n \thaystack.push(\u002700\u0027 \u002B i);\r\n}\r\n\r\nvar haystackMap = prepareMap(haystack);","TestCases":[{"Name":"indexOf","Code":"for (var i=0; i\u003C100; \u002B\u002Bi) {\r\n\thasWithIndexOf(\u0027404\u0027, haystack);\r\n}","IsDeferred":false},{"Name":"map new each pass","Code":"var haystackMapLocal = prepareMap(haystack);\r\nfor (var i=0; i\u003C100; \u002B\u002Bi) {\r\n\thasWithMap(\u0027404\u0027, haystackMapLocal);\r\n}","IsDeferred":false},{"Name":"map cached","Code":"for (var i=0; i\u003C100; \u002B\u002Bi) {\r\n\thasWithMap(\u0027404\u0027, haystackMap);\r\n}","IsDeferred":false}]}