code: function(obj, versionPath, apply, purist){
  
  	/**
  	 * The target object where patches are applied
  	 * @type {Object}
  	 */
  	this.obj = obj;
  
  	/**
  	 * Queue of consecutive JSON Patch sequences. May contain gaps.
  	 * Item with index 0 has 1 sequence version gap to `this.version`.
  	 * @type {Array}
  	 */
  	this.waiting = [];
  	/**
  	 * JSON-Pointer to local version in shared JSON document
  	 * @type {JSONPointer}
  	 */
  	this.versionPath = versionPath;
  	/**
  	 * Function to apply JSONPatchSequence to JSON object
  	 * @type {Function}
  	 */
  	this.apply = apply;
  	/**
  	 * If set to true adds test operation before replace.
  	 * @type {Bool}
  	 */
  	this.purist = purist;
  }
docs: JSON Patch Queue for synchronous operations, and asynchronous networking.
  version: 3.0.0-rc.0
  @param {Object} Obj The target object where patches are applied
  @param {JSON-Pointer} versionPath JSON-Pointers to version numbers
  @param {function} apply    apply(JSONobj, JSONPatchSequence) function to apply JSONPatch to object.
  @param {Boolean} [purist]       If set to true adds test operation before replace.