- From: Timothy Gu <notifications@github.com>
- Date: Fri, 27 Mar 2020 09:06:45 -0700
- To: whatwg/dom <dom@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/dom/issues/814/605083678@github.com>
Sorry, it looks like I have gotten myself confused. The correct patch should be the following: <details> ```patch diff --git a/lib/jsdom/living/nodes/Document-impl.js b/lib/jsdom/living/nodes/Document-impl.js index 94f8d484..3b486d84 100644 --- a/lib/jsdom/living/nodes/Document-impl.js +++ b/lib/jsdom/living/nodes/Document-impl.js @@ -816,7 +816,7 @@ class DocumentImpl extends NodeImpl { } // https://dom.spec.whatwg.org/#concept-node-adopt - _adoptNode(node) { + _adoptNode(node, doItAnyway = false) { const newDocument = this; const oldDocument = node._ownerDocument; @@ -827,6 +827,9 @@ class DocumentImpl extends NodeImpl { if (oldDocument !== newDocument) { for (const inclusiveDescendant of shadowIncludingInclusiveDescendantsIterator(node)) { + if (!doItAnyway && DocumentFragment.isImpl(node) && node._host) { + continue; + } inclusiveDescendant._ownerDocument = newDocument; } diff --git a/lib/jsdom/living/nodes/HTMLTemplateElement-impl.js b/lib/jsdom/living/nodes/HTMLTemplateElement-impl.js index b0a2405b..1f829e49 100644 --- a/lib/jsdom/living/nodes/HTMLTemplateElement-impl.js +++ b/lib/jsdom/living/nodes/HTMLTemplateElement-impl.js @@ -43,7 +43,7 @@ class HTMLTemplateElementImpl extends HTMLElementImpl { // https://html.spec.whatwg.org/multipage/scripting.html#template-adopting-steps _adoptingSteps() { const doc = this._appropriateTemplateContentsOwnerDocument(this._ownerDocument); - doc._adoptNode(this._templateContents); + doc._adoptNode(this._templateContents, /* doItAnyway= */ true); } get content() { ``` </details> In terms of tests, `template-element/template-content-hierarcy.html` works, `custom-elements/adopted-callback.html` has the same result as before, and `dom/nodes/adoption.window.js` has: ``` Failed in "appendChild() and DocumentFragment with host": assert_equals: expected Document node with 2 children but got Document node with 0 children Failed in "appendChild() and DocumentFragment": assert_equals: expected Document node with 0 children but got Document node with 2 children Failed in "appendChild() and ShadowRoot": assert_equals: expected Document node with 2 children but got Document node with 0 children ``` -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/whatwg/dom/issues/814#issuecomment-605083678
Received on Friday, 27 March 2020 16:06:58 UTC