{"ScriptPreparationCode":"var FreedIds = (function () {\r\n function FreedIds(maxLength) {\r\n this._i = 0;\r\n this._ids = new Array(maxLength);\r\n this.add2 = this.add;\r\n this.has2 = this.has;\r\n }\r\n FreedIds.prototype.add = function (id) {\r\n var i = this._i;\r\n this._ids[i\u002B\u002B] = id;\r\n if (i === length) {\r\n this._i = 0;\r\n }\r\n };\r\n FreedIds.prototype.has = function (id) {\r\n return this._ids.indexOf(id) !== -1;\r\n };\r\n return FreedIds;\r\n}());\r\nvar FreedIds2 = (function () {\r\n function FreedIds2() {\r\n this._ids = [];\r\n }\r\n FreedIds2.prototype.add = function (id) {\r\n var ids = this._ids;\r\n ids.push(id);\r\n if (ids.length \u003E 300) {\r\n ids = ids.slice(100, 300);\r\n }\r\n };\r\n return FreedIds2;\r\n}());\r\nvar freedIds1 = new FreedIds(200);\r\nvar freedIds2 = new FreedIds(200);\r\nvar freedIds3 = [];\r\nvar freedIds4 = [];\r\nvar freedIds5 = new FreedIds2();","TestCases":[{"Name":"add","Code":"for (var i = 0; i \u003C 400; i\u002B\u002B) {\r\n freedIds1.add(i);\r\n}","IsDeferred":false},{"Name":"add2","Code":"for (var i = 0; i \u003C 400; i\u002B\u002B) {\r\n freedIds2.add2(i);\r\n}","IsDeferred":false},{"Name":"shift","Code":"for (var i = 0; i \u003C 400; i\u002B\u002B) {\r\n freedIds3.push(i);\r\n if (freedIds3.length \u003E 200) {\r\n freedIds3.shift();\r\n }\r\n}","IsDeferred":false},{"Name":"slice (fastest)","Code":"for (var i = 0; i \u003C 400; i\u002B\u002B) {\r\n freedIds4.push(i);\r\n if (freedIds4.length \u003E 300) {\r\n freedIds4 = freedIds4.slice(100, 300);\r\n }\r\n}\r\n","IsDeferred":false},{"Name":"slice in object","Code":"for (var i = 0; i \u003C 400; i\u002B\u002B) {\r\n freedIds5.add(i);\r\n}","IsDeferred":false}]}