All checks were successful
ci / fast (linux) (push) Successful in 6m18s
Implement array literals ([1,2,3]), computed member access (obj[key]), and seven array methods (push, pop, join, indexOf, slice, toString, concat). Arrays use JsObject with an internal is_array flag and numeric string keys plus a length property. Key changes: - Parser: LBracket/RBracket tokens, ArrayLit/ComputedMember/ ComputedMemberAssign AST variants, bracket access in parse_call - JsObject: refactored inner to JsObjectData with is_array flag, added new_array()/is_array()/remove(), array-aware Display/Debug - Interpreter: eval_array_lit, eval_computed_member, eval_computed_member_assign (all #[inline(never)]), ComputedMember arms in eval_update/eval_compound_assign, dispatch_method_call refactor for shared dot/bracket call paths, eval_array_method - JS262: promoted array-literal and computed-member-access to pass, added 5 new array method conformance tests (156 pass, 20 known_fail) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
9 lines
172 B
JavaScript
9 lines
172 B
JavaScript
var a = [1, 2, 3, 4, 5];
|
|
var b = a.slice(1, 3);
|
|
console.log(b.length);
|
|
console.log(b[0]);
|
|
console.log(b[1]);
|
|
var c = a.slice(-2);
|
|
console.log(c.length);
|
|
console.log(c[0]);
|