code: function() {
  	/**
  	 * The real PhantomJS instance.
  	 *
  	 * @type {?}
  	 * @private
  	 */
  	this.instance = null;
  	/**
  	 * The PhantomJS instance is being created.
  	 *
  	 * @type {!boolean}
  	 * @private
  	 */
  	this.creating = false;
  	/**
  	 * PhantomJS flags.
  	 *
  	 * @type {!string}
  	 * @private
  	 */
  	this.flags = '';
  	/**
  	 * PhantomJS options.
  	 *
  	 * @type {!Object}
  	 * @private
  	 */
  	this.options = {
  		onStdout: function() {},
  		onStderr: function() {}
  	};
  	/**
  	 * List of functions waiting to be called after the PhantomJS
  	 *   instance is created.
  	 *
  	 * @type {!Array.<!function(?)>}
  	 * @private
  	 */
  	this.waiting = [];
  	this._createInstance();
  }
docs: This maintains only one PhantomJS instance. It works like a proxy
  between the phantom package, and should expose the methods same
  methods. An additional call to close the phantomJS instance
  properly is needed.
  
  @constructor