anchor.diff:  (defgeneric js-get-prototype-of (obj)
     (:documentation "XXX.getPrototypeOf function. Candidate: Object"))
   
  +(defgeneric js-global (this)
  +  (:documentation "get XXX.prototype.global. Candidate: RegExp"))
  +
  +;;; key or value
  +(defgeneric js-has (this key)
  +  (:documentation "XXX.prototype.has(key). Candidate: Map, Set, WeakMap,
  +WeakSet"))
  +
   (defgeneric js-has-own-property (obj value)
     (:documentation "XXX.prototype.hasOwnProperty function. Candidate: Object"))
   
  +(defgeneric js-ignore-case (target)
  +  (:documentation "get XXX.prototype.ignoreCase. Candidate: RegExp"))
  +
  +(defgeneric js-includes (target search)
  +  (:documentation "XXX.prototype.includes function. Candidate: String"))
  +
  +(defgeneric js-index-of (this search)
  +  (:documentation "XXX.prototype.indexOf function. Candidate: String"))
  +
  +(defgeneric js-index-of (this search &optional from)
  +  (:documentation "XXX.prototype.indexOf(searchElement[,fromIndex]). Candidate:
  +Array, TypedArray"))
  +
   (defgeneric js-is (value1 value2)
     (:documentation "XXX.is function. Candidate: Object"))
   
  +(defgeneric js-is-array (target)
  +  (:documentation "XXX.isArray(arg). Candidate: Array"))
  +
   (defgeneric js-is-extensible (obj)
     (:documentation "XXX.isExtensible function. Candidate: Object"))
   
  
positive.code: ;;; Here when we are facing error, we mean all kinds of errors,
  ;;; so EvalError will have the same generic functions set as Error.
  ;;; EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError.
  (defgeneric js-apply (func arg-array)
    (:documentation "XXX.prototype.apply function. Candidate: Function"))
  
  (defgeneric js-assign (obj &rest sources)
    (:documentation "XXX.assign function. Candidate: Object"))
  
  (defgeneric js-bind (func &rest args)
    (:documentation "XXX.prototype.bind function. Candidate: Function"))
  
  (defgeneric js-call (func &rest args)
    (:documentation "XXX.prototype.call function. Candidate: Function"))
  
  (defgeneric js-create (target proto)
    (:documentation "XXX.create function. Candidate: Object"))
  
  
negative.code: (defgeneric js-to-json (date key)
    (:documentation "XXX.prototype.toJSON function. Candidate: Date"))
  
  (defgeneric js-to-locale-lower-case (target)
    (:documentation "XXX.prototype.toLocaleLowerCase function. Candidate: String"))
  
  (defgeneric js-to-locale-upper-case (target)
    (:documentation "XXX.prototype.toLocaleUpperCase function. Candidate: String"))
  
  (defgeneric js-to-locale-string (this &optional reserved1 reserved2)
    (:documentation "XXX.prototype.toLocaleString([reserved1[,reserved2]]).
  Candidate: Object, Number, Date, Array, TypedArray"))
  
  (defgeneric js-to-lower-case (target)
    (:documentation "XXX.prototype.toLowerCase(). Candidate: String"))
  
  (defgeneric js-to-upper-case (target)
    (:documentation "XXX.prototype.toUpperCase(). Candidate: String"))
  
  (defgeneric js-to-precision (num precision)
    (:documentation "XXX.prototype.toPrecision function. Candidate: Number"))
  
  ;;; Number.prototype.toString(radix).
  (defgeneric js-to-string (this)
    (:documentation "XXX.prototype.toString(). Candidate: Object, Function,
  Boolean, Symbol, Error, Number, Date, String, RegExp, Array, TypedArray"))
  
  (defgeneric js-trim (target)
    (:documentation "XXX.prototype.trim(). Candidate: String"))
  
  (defgeneric js-unicode (target)
    (:documentation "get XXX.prototype.unicode. Candidate: RegExp"))
  
  (defgeneric js-unshift (this &rest items)
    (:documentation "XXX.prototype.unshift(...items). Candidate: Array"))
  
  (defgeneric js-utc (date year month &rest args)
    (:documentation "XXX.UTC function. Candidate: Date"))
  
  (defgeneric js-values (this)
    (:documentation "XXX.prototype.values(). Candidate: Array, TypedArray, Map,
  Set"))
  
  (defgeneric js-value-of (this)
    (:documentation "XXX.prototype.valueOf(). Candidate: Object, Boolean,
  Symbol, Number, Date, String"))
  
  