{"ScriptPreparationCode":"var length = 100000;\r\n\r\nfunction* range(from, to, step = 1) {\r\n if (!step) return;\r\n if (!to) to = from, from = 0;\r\n\r\n if (from \u003C to \u0026\u0026 step \u003E 0) {\r\n while (from \u003C to) {\r\n yield from;\r\n from \u002B= step;\r\n }\r\n } else if (from \u003E to \u0026\u0026 step \u003C 0) {\r\n while (from \u003E to) {\r\n yield from;\r\n from \u002B= step;\r\n }\r\n }\r\n}\r\n\r\nfunction* range_undefined(from, to, step = 1) {\r\n if (!step) return;\r\n if (!to) to = from, from = 0;\r\n\r\n if (from \u003C to \u0026\u0026 step \u003E 0) {\r\n while (from \u003C to) {\r\n yield;\r\n from \u002B= step;\r\n }\r\n } else if (from \u003E to \u0026\u0026 step \u003C 0) {\r\n while (from \u003E to) {\r\n yield;\r\n from \u002B= step;\r\n }\r\n }\r\n}","TestCases":[{"Name":"fori","Code":"for (let i = 0; i \u003C length; i\u002B\u002B) {}","IsDeferred":false},{"Name":"lazy range with index number","Code":"for (const i of range(length)) {}","IsDeferred":false},{"Name":"range with index number","Code":"for (const i of Array.from(Array(length).keys())) {}","IsDeferred":false},{"Name":"range without index number","Code":"for (const i of Array.from(Array(length))) {}","IsDeferred":false},{"Name":"lazy range without index number","Code":"for (const i of range_undefined(length)) {}","IsDeferred":false}]}