X-Git-Url: https://git.donarmstrong.com/?p=dactyl.git;a=blobdiff_plain;f=common%2Fmodules%2Fdom.jsm;fp=common%2Fmodules%2Fdom.jsm;h=b76bc0fe492499362dc4480e3e7afc6259209445;hp=61e4446978f2b2848e47ccab923d225c48c175da;hb=3d837eb266a3a01d424192aa4ec1a167366178c5;hpb=d8a3bcebff36df7b128b36e0b57b715479e155a0 diff --git a/common/modules/dom.jsm b/common/modules/dom.jsm index 61e4446..b76bc0f 100644 --- a/common/modules/dom.jsm +++ b/common/modules/dom.jsm @@ -100,7 +100,7 @@ var DOM = Class("DOM", { href: { get: function (elem) elem.href || elem.getAttribute("href") }, src: { get: function (elem) elem.src || elem.getAttribute("src") }, checked: { get: function (elem) elem.hasAttribute("checked") ? elem.getAttribute("checked") == "true" : elem.checked, - set: function (elem, val) { elem.setAttribute("checked", !!val); elem.checked = val } }, + set: function (elem, val) { elem.setAttribute("checked", !!val); elem.checked = val; } }, collapsed: BooleanAttribute("collapsed"), disabled: BooleanAttribute("disabled"), hidden: BooleanAttribute("hidden"), @@ -125,7 +125,7 @@ var DOM = Class("DOM", { if (val instanceof Ci.nsIDOMNode) return val; - if (typeof val == "xml" || DOM.isJSONXML(val)) { + if (DOM.isJSONXML(val)) { val = dom.constructor(val, dom.document); if (container) container[idx] = val[0]; @@ -140,6 +140,9 @@ var DOM = Class("DOM", { return val; } + if (DOM.isJSONXML(val)) + val = (function () this).bind(val); + if (callable(val)) return this.each(function (elem, i) { util.withProperErrors(fn, this, munge(val.call(this, elem, i)), elem, i); @@ -190,8 +193,8 @@ var DOM = Class("DOM", { let res = this.Empty(); this.each(function (elem) { - while(true) { - elem = fn.call(this, elem) + while (true) { + elem = fn.call(this, elem); if (elem instanceof Ci.nsIDOMNode) res[res.length++] = elem; else if (elem && "length" in elem) @@ -269,7 +272,7 @@ var DOM = Class("DOM", { each: function each(meth, arg) { return self.each(function (elem) { elem.classList[meth](arg); - }) + }); }, add: function add(cls) this.each("add", cls), @@ -309,7 +312,7 @@ var DOM = Class("DOM", { let { highlight } = this; let v = callable(val) ? val.call(thisObj || this, elem, i) : val; - highlight[(v == null ? highlight.has(hl) : !v) ? "remove" : "add"](hl) + highlight[(v == null ? highlight.has(hl) : !v) ? "remove" : "add"](hl); }), }), @@ -343,7 +346,7 @@ var DOM = Class("DOM", { get bottom() this.top + this.height, left: r.left + node.clientLeft, get right() this.left + this.width - } + }; }, scrollPos: function scrollPos(left, top) { @@ -575,7 +578,7 @@ var DOM = Class("DOM", { let res = []; this.each(function (elem) { try { - let hasChildren = elem.firstChild && (!/^\s*$/.test(elem.firstChild) || elem.firstChild.nextSibling) + let hasChildren = elem.firstChild && (!/^\s*$/.test(elem.firstChild) || elem.firstChild.nextSibling); if (color) res.push(["span", { highlight: "HelpXML" }, ["span", { highlight: "HelpXMLTagStart" }, @@ -590,7 +593,7 @@ var DOM = Class("DOM", { ], !hasChildren ? "" : ["", "...", - ["span", { highlight: "HtmlTagEnd" },"<", namespaced(elem), ">"]] + ["span", { highlight: "HtmlTagEnd" }, "<", namespaced(elem), ">"]] ]); else { let tag = "<" + [namespaced(elem)].concat( @@ -791,19 +794,19 @@ var DOM = Class("DOM", { html: function html(txt, self) { return this.getSet(arguments, function (elem) elem.innerHTML, - util.wrapCallback(function (elem, val) { elem.innerHTML = val })); + util.wrapCallback(function (elem, val) { elem.innerHTML = val; })); }, text: function text(txt, self) { return this.getSet(arguments, function (elem) elem.textContent, - function (elem, val) { elem.textContent = val }); + function (elem, val) { elem.textContent = val; }); }, val: function val(txt) { return this.getSet(arguments, function (elem) elem.value, - function (elem, val) { elem.value = val == null ? "" : val }); + function (elem, val) { elem.value = val == null ? "" : val; }); }, listen: function listen(event, listener, capture) { @@ -902,7 +905,7 @@ var DOM = Class("DOM", { return true; if (rect.top > viewport.bottom) return false; - return Math.abs(rect.top) < Math.abs(viewport.bottom - rect.bottom) + return Math.abs(rect.top) < Math.abs(viewport.bottom - rect.bottom); } let rect; @@ -1063,7 +1066,6 @@ var DOM = Class("DOM", { return this; }, - code_key: Class.Memoize(function (prop) this.init()[prop]), code_nativeKey: Class.Memoize(function (prop) this.init()[prop]), keyTable: Class.Memoize(function (prop) this.init()[prop]), @@ -1331,7 +1333,6 @@ var DOM = Class("DOM", { return "<" + modifier + key + ">"; }, - defaults: { load: { bubbles: false }, submit: { cancelable: true } @@ -1613,7 +1614,7 @@ var DOM = Class("DOM", { else elem.setAttributeNS(vals[0] || "", key, val); } - args.forEach(function(e) { + args.forEach(function (e) { elem.appendChild(tag(e, namespaces)); }); @@ -1627,7 +1628,7 @@ var DOM = Class("DOM", { else namespaces = fromJSON.namespaces; - return tag(xml, namespaces) + return tag(xml, namespaces); }, { namespaces: { "": "http://www.w3.org/1999/xhtml", @@ -1663,13 +1664,13 @@ var DOM = Class("DOM", { function isFragment(args) !isString(args[0]) || args.length == 0 || args[0] === ""; function hasString(args) { - return args.some(function (a) isString(a) || isFragment(a) && hasString(a)) + return args.some(function (a) isString(a) || isFragment(a) && hasString(a)); } function isStrings(args) { if (!isArray(args)) return util.dump("ARGS: " + {}.toString.call(args) + " " + args), false; - return args.every(function (a) isinstance(a, ["String", DOM.DOMString]) || isFragment(a) && isStrings(a)) + return args.every(function (a) isinstance(a, ["String", DOM.DOMString]) || isFragment(a) && isStrings(a)); } function tag(args, namespaces, indent) { @@ -1724,7 +1725,7 @@ var DOM = Class("DOM", { contents.push(string); }); if (contents.length) - res.push(contents.join("\n"), join) + res.push(contents.join("\n"), join); }); if (res[res.length - 1] == join) res.pop(); @@ -1785,7 +1786,7 @@ var DOM = Class("DOM", { ""); else { let contents = []; - args.forEach(function(e) { + args.forEach(function (e) { let string = tag(e, namespaces, indent + INDENT); if (string) contents.push(string); @@ -1803,7 +1804,7 @@ var DOM = Class("DOM", { else namespaces = DOM.fromJSON.namespaces; - return tag(xml, namespaces, "") + return tag(xml, namespaces, ""); }, parseNamespace: function parseNamespace(name, namespaces) { @@ -1908,4 +1909,4 @@ endModule(); // catch(e){ if (!e.stack) e = Error(e); dump(e.fileName+":"+e.lineNumber+": "+e+"\n" + e.stack); } -// vim: set sw=4 ts=4 et ft=javascript: +// vim: set fdm=marker sw=4 sts=4 ts=8 et ft=javascript: