- <emu-alg><ol><li>Let <var>propertyKey</var> be ? Evaluation of <emu-nt><a href="https://tc39.es/ecma262/#prod-PropertyName">PropertyName</a></emu-nt>.</li><li><del>If this <emu-nt><a href="https://tc39.es/ecma262/#prod-PropertyDefinition">PropertyDefinition</a></emu-nt> is contained within a <emu-nt><a href="https://tc39.es/ecma262/#prod-Script">Script</a></emu-nt> that is being evaluated for <emu-xref aoid="ParseJSON" id="_ref_5"><a href="#sec-ParseJSON">ParseJSON</a></emu-xref> (see step <emu-xref href="#step-json-parse-eval" id="_ref_0"><a href="#step-json-parse-eval">9</a></emu-xref> of <emu-xref aoid="ParseJSON" id="_ref_6"><a href="#sec-ParseJSON">ParseJSON</a></emu-xref>), then</del><ol><li><del>Let <var>isProtoSetter</var> be <emu-val>false</emu-val>.</del></li></ol></li><li><del>Else i</del><ins>I</ins>f <var>propertyKey</var> is <emu-val>"__proto__"</emu-val> and <emu-xref aoid="IsComputedPropertyKey"><a href="https://tc39.es/ecma262/#sec-static-semantics-iscomputedpropertykey">IsComputedPropertyKey</a></emu-xref> of <emu-nt><a href="https://tc39.es/ecma262/#prod-PropertyName">PropertyName</a></emu-nt> is <emu-val>false</emu-val>, then<ol><li>Let <var>isProtoSetter</var> be <emu-val>true</emu-val>.</li></ol></li><li>Else,<ol><li>Let <var>isProtoSetter</var> be <emu-val>false</emu-val>.</li></ol></li><li>If <emu-xref aoid="IsAnonymousFunctionDefinition"><a href="https://tc39.es/ecma262/#sec-isanonymousfunctiondefinition">IsAnonymousFunctionDefinition</a></emu-xref>(<emu-nt><a href="https://tc39.es/ecma262/#prod-AssignmentExpression">AssignmentExpression</a></emu-nt>) is <emu-val>true</emu-val> and <var>isProtoSetter</var> is <emu-val>false</emu-val>, then<ol><li>Let <var>propertyValue</var> be ? <emu-xref aoid="NamedEvaluation"><a href="https://tc39.es/ecma262/#sec-runtime-semantics-namedevaluation">NamedEvaluation</a></emu-xref> of <emu-nt><a href="https://tc39.es/ecma262/#prod-AssignmentExpression">AssignmentExpression</a></emu-nt> with argument <var>propertyKey</var>.</li></ol></li><li>Else,<ol><li>Let <var>exprValueRef</var> be ? Evaluation of <emu-nt><a href="https://tc39.es/ecma262/#prod-AssignmentExpression">AssignmentExpression</a></emu-nt>.</li><li>Let <var>propertyValue</var> be ? <emu-xref aoid="GetValue"><a href="https://tc39.es/ecma262/#sec-getvalue">GetValue</a></emu-xref>(<var>exprValueRef</var>).</li></ol></li><li>If <var>isProtoSetter</var> is <emu-val>true</emu-val>, then<ol><li>If <var>propertyValue</var> is an Object or <var>propertyValue</var> is <emu-val>null</emu-val>, then<ol><li>Perform ! <var>obj</var>.[[SetPrototypeOf]](<var>propertyValue</var>).</li></ol></li><li>Return <emu-const>unused</emu-const>.</li></ol></li><li><emu-xref href="#assert"><a href="https://tc39.es/ecma262/#assert">Assert</a></emu-xref>: <var>obj</var> is an ordinary, extensible object with no non-configurable properties.</li><li>Perform ! <emu-xref aoid="CreateDataPropertyOrThrow"><a href="https://tc39.es/ecma262/#sec-createdatapropertyorthrow">CreateDataPropertyOrThrow</a></emu-xref>(<var>obj</var>, <var>propertyKey</var>, <var>propertyValue</var>).</li><li>Return <emu-const>unused</emu-const>.</li></ol></emu-alg>
0 commit comments