code: function use(Promise, yauzl, options) {
  	// Conform options
  	options = Object.assign({clone: true}, options);
  
  	// Use defaults if not provided
  	if (!Promise) Promise = NativePromise;
  	if (!yauzl) yauzl = yauzlOriginal;
  
  	// Clone yauzl unless `options.clone` false
  	if (options.clone) {
  		yauzl = cloner.clone(yauzl, {subclassZipFile: true, subclassEntry: true});
  	} else {
  		// Patch ZipFile prototype with events-intercept methods
  		cloner.clone(yauzl, {clone: false, eventsIntercept: true});
  	}
  
  	// Add promisfied methods
  	if (Promise) {
  		promisify(yauzl, Promise);
  	} else {
  		yauzl = {};
  	}
  
  	// Add `use` methods
  	yauzl.use = use;
  	yauzl.usePromise = function(Promise) {
  		return use(Promise, null);
  	};
  	yauzl.useYauzl = function(yauzl, options) {
  		return use(null, yauzl, options);
  	};
  
  	// Return yauzl object
  	return yauzl;
  }
docs: Exports