js-on-sx: obj destructure rename + rest + nested tolerance
Pattern {key: local-name} emits ("rename" key local). Transpile
emits (define local (js-get-prop tmp key)).
Rest in obj pattern stubs (no supported), nested {} and [] treated
as holes.
442/444 unit (+2), 148/148 slice unchanged.
This commit is contained in:
@@ -1135,6 +1135,12 @@ cat > "$TMPFILE" << 'EPOCHS'
|
||||
(epoch 3101)
|
||||
(eval "(js-eval \"var [h, ...tl] = [1,2,3,4]; tl.join(',')\")")
|
||||
|
||||
;; ── Phase 11.destruct3: rename in obj pattern ──────────────────
|
||||
(epoch 3200)
|
||||
(eval "(js-eval \"var {aa: x1} = {aa: 100}; x1\")")
|
||||
(epoch 3201)
|
||||
(eval "(js-eval \"var {aa: x2, bb: y2} = {aa:1, bb:2}; x2+y2\")")
|
||||
|
||||
EPOCHS
|
||||
|
||||
|
||||
@@ -1750,6 +1756,10 @@ check 3003 "sort reverse" '"3,2,1"'
|
||||
check 3100 "rest arr length" '3'
|
||||
check 3101 "rest arr join" '"2,3,4"'
|
||||
|
||||
# ── Phase 11.destruct3 ────────────────────────────────────────
|
||||
check 3200 "obj rename" '100'
|
||||
check 3201 "obj multi rename" '3'
|
||||
|
||||
TOTAL=$((PASS + FAIL))
|
||||
if [ $FAIL -eq 0 ]; then
|
||||
echo "✓ $PASS/$TOTAL JS-on-SX tests passed"
|
||||
|
||||
Reference in New Issue
Block a user