anchor.diff:  ;;; 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)
  +
  +;;; NOTE: Some of them will be removed if candidate is not a class.
  +(defgeneric js-add (this value)
  +  (:documentation "XXX.prototype.add(value). Candidate: Set, WeakSet"))
  +
  +(defgeneric js-all (this iterable)
  +  (:documentation "XXX.all(iterable). Candidate: Promise"))
  +
  +(defgeneric js-apply (this arg-array)
     (:documentation "XXX.prototype.apply function. Candidate: Function"))
   
  -(defgeneric js-assign (obj &rest sources)
  +(defgeneric js-apply (this target this-arg arglist)
  +  (:documentation "XXX.apply(target,thisArgument,argumentsList). Candidate:
  +Reflect"))
  +
  +(defgeneric js-assign (this &rest sources)
     (:documentation "XXX.assign function. Candidate: Object"))
   
  -(defgeneric js-bind (func &rest args)
  +(defgeneric js-bind (this &rest args)
     (:documentation "XXX.prototype.bind function. Candidate: Function"))
  +
  +(defgeneric js-buffer (this)
  +  (:documentation "get XXX.prototype.buffer. Candidate: TypedArray, DataView"))
  +
  +(defgeneric js-byte-length (this)
  +  (:documentation "get XXX.prototype.byteLength. Candidate: TypedArray,
  +ArrayBuffer, DataView"))
  +
  +(defgeneric js-byte-offset (this)
  +  (:documentation "get XXX.prototype.byteOffset. Candidate: TypedArray,
  +DataView"))
   
   (defgeneric js-call (func &rest args)
     (:documentation "XXX.prototype.call function. Candidate: Function"))
   
  +(defgeneric js-catch (this reject)
  +  (:documentation "XXX.prototype.catch(onRejected). Candidate: Promise"))
  +
  +(defgeneric js-char-at (target pos)
  +  (:documentation "XXX.prototype.charAt function. Candidate: String"))
  +
  +(defgeneric js-char-code-at (target pos)
  +  (:documentation "XXX.prototype.charCodeAt function. Candidate: String"))
  +
  +(defgeneric js-clear (this)
  +  (:documentation "XXX.prototype.clear(). Candidate: Map, Set"))
  +
  +(defgeneric js-code-point-at (target pos)
  +  (:documentation "XXX.prototype.codePointAt function. Candidate: String"))
  +
  +(defgeneric js-concat (this &rest args)
  +  (:documentation "XXX.prototype.concat(...arguments). Candidate: String,
  +Array"))
  +
  +(defgeneric js-construct (this target arglist &optional new-target)
  +  (:documentation "XXX.construct(target,argumentsList[,newTarget]). Candidate:
  +Reflect"))
  +
  +(defgeneric js-copy-within (this target start &optional end)
  +  (:documentation "XXX.prototype.copyWithin(target,start[,end]). Candidate:
  +Array, TypedArray"))
  +
   (defgeneric js-create (target proto)
     (:documentation "XXX.create function. Candidate: Object"))
   
  
positive.code: (defgeneric js-get-prototype-of (obj)
    (:documentation "XXX.getPrototypeOf function. Candidate: Object"))
  
  (defgeneric js-has-own-property (obj value)
    (:documentation "XXX.prototype.hasOwnProperty function. Candidate: Object"))
  
  (defgeneric js-is (value1 value2)
    (:documentation "XXX.is function. Candidate: Object"))
  
  (defgeneric js-is-extensible (obj)
    (:documentation "XXX.isExtensible 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"))
  
  