js-on-sx: baseline commit (278/280 unit, 148/148 slice, runner stub)
Initial commit of the lib/js/ tree and plans/ directory. A previous session left template-string work in progress — 278/280 unit tests pass (2 failing: tpl part-count off-by-one, escaped-backtick ident lookup). test262-runner.py and scoreboard are placeholders (0/8 with 7 timeouts); fixing the runner is the next queue item.
This commit is contained in:
1
lib/js/test262-slice/async/async_arrow.expected
Normal file
1
lib/js/test262-slice/async/async_arrow.expected
Normal file
@@ -0,0 +1 @@
|
||||
42
|
||||
5
lib/js/test262-slice/async/async_arrow.js
Normal file
5
lib/js/test262-slice/async/async_arrow.js
Normal file
@@ -0,0 +1,5 @@
|
||||
var double = async x => x * 2;
|
||||
var r = null;
|
||||
double(21).then(v => { r = v; });
|
||||
__drain();
|
||||
r
|
||||
@@ -0,0 +1 @@
|
||||
42
|
||||
5
lib/js/test262-slice/async/async_arrow_multiparam.js
Normal file
5
lib/js/test262-slice/async/async_arrow_multiparam.js
Normal file
@@ -0,0 +1,5 @@
|
||||
var add = async (a, b) => a + b;
|
||||
var r = null;
|
||||
add(10, 32).then(v => { r = v; });
|
||||
__drain();
|
||||
r
|
||||
1
lib/js/test262-slice/async/async_fn_basic.expected
Normal file
1
lib/js/test262-slice/async/async_fn_basic.expected
Normal file
@@ -0,0 +1 @@
|
||||
42
|
||||
5
lib/js/test262-slice/async/async_fn_basic.js
Normal file
5
lib/js/test262-slice/async/async_fn_basic.js
Normal file
@@ -0,0 +1,5 @@
|
||||
async function f() { return 42; }
|
||||
var r = null;
|
||||
f().then(v => { r = v; });
|
||||
__drain();
|
||||
r
|
||||
1
lib/js/test262-slice/async/async_fn_throws.expected
Normal file
1
lib/js/test262-slice/async/async_fn_throws.expected
Normal file
@@ -0,0 +1 @@
|
||||
nope
|
||||
5
lib/js/test262-slice/async/async_fn_throws.js
Normal file
5
lib/js/test262-slice/async/async_fn_throws.js
Normal file
@@ -0,0 +1,5 @@
|
||||
async function f() { throw "nope"; }
|
||||
var r = null;
|
||||
f().catch(e => { r = e; });
|
||||
__drain();
|
||||
r
|
||||
1
lib/js/test262-slice/async/async_nested_calls.expected
Normal file
1
lib/js/test262-slice/async/async_nested_calls.expected
Normal file
@@ -0,0 +1 @@
|
||||
33
|
||||
7
lib/js/test262-slice/async/async_nested_calls.js
Normal file
7
lib/js/test262-slice/async/async_nested_calls.js
Normal file
@@ -0,0 +1,7 @@
|
||||
async function inner(x) { return x * 2; }
|
||||
async function middle(x) { var r = await inner(x); return r + 1; }
|
||||
async function outer(x) { var r = await middle(x); return r * 3; }
|
||||
var result = null;
|
||||
outer(5).then(v => { result = v; });
|
||||
__drain();
|
||||
result
|
||||
@@ -0,0 +1 @@
|
||||
100
|
||||
5
lib/js/test262-slice/async/async_returns_promise.js
Normal file
5
lib/js/test262-slice/async/async_returns_promise.js
Normal file
@@ -0,0 +1,5 @@
|
||||
async function wrap(x) { return Promise.resolve(x); }
|
||||
var r = null;
|
||||
wrap(100).then(v => { r = v; });
|
||||
__drain();
|
||||
r
|
||||
1
lib/js/test262-slice/async/await_basic.expected
Normal file
1
lib/js/test262-slice/async/await_basic.expected
Normal file
@@ -0,0 +1 @@
|
||||
70
|
||||
9
lib/js/test262-slice/async/await_basic.js
Normal file
9
lib/js/test262-slice/async/await_basic.js
Normal file
@@ -0,0 +1,9 @@
|
||||
async function add(a, b) { return a + b; }
|
||||
async function main() {
|
||||
var r = await add(3, 4);
|
||||
return r * 10;
|
||||
}
|
||||
var result = null;
|
||||
main().then(v => { result = v; });
|
||||
__drain();
|
||||
result
|
||||
1
lib/js/test262-slice/async/await_chain.expected
Normal file
1
lib/js/test262-slice/async/await_chain.expected
Normal file
@@ -0,0 +1 @@
|
||||
3
|
||||
11
lib/js/test262-slice/async/await_chain.js
Normal file
11
lib/js/test262-slice/async/await_chain.js
Normal file
@@ -0,0 +1,11 @@
|
||||
async function step() { return 1; }
|
||||
async function main() {
|
||||
var a = await step();
|
||||
var b = await step();
|
||||
var c = await step();
|
||||
return a + b + c;
|
||||
}
|
||||
var r = null;
|
||||
main().then(v => { r = v; });
|
||||
__drain();
|
||||
r
|
||||
1
lib/js/test262-slice/async/await_in_loop.expected
Normal file
1
lib/js/test262-slice/async/await_in_loop.expected
Normal file
@@ -0,0 +1 @@
|
||||
5
|
||||
12
lib/js/test262-slice/async/await_in_loop.js
Normal file
12
lib/js/test262-slice/async/await_in_loop.js
Normal file
@@ -0,0 +1,12 @@
|
||||
async function one() { return 1; }
|
||||
async function main() {
|
||||
var sum = 0;
|
||||
for (var i = 0; i < 5; i = i + 1) {
|
||||
sum = sum + await one();
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
var r = null;
|
||||
main().then(v => { r = v; });
|
||||
__drain();
|
||||
r
|
||||
1
lib/js/test262-slice/async/await_nonpromise.expected
Normal file
1
lib/js/test262-slice/async/await_nonpromise.expected
Normal file
@@ -0,0 +1 @@
|
||||
43
|
||||
8
lib/js/test262-slice/async/await_nonpromise.js
Normal file
8
lib/js/test262-slice/async/await_nonpromise.js
Normal file
@@ -0,0 +1,8 @@
|
||||
async function main() {
|
||||
var x = await 42;
|
||||
return x + 1;
|
||||
}
|
||||
var r = null;
|
||||
main().then(v => { r = v; });
|
||||
__drain();
|
||||
r
|
||||
1
lib/js/test262-slice/async/await_promise_all.expected
Normal file
1
lib/js/test262-slice/async/await_promise_all.expected
Normal file
@@ -0,0 +1 @@
|
||||
6
|
||||
8
lib/js/test262-slice/async/await_promise_all.js
Normal file
8
lib/js/test262-slice/async/await_promise_all.js
Normal file
@@ -0,0 +1,8 @@
|
||||
async function main() {
|
||||
var vs = await Promise.all([Promise.resolve(1), Promise.resolve(2), Promise.resolve(3)]);
|
||||
return vs[0] + vs[1] + vs[2];
|
||||
}
|
||||
var r = null;
|
||||
main().then(v => { r = v; });
|
||||
__drain();
|
||||
r
|
||||
1
lib/js/test262-slice/async/await_rejected.expected
Normal file
1
lib/js/test262-slice/async/await_rejected.expected
Normal file
@@ -0,0 +1 @@
|
||||
caught:no
|
||||
9
lib/js/test262-slice/async/await_rejected.js
Normal file
9
lib/js/test262-slice/async/await_rejected.js
Normal file
@@ -0,0 +1,9 @@
|
||||
async function bad() { throw "no"; }
|
||||
async function main() {
|
||||
try { await bad(); return "unreachable"; }
|
||||
catch (e) { return "caught:" + e; }
|
||||
}
|
||||
var r = null;
|
||||
main().then(v => { r = v; });
|
||||
__drain();
|
||||
r
|
||||
@@ -0,0 +1 @@
|
||||
bad
|
||||
9
lib/js/test262-slice/async/await_throws_error_object.js
Normal file
9
lib/js/test262-slice/async/await_throws_error_object.js
Normal file
@@ -0,0 +1,9 @@
|
||||
async function failing() { throw new Error("bad"); }
|
||||
async function main() {
|
||||
try { await failing(); return "unreachable"; }
|
||||
catch (e) { return e.message; }
|
||||
}
|
||||
var r = null;
|
||||
main().then(v => { r = v; });
|
||||
__drain();
|
||||
r
|
||||
Reference in New Issue
Block a user