From: David Vázquez Date: Sun, 23 Jun 2013 14:35:03 +0000 (+0200) Subject: TRY-CATCH-FINALLY support in codegen X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=5174d9250a918896a8505fcd18f9960a3ea634ec;p=jscl.git TRY-CATCH-FINALLY support in codegen --- diff --git a/src/compiler-codegen.lisp b/src/compiler-codegen.lisp index 51027fd..61aeac2 100644 --- a/src/compiler-codegen.lisp +++ b/src/compiler-codegen.lisp @@ -440,6 +440,20 @@ (js-expr condition) (js-format ")") (js-stmt `(progn ,@body)))) + (try + (destructuring-bind (&rest body) (cdr form) + (js-format "try") + (js-stmt `(group ,@body)))) + (catch + (destructuring-bind ((var) &rest body) (cdr form) + (js-format "catch (") + (js-identifier var) + (js-format ")") + (js-stmt `(group ,@body)))) + (finally + (destructuring-bind (&rest body) (cdr form) + (js-format "finally") + (js-stmt `(group ,@body)))) (throw (destructuring-bind (object) (cdr form) (js-format "throw ")