function fill(obj, name, replacement, track) {
	  if (obj == null) return;
	  var orig = obj[name];
	  obj[name] = replacement(orig);
	  obj[name].__raven__ = true;
	  obj[name].__orig__ = orig;

	  if (track) {
	    track.push([obj, name, orig]);
	  }
	}
function fill(obj, name, replacement, track) {
	  if (obj == null) return;
	  var orig = obj[name];
	  obj[name] = replacement(orig);
	  obj[name].__raven__ = true;
	  obj[name].__orig__ = orig;

	  if (track) {
	    track.push([obj, name, orig]);
	  }
	}
function fill ( obj , name , replacement , track ) { if ( obj == null ) return ; var orig = obj [ name ] ; obj [ name ] = replacement ( orig ) ; obj [ name ] . __raven__ = true ; obj [ name ] . __orig__ = orig ; if ( track ) { track . push ( [ obj , name , orig ] ) ; } }
Polyfill a method
@param obj object e.g. `document`
@param name method name present on object e.g. `addEventListener`
@param replacement replacement function
@param track {optional} record instrumentation to an array
Polyfill a method