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:
31
lib/js/test262-slice/README.md
Normal file
31
lib/js/test262-slice/README.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# JS-on-SX cherry-picked conformance slice
|
||||
|
||||
A hand-picked slice inspired by test262 expression tests. Each test is one
|
||||
JS expression in a `.js` file, paired with an `.expected` file containing
|
||||
the SX-printed result that `js-eval` should produce.
|
||||
|
||||
Run via:
|
||||
|
||||
bash lib/js/conformance.sh
|
||||
|
||||
The slice intentionally avoids anything not yet implemented (statements,
|
||||
`var`/`let`, `function`, regex, template strings, prototypes, `new`,
|
||||
`this`, classes, async). Those land in later phases.
|
||||
|
||||
## Expected value format
|
||||
|
||||
`js-eval` returns SX values. The epoch protocol prints them thus:
|
||||
|
||||
| JS value | Expected file contents |
|
||||
|------------------|-----------------------|
|
||||
| `42` | `42` |
|
||||
| `3.14` | `3.14` |
|
||||
| `true` / `false` | `true` / `false` |
|
||||
| `"hi"` | `"hi"` |
|
||||
| `null` | `nil` |
|
||||
| `undefined` | `"js-undefined"` |
|
||||
| `[1,2,3]` | `(1 2 3)` |
|
||||
| `{}` | `{}` |
|
||||
|
||||
The runner does a substring match — the `.expected` file can contain just
|
||||
the distinguishing part of the result.
|
||||
1
lib/js/test262-slice/arithmetic/add.expected
Normal file
1
lib/js/test262-slice/arithmetic/add.expected
Normal file
@@ -0,0 +1 @@
|
||||
3
|
||||
1
lib/js/test262-slice/arithmetic/add.js
Normal file
1
lib/js/test262-slice/arithmetic/add.js
Normal file
@@ -0,0 +1 @@
|
||||
1 + 2
|
||||
1
lib/js/test262-slice/arithmetic/big_expr.expected
Normal file
1
lib/js/test262-slice/arithmetic/big_expr.expected
Normal file
@@ -0,0 +1 @@
|
||||
5
|
||||
1
lib/js/test262-slice/arithmetic/big_expr.js
Normal file
1
lib/js/test262-slice/arithmetic/big_expr.js
Normal file
@@ -0,0 +1 @@
|
||||
1 + 2 * 3 - 4 / 2
|
||||
1
lib/js/test262-slice/arithmetic/bitnot.expected
Normal file
1
lib/js/test262-slice/arithmetic/bitnot.expected
Normal file
@@ -0,0 +1 @@
|
||||
-6
|
||||
1
lib/js/test262-slice/arithmetic/bitnot.js
Normal file
1
lib/js/test262-slice/arithmetic/bitnot.js
Normal file
@@ -0,0 +1 @@
|
||||
~5
|
||||
1
lib/js/test262-slice/arithmetic/chained.expected
Normal file
1
lib/js/test262-slice/arithmetic/chained.expected
Normal file
@@ -0,0 +1 @@
|
||||
10
|
||||
1
lib/js/test262-slice/arithmetic/chained.js
Normal file
1
lib/js/test262-slice/arithmetic/chained.js
Normal file
@@ -0,0 +1 @@
|
||||
1 + 2 + 3 + 4
|
||||
1
lib/js/test262-slice/arithmetic/div.expected
Normal file
1
lib/js/test262-slice/arithmetic/div.expected
Normal file
@@ -0,0 +1 @@
|
||||
3
|
||||
1
lib/js/test262-slice/arithmetic/div.js
Normal file
1
lib/js/test262-slice/arithmetic/div.js
Normal file
@@ -0,0 +1 @@
|
||||
12 / 4
|
||||
1
lib/js/test262-slice/arithmetic/mixed_concat.expected
Normal file
1
lib/js/test262-slice/arithmetic/mixed_concat.expected
Normal file
@@ -0,0 +1 @@
|
||||
"12"
|
||||
1
lib/js/test262-slice/arithmetic/mixed_concat.js
Normal file
1
lib/js/test262-slice/arithmetic/mixed_concat.js
Normal file
@@ -0,0 +1 @@
|
||||
1 + "2"
|
||||
1
lib/js/test262-slice/arithmetic/mod.expected
Normal file
1
lib/js/test262-slice/arithmetic/mod.expected
Normal file
@@ -0,0 +1 @@
|
||||
1
|
||||
1
lib/js/test262-slice/arithmetic/mod.js
Normal file
1
lib/js/test262-slice/arithmetic/mod.js
Normal file
@@ -0,0 +1 @@
|
||||
10 % 3
|
||||
1
lib/js/test262-slice/arithmetic/neg.expected
Normal file
1
lib/js/test262-slice/arithmetic/neg.expected
Normal file
@@ -0,0 +1 @@
|
||||
-5
|
||||
1
lib/js/test262-slice/arithmetic/neg.js
Normal file
1
lib/js/test262-slice/arithmetic/neg.js
Normal file
@@ -0,0 +1 @@
|
||||
-5
|
||||
@@ -0,0 +1 @@
|
||||
9
|
||||
1
lib/js/test262-slice/arithmetic/paren_precedence.js
Normal file
1
lib/js/test262-slice/arithmetic/paren_precedence.js
Normal file
@@ -0,0 +1 @@
|
||||
(1 + 2) * 3
|
||||
1
lib/js/test262-slice/arithmetic/pos.expected
Normal file
1
lib/js/test262-slice/arithmetic/pos.expected
Normal file
@@ -0,0 +1 @@
|
||||
5
|
||||
1
lib/js/test262-slice/arithmetic/pos.js
Normal file
1
lib/js/test262-slice/arithmetic/pos.js
Normal file
@@ -0,0 +1 @@
|
||||
+5
|
||||
1
lib/js/test262-slice/arithmetic/pow.expected
Normal file
1
lib/js/test262-slice/arithmetic/pow.expected
Normal file
@@ -0,0 +1 @@
|
||||
1024
|
||||
1
lib/js/test262-slice/arithmetic/pow.js
Normal file
1
lib/js/test262-slice/arithmetic/pow.js
Normal file
@@ -0,0 +1 @@
|
||||
2 ** 10
|
||||
1
lib/js/test262-slice/arithmetic/pow_right_assoc.expected
Normal file
1
lib/js/test262-slice/arithmetic/pow_right_assoc.expected
Normal file
@@ -0,0 +1 @@
|
||||
512
|
||||
1
lib/js/test262-slice/arithmetic/pow_right_assoc.js
Normal file
1
lib/js/test262-slice/arithmetic/pow_right_assoc.js
Normal file
@@ -0,0 +1 @@
|
||||
2 ** 3 ** 2
|
||||
1
lib/js/test262-slice/arithmetic/precedence.expected
Normal file
1
lib/js/test262-slice/arithmetic/precedence.expected
Normal file
@@ -0,0 +1 @@
|
||||
7
|
||||
1
lib/js/test262-slice/arithmetic/precedence.js
Normal file
1
lib/js/test262-slice/arithmetic/precedence.js
Normal file
@@ -0,0 +1 @@
|
||||
1 + 2 * 3
|
||||
1
lib/js/test262-slice/arithmetic/string_concat.expected
Normal file
1
lib/js/test262-slice/arithmetic/string_concat.expected
Normal file
@@ -0,0 +1 @@
|
||||
"ab"
|
||||
1
lib/js/test262-slice/arithmetic/string_concat.js
Normal file
1
lib/js/test262-slice/arithmetic/string_concat.js
Normal file
@@ -0,0 +1 @@
|
||||
"a" + "b"
|
||||
1
lib/js/test262-slice/arithmetic/sub.expected
Normal file
1
lib/js/test262-slice/arithmetic/sub.expected
Normal file
@@ -0,0 +1 @@
|
||||
6
|
||||
1
lib/js/test262-slice/arithmetic/sub.js
Normal file
1
lib/js/test262-slice/arithmetic/sub.js
Normal file
@@ -0,0 +1 @@
|
||||
10 - 4
|
||||
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
|
||||
1
lib/js/test262-slice/closures/adder.expected
Normal file
1
lib/js/test262-slice/closures/adder.expected
Normal file
@@ -0,0 +1 @@
|
||||
44
|
||||
1
lib/js/test262-slice/closures/adder.js
Normal file
1
lib/js/test262-slice/closures/adder.js
Normal file
@@ -0,0 +1 @@
|
||||
function mk(n) { return x => x + n; } let add7 = mk(7); add7(10) + add7(20)
|
||||
1
lib/js/test262-slice/closures/counter.expected
Normal file
1
lib/js/test262-slice/closures/counter.expected
Normal file
@@ -0,0 +1 @@
|
||||
4
|
||||
1
lib/js/test262-slice/closures/counter.js
Normal file
1
lib/js/test262-slice/closures/counter.js
Normal file
@@ -0,0 +1 @@
|
||||
function mkc() { let n = 0; return () => { n = n + 1; return n; }; } let c = mkc(); c(); c(); c(); c()
|
||||
1
lib/js/test262-slice/closures/multi_closure.expected
Normal file
1
lib/js/test262-slice/closures/multi_closure.expected
Normal file
@@ -0,0 +1 @@
|
||||
42
|
||||
1
lib/js/test262-slice/closures/multi_closure.js
Normal file
1
lib/js/test262-slice/closures/multi_closure.js
Normal file
@@ -0,0 +1 @@
|
||||
function mkPair() { let x = 0; let y = 0; let setX = v => { x = v; }; let setY = v => { y = v; }; let get = () => x + y; setX(17); setY(25); return get(); } mkPair()
|
||||
1
lib/js/test262-slice/closures/nested_scope.expected
Normal file
1
lib/js/test262-slice/closures/nested_scope.expected
Normal file
@@ -0,0 +1 @@
|
||||
3
|
||||
1
lib/js/test262-slice/closures/nested_scope.js
Normal file
1
lib/js/test262-slice/closures/nested_scope.js
Normal file
@@ -0,0 +1 @@
|
||||
function outer() { let a = 1; function inner() { let b = 2; function deepest() { return a + b; } return deepest(); } return inner(); } outer()
|
||||
1
lib/js/test262-slice/closures/sum_sq.expected
Normal file
1
lib/js/test262-slice/closures/sum_sq.expected
Normal file
@@ -0,0 +1 @@
|
||||
55
|
||||
1
lib/js/test262-slice/closures/sum_sq.js
Normal file
1
lib/js/test262-slice/closures/sum_sq.js
Normal file
@@ -0,0 +1 @@
|
||||
function sumSq(xs) { let t = 0; for (let i = 0; i < xs.length; i = i + 1) t = t + xs[i] * xs[i]; return t; } sumSq([1,2,3,4,5])
|
||||
1
lib/js/test262-slice/coercion/implicit_str_add.expected
Normal file
1
lib/js/test262-slice/coercion/implicit_str_add.expected
Normal file
@@ -0,0 +1 @@
|
||||
"n=42"
|
||||
1
lib/js/test262-slice/coercion/implicit_str_add.js
Normal file
1
lib/js/test262-slice/coercion/implicit_str_add.js
Normal file
@@ -0,0 +1 @@
|
||||
"n=" + 42
|
||||
1
lib/js/test262-slice/coercion/loose_str_num.expected
Normal file
1
lib/js/test262-slice/coercion/loose_str_num.expected
Normal file
@@ -0,0 +1 @@
|
||||
true
|
||||
1
lib/js/test262-slice/coercion/loose_str_num.js
Normal file
1
lib/js/test262-slice/coercion/loose_str_num.js
Normal file
@@ -0,0 +1 @@
|
||||
"5" == 5
|
||||
1
lib/js/test262-slice/coercion/typeof_bool.expected
Normal file
1
lib/js/test262-slice/coercion/typeof_bool.expected
Normal file
@@ -0,0 +1 @@
|
||||
"boolean"
|
||||
1
lib/js/test262-slice/coercion/typeof_bool.js
Normal file
1
lib/js/test262-slice/coercion/typeof_bool.js
Normal file
@@ -0,0 +1 @@
|
||||
typeof true
|
||||
1
lib/js/test262-slice/coercion/typeof_fn.expected
Normal file
1
lib/js/test262-slice/coercion/typeof_fn.expected
Normal file
@@ -0,0 +1 @@
|
||||
"function"
|
||||
1
lib/js/test262-slice/coercion/typeof_fn.js
Normal file
1
lib/js/test262-slice/coercion/typeof_fn.js
Normal file
@@ -0,0 +1 @@
|
||||
typeof (x => x)
|
||||
1
lib/js/test262-slice/coercion/typeof_null.expected
Normal file
1
lib/js/test262-slice/coercion/typeof_null.expected
Normal file
@@ -0,0 +1 @@
|
||||
"object"
|
||||
1
lib/js/test262-slice/coercion/typeof_null.js
Normal file
1
lib/js/test262-slice/coercion/typeof_null.js
Normal file
@@ -0,0 +1 @@
|
||||
typeof null
|
||||
1
lib/js/test262-slice/coercion/typeof_num.expected
Normal file
1
lib/js/test262-slice/coercion/typeof_num.expected
Normal file
@@ -0,0 +1 @@
|
||||
"number"
|
||||
1
lib/js/test262-slice/coercion/typeof_num.js
Normal file
1
lib/js/test262-slice/coercion/typeof_num.js
Normal file
@@ -0,0 +1 @@
|
||||
typeof 42
|
||||
1
lib/js/test262-slice/coercion/typeof_str.expected
Normal file
1
lib/js/test262-slice/coercion/typeof_str.expected
Normal file
@@ -0,0 +1 @@
|
||||
"string"
|
||||
1
lib/js/test262-slice/coercion/typeof_str.js
Normal file
1
lib/js/test262-slice/coercion/typeof_str.js
Normal file
@@ -0,0 +1 @@
|
||||
typeof "x"
|
||||
1
lib/js/test262-slice/coercion/typeof_undef.expected
Normal file
1
lib/js/test262-slice/coercion/typeof_undef.expected
Normal file
@@ -0,0 +1 @@
|
||||
"undefined"
|
||||
1
lib/js/test262-slice/coercion/typeof_undef.js
Normal file
1
lib/js/test262-slice/coercion/typeof_undef.js
Normal file
@@ -0,0 +1 @@
|
||||
typeof undefined
|
||||
1
lib/js/test262-slice/collections/array_empty.expected
Normal file
1
lib/js/test262-slice/collections/array_empty.expected
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
1
lib/js/test262-slice/collections/array_empty.js
Normal file
1
lib/js/test262-slice/collections/array_empty.js
Normal file
@@ -0,0 +1 @@
|
||||
[].length
|
||||
1
lib/js/test262-slice/collections/array_index.expected
Normal file
1
lib/js/test262-slice/collections/array_index.expected
Normal file
@@ -0,0 +1 @@
|
||||
20
|
||||
1
lib/js/test262-slice/collections/array_index.js
Normal file
1
lib/js/test262-slice/collections/array_index.js
Normal file
@@ -0,0 +1 @@
|
||||
[10,20,30][1]
|
||||
1
lib/js/test262-slice/collections/array_length.expected
Normal file
1
lib/js/test262-slice/collections/array_length.expected
Normal file
@@ -0,0 +1 @@
|
||||
3
|
||||
1
lib/js/test262-slice/collections/array_length.js
Normal file
1
lib/js/test262-slice/collections/array_length.js
Normal file
@@ -0,0 +1 @@
|
||||
[1,2,3].length
|
||||
1
lib/js/test262-slice/collections/array_nested.expected
Normal file
1
lib/js/test262-slice/collections/array_nested.expected
Normal file
@@ -0,0 +1 @@
|
||||
3
|
||||
1
lib/js/test262-slice/collections/array_nested.js
Normal file
1
lib/js/test262-slice/collections/array_nested.js
Normal file
@@ -0,0 +1 @@
|
||||
[[1,2],[3,4]][1][0]
|
||||
@@ -0,0 +1 @@
|
||||
5
|
||||
1
lib/js/test262-slice/collections/array_plus_length.js
Normal file
1
lib/js/test262-slice/collections/array_plus_length.js
Normal file
@@ -0,0 +1 @@
|
||||
[1,2,3].length + [4,5].length
|
||||
1
lib/js/test262-slice/collections/object_chain.expected
Normal file
1
lib/js/test262-slice/collections/object_chain.expected
Normal file
@@ -0,0 +1 @@
|
||||
42
|
||||
1
lib/js/test262-slice/collections/object_chain.js
Normal file
1
lib/js/test262-slice/collections/object_chain.js
Normal file
@@ -0,0 +1 @@
|
||||
({a:{b:{c:42}}}).a.b.c
|
||||
1
lib/js/test262-slice/collections/object_prop.expected
Normal file
1
lib/js/test262-slice/collections/object_prop.expected
Normal file
@@ -0,0 +1 @@
|
||||
1
|
||||
1
lib/js/test262-slice/collections/object_prop.js
Normal file
1
lib/js/test262-slice/collections/object_prop.js
Normal file
@@ -0,0 +1 @@
|
||||
({x:1,y:2}).x
|
||||
1
lib/js/test262-slice/collections/string_index.expected
Normal file
1
lib/js/test262-slice/collections/string_index.expected
Normal file
@@ -0,0 +1 @@
|
||||
"e"
|
||||
1
lib/js/test262-slice/collections/string_index.js
Normal file
1
lib/js/test262-slice/collections/string_index.js
Normal file
@@ -0,0 +1 @@
|
||||
"hello"[1]
|
||||
1
lib/js/test262-slice/collections/string_length.expected
Normal file
1
lib/js/test262-slice/collections/string_length.expected
Normal file
@@ -0,0 +1 @@
|
||||
5
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user