X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcompiler-codegen.lisp;h=61aeac2a385b628625127f2342e4c325811bfcc2;hb=0d00317ecc122d6e20b9fa1fb031004b45d1e12a;hp=674ace6f38414af97168e0e9d5e596fe1ffe3a43;hpb=53a9b4efe2918de695ba8bee97a0c2ac95083564;p=jscl.git diff --git a/src/compiler-codegen.lisp b/src/compiler-codegen.lisp index 674ace6..61aeac2 100644 --- a/src/compiler-codegen.lisp +++ b/src/compiler-codegen.lisp @@ -78,7 +78,7 @@ (defun valid-js-identifier (string-designator) (let ((string (typecase string-designator - (symbol (string-downcase (symbol-name string-designator))) + (symbol (symbol-name string-designator)) (string string-designator) (t (return-from valid-js-identifier (values nil nil)))))) @@ -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 ")