{"ScriptPreparationCode":"function wait(ms) {\r\n return new Promise(res =\u003E setTimeout(() =\u003E { res(ms); }, ms));\r\n}\r\nfunction factorializeRecursive(num) {\r\n if (num \u003C 0) \r\n return -1;\r\n else if (num == 0) \r\n return 1;\r\n else {\r\n return (num * factorializeRecursive(num - 1));\r\n }\r\n}","TestCases":[{"Name":"Deferred wait 50","Code":"setTimeout(function () { deferred.resolve() }, 50);","IsDeferred":true},{"Name":"Deferred wait 500","Code":"setTimeout(function () { deferred.resolve() }, 500);","IsDeferred":true},{"Name":"Deferred wait 100","Code":"setTimeout(function () { deferred.resolve() }, 100);","IsDeferred":true},{"Name":"Async Wait 100","Code":"await wait(100);\r\ndeferred.resolve();","IsDeferred":true},{"Name":"Regular/Sync Test, 5000!","Code":"var r = factorializeRecursive(5000);","IsDeferred":false}]}