anchor.diff:  	 #+js-debug (format t "this: ~A~%" this)
   	 (let ((arguments (coerce ,argument-list 'simple-vector))
   	       ,@(mapcar (lambda (var-desc)
  -			   (list (->sym (car var-desc))
  +			   (list (car var-desc)
   				 (cdr var-desc))) local-var-list))
  -	   (multiple-value-bind ,(mapcar #'->sym args) (values-list ,argument-list)
  +	   (multiple-value-bind ,args (values-list ,argument-list)
   	     (block ,blockname ,@body)))))))
  +
  +#+nil (defmacro js!lambda (args body)
  +  (let* ((argument-list (gensym))
  +	 (local-var-list (find-vars body))
  +	 (local-variable-p
  +	  (lambda (var)
  +	    (or (member var (list 'this 'arguments))
  +		(member var args)
  +		(member var local-var-list :key #'car))))
  +	 (blockname (gensym)))
  +    `(macrolet ((js!name (name)
  +		  (if (funcall ,local-variable-p name)
  +		      name
  +		      `,`(prop *global* #+nil this ',name)))
  +		(js!assign (op exp val)
  +		  (let ((name (find-name exp)))
  +		    (if (funcall ,local-variable-p name)
  +			`(setf ,exp ,val)
  +			`,`(setf (prop *global* #+nil this ,exp) ,val))))
  +		(js!return (ret) `,`(return-from ,',blockname ,ret)))
  +       (lambda (this ,@args)
  +	 #+nil (declare (dynamic-extent ,argument-list))
  +	 #+js-debug (format t "this: ~A~%" this)
  +	 (let (#+nil (arguments (coerce ,argument-list 'simple-vector))
  +	       ,@(mapcar (lambda (var-desc)
  +			   (list (car var-desc)
  +				 (cdr var-desc))) local-var-list))
  +	     (block ,blockname ,@body))))))
   
   (defmacro js!function (name args body)
     `(make-instance 'native-function
  
positive.code:   `(progn ,@form))
  
  (defmacro js!name (attr)
    (if (string= attr "this")
        'this
        `(prop this ,attr)))
  
  (defmacro js!dot (obj attr)
    `(prop ,obj ,attr))
  
  (defmacro js!assign (op place val)
    `(setf ,place ,val))
  
negative.code: 
  (defmacro js!new (func args)
    (let ((ret (gensym)))
      `(let ((,ret (make-instance 'native-hash :prototype (prop ,func 'prototype))))
         (funcall (proc ,func) ,ret ,@args)
         (setf (prop ,ret 'constructor) ,func)
         ,ret)))
  
  (defmacro js!return (ret)
  