@@ -4551,16 +4551,48 @@ and <{template}>. SVG ought to do the same for its <{script}> elements, but does
4551
4551
<li><p> <a for=/>Assert</a> : <var> node</var> is not a <a for=/>document</a> or <var> node</var> is
4552
4552
<var> document</var> .
4553
4553
4554
+ <li><p> Return the result of <a>cloning a node and append</a> given <var> node</var> , null,
4555
+ <var> document</var> , and <var> subtree</var> .
4556
+ </ol>
4557
+ </div>
4558
+
4559
+ <div algorithm>
4560
+ <p> To <dfn export>clone a node and append</dfn> given a <a for=/>node</a> <var> node</var> , a
4561
+ <a for=/>node</a> -or-null <var> parent</var> , a <a for=/>document</a> <var> document</var> , and a
4562
+ boolean <var> subtree</var> :
4563
+
4564
+ <ol>
4554
4565
<li><p> Let <var> copy</var> be the result of <a>cloning a single node</a> given <var> node</var> ,
4555
4566
<var> document</var> , and <var> subtree</var> .
4556
4567
4557
- <li><p> <a>Clone a shadow host</a> given < var>node </var> , <var> copy </var> , <var> document </var> , and
4558
- <var> subtree </var> .
4568
+ <li><p> If < var>parent </var> is non-null, then <a for=/>append</a> <var> childCopy </var> to
4569
+ <var> parentCopy </var> .
4559
4570
4560
- <li><p> If <var> subtree</var> is true, then <a>clone a node's children</a> given <var> node</var> ,
4561
- <var> copy</var> , <var> document</var> , and <var> subtree</var> .
4571
+ <li>
4572
+ <p> If <var> node</var> is an <a for=/>element</a> , <a for=Element>shadow host</a> , and its
4573
+ <a for=Element>shadow root</a> 's <a for=ShadowRoot>clonable</a> is true:
4562
4574
4563
- <li><p> Return <var> copy</var> .
4575
+ <ol>
4576
+ <li><p> <a for=/>Assert</a> : <var> copy</var> is not a <a for=Element>shadow host</a> .
4577
+
4578
+ <li><p> <a>Attach a shadow root</a> with <var> copy</var> , <var> node</var> 's
4579
+ <a for=Element>shadow root</a> 's <a for=ShadowRoot>mode</a>, true, <var>node</var>' s
4580
+ <a for=Element>shadow root</a> 's <a for=ShadowRoot>serializable</a>, <var>node</var>' s
4581
+ <a for=Element>shadow root</a> 's <a for=ShadowRoot>delegates focus</a>, and <var>node</var>' s
4582
+ <a for=Element>shadow root</a> 's <a for=ShadowRoot>slot assignment</a> .
4583
+
4584
+ <li><p> Set <var> copy</var> 's <a for=Element>shadow root</a>' s <a for=ShadowRoot>declarative</a>
4585
+ to <var> node</var> 's <a for=Element>shadow root</a>' s <a for=ShadowRoot>declarative</a> .
4586
+
4587
+ <li><p> For each <var> child</var> of <var> node</var> 's <a for=Element>shadow root</a>' s
4588
+ <a for=tree>children</a> , in <a>tree order</a> , <a>clone a node and append</a> given
4589
+ <var> child</var> , <var> copy</var> 's <a for=Element>shadow root</a> , <var> document</var> , and
4590
+ <var> subtree</var> .
4591
+ </ol>
4592
+
4593
+ <li><p> If <var> subtree</var> is true, then for each <var> child</var> of <var> node</var> 's
4594
+ <a for=tree>children</a> , in <a>tree order</a> : <a>clone a node and append</a> given
4595
+ <var> child</var> , <var> copy</var> , <var> document</var> , and <var> subtree</var> .
4564
4596
</ol>
4565
4597
</div>
4566
4598
@@ -4637,54 +4669,6 @@ and <{template}>. SVG ought to do the same for its <{script}> elements, but does
4637
4669
</ol>
4638
4670
</div>
4639
4671
4640
- <div algorithm>
4641
- <p> To <dfn>clone a shadow host</dfn> given a <a for=/>node</a> <var> node</var> , a <a for=/>node</a>
4642
- <var> copy</var> , a <a for=/>document</a> <var> document</var> , and a boolean <var> subtree</var> :
4643
-
4644
- <ol>
4645
- <li><p> If <var> node</var> is not an <a for=/>element</a> , <a for=Element>shadow host</a> , or its
4646
- <a for=Element>shadow root</a> 's <a for=ShadowRoot>clonable</a> is false, then return.
4647
-
4648
- <li><p> <a for=/>Assert</a> : <var> copy</var> is not a <a for=Element>shadow host</a> .
4649
-
4650
- <li><p> <a>Attach a shadow root</a> with <var> copy</var> , <var> node</var> 's
4651
- <a for=Element>shadow root</a> 's <a for=ShadowRoot>mode</a>, true, <var>node</var>' s
4652
- <a for=Element>shadow root</a> 's <a for=ShadowRoot>serializable</a>, <var>node</var>' s
4653
- <a for=Element>shadow root</a> 's <a for=ShadowRoot>delegates focus</a>, and <var>node</var>' s
4654
- <a for=Element>shadow root</a> 's <a for=ShadowRoot>slot assignment</a> .
4655
-
4656
- <li><p> Set <var> copy</var> 's <a for=Element>shadow root</a>' s <a for=ShadowRoot>declarative</a> to
4657
- <var> node</var> 's <a for=Element>shadow root</a>' s <a for=ShadowRoot>declarative</a> .
4658
-
4659
- <li><p> <a>Clone a node's children</a> given <var> node</var> 's <a for=Element>shadow root</a> ,
4660
- <var> copy</var> 's <a for=Element>shadow root</a> , <var> document</var> , and <var> subtree</var> .
4661
- </ol>
4662
- </div>
4663
-
4664
- <div algorithm>
4665
- <p> To <dfn export>clone a node's children</dfn> given a <a for=/>node</a> <var> node</var> , a
4666
- <a for=/>node</a> <var> copy</var> , a <a for=/>document</a> <var> document</var> , and a boolean
4667
- <var> subtree</var> :
4668
-
4669
- <ol>
4670
- <li>
4671
- <p> For each <var> child</var> of <var> node</var> 's <a for=tree>children</a> , in <a>tree order</a> :
4672
-
4673
- <ol>
4674
- <li><p> Let <var> childCopy</var> be the result of <a>cloning a single node</a> given
4675
- <var> child</var> , <var> document</var> , and <var> subtree</var> .
4676
-
4677
- <li><p> <a for=/>Append</a> <var> childCopy</var> to <var> copy</var> .
4678
-
4679
- <li><p> <a>Clone a shadow host</a> given <var> child</var> , <var> childCopy</var> ,
4680
- <var> document</var> , and <var> subtree</var> .
4681
-
4682
- <li><p> <a>Clone a node's children</a> given <var> child</var> , <var> childCopy</var> ,
4683
- <var> document</var> , and <var> subtree</var> .
4684
- </ol>
4685
- </ol>
4686
- </div>
4687
-
4688
4672
<div algorithm>
4689
4673
<p> The <dfn method for=Node><code>cloneNode(<var>subtree</var>)</code></dfn> method steps are:
4690
4674
0 commit comments