"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var jsdom = require('jsdom');
var JSDOM = jsdom.JSDOM;
var SdlDocument = /** @class */ (function () {
    function SdlDocument(sdlWindow) {
        this.sdlWindow = sdlWindow;
        this._document = new JSDOM("<body></body>").window.document;
    }
    Object.defineProperty(SdlDocument.prototype, "clientTop", {
        get: function () {
            return 0;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "clientLeft", {
        get: function () {
            return 0;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ATTRIBUTE_NODE", {
        get: function () {
            return this._ATTRIBUTE_NODE;
        },
        set: function (value) {
            this._ATTRIBUTE_NODE = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "CDATA_SECTION_NODE", {
        get: function () {
            return this._CDATA_SECTION_NODE;
        },
        set: function (value) {
            this._CDATA_SECTION_NODE = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "COMMENT_NODE", {
        get: function () {
            return this._COMMENT_NODE;
        },
        set: function (value) {
            this._COMMENT_NODE = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "DOCUMENT_FRAGMENT_NODE", {
        get: function () {
            return this._DOCUMENT_FRAGMENT_NODE;
        },
        set: function (value) {
            this._DOCUMENT_FRAGMENT_NODE = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "DOCUMENT_NODE", {
        get: function () {
            return this._DOCUMENT_NODE;
        },
        set: function (value) {
            this._DOCUMENT_NODE = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "DOCUMENT_POSITION_CONTAINED_BY", {
        get: function () {
            return this._DOCUMENT_POSITION_CONTAINED_BY;
        },
        set: function (value) {
            this._DOCUMENT_POSITION_CONTAINED_BY = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "DOCUMENT_POSITION_CONTAINS", {
        get: function () {
            return this._DOCUMENT_POSITION_CONTAINS;
        },
        set: function (value) {
            this._DOCUMENT_POSITION_CONTAINS = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "DOCUMENT_POSITION_DISCONNECTED", {
        get: function () {
            return this._DOCUMENT_POSITION_DISCONNECTED;
        },
        set: function (value) {
            this._DOCUMENT_POSITION_DISCONNECTED = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "DOCUMENT_POSITION_FOLLOWING", {
        get: function () {
            return this._DOCUMENT_POSITION_FOLLOWING;
        },
        set: function (value) {
            this._DOCUMENT_POSITION_FOLLOWING = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC", {
        get: function () {
            return this._DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC;
        },
        set: function (value) {
            this._DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "DOCUMENT_POSITION_PRECEDING", {
        get: function () {
            return this._DOCUMENT_POSITION_PRECEDING;
        },
        set: function (value) {
            this._DOCUMENT_POSITION_PRECEDING = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "DOCUMENT_TYPE_NODE", {
        get: function () {
            return this._DOCUMENT_TYPE_NODE;
        },
        set: function (value) {
            this._DOCUMENT_TYPE_NODE = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ELEMENT_NODE", {
        get: function () {
            return this._ELEMENT_NODE;
        },
        set: function (value) {
            this._ELEMENT_NODE = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ENTITY_NODE", {
        get: function () {
            return this._ENTITY_NODE;
        },
        set: function (value) {
            this._ENTITY_NODE = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ENTITY_REFERENCE_NODE", {
        get: function () {
            return this._ENTITY_REFERENCE_NODE;
        },
        set: function (value) {
            this._ENTITY_REFERENCE_NODE = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "NOTATION_NODE", {
        get: function () {
            return this._NOTATION_NODE;
        },
        set: function (value) {
            this._NOTATION_NODE = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "PROCESSING_INSTRUCTION_NODE", {
        get: function () {
            return this._PROCESSING_INSTRUCTION_NODE;
        },
        set: function (value) {
            this._PROCESSING_INSTRUCTION_NODE = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "TEXT_NODE", {
        get: function () {
            return this._TEXT_NODE;
        },
        set: function (value) {
            this._TEXT_NODE = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "URL", {
        get: function () {
            return this._URL;
        },
        set: function (value) {
            this._URL = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "activeElement", {
        get: function () {
            return this._activeElement;
        },
        set: function (value) {
            this._activeElement = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "all", {
        get: function () {
            return this._all;
        },
        set: function (value) {
            this._all = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "anchors", {
        get: function () {
            return this._anchors;
        },
        set: function (value) {
            this._anchors = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "applets", {
        get: function () {
            return this._applets;
        },
        set: function (value) {
            this._applets = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "baseURI", {
        get: function () {
            return this._baseURI;
        },
        set: function (value) {
            this._baseURI = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "characterSet", {
        get: function () {
            return this._characterSet;
        },
        set: function (value) {
            this._characterSet = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "charset", {
        get: function () {
            return this._charset;
        },
        set: function (value) {
            this._charset = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "childElementCount", {
        get: function () {
            return this._childElementCount;
        },
        set: function (value) {
            this._childElementCount = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "childNodes", {
        get: function () {
            return [];
        },
        set: function (value) {
            this._childNodes = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "children", {
        get: function () {
            return this._children;
        },
        set: function (value) {
            this._children = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "compatMode", {
        get: function () {
            return this._compatMode;
        },
        set: function (value) {
            this._compatMode = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "contentType", {
        get: function () {
            return this._contentType;
        },
        set: function (value) {
            this._contentType = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "currentScript", {
        get: function () {
            return this._currentScript;
        },
        set: function (value) {
            this._currentScript = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "defaultView", {
        get: function () {
            return this._defaultView;
        },
        set: function (value) {
            this._defaultView = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "doctype", {
        get: function () {
            return this._doctype;
        },
        set: function (value) {
            this._doctype = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "documentElement", {
        get: function () {
            return this;
        },
        set: function (value) {
            this._documentElement = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "documentURI", {
        get: function () {
            return this._documentURI;
        },
        set: function (value) {
            this._documentURI = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "embeds", {
        get: function () {
            return this._embeds;
        },
        set: function (value) {
            this._embeds = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "firstChild", {
        get: function () {
            return this._firstChild;
        },
        set: function (value) {
            this._firstChild = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "firstElementChild", {
        get: function () {
            return this._firstElementChild;
        },
        set: function (value) {
            this._firstElementChild = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "forms", {
        get: function () {
            return this._forms;
        },
        set: function (value) {
            this._forms = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "fullscreen", {
        get: function () {
            return this._fullscreen;
        },
        set: function (value) {
            this._fullscreen = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "fullscreenEnabled", {
        get: function () {
            return this._fullscreenEnabled;
        },
        set: function (value) {
            this._fullscreenEnabled = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "head", {
        get: function () {
            return this._head;
        },
        set: function (value) {
            this._head = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "hidden", {
        get: function () {
            return this._hidden;
        },
        set: function (value) {
            this._hidden = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "images", {
        get: function () {
            return this._images;
        },
        set: function (value) {
            this._images = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "implementation", {
        get: function () {
            return this._implementation;
        },
        set: function (value) {
            this._implementation = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "inputEncoding", {
        get: function () {
            return this._inputEncoding;
        },
        set: function (value) {
            this._inputEncoding = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "isConnected", {
        get: function () {
            return this._isConnected;
        },
        set: function (value) {
            this._isConnected = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "lastChild", {
        get: function () {
            return this._lastChild;
        },
        set: function (value) {
            this._lastChild = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "lastElementChild", {
        get: function () {
            return this._lastElementChild;
        },
        set: function (value) {
            this._lastElementChild = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "lastModified", {
        get: function () {
            return this._lastModified;
        },
        set: function (value) {
            this._lastModified = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "links", {
        get: function () {
            return this._links;
        },
        set: function (value) {
            this._links = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "namespaceURI", {
        get: function () {
            return this._namespaceURI;
        },
        set: function (value) {
            this._namespaceURI = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "nextSibling", {
        get: function () {
            return this._nextSibling;
        },
        set: function (value) {
            this._nextSibling = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "nodeName", {
        get: function () {
            return this._nodeName;
        },
        set: function (value) {
            this._nodeName = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "nodeType", {
        get: function () {
            return this._nodeType;
        },
        set: function (value) {
            this._nodeType = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "origin", {
        get: function () {
            return this._origin;
        },
        set: function (value) {
            this._origin = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ownerDocument", {
        get: function () {
            return this._ownerDocument;
        },
        set: function (value) {
            this._ownerDocument = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "parentElement", {
        get: function () {
            return this._parentElement;
        },
        set: function (value) {
            this._parentElement = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "parentNode", {
        get: function () {
            return this._parentNode;
        },
        set: function (value) {
            this._parentNode = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "plugins", {
        get: function () {
            return this._plugins;
        },
        set: function (value) {
            this._plugins = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "previousSibling", {
        get: function () {
            return this._previousSibling;
        },
        set: function (value) {
            this._previousSibling = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "readyState", {
        get: function () {
            return 'complete';
        },
        set: function (value) {
            this._readyState = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "referrer", {
        get: function () {
            return this._referrer;
        },
        set: function (value) {
            this._referrer = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "scripts", {
        get: function () {
            return this._scripts;
        },
        set: function (value) {
            this._scripts = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "scrollingElement", {
        get: function () {
            return this._scrollingElement;
        },
        set: function (value) {
            this._scrollingElement = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "styleSheets", {
        get: function () {
            return this._styleSheets;
        },
        set: function (value) {
            this._styleSheets = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "timeline", {
        get: function () {
            return this._timeline;
        },
        set: function (value) {
            this._timeline = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "visibilityState", {
        get: function () {
            return this._visibilityState;
        },
        set: function (value) {
            this._visibilityState = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "title", {
        get: function () {
            if (this._canvas) {
                return this._canvas.window.title;
            }
            return this._title;
        },
        set: function (value) {
            this._title = value;
            if (this._canvas) {
                this._canvas.window.title = value;
            }
        },
        enumerable: true,
        configurable: true
    });
    // addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    // addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    // addEventListener(type: string, listener: EventListenerOrEventListenerObject | null, options?: boolean | AddEventListenerOptions): void;
    // addEventListener<K extends keyof GlobalEventHandlersEventMap>(type: K, listener: (this: GlobalEventHandlers, ev: GlobalEventHandlersEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    // addEventListener<K extends keyof DocumentAndElementEventHandlersEventMap>(type: K, listener: (this: DocumentAndElementEventHandlers, ev: DocumentAndElementEventHandlersEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
    SdlDocument.prototype.addEventListener = function (type, listener, options) {
        this.window.addEventListener(type, listener, options);
    };
    SdlDocument.prototype.adoptNode = function (source) {
        return this._document.adoptNode(source);
    };
    SdlDocument.prototype.append = function () {
        var nodes = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            nodes[_i] = arguments[_i];
        }
        // return this._document.append(nodes);
        return undefined;
    };
    SdlDocument.prototype.appendChild = function (newChild) {
        // return this._document.appendChild(newChild);
        return undefined;
    };
    SdlDocument.prototype.captureEvents = function () {
        this._document.captureEvents();
    };
    SdlDocument.prototype.caretPositionFromPoint = function (x, y) {
        return this._document.caretPositionFromPoint(x, y);
    };
    SdlDocument.prototype.caretRangeFromPoint = function (x, y) {
        return this._document.caretRangeFromPoint(x, y);
    };
    SdlDocument.prototype.clear = function () {
        return this._document.clear();
    };
    SdlDocument.prototype.cloneNode = function (deep) {
        return this._document.cloneNode(deep);
    };
    SdlDocument.prototype.close = function () {
        return this._document.close();
    };
    SdlDocument.prototype.compareDocumentPosition = function (other) {
        return this._document.compareDocumentPosition(other);
    };
    SdlDocument.prototype.contains = function (other) {
        return this._document.contains(other);
    };
    SdlDocument.prototype.createAttribute = function (localName) {
        return this._document.createAttribute(localName);
    };
    SdlDocument.prototype.createAttributeNS = function (namespace, qualifiedName) {
        return this._document.createAttributeNS(namespace);
    };
    SdlDocument.prototype.createCDATASection = function (data) {
        return this._document.createCDATASection(data);
    };
    SdlDocument.prototype.createComment = function (data) {
        return this._document.createComment(data);
    };
    SdlDocument.prototype.createDocumentFragment = function () {
        return this._document.createDocumentFragment();
    };
    SdlDocument.prototype.createElement = function (tagName, options) {
        if (tagName === 'canvas') {
            var canvas = this.sdlWindow.canvas;
            this._canvas = canvas;
            return canvas;
        }
        else {
            var el = this._document.createElement(tagName);
            return el;
        }
    };
    SdlDocument.prototype.createElementNS = function (namespaceURI, qualifiedName, options) {
        return this._document.createElementNS(namespaceURI);
    };
    SdlDocument.prototype.createEvent = function (eventInterface) {
        return this._document.createEvent(eventInterface);
    };
    SdlDocument.prototype.createNodeIterator = function (root, whatToShow, filter) {
        return this._document.createNodeIterator(root);
    };
    SdlDocument.prototype.createProcessingInstruction = function (target, data) {
        return this._document.createProcessingInstruction(target);
    };
    SdlDocument.prototype.createRange = function () {
        return this._document.createRange();
    };
    SdlDocument.prototype.createTextNode = function (data) {
        return this._document.createTextNode(data);
    };
    SdlDocument.prototype.createTouch = function (view, target, identifier, pageX, pageY, screenX, screenY) {
        return this._document.createTouch(view);
    };
    SdlDocument.prototype.createTouchList = function () {
        var touches = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            touches[_i] = arguments[_i];
        }
        return this._document.createTouchList(touches);
    };
    SdlDocument.prototype.createTreeWalker = function (root, whatToShow, filter, entityReferenceExpansion) {
        return this._document.createTreeWalker(root);
    };
    SdlDocument.prototype.dispatchEvent = function (event) {
        return this._document.dispatchEvent(event);
    };
    SdlDocument.prototype.elementFromPoint = function (x, y) {
        return this._document.elementFromPoint(x, y);
    };
    SdlDocument.prototype.elementsFromPoint = function (x, y) {
        return this._document.elementsFromPoint(x, y);
    };
    SdlDocument.prototype.evaluate = function (expression, contextNode, resolver, type, result) {
        return this._document.evaluate(expression, contextNode, resolver);
    };
    SdlDocument.prototype.execCommand = function (commandId, showUI, value) {
        return this._document.execCommand(commandId);
    };
    SdlDocument.prototype.exitFullscreen = function () {
        if (this._canvas) {
            this.window.disableFullScreen();
        }
        return Promise.resolve(null);
    };
    SdlDocument.prototype.getAnimations = function () {
        return this._document.getAnimations();
    };
    SdlDocument.prototype.getElementById = function (elementId) {
        if (this._canvas) {
            // return this._document.getElementById(elementId);
            return this._canvas;
        }
        else {
            this._canvas = this.sdlWindow.canvas;
            return this._canvas;
        }
    };
    SdlDocument.prototype.getElementsByClassName = function (classNames) {
        return this._document.getElementsByClassName(classNames);
    };
    SdlDocument.prototype.getElementsByName = function (elementName) {
        return this._document.getElementsByName(elementName);
    };
    SdlDocument.prototype.getElementsByTagName = function (qualifiedName) {
        return this._document.getElementsByTagName(qualifiedName);
    };
    SdlDocument.prototype.getElementsByTagNameNS = function (namespaceURI, localName) {
        return this._document.getElementsByTagNameNS(namespaceURI, localName);
    };
    SdlDocument.prototype.getRootNode = function (options) {
        return this._document.getRootNode(options);
    };
    SdlDocument.prototype.getSelection = function () {
        return this._document.getSelection();
    };
    SdlDocument.prototype.hasChildNodes = function () {
        return this._document.hasChildNodes();
    };
    SdlDocument.prototype.hasFocus = function () {
        return this._document.hasFocus();
    };
    SdlDocument.prototype.importNode = function (importedNode, deep) {
        return this._document.importNode(importedNode, deep);
    };
    SdlDocument.prototype.insertBefore = function (newChild, refChild) {
        // return this._document.insertBefore(newChild, refChild);
        return null;
    };
    SdlDocument.prototype.isDefaultNamespace = function (namespace) {
        return this._document.isDefaultNamespace(namespace);
    };
    SdlDocument.prototype.isEqualNode = function (otherNode) {
        return this._document.isEqualNode(otherNode);
    };
    SdlDocument.prototype.isSameNode = function (otherNode) {
        return this._document.isSameNode(otherNode);
    };
    SdlDocument.prototype.lookupNamespaceURI = function (prefix) {
        return this._document.lookupNamespaceURI(prefix);
    };
    SdlDocument.prototype.lookupPrefix = function (namespace) {
        return this._document.lookupPrefix(namespace);
    };
    SdlDocument.prototype.normalize = function () {
    };
    SdlDocument.prototype.open = function (url, name, features, replace) {
        return undefined;
    };
    SdlDocument.prototype.prepend = function () {
        var nodes = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            nodes[_i] = arguments[_i];
        }
        return this._document.prepend(nodes);
    };
    SdlDocument.prototype.queryCommandEnabled = function (commandId) {
        return false;
    };
    SdlDocument.prototype.queryCommandIndeterm = function (commandId) {
        return false;
    };
    SdlDocument.prototype.queryCommandState = function (commandId) {
        return false;
    };
    SdlDocument.prototype.queryCommandSupported = function (commandId) {
        return false;
    };
    SdlDocument.prototype.queryCommandValue = function (commandId) {
        return '';
    };
    SdlDocument.prototype.querySelector = function (selectors) {
        return this._document.querySelector(selectors);
    };
    SdlDocument.prototype.querySelectorAll = function (selectors) {
        return this._document.querySelectorAll(selectors);
    };
    SdlDocument.prototype.releaseEvents = function () {
    };
    SdlDocument.prototype.removeChild = function (oldChild) {
        return undefined;
    };
    SdlDocument.prototype.removeEventListener = function (type, listener, options) {
    };
    SdlDocument.prototype.replaceChild = function (newChild, oldChild) {
        return this._document.replaceChild(newChild, oldChild);
    };
    SdlDocument.prototype.write = function () {
        var text = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            text[_i] = arguments[_i];
        }
    };
    SdlDocument.prototype.writeln = function () {
        var text = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            text[_i] = arguments[_i];
        }
    };
    Object.defineProperty(SdlDocument.prototype, "alinkColor", {
        get: function () {
            return this._alinkColor;
        },
        set: function (value) {
            this._alinkColor = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "bgColor", {
        get: function () {
            return this._bgColor;
        },
        set: function (value) {
            this._bgColor = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "body", {
        get: function () {
            return this;
        },
        set: function (value) {
            this._body = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "cookie", {
        get: function () {
            return this._cookie;
        },
        set: function (value) {
            this._cookie = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "designMode", {
        get: function () {
            return this._designMode;
        },
        set: function (value) {
            this._designMode = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "dir", {
        get: function () {
            return this._dir;
        },
        set: function (value) {
            this._dir = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "domain", {
        get: function () {
            return this._domain;
        },
        set: function (value) {
            this._domain = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "fgColor", {
        get: function () {
            return this._fgColor;
        },
        set: function (value) {
            this._fgColor = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "linkColor", {
        get: function () {
            return this._linkColor;
        },
        set: function (value) {
            this._linkColor = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "location", {
        get: function () {
            return this._location;
        },
        set: function (value) {
            this._location = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "nodeValue", {
        get: function () {
            return this._nodeValue;
        },
        set: function (value) {
            this._nodeValue = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onabort", {
        get: function () {
            return this.window.onabort;
        },
        set: function (value) {
            this.window.onabort = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onanimationcancel", {
        get: function () {
            return this.window.onanimationcancel;
        },
        set: function (value) {
            this.window.onanimationcancel = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onanimationend", {
        get: function () {
            return this.window.onanimationend;
        },
        set: function (value) {
            this.window.onanimationend = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onanimationiteration", {
        get: function () {
            return this.window.onanimationiteration;
        },
        set: function (value) {
            this.window.onanimationiteration = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onanimationstart", {
        get: function () {
            return this.window.onanimationstart;
        },
        set: function (value) {
            this.window.onanimationstart = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onauxclick", {
        get: function () {
            return this.window.onauxclick;
        },
        set: function (value) {
            this.window.onauxclick = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onblur", {
        get: function () {
            return this.window.onblur;
        },
        set: function (value) {
            this.window.onblur = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "oncancel", {
        get: function () {
            return this.window.oncancel;
        },
        set: function (value) {
            this.window.oncancel = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "oncanplay", {
        get: function () {
            return this.window.oncanplay;
        },
        set: function (value) {
            this.window.oncanplay = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "oncanplaythrough", {
        get: function () {
            return this.window.oncanplaythrough;
        },
        set: function (value) {
            this.window.oncanplaythrough = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onchange", {
        get: function () {
            return this.window.onchange;
        },
        set: function (value) {
            this.window.onchange = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onclick", {
        get: function () {
            return this.onclick;
        },
        set: function (value) {
            this.window.onclick = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onclose", {
        get: function () {
            return this.window.onclose;
        },
        set: function (value) {
            this.window.onclose = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "oncontextmenu", {
        get: function () {
            return this.window.oncontextmenu;
        },
        set: function (value) {
            this.window.oncontextmenu = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "oncopy", {
        get: function () {
            return null;
        },
        set: function (value) {
            // this.window.oncopy = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "oncuechange", {
        get: function () {
            return this.window.oncuechange;
        },
        set: function (value) {
            this.window.oncuechange = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "oncut", {
        get: function () {
            // return this.window.oncut;
            return null;
        },
        set: function (value) {
            // this.window.oncut = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ondblclick", {
        get: function () {
            return this.window.ondblclick;
        },
        set: function (value) {
            this.window.ondblclick = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ondrag", {
        get: function () {
            return this.window.ondrag;
        },
        set: function (value) {
            this.window.ondrag = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ondragend", {
        get: function () {
            return this.window.ondragend;
        },
        set: function (value) {
            this.window.ondragend = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ondragenter", {
        get: function () {
            return this.window.ondragenter;
        },
        set: function (value) {
            this.window.ondragenter = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ondragexit", {
        get: function () {
            return this.window.ondragexit;
        },
        set: function (value) {
            this.window.ondragexit = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ondragleave", {
        get: function () {
            return this.window.ondragleave;
        },
        set: function (value) {
            this.window.ondragleave = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ondragover", {
        get: function () {
            return this.window.ondragover;
        },
        set: function (value) {
            this.window.ondragover = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ondragstart", {
        get: function () {
            return this.window.ondragstart;
        },
        set: function (value) {
            this.window.ondragstart = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ondrop", {
        get: function () {
            return this.window.ondrop;
        },
        set: function (value) {
            this.window.ondrop = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ondurationchange", {
        get: function () {
            return this.window.ondurationchange;
        },
        set: function (value) {
            this.window.ondurationchange = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onemptied", {
        get: function () {
            return this.window.onemptied;
        },
        set: function (value) {
            this.window.onemptied = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onended", {
        get: function () {
            return this.window.onended;
        },
        set: function (value) {
            this.window.onended = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onerror", {
        get: function () {
            return this.window.onerror;
        },
        set: function (value) {
            this.window.onerror = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onfocus", {
        get: function () {
            return this.window.onfocus;
        },
        set: function (value) {
            this.window.onfocus = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onfullscreenchange", {
        get: function () {
            // return this.window.onfullscreenchange;
            return null;
        },
        set: function (value) {
            // this.window.onfullscreenchange = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onfullscreenerror", {
        get: function () {
            // return this.window.onfullscreenerror;
            return null;
        },
        set: function (value) {
            // this.window.onfullscreenerror = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ongotpointercapture", {
        get: function () {
            return this.window.ongotpointercapture;
        },
        set: function (value) {
            this.window.ongotpointercapture = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "oninput", {
        get: function () {
            return this.window.oninput;
        },
        set: function (value) {
            this.window.oninput = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "oninvalid", {
        get: function () {
            return this.window.oninvalid;
        },
        set: function (value) {
            this.window.oninvalid = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onkeydown", {
        get: function () {
            return this.window.onkeydown;
        },
        set: function (value) {
            this.window.onkeydown = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onkeypress", {
        get: function () {
            return this.window.onkeypress;
        },
        set: function (value) {
            this.window.onkeypress = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onkeyup", {
        get: function () {
            return this.window.onkeyup;
        },
        set: function (value) {
            this.window.onkeyup = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onload", {
        get: function () {
            return this.window.onload;
        },
        set: function (value) {
            this.window.onload = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onloadeddata", {
        get: function () {
            return this.window.onloadeddata;
        },
        set: function (value) {
            this.window.onloadeddata = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onloadedmetadata", {
        get: function () {
            return this.window.onloadedmetadata;
        },
        set: function (value) {
            this.window.onloadedmetadata = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onloadend", {
        get: function () {
            return this.window.onloadend;
        },
        set: function (value) {
            this.window.onloadend = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onloadstart", {
        get: function () {
            return this.window.onloadstart;
        },
        set: function (value) {
            this.window.onloadstart = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onlostpointercapture", {
        get: function () {
            return this.window.onlostpointercapture;
        },
        set: function (value) {
            this.window.onlostpointercapture = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onmousedown", {
        get: function () {
            return this.window.onmousedown;
        },
        set: function (value) {
            this.window.onmousedown = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onmouseenter", {
        get: function () {
            return this.window.onmouseenter;
        },
        set: function (value) {
            this.window.onmouseenter = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onmouseleave", {
        get: function () {
            return this.window.onmouseleave;
        },
        set: function (value) {
            this.window.onmouseleave = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onmousemove", {
        get: function () {
            return this.window.onmousemove;
        },
        set: function (value) {
            this.window.onmousemove = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onmouseout", {
        get: function () {
            return this.window.onmouseout;
        },
        set: function (value) {
            this.window.onmouseout = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onmouseover", {
        get: function () {
            return this.window.onmouseover;
        },
        set: function (value) {
            this.window.onmouseover = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onmouseup", {
        get: function () {
            return this.window.onmouseup;
        },
        set: function (value) {
            this.window.onmouseup = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onpaste", {
        get: function () {
            // return this.window.onpaste;
            return null;
        },
        set: function (value) {
            // this.window.onpaste = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onpause", {
        get: function () {
            return this.window.onpause;
        },
        set: function (value) {
            this.window.onpause = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onplay", {
        get: function () {
            return this.window.onplay;
        },
        set: function (value) {
            this.window.onplay = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onplaying", {
        get: function () {
            return this.window.onplaying;
        },
        set: function (value) {
            this.window.onplaying = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onpointercancel", {
        get: function () {
            return this.window.onpointercancel;
        },
        set: function (value) {
            this.window.onpointercancel = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onpointerdown", {
        get: function () {
            return this.window.onpointerdown;
        },
        set: function (value) {
            this.window.onpointerdown = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onpointerenter", {
        get: function () {
            return this.window.onpointerenter;
        },
        set: function (value) {
            this.window.onpointerenter = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onpointerleave", {
        get: function () {
            return this.window.onpointerleave;
        },
        set: function (value) {
            this.window.onpointerleave = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onpointermove", {
        get: function () {
            return this.window.onpointermove;
        },
        set: function (value) {
            this.window.onpointermove = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onpointerout", {
        get: function () {
            return this.window.onpointerout;
        },
        set: function (value) {
            this.window.onpointerout = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onpointerover", {
        get: function () {
            return this.window.onpointerover;
        },
        set: function (value) {
            this.window.onpointerover = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onpointerup", {
        get: function () {
            return this.window.onpointerup;
        },
        set: function (value) {
            this.window.onpointerup = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onprogress", {
        get: function () {
            return this.window.onprogress;
        },
        set: function (value) {
            this.window.onprogress = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onratechange", {
        get: function () {
            return this.window.onratechange;
        },
        set: function (value) {
            this.window.onratechange = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onreadystatechange", {
        get: function () {
            // return this.window.onreadystatechange;
            return null;
        },
        set: function (value) {
            // this.window.onreadystatechange = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onreset", {
        get: function () {
            return this.window.onreset;
        },
        set: function (value) {
            this.window.onreset = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onresize", {
        get: function () {
            return this.window.onresize;
        },
        set: function (value) {
            this.window.onresize = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onscroll", {
        get: function () {
            return this.window.onscroll;
        },
        set: function (value) {
            this.window.onscroll = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onsecuritypolicyviolation", {
        get: function () {
            return this.window.onsecuritypolicyviolation;
        },
        set: function (value) {
            this.window.onsecuritypolicyviolation = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onseeked", {
        get: function () {
            return this.window.onseeked;
        },
        set: function (value) {
            this.window.onseeked = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onseeking", {
        get: function () {
            return this.window.onseeking;
        },
        set: function (value) {
            this.window.onseeking = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onselect", {
        get: function () {
            return this.window.onselect;
        },
        set: function (value) {
            this.window.onselect = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onstalled", {
        get: function () {
            return this.window.onstalled;
        },
        set: function (value) {
            this.window.onstalled = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onsubmit", {
        get: function () {
            return this.window.onsubmit;
        },
        set: function (value) {
            this.window.onsubmit = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onsuspend", {
        get: function () {
            return this.window.onsuspend;
        },
        set: function (value) {
            this.window.onsuspend = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ontimeupdate", {
        get: function () {
            return this.window.ontimeupdate;
        },
        set: function (value) {
            this.window.ontimeupdate = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ontoggle", {
        get: function () {
            return this.window.ontoggle;
        },
        set: function (value) {
            this.window.ontoggle = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ontouchcancel", {
        get: function () {
            return this.window.ontouchcancel;
        },
        set: function (value) {
            this.window.ontouchcancel = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ontouchend", {
        get: function () {
            return this.window.ontouchend;
        },
        set: function (value) {
            this.window.ontouchend = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ontouchmove", {
        get: function () {
            return this.window.ontouchmove;
        },
        set: function (value) {
            this.window.ontouchmove = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ontouchstart", {
        get: function () {
            return this.window.ontouchstart;
        },
        set: function (value) {
            this.window.ontouchstart = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ontransitioncancel", {
        get: function () {
            return this.window.ontransitioncancel;
        },
        set: function (value) {
            this.window.ontransitioncancel = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ontransitionend", {
        get: function () {
            return this.window.ontransitionend;
        },
        set: function (value) {
            this.window.ontransitionend = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ontransitionrun", {
        get: function () {
            return this.window.ontransitionrun;
        },
        set: function (value) {
            this.window.ontransitionrun = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "ontransitionstart", {
        get: function () {
            return this.window.ontransitionstart;
        },
        set: function (value) {
            this.window.ontransitionstart = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onvisibilitychange", {
        get: function () {
            // return this.window.onvisibilitychange;
            return null;
        },
        set: function (value) {
            // this.window.onvisibilitychange = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onvolumechange", {
        get: function () {
            return this.window.onvolumechange;
        },
        set: function (value) {
            this.window.onvolumechange = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onwaiting", {
        get: function () {
            return this.window.onwaiting;
        },
        set: function (value) {
            this.window.onwaiting = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "onwheel", {
        get: function () {
            return this.window.onwheel;
        },
        set: function (value) {
            this.window.onwheel = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "textContent", {
        get: function () {
            return this._textContent;
        },
        set: function (value) {
            this._textContent = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "vlinkColor", {
        get: function () {
            return this._vlinkColor;
        },
        set: function (value) {
            this._vlinkColor = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "canvas", {
        get: function () {
            return this._canvas;
        },
        set: function (value) {
            this._canvas = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "document", {
        get: function () {
            return this._document;
        },
        set: function (value) {
            this._document = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(SdlDocument.prototype, "window", {
        get: function () {
            return this.sdlWindow;
        },
        enumerable: true,
        configurable: true
    });
    return SdlDocument;
}());
exports.SdlDocument = SdlDocument;
//# sourceMappingURL=sdl-document.js.map