anchor.diff:                       ((eq val (infinity)) most-positive-fixnum)
                        ((eq val (-infinity)) most-negative-fixnum)
                        (t (truncate val))))
  -    (string (let ((read (read-js-number val)))
  +    (string (let ((read (with-input-from-string (in val) (read-js-number in))))
                 (etypecase read (null 0) (integer read) (number (floor read)))))
       (boolean (if val 1 0))
       (symbol 0)
  
positive.code:     (js-number val)
      (string (cond ((string= val "Infinity") (infinity))
                    ((string= val "-Infinity") (-infinity))
                    (t (or (read-js-number val) (nan)))))
      (boolean (if val 1 0))
      (symbol (ecase val (:undefined (nan)) (:null 0)))
      (obj (to-number (default-value val :number)))))
  
negative.code:   (let ((val (to-string val)))
      (cond ((string= val "Infinity") (infinity))
            ((string= val "-Infinity") (-infinity))
            (t (or (with-input-from-string (in val) (read-js-number in)) (nan))))))
  (stdfunc "isNaN" (val)
    (is-nan (to-number val)))
  (stdfunc "eval" (str)
  