{"ScriptPreparationCode":"\u0022use strict\u0022;\r\nconst arr = [];\r\nfor (let i=0; i\u003C1000; i\u002B\u002B) {\r\n arr[i] = Array.from({length: Math.floor(Math.random() * 101)}, (function(){return 97 | 0}));\r\n arr[i].push(0);\r\n}\r\n\r\nfunction strlen(str) {\r\n let current = 0;\r\n while (str[current] != 0) {\r\n current = current \u002B 1;\r\n }\r\n return current;\r\n}\r\n\r\nfunction strlen_modern(str) {\r\n let current = 0;\r\n while (str[current] !== 0) {\r\n current \u002B= 1;\r\n }\r\n return current;\r\n}\r\n\r\nfunction strlen_explicit(str) {\r\n let current = 0;\r\n while ((str[current \u003E\u003E 0] | 0) != 0) {\r\n current = (current \u002B 1) | 0;\r\n }\r\n return current | 0;\r\n}\r\n\r\nfunction strlen_explicit_modern(str) {\r\n let current = 0;\r\n while ((str[current \u003E\u003E 0] | 0) !== 0) {\r\n current = (current \u002B 1) | 0;\r\n }\r\n return current | 0;\r\n}","TestCases":[{"Name":"regular js","Code":"\u0022use strict\u0022;\r\nlet x = 0;\r\nfor (let i=0; i\u003C1000; i\u002B\u002B) {\r\n x = strlen(arr[i]);\r\n}","IsDeferred":false},{"Name":"modern js","Code":"\u0022use strict\u0022;\r\nlet x = 0;\r\nfor (let i=0; i\u003C1000; i\u002B\u002B) {\r\n x = strlen_modern(arr[i]);\r\n}","IsDeferred":false},{"Name":"explicit int32 types","Code":"\u0022use strict\u0022;\r\nlet x = 0;\r\nfor (let i=0; i\u003C1000; i\u002B\u002B) {\r\n x = strlen_explicit(arr[i]) | 0;\r\n}","IsDeferred":false},{"Name":"explicit int32 types 2","Code":"\u0022use strict\u0022;\r\nlet x = 0;\r\nfor (let i=0; i\u003C1000; i = (i\u002B1) | 0) {\r\n x = strlen_explicit(arr[i \u003E\u003E 0]) | 0;\r\n}","IsDeferred":false},{"Name":"explicit int32 types modern","Code":"\u0022use strict\u0022;\r\nlet x = 0;\r\nfor (let i=0; i\u003C1000; i = (i\u002B1) | 0) {\r\n x = strlen_explicit_modern(arr[i \u003E\u003E 0]) | 0;\r\n}","IsDeferred":false}]}