anchor.diff:    (if (and (consp x)
   		   (or (keywordp (first x))
   			   (stringp (first x))))
  -	  `(make-hash-table ,@x)
  +	  `(make-hash-table
  +		 ,@(mapcan #'((x)
  +						(list (if (and (not (stringp (first x)))
  +									   (eq :class (first x)))
  +								  "class" ; IE6 wants this.
  +								  (first x))
  +							  (second x)))
  +				   (group x 2)))
   	  `(%new ,(first x)
   			 ,@(if (transpiler-function-arguments? *js-transpiler* (first x))
   			       (argument-expand-compiled-values
  
positive.code: 
  (define-js-std-macro function (&rest x)
    (with (e `(function ,@x))
      (unless x
        (error "FUNCTION expects arguments"))
      (if (atom (car x))
  
negative.code:     (transpiler-obfuscate-symbol *js-transpiler* name)
  	(unless (in? name 'apply)
  	  (acons! name args (transpiler-function-args tr)))
      `(progn
  	   (%var ,name)
  	   (%setq ,name
  		      #'(,args
      		       ,@(if (and (not *assert*)
  			    	          (stringp (first body)))
  					     (cdr body)
  					     body))))))
  
  (define-js-std-macro defmacro (name args &rest body)
    (progn
  