shithub: mycel

Download patch

ref: 0a75a1ace6558b0d1be46e1a27ebf92c8b637010
parent: 76e69c809a0edf60a350d61f2de3092ce000d8e3
author: Philip Silva <philip.silva@protonmail.com>
date: Sat Mar 20 06:03:26 EDT 2021

Include all of domino.impl

apart from Element, HTMLElement, Node, that's also CharacterData, Comment, DOMException etc.

--- a/domino/domintf.js
+++ b/domino/domintf.js
@@ -1,45 +1,22 @@
 global = {};
 //global.__domino_frozen__ = true; // Must precede any require('domino')
 var domino = require('domino-lib/index');
-var Element = domino.impl.Element; // etc
 
 Object.assign(this, domino.createWindow(opossum.html, 'http://example.com'));
 window = this;
+window.self = window;
 window.parent = window;
 window.top = window;
-window.self = window;
-addEventListener = function() {};
-removeEventListener = function() {};
-window.location.href = 'http://example.com';
 window.history = {
 	replaceState: function() {}
 };
-
-var ___fq;
-___fq = function(pre, el) {
-	var i, p;
-
-	if (!el) {
-		return undefined;
-	}
-	p = el.parentElement;
-
-	if (p) {
-		for (i = 0; i < p.children.length; i++) {
-			if (p.children[i] === el) {
-				return ___fq('', p) + ' > :nth-child(' + (i+1) + ')';
-			}
-		}
-	} else {
-		return el.tagName;
-	}
+window.location.href = 'http://example.com';
+window.screen = {
+	width: 1280,
+	height: 1024
 };
-
-document._setMutationHandler(function(a) {
-	// a provides attributes type, target and node or attr
-	// (cf Object.keys(a))
-	opossum.mutated(a.type, ___fq('yolo', a.target));
-});
+window.screenX = 0;
+window.screenY = 25;
 window.getComputedStyle = function(el, pseudo) {
 	this.el = el;
 	this.getPropertyValue = function(prop) {
@@ -47,21 +24,27 @@
 	};
 	return this;
 };
-Element.prototype.getClientRects = function() { /* I'm a stub */ return []; }
-window.screen = {
-	width: 1280,
-	height: 1024
-};
-window.screenX = 0;
-window.screenY = 25;
+(function() {
+	var utils = require('domino-lib/utils');
+	utils.merge(window, domino.impl);
+})()
+
 location = window.location;
 navigator = {
 	platform: 'plan9(port)',
 	userAgent: 'opossum'
 };
-HTMLElement = domino.impl.HTMLElement;
-Node = domino.impl.Node;
+Element.prototype.getClientRects = function() { /* I'm a stub */ return []; }
 
+document._setMutationHandler(function(a) {
+	// a provides attributes type, target and node or attr
+	// (cf Object.keys(a))
+	opossum.mutated(a.type, ___fq('yolo', a.target));
+});
+
+addEventListener = function() {};
+removeEventListener = function() {};
+
 function XMLHttpRequest() {
 	var _method, _uri;
 	var h = {};
@@ -100,3 +83,23 @@
 		return '';
 	};
 }
+
+var ___fq;
+___fq = function(pre, el) {
+	var i, p;
+
+	if (!el) {
+		return undefined;
+	}
+	p = el.parentElement;
+
+	if (p) {
+		for (i = 0; i < p.children.length; i++) {
+			if (p.children[i] === el) {
+				return ___fq('', p) + ' > :nth-child(' + (i+1) + ')';
+			}
+		}
+	} else {
+		return el.tagName;
+	}
+};