code: function spy(obj, fn, callback, reportResults) {
  			var origFn = obj && obj[fn];
  
  			if (typeof origFn !== 'function') {
  				return false;
  			}
  
  			phantomas.log('spy: attaching to "%s" function%s', fn, (reportResults ? ' with results reporting' : ''));
  
  			obj[fn] = function() {
  				var args = Array.prototype.slice.call(arguments),
  					results = origFn.apply(this, args);
  
  				if (enabled && typeof callback === 'function') {
  					callback.apply(this, (reportResults === true) ? [results].concat(args) : args);
  				}
  
  				return results;
  			};
  
  			// copy custom properties of original function to the mocked one
  			Object.keys(origFn).forEach(function(key) {
  				obj[fn][key] = origFn[key];
  			});
  
  			obj[fn].prototype = origFn.prototype;
  
  			return true;
  		}
docs: pass reportResults = true to prepend arguments passed to callback with the result of call to the original function - issue #420