there's still one behavior we don't emulate that we probably should (in case client code expects it) -- `window.location = '/some/other/location'` -- we can support it via `Object.defineProperty(this.window, 'location', {get: get, set: set, configurable: false})`, etc.