@@ -2934,6 +2934,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
2934
2934
<li><dfn data-x-href="https://tc39.es/ecma262/#running-execution-context">running JavaScript execution context</dfn></li>
2935
2935
<li><dfn data-x-href="https://tc39.es/ecma262/#surrounding-agent">surrounding agent</dfn></li>
2936
2936
<li><dfn data-x-href="https://tc39.es/ecma262/#sec-abstract-closure">abstract closure</dfn></li>
2937
+ <li><dfn data-x-href="https://tc39.es/ecma262/#immutable-prototype-exotic-object">immutable prototype exotic object</dfn></li>
2937
2938
<li><dfn data-x-href="https://tc39.es/ecma262/#sec-well-known-symbols">Well-Known Symbols</dfn>, including
2938
2939
<dfn>@@hasInstance</dfn>,
2939
2940
<dfn>@@isConcatSpreadable</dfn>,
@@ -2945,6 +2946,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
2945
2946
<dfn>%EvalErrorPrototype%</dfn>,
2946
2947
<dfn data-x-href="https://tc39.es/ecma262/#sec-properties-of-the-function-prototype-object">%FunctionPrototype%</dfn>,
2947
2948
<dfn data-x-href="https://tc39.es/ecma262/#sec-json.parse">%JSONParse%</dfn>,
2949
+ <dfn data-x-href="https://tc39.es/ecma262/#sec-properties-of-the-object-prototype-object">%ObjectPrototype%</dfn>,
2948
2950
<dfn data-x-href="https://tc39.es/ecma262/#sec-object.prototype.valueof">%ObjProto_valueOf%</dfn>,
2949
2951
<dfn>%RangeErrorPrototype%</dfn>,
2950
2952
<dfn>%ReferenceErrorPrototype%</dfn>,
@@ -8446,8 +8448,10 @@ interface <dfn>DOMStringList</dfn> {
8446
8448
</li>
8447
8449
8448
8450
<li>
8449
- <p>Otherwise, if <var>value</var> is an exotic object, then throw a
8450
- <span>"<code>DataCloneError</code>"</span> <code>DOMException</code>.</p>
8451
+ <p>Otherwise, if <var>value</var> is an exotic object and <var>value</var> is not the
8452
+ <span>%ObjectPrototype%</span> intrinsic object associated with any <span>JavaScript
8453
+ realm</span>, then throw a <span>"<code>DataCloneError</code>"</span>
8454
+ <code>DOMException</code>.</p>
8451
8455
8452
8456
<p class="example">For instance, a proxy object.</p>
8453
8457
</li>
@@ -8461,6 +8465,10 @@ interface <dfn>DOMStringList</dfn> {
8461
8465
8462
8466
<li><p>Set <var>deep</var> to true.</p></li>
8463
8467
</ol>
8468
+
8469
+ <p class="note"><span>%ObjectPrototype%</span> will end up being handled via this step and
8470
+ subsequent steps. The end result is that its exoticness is ignored, and after deserialization
8471
+ the result will be an empty object (not an <span>immutable prototype exotic object</span>).
8464
8472
</li>
8465
8473
8466
8474
<li><p><span data-x="map set">Set</span> <var>memory</var>[<var>value</var>] to
0 commit comments