js-on-sx: tolerate destructuring params in fn decls/exprs (skipped as holes)
This commit is contained in:
@@ -760,6 +760,28 @@
|
|||||||
(do
|
(do
|
||||||
(jp-advance! st)
|
(jp-advance! st)
|
||||||
(append! params (list (quote js-rest) nm))))))
|
(append! params (list (quote js-rest) nm))))))
|
||||||
|
((jp-at? st "punct" "{")
|
||||||
|
(begin
|
||||||
|
(jp-skip-balanced st "{" "}")
|
||||||
|
(append! params "__destruct_param__")
|
||||||
|
(when
|
||||||
|
(jp-at? st "op" "=")
|
||||||
|
(begin (jp-advance! st) (jp-parse-assignment st)))
|
||||||
|
(cond
|
||||||
|
((jp-at? st "punct" ",")
|
||||||
|
(begin (jp-advance! st) (jp-parse-param-list-loop st params)))
|
||||||
|
(else nil))))
|
||||||
|
((jp-at? st "punct" "[")
|
||||||
|
(begin
|
||||||
|
(jp-skip-balanced st "[" "]")
|
||||||
|
(append! params "__destruct_param__")
|
||||||
|
(when
|
||||||
|
(jp-at? st "op" "=")
|
||||||
|
(begin (jp-advance! st) (jp-parse-assignment st)))
|
||||||
|
(cond
|
||||||
|
((jp-at? st "punct" ",")
|
||||||
|
(begin (jp-advance! st) (jp-parse-param-list-loop st params)))
|
||||||
|
(else nil))))
|
||||||
((= (get (jp-peek st) :type) "ident")
|
((= (get (jp-peek st) :type) "ident")
|
||||||
(do
|
(do
|
||||||
(let
|
(let
|
||||||
|
|||||||
Reference in New Issue
Block a user