anchor.diff:    (call-next-method val hash key))
   
   (defmethod prop ((hash global-object) key)
  -  (format t "looking for ~A~%" key)
  +  #+js-debug (format t "looking for ~A~%" key)
     (call-next-method hash key))
   
   (defclass native-function (native-hash)
  
positive.code: 		      `,`(prop *global* #+nil this ,name)))
  		(js!assign (op exp val)
  		  (let ((name (find-name exp)))
  		    (cond 
  		      ((string-equal "this" name)
  		       `,`(setf ,exp ,val))
  		      ((funcall ,local-variable-p name)
  		       `(setf ,exp #+nil (->sym name) ,val)) ;todo: same as this?
  		      (t
  		       `,`(setf (prop *global* #+nil this ,exp) ,val)))))
  		(js!return (ret) `,`(return-from ,',blockname ,ret)))
         (lambda (this &rest ,argument-list)
  	 (declare (dynamic-extent ,argument-list))
  	 (format t "this: ~A~%" this)
  	 (let ((arguments (coerce ,argument-list 'simple-vector))
  	       ,@(mapcar (lambda (var-desc)
  			   (list (->sym (car var-desc))
  
negative.code: (defmacro js!num (num) num)
  
  (defmacro js!stat (form)
    `(progn ,form))
  
  (defmacro js!block (form)
    `(progn ,form))
  
  (defmacro js!var (vars)
  