anchor.diff:  (define-js-std-macro new (&rest x)
     (unless x
   	(error "NEW expects arguments"))
  -  (if (or (keyword? x.)
  -		  (string? x.))
  -	  (js-transpiler-make-new-hash x)
  -	  (js-transpiler-make-new-object x)))
  +  (? (or (keyword? x.)
  +		 (string? x.))
  +	 (js-transpiler-make-new-hash x)
  +	 (js-transpiler-make-new-object x)))
   
   (define-js-std-macro doeach ((var seq &rest result) &rest body)
     (with-gensym (evald-seq idx)
  
positive.code:       (transpiler-add-cps-function *js-transpiler* g))
      (with-lambda-content x fi args body
        `(#'((,g)
  	        (setf ,g ,(copy-lambda `(function ,x)
  					               :body (body-with-noargs-tag body)))
  		    (setf (slot-value ,g 'tre-exp)
                    ,(compile-argument-expansion g args))
  		    ,g)
  		  nil))))
  
  
negative.code:      `(? ,x. nil t)))
  
  (define-js-std-macro function (x)
    (? (cons? x)
       (with-lambda-content x fi args body
  	   (? (or (body-has-noargs-tag? body)
                (simple-argument-list? args))
    	      `(function ,x)
  		  (js-make-function-with-compiled-argument-expansion x)))
    	 `(function ,x)))
  
  (define-js-std-macro funcall (fun &rest args)
    (with-gensym (f e a)
      `(with (,f ,fun
              ,e (slot-value ,f 'tre-exp))
         (? e
            (let ,a (list ,@args)
              ((slot-value ,e 'apply) nil (%transpiler-native "[" ,a "]")))
            (,f ,@args)))))
  
  (defun js-cps-exception (x)
  