although in true ES5 browsers, undefined can't be redefined, this shim is intended to work in ES5-shimmed ES3 browsers as well - it'd be nice if this was `if (typeof next === 'undefined') {`