1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2026-02-17 02:55:45 +01:00

Death to E4X and stuff.

This commit is contained in:
Kris Maglione
2012-12-17 19:27:53 -08:00
parent 3f483de547
commit 6ee5b2ca26
8 changed files with 80 additions and 88 deletions

View File

@@ -3,7 +3,7 @@
//
// This work is licensed for reuse under an MIT license. Details are
// given in the LICENSE.txt file included with this file.
/* use strict */
"use strict";
defineModule("dom", {
exports: ["$", "DOM", "NS", "XBL", "XHTML", "XUL"]
@@ -13,10 +13,10 @@ lazyRequire("highlight", ["highlight"]);
lazyRequire("messages", ["_"]);
lazyRequire("template", ["template"]);
var XBL = Namespace("xbl", "http://www.mozilla.org/xbl");
var XHTML = Namespace("html", "http://www.w3.org/1999/xhtml");
var XUL = Namespace("xul", "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
var NS = Namespace("dactyl", "http://vimperator.org/namespaces/liberator");
var XBL = "http://www.mozilla.org/xbl";
var XHTML = "http://www.w3.org/1999/xhtml";
var XUL = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
var NS = "http://vimperator.org/namespaces/liberator";
function BooleanAttribute(attr) ({
get: function (elem) elem.getAttribute(attr) == "true",
@@ -116,14 +116,6 @@ var DOM = Class("DOM", {
},
eachDOM: function eachDOM(val, fn, self) {
if (isString(val))
val = XML(val);
if (typeof val == "xml")
return this.each(function (elem, i) {
fn.call(this, DOM.fromXML(val, elem.ownerDocument), elem, i);
}, self || this);
let dom = this;
function munge(val, container, idx) {
if (val instanceof Ci.nsIDOMRange)
@@ -1524,40 +1516,9 @@ var DOM = Class("DOM", {
* stored here, keyed to the value thereof.
* @returns {Node}
*/
fromXML: function fromXML(node, doc, nodes) {
XML.ignoreWhitespace = XML.prettyPrinting = false;
if (typeof node === "string") // Sandboxes can't currently pass us XML objects.
node = XML(node);
if (node.length() != 1) {
let domnode = doc.createDocumentFragment();
for each (let child in node)
domnode.appendChild(fromXML(child, doc, nodes));
return domnode;
}
switch (node.nodeKind()) {
case "text":
return doc.createTextNode(String(node));
case "element":
let domnode = doc.createElementNS(node.namespace(), node.localName());
for each (let attr in node.@*::*)
if (attr.name() != "highlight")
domnode.setAttributeNS(attr.namespace(), attr.localName(), String(attr));
for each (let child in node.*::*)
domnode.appendChild(fromXML(child, doc, nodes));
if (nodes && node.@key)
nodes[node.@key] = domnode;
if ("@highlight" in node)
highlight.highlightNode(domnode, String(node.@highlight), nodes || true);
return domnode;
default:
return null;
}
},
fromXML: Class.Memoize(function ()
prefs.get("javascript.options.xml.chrome") !== false
&& require("dom-e4x.xml").fromXML),
fromJSON: update(function fromJSON(xml, doc, nodes, namespaces) {
if (!doc)
@@ -1892,11 +1853,11 @@ var DOM = Class("DOM", {
},
namespaces: {
xul: XUL.uri,
xhtml: XHTML.uri,
html: XHTML.uri,
xul: XUL,
xhtml: XHTML,
html: XHTML,
xhtml2: "http://www.w3.org/2002/06/xhtml2",
dactyl: NS.uri
dactyl: NS
},
namespaceNames: Class.Memoize(function ()