anchor.diff:  
   (setf (prop string.ctor 'js-user::prototype) string.prototype)
   (setf (prop *global* 'js-user::String) string.ctor)
  +
  +;;
  +(defmethod prop ((str string) key &optional (default :undefined))
  +  (let* ((sealed (sealed string.prototype))
  +	 (action (gethash key sealed)))
  +    (if action
  +	(funcall action str)
  +	(prop string.prototype key))))
  +
  +(defmethod value ((str string)) str)
   
   ;;
   
  
positive.code: (define-js-method string substring (str (from 0) to)
    (if (eq to :undefined)
        (with-asserted-types ((from number))
  	(subseq str (clip-index from)))))
  ;;
  
  (defparameter number.ctor ;;todo: set-default (same as atring)
    (js-function (n)
      (cond ((numberp n) n)
  	  ((stringp n)
  
negative.code: ;;
  
  (defun clip-index (n)
    (if (eq n :NaN) 0
        (let ((n (floor n)))
  	(if (< n 0) 0 n))))
  
  