nodent-compiler
Version:
NoDent - Asynchronous Javascript language extensions
60 lines (51 loc) • 912 B
JavaScript
function sleep(n) {
return new Promise(function(resolve){
setTimeout(resolve,n) ;
}) ;
}
async function test(error) {
var res = "" ;
async function progress(x) {
res += "x"+x ;
res += "p"+phase ;
await sleep(1) ;
return ;
}
async function load() {
return {
afn:async function() {
await progress(2) ;
return ;
}
} ;
}
var phase ;
try {
for (var i=0; i<3; i++) {
phase = "1" ;
await progress(1) ;
}
phase = "2" ;
await (await load()).afn() ;
// Check ES
phase = "3" ;
await progress(3) ;
// Check WPS
phase = "4" ;
for (i=0; i<[1].length; i++) {
if (true) {
await progress(4) ;
break ;
}
}
if (error) {
phase = "5" ;
throw new Error("error") ;
}
} catch (ex) {
res += "*"+phase ;
}
return res ;
} ;
return (await test(false))=="x1p1x1p1x1p1x2p2x3p3x4p4" &&
(await test(true))=="x1p1x1p1x1p1x2p2x3p3x4p4*5" ;