From d7198705e5945e5b13ac9df69d5d18a53e77771c Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20V=C3=A1zquez?= Date: Sun, 23 Jun 2013 17:14:56 +0200 Subject: [PATCH] Migrate UNWIND-PROTECT --- src/compiler.lisp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/compiler.lisp b/src/compiler.lisp index 0d4bab1..d83b6b0 100644 --- a/src/compiler.lisp +++ b/src/compiler.lisp @@ -910,14 +910,13 @@ "})" ))) (define-compilation unwind-protect (form &rest clean-up) - (js!selfcall - "var ret = " (ls-compile nil) ";" - "try {" - `(code "ret = " ,(ls-compile form) ";" ) - "} finally {" - `(code ,(ls-compile-block clean-up)) - "}" - "return ret;" )) + (js!selfcall* + `(var (|ret| ,(ls-compile nil))) + `(try + (= |ret| ,(ls-compile form))) + `(finally + ,(ls-compile-block clean-up)) + `(return |ret|))) (define-compilation multiple-value-call (func-form &rest forms) (js!selfcall -- 1.7.10.4