ref: c43dc872397e19d8d23a5296b661cc7eced8223c
dir: /domino-lib/Window.js/
"use strict"; var DOMImplementation = require('./DOMImplementation'); var EventTarget = require('./EventTarget'); var Location = require('./Location'); var sloppy = require('./sloppy'); var utils = require('./utils'); module.exports = Window; function Window(document) { this.document = document || new DOMImplementation(null).createHTMLDocument(""); this.document._scripting_enabled = true; this.document.defaultView = this; this.location = new Location(this, this.document._address || 'about:blank'); } Window.prototype = Object.create(EventTarget.prototype, { _run: { value: sloppy.Window_run }, console: { value: console }, history: { value: { back: utils.nyi, forward: utils.nyi, go: utils.nyi }}, navigator: { value: require("./NavigatorID") }, // Self-referential properties window: { get: function() { return this; }}, self: { get: function() { return this; }}, frames: { get: function() { return this; }}, // Self-referential properties for a top-level window parent: { get: function() { return this; }}, top: { get: function() { return this; }}, // We don't support any other windows for now length: { value: 0 }, // no frames frameElement: { value: null }, // not part of a frame opener: { value: null }, // not opened by another window // The onload event handler. // XXX: need to support a bunch of other event types, too, // and have them interoperate with document.body. onload: { get: function() { return this._getEventHandler("load"); }, set: function(v) { this._setEventHandler("load", v); } }, // XXX This is a completely broken implementation getComputedStyle: { value: function getComputedStyle(elt) { return elt.style; }} }); utils.expose(require('./WindowTimers'), Window); utils.expose(require('./impl'), Window);