Skip to content

Commit

Permalink
[e] (0) Fix cross-references in structured clone algorithm
Browse files Browse the repository at this point in the history
Affected topics: DOM APIs

git-svn-id: http://svn.whatwg.org/webapps@8373 340c8d12-0b0e-0410-8428-c7bf67bfef74
  • Loading branch information
Hixie committed Jan 3, 2014
1 parent 760f43a commit 0b4aa76
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 6 deletions.
10 changes: 8 additions & 2 deletions complete.html
Expand Up @@ -8228,6 +8228,7 @@ <h4 id=safe-passing-of-structured-data><span class=secno>2.7.6 </span>Safe passi

<dd>

<!--CLEANUP-->
<p>Let <var title="">output</var> be a newly constructed object of the same class as <var title="">input</var>, with each IDL attribute defined for that class being set to the value
obtained from invoking the <a href=#internal-structured-cloning-algorithm>internal structured cloning algorithm</a> recursively with
the value of the attribute on <var title="">input</var> as the new "<var title="">input</var>"
Expand All @@ -8243,15 +8244,17 @@ <h4 id=safe-passing-of-structured-data><span class=secno>2.7.6 </span>Safe passi

<dd>

<!--CLEANUP-->
<p>Let <var title="">output</var> be a newly constructed empty <code>Array</code> object whose
<code title="">length</code> is equal to the <code title="">length</code> of <var title="">input</var>, and set <var title="">deep clone</var> to true.</p>

<p class=note>This means that the length of sparse arrays is preserved.</p>

</dd>

<dt>If <var title="">input</var> is an <code><a href=#the-object-element>Object</a></code> object</dt>
<dt>If <var title="">input</var> is an <code title="">Object</code> object</dt>

<!--CLEANUP-->
<dd><p>Let <var title="">output</var> be a newly constructed empty <code title="">Object</code>
object, and set <var title="">deep clone</var> to true.</dd>

Expand All @@ -8260,6 +8263,7 @@ <h4 id=safe-passing-of-structured-data><span class=secno>2.7.6 </span>Safe passi
<dd><p>Let <var title="">output</var> be a clone of the object as defined by the other
specification.</dd>

<!--CLEANUP-->
<dt>If <var title="">input</var> is another native object type (e.g. <code>Error</code>, <code>Function</code>)</dt>
<dt>If <var title="">input</var> is a host object (e.g. a DOM node)</dt>

Expand All @@ -8268,7 +8272,8 @@ <h4 id=safe-passing-of-structured-data><span class=secno>2.7.6 </span>Safe passi

</dl><p>For the purposes of the algorithm above, an object is a particular type of object <var title="">class</var> if its [[Class]] internal property is equal to <var title="">class</var>.</p>

<p class=example>For example, "<var title="">input</var> is an <code><a href=#the-object-element>Object</a></code> object" if
<!--CLEANUP-->
<p class=example>For example, "<var title="">input</var> is an <code title="">Object</code> object" if
<var title="">input</var>'s [[Class]] internal property is equal to the string "<code title="">Object</code>".</p>

</li>
Expand All @@ -8281,6 +8286,7 @@ <h4 id=safe-passing-of-structured-data><span class=secno>2.7.6 </span>Safe passi

<ol><li><p>Let <var title="">name</var> be the name of the property.</li>

<!--CLEANUP-->
<li><p>Let <var title="">source value</var> be the result of calling the [[Get]] internal
method of <var title="">input</var> with the argument <var title="">name</var>. If the [[Get]]
internal method of a property involved executing script, and that script threw an uncaught
Expand Down
10 changes: 8 additions & 2 deletions index
Expand Up @@ -8228,6 +8228,7 @@ interface <dfn id=transferable>Transferable</dfn> { };

<dd>

<!--CLEANUP-->
<p>Let <var title="">output</var> be a newly constructed object of the same class as <var title="">input</var>, with each IDL attribute defined for that class being set to the value
obtained from invoking the <a href=#internal-structured-cloning-algorithm>internal structured cloning algorithm</a> recursively with
the value of the attribute on <var title="">input</var> as the new "<var title="">input</var>"
Expand All @@ -8243,15 +8244,17 @@ interface <dfn id=transferable>Transferable</dfn> { };

<dd>

<!--CLEANUP-->
<p>Let <var title="">output</var> be a newly constructed empty <code>Array</code> object whose
<code title="">length</code> is equal to the <code title="">length</code> of <var title="">input</var>, and set <var title="">deep clone</var> to true.</p>

<p class=note>This means that the length of sparse arrays is preserved.</p>

</dd>

<dt>If <var title="">input</var> is an <code><a href=#the-object-element>Object</a></code> object</dt>
<dt>If <var title="">input</var> is an <code title="">Object</code> object</dt>

<!--CLEANUP-->
<dd><p>Let <var title="">output</var> be a newly constructed empty <code title="">Object</code>
object, and set <var title="">deep clone</var> to true.</dd>

Expand All @@ -8260,6 +8263,7 @@ interface <dfn id=transferable>Transferable</dfn> { };
<dd><p>Let <var title="">output</var> be a clone of the object as defined by the other
specification.</dd>

<!--CLEANUP-->
<dt>If <var title="">input</var> is another native object type (e.g. <code>Error</code>, <code>Function</code>)</dt>
<dt>If <var title="">input</var> is a host object (e.g. a DOM node)</dt>

Expand All @@ -8268,7 +8272,8 @@ interface <dfn id=transferable>Transferable</dfn> { };

</dl><p>For the purposes of the algorithm above, an object is a particular type of object <var title="">class</var> if its [[Class]] internal property is equal to <var title="">class</var>.</p>

<p class=example>For example, "<var title="">input</var> is an <code><a href=#the-object-element>Object</a></code> object" if
<!--CLEANUP-->
<p class=example>For example, "<var title="">input</var> is an <code title="">Object</code> object" if
<var title="">input</var>'s [[Class]] internal property is equal to the string "<code title="">Object</code>".</p>

</li>
Expand All @@ -8281,6 +8286,7 @@ interface <dfn id=transferable>Transferable</dfn> { };

<ol><li><p>Let <var title="">name</var> be the name of the property.</li>

<!--CLEANUP-->
<li><p>Let <var title="">source value</var> be the result of calling the [[Get]] internal
method of <var title="">input</var> with the argument <var title="">name</var>. If the [[Get]]
internal method of a property involved executing script, and that script threw an uncaught
Expand Down
10 changes: 8 additions & 2 deletions source
Expand Up @@ -7838,6 +7838,7 @@ interface <dfn>Transferable</dfn> { };

<dd>

<!--CLEANUP-->
<p>Let <var data-x="">output</var> be a newly constructed object of the same class as <var
data-x="">input</var>, with each IDL attribute defined for that class being set to the value
obtained from invoking the <span>internal structured cloning algorithm</span> recursively with
Expand All @@ -7854,6 +7855,7 @@ interface <dfn>Transferable</dfn> { };

<dd>

<!--CLEANUP-->
<p>Let <var data-x="">output</var> be a newly constructed empty <code>Array</code> object whose
<code data-x="">length</code> is equal to the <code data-x="">length</code> of <var
data-x="">input</var>, and set <var data-x="">deep clone</var> to true.</p>
Expand All @@ -7862,8 +7864,9 @@ interface <dfn>Transferable</dfn> { };

</dd>

<dt>If <var data-x="">input</var> is an <code>Object</code> object</dt>
<dt>If <var data-x="">input</var> is an <code data-x="">Object</code> object</dt>

<!--CLEANUP-->
<dd><p>Let <var data-x="">output</var> be a newly constructed empty <code data-x="">Object</code>
object, and set <var data-x="">deep clone</var> to true.</p></dd>

Expand All @@ -7872,6 +7875,7 @@ interface <dfn>Transferable</dfn> { };
<dd><p>Let <var data-x="">output</var> be a clone of the object as defined by the other
specification.</p></dd>

<!--CLEANUP-->
<dt>If <var data-x="">input</var> is another native object type (e.g. <code>Error</code>, <code>Function</code>)</dt>
<dt>If <var data-x="">input</var> is a host object (e.g. a DOM node)</dt>

Expand All @@ -7884,7 +7888,8 @@ interface <dfn>Transferable</dfn> { };
data-x="">class</var> if its [[Class]] internal property is equal to <var
data-x="">class</var>.</p>

<p class="example">For example, "<var data-x="">input</var> is an <code>Object</code> object" if
<!--CLEANUP-->
<p class="example">For example, "<var data-x="">input</var> is an <code data-x="">Object</code> object" if
<var data-x="">input</var>'s [[Class]] internal property is equal to the string "<code
data-x="">Object</code>".</p>

Expand All @@ -7902,6 +7907,7 @@ interface <dfn>Transferable</dfn> { };

<li><p>Let <var data-x="">name</var> be the name of the property.</p></li>

<!--CLEANUP-->
<li><p>Let <var data-x="">source value</var> be the result of calling the [[Get]] internal
method of <var data-x="">input</var> with the argument <var data-x="">name</var>. If the [[Get]]
internal method of a property involved executing script, and that script threw an uncaught
Expand Down

0 comments on commit 0b4aa76

Please sign in to comment.