[Added GEN-JS-NAME and WITH-UNIQUE-JS-NAMES
Marco Baringer <mb@bese.it>**20050815134940] {
hunk ./js.lisp 1252
+
hunk ./js.lisp 1258
+
+;;; helper functions
+
+(defvar *gen-js-name-counter* 0)
+
+(defun gen-js-name (&key (prefix "parenscript_"))
+  (intern (concatenate 'string
+                       prefix (princ-to-string (incf *gen-js-name-counter*)))
+          (find-package :js)))
+
+(defmacro with-unique-js-names (symbols &body body)
+  `(let* ,(mapcar (lambda (symbol)
+                    (destructuring-bind (symbol &optional prefix)
+                        (if (consp symbol)
+                            symbol
+                            (list symbol))
+                      (if prefix
+                          `(,symbol (gen-js-name :prefix ,prefix))
+                          `(,symbol (gen-js-name)))))
+                  symbols)
+     ,@body))
}