Skip to content

Commit

Permalink
small refactor to leverage parse() when new custom elements registered
Browse files Browse the repository at this point in the history
  • Loading branch information
wkeese committed Apr 14, 2016
1 parent 67ae90d commit 809dc33
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions register.js
Original file line number Diff line number Diff line change
Expand Up @@ -291,10 +291,7 @@ define([
// If the document has already been parsed then do a supplementary sweep for this new custom element.
if (initialParseComplete && !has("document-register-element")) {
unobserve(); // pause listening for added/deleted nodes
var node, idx = 0, nodes = doc.querySelectorAll(selector);
while ((node = nodes[idx++])) {
upgrade(node, true);
}
parse(doc, selector);
observe(); // resume listening for added/deleted nodes
}

Expand Down Expand Up @@ -407,10 +404,14 @@ define([
*
* @function module:delite/register.parse
* @param {Element} [root] DOM node to parse from.
* @param {String} [selector] The selector to use to detect custom elements. Defaults to selector
* for all registered custom elements.
*/
function parse(root) {
if (!has("document-register-element") && selectors.length) {
var node, idx = 0, nodes = (root || doc).querySelectorAll(selectors.join(", "));
function parse(root, selector) {
if (has("document-register-element")) { return; }
selector = selector || selectors.join(", ");
if (selector) {
var node, idx = 0, nodes = (root || doc).querySelectorAll(selector);
while ((node = nodes[idx++])) {
upgrade(node, true);
}
Expand Down Expand Up @@ -477,6 +478,9 @@ define([
*/
function unobserve() {
if (observer) {
// TODO: This method is supposed to pause listening for DOM updates,
// but I suspect disconnect() also throws away records
// for any mutations that have already occurred. Those records need to be saved or processed.
observer.disconnect();
}
}
Expand Down

0 comments on commit 809dc33

Please sign in to comment.