Skip to content

Commit

Permalink
merge "clone a node and append" into "clone a node"
Browse files Browse the repository at this point in the history
  • Loading branch information
annevk committed Dec 16, 2024
1 parent a776615 commit c88a25d
Showing 1 changed file with 21 additions and 25 deletions.
46 changes: 21 additions & 25 deletions dom.bs
Original file line number Diff line number Diff line change
Expand Up @@ -4536,32 +4536,23 @@ each <a for=tree>descendant</a> <a>exclusive <code>Text</code> node</a> <var>nod
<a lt="Other applicable specifications">Specifications</a> may define
<dfn export id=concept-node-clone-ext>cloning steps</dfn> for all or some <a for=/>nodes</a>. The
algorithm is passed <var ignore>node</var>, <var ignore>copy</var>, and <var ignore>subtree</var> as
indicated in the <a>clone a node and append</a> algorithm.
indicated in the <a>clone a node</a> algorithm.

<p class=note>HTML defines <a>cloning steps</a> for several elements, such as <{input}>, <{script}>,
and <{template}>. SVG ought to do the same for its <{script}> elements, but does not.
</div>

<div algorithm>
<p>To <dfn export id=concept-node-clone local-lt="clone">clone a node</dfn> given a
<a for=/>node</a> <var>node</var> and an optional <a for=/>document</a> <var>document</var> (default
<var>node</var>'s <a for=Node>node document</a>) and boolean <var>subtree</var> (default false):
<p>To <dfn export id=concept-node-clone>clone a node</dfn> given a <a for=/>node</a> <var>node</var>
and an optional <a for=/>document</a> <dfn export for="clone a node"><var>document</var></dfn>
(default <var>node</var>'s <a for=Node>node document</a>), boolean
<dfn export for="clone a node"><var>subtree</var></dfn> (default false), and
<a for=/>node</a>-or-null <dfn export for="clone a node"><var>parent</var></dfn> (default null):

<ol>
<li><p><a for=/>Assert</a>: <var>node</var> is not a <a for=/>document</a> or <var>node</var> is
<var>document</var>.

<li><p>Return the result of <a>cloning a node and append</a> given <var>node</var>, null,
<var>document</var>, and <var>subtree</var>.
</ol>
</div>

<div algorithm>
<p>To <dfn export>clone a node and append</dfn> given a <a for=/>node</a> <var>node</var>, a
<a for=/>node</a>-or-null <var>parent</var>, a <a for=/>document</a> <var>document</var>, and a
boolean <var>subtree</var>:

<ol>
<li><p>Let <var>copy</var> be the result of <a>cloning a single node</a> given <var>node</var> and
<var>document</var>.

Expand All @@ -4573,8 +4564,10 @@ boolean <var>subtree</var>:
<var>subtree</var> as parameters.

<li><p>If <var>subtree</var> is true, then for each <var>child</var> of <var>node</var>'s
<a for=tree>children</a>, in <a>tree order</a>: <a>clone a node and append</a> given
<var>child</var>, <var>copy</var>, <var>document</var>, and <var>subtree</var>.
<a for=tree>children</a>, in <a>tree order</a>: <a>clone a node</a> given <var>child</var> with
<a for="clone a node"><i>document</i></a> set to <var>document</var>,
<a for="clone a node"><i>subtree</i></a> set to <var>subtree</var>, and
<a for="clone a node"><i>parent</i></a> set to <var>copy</var>.

<li>
<p>If <var>node</var> is an <a for=/>element</a>, <a for=Element>shadow host</a>, and its
Expand All @@ -4593,9 +4586,10 @@ boolean <var>subtree</var>:
to <var>node</var>'s <a for=Element>shadow root</a>'s <a for=ShadowRoot>declarative</a>.

<li><p>For each <var>child</var> of <var>node</var>'s <a for=Element>shadow root</a>'s
<a for=tree>children</a>, in <a>tree order</a>: <a>clone a node and append</a> given
<var>child</var>, <var>copy</var>'s <a for=Element>shadow root</a>, <var>document</var>, and
<var>subtree</var>.
<a for=tree>children</a>, in <a>tree order</a>: <a>clone a node</a> given <var>child</var> with
<a for="clone a node"><i>document</i></a> set to <var>document</var>,
<a for="clone a node"><i>subtree</i></a> set to <var>subtree</var>, and
<a for="clone a node"><i>parent</i></a> set to <var>copy</var>'s <a for=Element>shadow root</a>.
</ol>

<li><p>Return <var>copy</var>.
Expand Down Expand Up @@ -4623,7 +4617,8 @@ boolean <var>subtree</var>:
<a for=Element>attribute list</a>:

<ol>
<li><p>Let <var>copyAttribute</var> be a <a>clone</a> of <var>attribute</var>.
<li><p>Let <var>copyAttribute</var> be the result of <a>cloning a single node</a> given
<var>attribute</var>.

<li><p><a lt="append an attribute">Append</a> <var>copyAttribute</var> to <var>copy</var>.
</ol>
Expand Down Expand Up @@ -4678,8 +4673,8 @@ boolean <var>subtree</var>:
<li><p>If <a>this</a> is a <a for=/>shadow root</a>, then <a>throw</a> a
"{{NotSupportedError!!exception}}" {{DOMException}}.

<li><p>Return the result of <a>cloning a node</a> given <a>this</a>, <a>this</a>'s
<a for=Node>node document</a>, and <var>subtree</var>.
<li><p>Return the result of <a>cloning a node</a> given <a>this</a> with
<a for="clone a node"><i>subtree</i></a> set to <var>subtree</var>.
</ol>
</div>

Expand Down Expand Up @@ -5606,8 +5601,9 @@ method steps are:
<li><p>If <var>node</var> is a <a>document</a> or <a for=/>shadow root</a>, then <a>throw</a> a
"{{NotSupportedError!!exception}}" {{DOMException}}.

<li><p>Return the result of <a>cloning a node</a> given <var>node</var>, <a>this</a>, and
<var>subtree</var>.
<li><p>Return the result of <a>cloning a node</a> given <var>node</var> with
<a for="clone a node"><i>document</i></a> set to <a>this</a> and
<a for="clone a node"><i>subtree</i></a> set to <var>subtree</var>.
</ol>
</div>

Expand Down

0 comments on commit c88a25d

Please sign in to comment.