Name Description Size
browser.js 0
left-hand-side-private-reference-accessor-property-and.js --- description: Logical-and assignment with target being a private reference (to an accessor property with getter and setter) esid: sec-assignment-operators-runtime-semantics-evaluation features: [class-fields-private, logical-assignment-operators] flags: [generated] info: | sec-property-accessors-runtime-semantics-evaluation MemberExpression : MemberExpression `.` PrivateIdentifier 1. Let _baseReference_ be the result of evaluating |MemberExpression|. 2. Let _baseValue_ be ? GetValue(_baseReference_). 3. Let _fieldNameString_ be the StringValue of |PrivateIdentifier|. 4. Return ! MakePrivateReference(_baseValue_, _fieldNameString_). PutValue (V, W) ... 5.b. If IsPrivateReference(_V_) is *true*, then i. Return ? PrivateSet(_baseObj_, _V_.[[ReferencedName]], _W_). PrivateSet (O, P, value) ... 5.a. Assert: _entry_.[[Kind]] is ~accessor~. ... 5.c. Let _setter_ be _entry_.[[Set]]. d. Perform ? Call(_setter_, _O_, « _value_ »). sec-assignment-operators-runtime-semantics-evaluation AssignmentExpression : LeftHandSideExpression &&= AssignmentExpression 1. Let _lref_ be the result of evaluating |LeftHandSideExpression|. 2. Let _lval_ be ? GetValue(_lref_). 3. Let _lbool_ be ! ToBoolean(_lval_). 4. If _lbool_ is *false*, return _lval_. ... 7. Perform ? PutValue(_lref_, _rval_). 8. Return _rval_. --- 2151
left-hand-side-private-reference-accessor-property-nullish.js --- description: Nullish-coalescing assignment with target being a private reference (to an accessor property with getter and setter) esid: sec-assignment-operators-runtime-semantics-evaluation features: [class-fields-private, logical-assignment-operators] flags: [generated] info: | sec-property-accessors-runtime-semantics-evaluation MemberExpression : MemberExpression `.` PrivateIdentifier 1. Let _baseReference_ be the result of evaluating |MemberExpression|. 2. Let _baseValue_ be ? GetValue(_baseReference_). 3. Let _fieldNameString_ be the StringValue of |PrivateIdentifier|. 4. Return ! MakePrivateReference(_baseValue_, _fieldNameString_). PutValue (V, W) ... 5.b. If IsPrivateReference(_V_) is *true*, then i. Return ? PrivateSet(_baseObj_, _V_.[[ReferencedName]], _W_). PrivateSet (O, P, value) ... 5.a. Assert: _entry_.[[Kind]] is ~accessor~. ... 5.c. Let _setter_ be _entry_.[[Set]]. d. Perform ? Call(_setter_, _O_, « _value_ »). sec-assignment-operators-runtime-semantics-evaluation AssignmentExpression : LeftHandSideExpression ??= AssignmentExpression 1. Let _lref_ be the result of evaluating |LeftHandSideExpression|. 2. Let _lval_ be ? GetValue(_lref_). 3. If _lval_ is neither *undefined* nor *null*, return _lval_. ... 6. Perform ? PutValue(_lref_, _rval_). 7. Return _rval_. --- 2127
left-hand-side-private-reference-accessor-property-or.js --- description: Logical-or assignment with target being a private reference (to an accessor property with getter and setter) esid: sec-assignment-operators-runtime-semantics-evaluation features: [class-fields-private, logical-assignment-operators] flags: [generated] info: | sec-property-accessors-runtime-semantics-evaluation MemberExpression : MemberExpression `.` PrivateIdentifier 1. Let _baseReference_ be the result of evaluating |MemberExpression|. 2. Let _baseValue_ be ? GetValue(_baseReference_). 3. Let _fieldNameString_ be the StringValue of |PrivateIdentifier|. 4. Return ! MakePrivateReference(_baseValue_, _fieldNameString_). PutValue (V, W) ... 5.b. If IsPrivateReference(_V_) is *true*, then i. Return ? PrivateSet(_baseObj_, _V_.[[ReferencedName]], _W_). PrivateSet (O, P, value) ... 5.a. Assert: _entry_.[[Kind]] is ~accessor~. ... 5.c. Let _setter_ be _entry_.[[Set]]. d. Perform ? Call(_setter_, _O_, « _value_ »). sec-assignment-operators-runtime-semantics-evaluation AssignmentExpression : LeftHandSideExpression ||= AssignmentExpression 1. Let _lref_ be the result of evaluating |LeftHandSideExpression|. 2. Let _lval_ be ? GetValue(_lref_). 3. Let _lbool_ be ! ToBoolean(_lval_). 4. If _lbool_ is *true*, return _lval_. ... 7. Perform ? PutValue(_lref_, _rval_). 8. Return _rval_. --- 2146
left-hand-side-private-reference-accessor-property-short-circuit-and.js --- description: Logical-and assignment with target being a private reference (to an accessor property with getter and setter (short-circuit version)) esid: sec-assignment-operators-runtime-semantics-evaluation features: [class-fields-private, logical-assignment-operators] flags: [generated] info: | sec-property-accessors-runtime-semantics-evaluation MemberExpression : MemberExpression `.` PrivateIdentifier 1. Let _baseReference_ be the result of evaluating |MemberExpression|. 2. Let _baseValue_ be ? GetValue(_baseReference_). 3. Let _fieldNameString_ be the StringValue of |PrivateIdentifier|. 4. Return ! MakePrivateReference(_baseValue_, _fieldNameString_). PutValue (V, W) ... 5.b. If IsPrivateReference(_V_) is *true*, then i. Return ? PrivateSet(_baseObj_, _V_.[[ReferencedName]], _W_). PrivateSet (O, P, value) ... 5.a. Assert: _entry_.[[Kind]] is ~accessor~. ... 5.c. Let _setter_ be _entry_.[[Set]]. d. Perform ? Call(_setter_, _O_, « _value_ »). sec-assignment-operators-runtime-semantics-evaluation AssignmentExpression : LeftHandSideExpression &&= AssignmentExpression 1. Let _lref_ be the result of evaluating |LeftHandSideExpression|. 2. Let _lval_ be ? GetValue(_lref_). 3. Let _lbool_ be ! ToBoolean(_lval_). 4. If _lbool_ is *false*, return _lval_. ... 7. Perform ? PutValue(_lref_, _rval_). 8. Return _rval_. --- 2204
left-hand-side-private-reference-accessor-property-short-circuit-nullish.js --- description: Nullish-coalescing assignment with target being a private reference (to an accessor property with getter and setter (short-circuit version)) esid: sec-assignment-operators-runtime-semantics-evaluation features: [class-fields-private, logical-assignment-operators] flags: [generated] info: | sec-property-accessors-runtime-semantics-evaluation MemberExpression : MemberExpression `.` PrivateIdentifier 1. Let _baseReference_ be the result of evaluating |MemberExpression|. 2. Let _baseValue_ be ? GetValue(_baseReference_). 3. Let _fieldNameString_ be the StringValue of |PrivateIdentifier|. 4. Return ! MakePrivateReference(_baseValue_, _fieldNameString_). PutValue (V, W) ... 5.b. If IsPrivateReference(_V_) is *true*, then i. Return ? PrivateSet(_baseObj_, _V_.[[ReferencedName]], _W_). PrivateSet (O, P, value) ... 5.a. Assert: _entry_.[[Kind]] is ~accessor~. ... 5.c. Let _setter_ be _entry_.[[Set]]. d. Perform ? Call(_setter_, _O_, « _value_ »). sec-assignment-operators-runtime-semantics-evaluation AssignmentExpression : LeftHandSideExpression ??= AssignmentExpression 1. Let _lref_ be the result of evaluating |LeftHandSideExpression|. 2. Let _lval_ be ? GetValue(_lref_). 3. If _lval_ is neither *undefined* nor *null*, return _lval_. ... 6. Perform ? PutValue(_lref_, _rval_). 7. Return _rval_. --- 2184
left-hand-side-private-reference-accessor-property-short-circuit-or.js --- description: Logical-or assignment with target being a private reference (to an accessor property with getter and setter (short-circuit version)) esid: sec-assignment-operators-runtime-semantics-evaluation features: [class-fields-private, logical-assignment-operators] flags: [generated] info: | sec-property-accessors-runtime-semantics-evaluation MemberExpression : MemberExpression `.` PrivateIdentifier 1. Let _baseReference_ be the result of evaluating |MemberExpression|. 2. Let _baseValue_ be ? GetValue(_baseReference_). 3. Let _fieldNameString_ be the StringValue of |PrivateIdentifier|. 4. Return ! MakePrivateReference(_baseValue_, _fieldNameString_). PutValue (V, W) ... 5.b. If IsPrivateReference(_V_) is *true*, then i. Return ? PrivateSet(_baseObj_, _V_.[[ReferencedName]], _W_). PrivateSet (O, P, value) ... 5.a. Assert: _entry_.[[Kind]] is ~accessor~. ... 5.c. Let _setter_ be _entry_.[[Set]]. d. Perform ? Call(_setter_, _O_, « _value_ »). sec-assignment-operators-runtime-semantics-evaluation AssignmentExpression : LeftHandSideExpression ||= AssignmentExpression 1. Let _lref_ be the result of evaluating |LeftHandSideExpression|. 2. Let _lval_ be ? GetValue(_lref_). 3. Let _lbool_ be ! ToBoolean(_lval_). 4. If _lbool_ is *true*, return _lval_. ... 7. Perform ? PutValue(_lref_, _rval_). 8. Return _rval_. --- 2199
left-hand-side-private-reference-data-property-and.js --- description: Logical-and assignment with target being a private reference (to a field) esid: sec-assignment-operators-runtime-semantics-evaluation features: [class-fields-private, logical-assignment-operators] flags: [generated] info: | sec-property-accessors-runtime-semantics-evaluation MemberExpression : MemberExpression `.` PrivateIdentifier 1. Let _baseReference_ be the result of evaluating |MemberExpression|. 2. Let _baseValue_ be ? GetValue(_baseReference_). 3. Let _fieldNameString_ be the StringValue of |PrivateIdentifier|. 4. Return ! MakePrivateReference(_baseValue_, _fieldNameString_). PutValue (V, W) ... 5.b. If IsPrivateReference(_V_) is *true*, then i. Return ? PrivateSet(_baseObj_, _V_.[[ReferencedName]], _W_). PrivateSet (O, P, value) ... 3. If _entry_.[[Kind]] is ~field~, then a. Set _entry_.[[Value]] to _value_. sec-assignment-operators-runtime-semantics-evaluation AssignmentExpression : LeftHandSideExpression &&= AssignmentExpression 1. Let _lref_ be the result of evaluating |LeftHandSideExpression|. 2. Let _lval_ be ? GetValue(_lref_). 3. Let _lbool_ be ! ToBoolean(_lval_). 4. If _lbool_ is *false*, return _lval_. ... 7. Perform ? PutValue(_lref_, _rval_). 8. Return _rval_. --- 1919
left-hand-side-private-reference-data-property-nullish.js --- description: Nullish-coalescing assignment with target being a private reference (to a field) esid: sec-assignment-operators-runtime-semantics-evaluation features: [class-fields-private, logical-assignment-operators] flags: [generated] info: | sec-property-accessors-runtime-semantics-evaluation MemberExpression : MemberExpression `.` PrivateIdentifier 1. Let _baseReference_ be the result of evaluating |MemberExpression|. 2. Let _baseValue_ be ? GetValue(_baseReference_). 3. Let _fieldNameString_ be the StringValue of |PrivateIdentifier|. 4. Return ! MakePrivateReference(_baseValue_, _fieldNameString_). PutValue (V, W) ... 5.b. If IsPrivateReference(_V_) is *true*, then i. Return ? PrivateSet(_baseObj_, _V_.[[ReferencedName]], _W_). PrivateSet (O, P, value) ... 3. If _entry_.[[Kind]] is ~field~, then a. Set _entry_.[[Value]] to _value_. sec-assignment-operators-runtime-semantics-evaluation AssignmentExpression : LeftHandSideExpression ??= AssignmentExpression 1. Let _lref_ be the result of evaluating |LeftHandSideExpression|. 2. Let _lval_ be ? GetValue(_lref_). 3. If _lval_ is neither *undefined* nor *null*, return _lval_. ... 6. Perform ? PutValue(_lref_, _rval_). 7. Return _rval_. --- 1895
left-hand-side-private-reference-data-property-or.js --- description: Logical-or assignment with target being a private reference (to a field) esid: sec-assignment-operators-runtime-semantics-evaluation features: [class-fields-private, logical-assignment-operators] flags: [generated] info: | sec-property-accessors-runtime-semantics-evaluation MemberExpression : MemberExpression `.` PrivateIdentifier 1. Let _baseReference_ be the result of evaluating |MemberExpression|. 2. Let _baseValue_ be ? GetValue(_baseReference_). 3. Let _fieldNameString_ be the StringValue of |PrivateIdentifier|. 4. Return ! MakePrivateReference(_baseValue_, _fieldNameString_). PutValue (V, W) ... 5.b. If IsPrivateReference(_V_) is *true*, then i. Return ? PrivateSet(_baseObj_, _V_.[[ReferencedName]], _W_). PrivateSet (O, P, value) ... 3. If _entry_.[[Kind]] is ~field~, then a. Set _entry_.[[Value]] to _value_. sec-assignment-operators-runtime-semantics-evaluation AssignmentExpression : LeftHandSideExpression ||= AssignmentExpression 1. Let _lref_ be the result of evaluating |LeftHandSideExpression|. 2. Let _lval_ be ? GetValue(_lref_). 3. Let _lbool_ be ! ToBoolean(_lval_). 4. If _lbool_ is *true*, return _lval_. ... 7. Perform ? PutValue(_lref_, _rval_). 8. Return _rval_. --- 1914
left-hand-side-private-reference-data-property-short-circuit-and.js --- description: Logical-and assignment with target being a private reference (to a field (short-circuit version)) esid: sec-assignment-operators-runtime-semantics-evaluation features: [class-fields-private, logical-assignment-operators] flags: [generated] info: | sec-property-accessors-runtime-semantics-evaluation MemberExpression : MemberExpression `.` PrivateIdentifier 1. Let _baseReference_ be the result of evaluating |MemberExpression|. 2. Let _baseValue_ be ? GetValue(_baseReference_). 3. Let _fieldNameString_ be the StringValue of |PrivateIdentifier|. 4. Return ! MakePrivateReference(_baseValue_, _fieldNameString_). PutValue (V, W) ... 5.b. If IsPrivateReference(_V_) is *true*, then i. Return ? PrivateSet(_baseObj_, _V_.[[ReferencedName]], _W_). PrivateSet (O, P, value) ... 3. If _entry_.[[Kind]] is ~field~, then a. Set _entry_.[[Value]] to _value_. sec-assignment-operators-runtime-semantics-evaluation AssignmentExpression : LeftHandSideExpression &&= AssignmentExpression 1. Let _lref_ be the result of evaluating |LeftHandSideExpression|. 2. Let _lval_ be ? GetValue(_lref_). 3. Let _lbool_ be ! ToBoolean(_lval_). 4. If _lbool_ is *false*, return _lval_. ... 7. Perform ? PutValue(_lref_, _rval_). 8. Return _rval_. --- 1974
left-hand-side-private-reference-data-property-short-circuit-nullish.js --- description: Nullish-coalescing assignment with target being a private reference (to a field (short-circuit version)) esid: sec-assignment-operators-runtime-semantics-evaluation features: [class-fields-private, logical-assignment-operators] flags: [generated] info: | sec-property-accessors-runtime-semantics-evaluation MemberExpression : MemberExpression `.` PrivateIdentifier 1. Let _baseReference_ be the result of evaluating |MemberExpression|. 2. Let _baseValue_ be ? GetValue(_baseReference_). 3. Let _fieldNameString_ be the StringValue of |PrivateIdentifier|. 4. Return ! MakePrivateReference(_baseValue_, _fieldNameString_). PutValue (V, W) ... 5.b. If IsPrivateReference(_V_) is *true*, then i. Return ? PrivateSet(_baseObj_, _V_.[[ReferencedName]], _W_). PrivateSet (O, P, value) ... 3. If _entry_.[[Kind]] is ~field~, then a. Set _entry_.[[Value]] to _value_. sec-assignment-operators-runtime-semantics-evaluation AssignmentExpression : LeftHandSideExpression ??= AssignmentExpression 1. Let _lref_ be the result of evaluating |LeftHandSideExpression|. 2. Let _lval_ be ? GetValue(_lref_). 3. If _lval_ is neither *undefined* nor *null*, return _lval_. ... 6. Perform ? PutValue(_lref_, _rval_). 7. Return _rval_. --- 1954
left-hand-side-private-reference-data-property-short-circuit-or.js --- description: Logical-or assignment with target being a private reference (to a field (short-circuit version)) esid: sec-assignment-operators-runtime-semantics-evaluation features: [class-fields-private, logical-assignment-operators] flags: [generated] info: | sec-property-accessors-runtime-semantics-evaluation MemberExpression : MemberExpression `.` PrivateIdentifier 1. Let _baseReference_ be the result of evaluating |MemberExpression|. 2. Let _baseValue_ be ? GetValue(_baseReference_). 3. Let _fieldNameString_ be the StringValue of |PrivateIdentifier|. 4. Return ! MakePrivateReference(_baseValue_, _fieldNameString_). PutValue (V, W) ... 5.b. If IsPrivateReference(_V_) is *true*, then i. Return ? PrivateSet(_baseObj_, _V_.[[ReferencedName]], _W_). PrivateSet (O, P, value) ... 3. If _entry_.[[Kind]] is ~field~, then a. Set _entry_.[[Value]] to _value_. sec-assignment-operators-runtime-semantics-evaluation AssignmentExpression : LeftHandSideExpression ||= AssignmentExpression 1. Let _lref_ be the result of evaluating |LeftHandSideExpression|. 2. Let _lval_ be ? GetValue(_lref_). 3. Let _lbool_ be ! ToBoolean(_lval_). 4. If _lbool_ is *true*, return _lval_. ... 7. Perform ? PutValue(_lref_, _rval_). 8. Return _rval_. --- 1969
left-hand-side-private-reference-method-and.js --- description: Logical-and assignment with target being a private reference (to a private method) esid: sec-assignment-operators-runtime-semantics-evaluation features: [class-fields-private, logical-assignment-operators] flags: [generated] info: | sec-property-accessors-runtime-semantics-evaluation MemberExpression : MemberExpression `.` PrivateIdentifier 1. Let _baseReference_ be the result of evaluating |MemberExpression|. 2. Let _baseValue_ be ? GetValue(_baseReference_). 3. Let _fieldNameString_ be the StringValue of |PrivateIdentifier|. 4. Return ! MakePrivateReference(_baseValue_, _fieldNameString_). PutValue (V, W) ... 5.b. If IsPrivateReference(_V_) is *true*, then i. Return ? PrivateSet(_baseObj_, _V_.[[ReferencedName]], _W_). PrivateSet (O, P, value) ... 4. Else if _entry_.[[Kind]] is ~method~, then a. Throw a *TypeError* exception. sec-assignment-operators-runtime-semantics-evaluation AssignmentExpression : LeftHandSideExpression &&= AssignmentExpression 1. Let _lref_ be the result of evaluating |LeftHandSideExpression|. 2. Let _lval_ be ? GetValue(_lref_). 3. Let _lbool_ be ! ToBoolean(_lval_). 4. If _lbool_ is *false*, return _lval_. ... 7. Perform ? PutValue(_lref_, _rval_). 8. Return _rval_. --- 1818
left-hand-side-private-reference-method-short-circuit-nullish.js --- description: Nullish-coalescing assignment with target being a private reference (to a private method (short-circuit version)) esid: sec-assignment-operators-runtime-semantics-evaluation features: [class-fields-private, logical-assignment-operators] flags: [generated] info: | sec-property-accessors-runtime-semantics-evaluation MemberExpression : MemberExpression `.` PrivateIdentifier 1. Let _baseReference_ be the result of evaluating |MemberExpression|. 2. Let _baseValue_ be ? GetValue(_baseReference_). 3. Let _fieldNameString_ be the StringValue of |PrivateIdentifier|. 4. Return ! MakePrivateReference(_baseValue_, _fieldNameString_). PutValue (V, W) ... 5.b. If IsPrivateReference(_V_) is *true*, then i. Return ? PrivateSet(_baseObj_, _V_.[[ReferencedName]], _W_). PrivateSet (O, P, value) ... 4. Else if _entry_.[[Kind]] is ~method~, then a. Throw a *TypeError* exception. sec-assignment-operators-runtime-semantics-evaluation AssignmentExpression : LeftHandSideExpression ??= AssignmentExpression 1. Let _lref_ be the result of evaluating |LeftHandSideExpression|. 2. Let _lval_ be ? GetValue(_lref_). 3. If _lval_ is neither *undefined* nor *null*, return _lval_. ... 6. Perform ? PutValue(_lref_, _rval_). 7. Return _rval_. --- 2036
left-hand-side-private-reference-method-short-circuit-or.js --- description: Logical-or assignment with target being a private reference (to a private method (short-circuit version)) esid: sec-assignment-operators-runtime-semantics-evaluation features: [class-fields-private, logical-assignment-operators] flags: [generated] info: | sec-property-accessors-runtime-semantics-evaluation MemberExpression : MemberExpression `.` PrivateIdentifier 1. Let _baseReference_ be the result of evaluating |MemberExpression|. 2. Let _baseValue_ be ? GetValue(_baseReference_). 3. Let _fieldNameString_ be the StringValue of |PrivateIdentifier|. 4. Return ! MakePrivateReference(_baseValue_, _fieldNameString_). PutValue (V, W) ... 5.b. If IsPrivateReference(_V_) is *true*, then i. Return ? PrivateSet(_baseObj_, _V_.[[ReferencedName]], _W_). PrivateSet (O, P, value) ... 4. Else if _entry_.[[Kind]] is ~method~, then a. Throw a *TypeError* exception. sec-assignment-operators-runtime-semantics-evaluation AssignmentExpression : LeftHandSideExpression ||= AssignmentExpression 1. Let _lref_ be the result of evaluating |LeftHandSideExpression|. 2. Let _lval_ be ? GetValue(_lref_). 3. Let _lbool_ be ! ToBoolean(_lval_). 4. If _lbool_ is *true*, return _lval_. ... 7. Perform ? PutValue(_lref_, _rval_). 8. Return _rval_. --- 2045
left-hand-side-private-reference-readonly-accessor-property-and.js --- description: Logical-and assignment with target being a private reference (to an accessor property with getter) esid: sec-assignment-operators-runtime-semantics-evaluation features: [class-fields-private, logical-assignment-operators] flags: [generated] info: | sec-property-accessors-runtime-semantics-evaluation MemberExpression : MemberExpression `.` PrivateIdentifier 1. Let _baseReference_ be the result of evaluating |MemberExpression|. 2. Let _baseValue_ be ? GetValue(_baseReference_). 3. Let _fieldNameString_ be the StringValue of |PrivateIdentifier|. 4. Return ! MakePrivateReference(_baseValue_, _fieldNameString_). PutValue (V, W) ... 5.b. If IsPrivateReference(_V_) is *true*, then i. Return ? PrivateSet(_baseObj_, _V_.[[ReferencedName]], _W_). PrivateSet (O, P, value) ... 5.a. Assert: _entry_.[[Kind]] is ~accessor~. b. If _entry_.[[Set]] is *undefined*, throw a *TypeError* exception. sec-assignment-operators-runtime-semantics-evaluation AssignmentExpression : LeftHandSideExpression &&= AssignmentExpression 1. Let _lref_ be the result of evaluating |LeftHandSideExpression|. 2. Let _lval_ be ? GetValue(_lref_). 3. Let _lbool_ be ! ToBoolean(_lval_). 4. If _lbool_ is *false*, return _lval_. ... 7. Perform ? PutValue(_lref_, _rval_). 8. Return _rval_. --- 1861
left-hand-side-private-reference-readonly-accessor-property-nullish.js --- description: Nullish-coalescing assignment with target being a private reference (to an accessor property with getter) esid: sec-assignment-operators-runtime-semantics-evaluation features: [class-fields-private, logical-assignment-operators] flags: [generated] info: | sec-property-accessors-runtime-semantics-evaluation MemberExpression : MemberExpression `.` PrivateIdentifier 1. Let _baseReference_ be the result of evaluating |MemberExpression|. 2. Let _baseValue_ be ? GetValue(_baseReference_). 3. Let _fieldNameString_ be the StringValue of |PrivateIdentifier|. 4. Return ! MakePrivateReference(_baseValue_, _fieldNameString_). PutValue (V, W) ... 5.b. If IsPrivateReference(_V_) is *true*, then i. Return ? PrivateSet(_baseObj_, _V_.[[ReferencedName]], _W_). PrivateSet (O, P, value) ... 5.a. Assert: _entry_.[[Kind]] is ~accessor~. b. If _entry_.[[Set]] is *undefined*, throw a *TypeError* exception. sec-assignment-operators-runtime-semantics-evaluation AssignmentExpression : LeftHandSideExpression ??= AssignmentExpression 1. Let _lref_ be the result of evaluating |LeftHandSideExpression|. 2. Let _lval_ be ? GetValue(_lref_). 3. If _lval_ is neither *undefined* nor *null*, return _lval_. ... 6. Perform ? PutValue(_lref_, _rval_). 7. Return _rval_. --- 1845
left-hand-side-private-reference-readonly-accessor-property-or.js --- description: Logical-or assignment with target being a private reference (to an accessor property with getter) esid: sec-assignment-operators-runtime-semantics-evaluation features: [class-fields-private, logical-assignment-operators] flags: [generated] info: | sec-property-accessors-runtime-semantics-evaluation MemberExpression : MemberExpression `.` PrivateIdentifier 1. Let _baseReference_ be the result of evaluating |MemberExpression|. 2. Let _baseValue_ be ? GetValue(_baseReference_). 3. Let _fieldNameString_ be the StringValue of |PrivateIdentifier|. 4. Return ! MakePrivateReference(_baseValue_, _fieldNameString_). PutValue (V, W) ... 5.b. If IsPrivateReference(_V_) is *true*, then i. Return ? PrivateSet(_baseObj_, _V_.[[ReferencedName]], _W_). PrivateSet (O, P, value) ... 5.a. Assert: _entry_.[[Kind]] is ~accessor~. b. If _entry_.[[Set]] is *undefined*, throw a *TypeError* exception. sec-assignment-operators-runtime-semantics-evaluation AssignmentExpression : LeftHandSideExpression ||= AssignmentExpression 1. Let _lref_ be the result of evaluating |LeftHandSideExpression|. 2. Let _lval_ be ? GetValue(_lref_). 3. Let _lbool_ be ! ToBoolean(_lval_). 4. If _lbool_ is *true*, return _lval_. ... 7. Perform ? PutValue(_lref_, _rval_). 8. Return _rval_. --- 1858
left-hand-side-private-reference-readonly-accessor-property-short-circuit-and.js --- description: Logical-and assignment with target being a private reference (to an accessor property with getter (short-circuit version)) esid: sec-assignment-operators-runtime-semantics-evaluation features: [class-fields-private, logical-assignment-operators] flags: [generated] info: | sec-property-accessors-runtime-semantics-evaluation MemberExpression : MemberExpression `.` PrivateIdentifier 1. Let _baseReference_ be the result of evaluating |MemberExpression|. 2. Let _baseValue_ be ? GetValue(_baseReference_). 3. Let _fieldNameString_ be the StringValue of |PrivateIdentifier|. 4. Return ! MakePrivateReference(_baseValue_, _fieldNameString_). PutValue (V, W) ... 5.b. If IsPrivateReference(_V_) is *true*, then i. Return ? PrivateSet(_baseObj_, _V_.[[ReferencedName]], _W_). PrivateSet (O, P, value) ... 5.a. Assert: _entry_.[[Kind]] is ~accessor~. b. If _entry_.[[Set]] is *undefined*, throw a *TypeError* exception. sec-assignment-operators-runtime-semantics-evaluation AssignmentExpression : LeftHandSideExpression &&= AssignmentExpression 1. Let _lref_ be the result of evaluating |LeftHandSideExpression|. 2. Let _lval_ be ? GetValue(_lref_). 3. Let _lbool_ be ! ToBoolean(_lval_). 4. If _lbool_ is *false*, return _lval_. ... 7. Perform ? PutValue(_lref_, _rval_). 8. Return _rval_. --- 2003
left-hand-side-private-reference-readonly-accessor-property-short-circuit-nullish.js --- description: Nullish-coalescing assignment with target being a private reference (to an accessor property with getter (short-circuit version)) esid: sec-assignment-operators-runtime-semantics-evaluation features: [class-fields-private, logical-assignment-operators] flags: [generated] info: | sec-property-accessors-runtime-semantics-evaluation MemberExpression : MemberExpression `.` PrivateIdentifier 1. Let _baseReference_ be the result of evaluating |MemberExpression|. 2. Let _baseValue_ be ? GetValue(_baseReference_). 3. Let _fieldNameString_ be the StringValue of |PrivateIdentifier|. 4. Return ! MakePrivateReference(_baseValue_, _fieldNameString_). PutValue (V, W) ... 5.b. If IsPrivateReference(_V_) is *true*, then i. Return ? PrivateSet(_baseObj_, _V_.[[ReferencedName]], _W_). PrivateSet (O, P, value) ... 5.a. Assert: _entry_.[[Kind]] is ~accessor~. b. If _entry_.[[Set]] is *undefined*, throw a *TypeError* exception. sec-assignment-operators-runtime-semantics-evaluation AssignmentExpression : LeftHandSideExpression ??= AssignmentExpression 1. Let _lref_ be the result of evaluating |LeftHandSideExpression|. 2. Let _lval_ be ? GetValue(_lref_). 3. If _lval_ is neither *undefined* nor *null*, return _lval_. ... 6. Perform ? PutValue(_lref_, _rval_). 7. Return _rval_. --- 1983
left-hand-side-private-reference-readonly-accessor-property-short-circuit-or.js --- description: Logical-or assignment with target being a private reference (to an accessor property with getter (short-circuit version)) esid: sec-assignment-operators-runtime-semantics-evaluation features: [class-fields-private, logical-assignment-operators] flags: [generated] info: | sec-property-accessors-runtime-semantics-evaluation MemberExpression : MemberExpression `.` PrivateIdentifier 1. Let _baseReference_ be the result of evaluating |MemberExpression|. 2. Let _baseValue_ be ? GetValue(_baseReference_). 3. Let _fieldNameString_ be the StringValue of |PrivateIdentifier|. 4. Return ! MakePrivateReference(_baseValue_, _fieldNameString_). PutValue (V, W) ... 5.b. If IsPrivateReference(_V_) is *true*, then i. Return ? PrivateSet(_baseObj_, _V_.[[ReferencedName]], _W_). PrivateSet (O, P, value) ... 5.a. Assert: _entry_.[[Kind]] is ~accessor~. b. If _entry_.[[Set]] is *undefined*, throw a *TypeError* exception. sec-assignment-operators-runtime-semantics-evaluation AssignmentExpression : LeftHandSideExpression ||= AssignmentExpression 1. Let _lref_ be the result of evaluating |LeftHandSideExpression|. 2. Let _lval_ be ? GetValue(_lref_). 3. Let _lbool_ be ! ToBoolean(_lval_). 4. If _lbool_ is *true*, return _lval_. ... 7. Perform ? PutValue(_lref_, _rval_). 8. Return _rval_. --- 1998
lgcl-and-arguments-strict-strict.js --- esid: sec-assignment-operators description: > Strict Mode - SyntaxError is thrown if the identifier arguments appear as the LeftHandSideExpression of a Logical Assignment operator(&&=) flags: [onlyStrict] negative: phase: parse type: SyntaxError features: [logical-assignment-operators] --- 526
lgcl-and-assignment-operator-bigint.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: Logical And Assignment Operator features: [BigInt, logical-assignment-operators] info: | AssignmentExpression: LeftHandSideExpression &&= AssignmentExpression 1. Let lref be the result of evaluating LeftHandSideExpression. 2. Let lval be ? GetValue(lref). 3. Let lbool be ! ToBoolean(lval). 4. If lbool is false, return lval. 5. Let rref be the result of evaluating AssignmentExpression. 6. Let rval be ? GetValue(rref). 7. Perform ? PutValue(lref, rval). 8. Return rval. --- 947
lgcl-and-assignment-operator-lhs-before-rhs.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > The LeftHandSideExpression is evaluated before the AssignmentExpression. features: [logical-assignment-operators] --- 1328
lgcl-and-assignment-operator-namedevaluation-arrow-function.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: NamedEvaluation of Logical And Assignment info: | AssignmentExpression: LeftHandSideExpression &&= AssignmentExpression 5. If IsAnonymousFunctionDefinition(AssignmentExpression) and IsIdentifierRef of LeftHandSideExpression are both true, then a. Let rval be NamedEvaluation of AssignmentExpression with argument GetReferencedName(lref). features: [logical-assignment-operators] --- 729
lgcl-and-assignment-operator-namedevaluation-class-expression.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: NamedEvaluation of Logical And Assignment info: | AssignmentExpression: LeftHandSideExpression &&= AssignmentExpression 5. If IsAnonymousFunctionDefinition(AssignmentExpression) and IsIdentifierRef of LeftHandSideExpression are both true, then a. Let rval be NamedEvaluation of AssignmentExpression with argument GetReferencedName(lref). features: [logical-assignment-operators] --- 729
lgcl-and-assignment-operator-namedevaluation-function.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: NamedEvaluation of Logical And Assignment info: | AssignmentExpression: LeftHandSideExpression &&= AssignmentExpression 5. If IsAnonymousFunctionDefinition(AssignmentExpression) and IsIdentifierRef of LeftHandSideExpression are both true, then a. Let rval be NamedEvaluation of AssignmentExpression with argument GetReferencedName(lref). features: [logical-assignment-operators] --- 734
lgcl-and-assignment-operator-no-set-put-strict.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > Strict Mode - TypeError is thrown if the LeftHandSide of a Logical Assignment operator(&&=) is a reference to a data property with the attribute value {[[Set]]:undefined} and PutValue step is reached. flags: [onlyStrict] features: [logical-assignment-operators] --- 792
lgcl-and-assignment-operator-no-set-strict.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > Strict Mode - TypeError is not thrown if the LeftHandSide of a Logical Assignment operator(&&=) is a reference to a data property with the attribute value {[[Set]]:undefined} and PutValue step is not reached. flags: [onlyStrict] features: [logical-assignment-operators] --- 746
lgcl-and-assignment-operator-non-extensible-strict.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > Strict Mode - TypeError is not thrown if The LeftHandSide of a Logical Assignment operator(&&=) is a reference to a non-existent property of an object whose [[Extensible]] internal property is false. flags: [onlyStrict] features: [logical-assignment-operators] --- 647
lgcl-and-assignment-operator-non-simple-lhs.js --- esid: sec-assignment-operators-static-semantics-early-errors description: > It is a Syntax Error if AssignmentTargetType of LeftHandSideExpression is not simple. negative: phase: parse type: SyntaxError features: [logical-assignment-operators] --- 489
lgcl-and-assignment-operator-non-writeable-put-strict.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > Strict Mode - TypeError is thrown if the LeftHandSide of a Logical Assignment operator(&&=) is a reference to a data property with the attribute value {[[Writable]]:false} and PutValue step is reached. flags: [onlyStrict] features: [logical-assignment-operators] --- 767
lgcl-and-assignment-operator-non-writeable-strict.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > Strict Mode - TypeError is not thrown if the LeftHandSide of a Logical Assignment operator(&&=) is a reference to a data property with the attribute value {[[Writable]]:false} and PutValue step is not reached. flags: [onlyStrict] features: [logical-assignment-operators] --- 721
lgcl-and-assignment-operator-unresolved-lhs-strict.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > ReferenceError is thrown if the LeftHandSideExpression of a Logical Assignment operator(&&=) evaluates to an unresolvable reference flags: [onlyStrict] features: [logical-assignment-operators] --- 529
lgcl-and-assignment-operator-unresolved-rhs-put.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > ReferenceError is thrown if the AssignmentExpression of a Logical Assignment operator(&&=) evaluates to an unresolvable reference and the AssignmentExpression is evaluated. features: [logical-assignment-operators] --- 597
lgcl-and-assignment-operator-unresolved-rhs.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > ReferenceError is not thrown if the AssignmentExpression of a Logical Assignment operator(&&=) evaluates to an unresolvable reference and the AssignmentExpression is not evaluated. features: [logical-assignment-operators] --- 549
lgcl-and-assignment-operator.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: Logical And Assignment Operator info: | AssignmentExpression: LeftHandSideExpression &&= AssignmentExpression 1. Let lref be the result of evaluating LeftHandSideExpression. 2. Let lval be ? GetValue(lref). 3. Let lbool be ! ToBoolean(lval). 4. If lbool is false, return lval. 5. Let rref be the result of evaluating AssignmentExpression. 6. Let rval be ? GetValue(rref). 7. Perform ? PutValue(lref, rval). 8. Return rval. features: [logical-assignment-operators] --- 1927
lgcl-and-eval-strict-strict.js --- esid: sec-assignment-operators description: > Strict Mode - SyntaxError is thrown if the identifier eval appear as the LeftHandSideExpression of a Logical Assignment operator(&&=) flags: [onlyStrict] negative: phase: parse type: SyntaxError features: [logical-assignment-operators] --- 512
lgcl-and-non-simple.js --- esid: sec-assignment-operators-static-semantics-early-errors info: | It is an early Syntax Error if AssignmentTargetType of LeftHandSideExpression is invalid or strict. description: Logical "&&=" assignment with non-simple target negative: phase: parse type: SyntaxError features: [logical-assignment-operators] --- 524
lgcl-and-whitespace.js --- info: | White Space and Line Terminator between LeftHandSideExpression and "@=" or between "@=" and AssignmentExpression are allowed esid: sec-assignment-operators description: Checking by evaluating expression "x[...]&&=[...]y" features: [logical-assignment-operators] --- 1668
lgcl-nullish-arguments-strict-strict.js --- esid: sec-assignment-operators description: > Strict Mode - SyntaxError is thrown if the identifier arguments appear as the LeftHandSideExpression of a Logical Assignment operator(??=) flags: [onlyStrict] negative: phase: parse type: SyntaxError features: [logical-assignment-operators] --- 526
lgcl-nullish-assignment-operator-bigint.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: Logical Nullish Assignment Operator features: [BigInt, logical-assignment-operators] info: | AssignmentExpression: LeftHandSideExpression ??= AssignmentExpression 1. Let lref be the result of evaluating LeftHandSideExpression. 2. Let lval be ? GetValue(lref). 3. If lval is neither undefined nor null, return lval. 4. Let rref be the result of evaluating AssignmentExpression. 5. Let rval be ? GetValue(rref). 6. Perform ? PutValue(lref, rval). 7. Return rval. --- 932
lgcl-nullish-assignment-operator-lhs-before-rhs.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > The LeftHandSideExpression is evaluated before the AssignmentExpression. features: [logical-assignment-operators] --- 1312
lgcl-nullish-assignment-operator-namedevaluation-arrow-function.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: NamedEvaluation of Logical Nullish Assignment info: | AssignmentExpression: LeftHandSideExpression ??= AssignmentExpression 4. If IsAnonymousFunctionDefinition(AssignmentExpression) and IsIdentifierRef of LeftHandSideExpression are both true, then a. Let rval be NamedEvaluation of AssignmentExpression with argument GetReferencedName(lref). features: [logical-assignment-operators] --- 741
lgcl-nullish-assignment-operator-namedevaluation-class-expression.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: NamedEvaluation of Logical Nullish Assignment info: | AssignmentExpression: LeftHandSideExpression ??= AssignmentExpression 4. If IsAnonymousFunctionDefinition(AssignmentExpression) and IsIdentifierRef of LeftHandSideExpression are both true, then a. Let rval be NamedEvaluation of AssignmentExpression with argument GetReferencedName(lref). features: [logical-assignment-operators] --- 741
lgcl-nullish-assignment-operator-namedevaluation-function.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: NamedEvaluation of Logical Nullish Assignment info: | AssignmentExpression: LeftHandSideExpression ??= AssignmentExpression 4. If IsAnonymousFunctionDefinition(AssignmentExpression) and IsIdentifierRef of LeftHandSideExpression are both true, then a. Let rval be NamedEvaluation of AssignmentExpression with argument GetReferencedName(lref). features: [logical-assignment-operators] --- 746
lgcl-nullish-assignment-operator-no-set-put-strict.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > Strict Mode - TypeError is thrown if the LeftHandSide of a Logical Assignment operator(??=) is a reference to a data property with the attribute value {[[Set]]:undefined} and PutValue step is reached. flags: [onlyStrict] features: [logical-assignment-operators] --- 808
lgcl-nullish-assignment-operator-no-set-strict.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > Strict Mode - TypeError is not thrown if the LeftHandSide of a Logical Assignment operator(??=) is a reference to a data property with the attribute value {[[Set]]:undefined} and PutValue step is not reached. flags: [onlyStrict] features: [logical-assignment-operators] --- 746
lgcl-nullish-assignment-operator-non-extensible-strict.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > Strict Mode - TypeError is thrown if The LeftHandSide of a Logical Assignment operator(??=) is a reference to a non-existent property of an object whose [[Extensible]] internal property is false. flags: [onlyStrict] features: [logical-assignment-operators] --- 687
lgcl-nullish-assignment-operator-non-simple-lhs.js --- esid: sec-assignment-operators-static-semantics-early-errors description: > It is a Syntax Error if AssignmentTargetType of LeftHandSideExpression is not simple. negative: phase: parse type: SyntaxError features: [logical-assignment-operators] --- 489
lgcl-nullish-assignment-operator-non-writeable-put-strict.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > Strict Mode - TypeError is thrown if the LeftHandSide of a Logical Assignment operator(??=) is a reference to a data property with the attribute value {[[Writable]]:false} and PutValue step is reached. flags: [onlyStrict] features: [logical-assignment-operators] --- 783
lgcl-nullish-assignment-operator-non-writeable-strict.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > Strict Mode - TypeError is not thrown if the LeftHandSide of a Logical Assignment operator(??=) is a reference to a data property with the attribute value {[[Writable]]:false} and PutValue step is not reached. flags: [onlyStrict] features: [logical-assignment-operators] --- 721
lgcl-nullish-assignment-operator-unresolved-lhs-strict.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > ReferenceError is thrown if the LeftHandSideExpression of a Logical Assignment operator(??=) evaluates to an unresolvable reference flags: [onlyStrict] features: [logical-assignment-operators] --- 529
lgcl-nullish-assignment-operator-unresolved-rhs-put.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > ReferenceError is thrown if the AssignmentExpression of a Logical Assignment operator(??=) evaluates to an unresolvable reference and the AssignmentExpression is evaluated. features: [logical-assignment-operators] --- 613
lgcl-nullish-assignment-operator-unresolved-rhs.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > ReferenceError is not thrown if the AssignmentExpression of a Logical Assignment operator(??=) evaluates to an unresolvable reference and the AssignmentExpression is not evaluated. features: [logical-assignment-operators] --- 549
lgcl-nullish-assignment-operator.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: Logical Nullish Assignment Operator info: | AssignmentExpression: LeftHandSideExpression ??= AssignmentExpression 1. Let lref be the result of evaluating LeftHandSideExpression. 2. Let lval be ? GetValue(lref). 3. If lval is neither undefined nor null, return lval. 4. Let rref be the result of evaluating AssignmentExpression. 5. Let rval be ? GetValue(rref). 6. Perform ? PutValue(lref, rval). 7. Return rval. features: [logical-assignment-operators] --- 1919
lgcl-nullish-eval-strict-strict.js --- esid: sec-assignment-operators description: > Strict Mode - SyntaxError is thrown if the identifier eval appear as the LeftHandSideExpression of a Logical Assignment operator(??=) flags: [onlyStrict] negative: phase: parse type: SyntaxError features: [logical-assignment-operators] --- 512
lgcl-nullish-non-simple.js --- esid: sec-assignment-operators-static-semantics-early-errors info: | It is an early Syntax Error if AssignmentTargetType of LeftHandSideExpression is invalid or strict. description: Logical "??=" assignment with non-simple target negative: phase: parse type: SyntaxError features: [logical-assignment-operators] --- 524
lgcl-nullish-whitespace.js --- info: | White Space and Line Terminator between LeftHandSideExpression and "@=" or between "@=" and AssignmentExpression are allowed esid: sec-assignment-operators description: Checking by evaluating expression "x[...]??=[...]y" features: [logical-assignment-operators] --- 1698
lgcl-or-arguments-strict-strict.js --- esid: sec-assignment-operators description: > Strict Mode - SyntaxError is thrown if the identifier arguments appear as the LeftHandSideExpression of a Logical Assignment operator(||=) flags: [onlyStrict] negative: phase: parse type: SyntaxError features: [logical-assignment-operators] --- 526
lgcl-or-assignment-operator-bigint.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: Logical Or Assignment Operator features: [BigInt, logical-assignment-operators] info: | AssignmentExpression: LeftHandSideExpression ||= AssignmentExpression 1. Let lref be the result of evaluating LeftHandSideExpression. 2. Let lval be ? GetValue(lref). 3. Let lbool be ! ToBoolean(lval). 4. If lbool is true, return lval. 5. Let rref be the result of evaluating AssignmentExpression. 6. Let rval be ? GetValue(rref). 7. Perform ? PutValue(lref, rval). 8. Return rval. --- 945
lgcl-or-assignment-operator-lhs-before-rhs.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > The LeftHandSideExpression is evaluated before the AssignmentExpression. features: [logical-assignment-operators] --- 1312
lgcl-or-assignment-operator-namedevaluation-arrow-function.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: NamedEvaluation of Logical Or Assignment info: | AssignmentExpression: LeftHandSideExpression ||= AssignmentExpression 5. If IsAnonymousFunctionDefinition(AssignmentExpression) and IsIdentifierRef of LeftHandSideExpression are both true, then a. Let rval be NamedEvaluation of AssignmentExpression with argument GetReferencedName(lref). features: [logical-assignment-operators] --- 728
lgcl-or-assignment-operator-namedevaluation-class-expression.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: NamedEvaluation of Logical Or Assignment info: | AssignmentExpression: LeftHandSideExpression ||= AssignmentExpression 5. If IsAnonymousFunctionDefinition(AssignmentExpression) and IsIdentifierRef of LeftHandSideExpression are both true, then a. Let rval be NamedEvaluation of AssignmentExpression with argument GetReferencedName(lref). features: [logical-assignment-operators] --- 728
lgcl-or-assignment-operator-namedevaluation-function.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: NamedEvaluation of Logical Or Assignment info: | AssignmentExpression: LeftHandSideExpression ||= AssignmentExpression 5. If IsAnonymousFunctionDefinition(AssignmentExpression) and IsIdentifierRef of LeftHandSideExpression are both true, then a. Let rval be NamedEvaluation of AssignmentExpression with argument GetReferencedName(lref). features: [logical-assignment-operators] --- 733
lgcl-or-assignment-operator-no-set-put-strict.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > Strict Mode - TypeError is thrown if the LeftHandSide of a Logical Assignment operator(||=) is a reference to a data property with the attribute value {[[Set]]:undefined} and PutValue step is reached. flags: [onlyStrict] features: [logical-assignment-operators] --- 792
lgcl-or-assignment-operator-no-set-strict.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > Strict Mode - TypeError is not thrown if the LeftHandSide of a Logical Assignment operator(||=) is a reference to a data property with the attribute value {[[Set]]:undefined} and PutValue step is not reached. flags: [onlyStrict] features: [logical-assignment-operators] --- 746
lgcl-or-assignment-operator-non-extensible-strict.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > Strict Mode - TypeError is thrown if The LeftHandSide of a Logical Assignment operator(||=) is a reference to a non-existent property of an object whose [[Extensible]] internal property is false. flags: [onlyStrict] features: [logical-assignment-operators] --- 687
lgcl-or-assignment-operator-non-simple-lhs.js --- esid: sec-assignment-operators-static-semantics-early-errors description: > It is a Syntax Error if AssignmentTargetType of LeftHandSideExpression is not simple. negative: phase: parse type: SyntaxError features: [logical-assignment-operators] --- 489
lgcl-or-assignment-operator-non-writeable-put-strict.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > Strict Mode - TypeError is thrown if the LeftHandSide of a Logical Assignment operator(||=) is a reference to a data property with the attribute value {[[Writable]]:false} and PutValue step is reached. flags: [onlyStrict] features: [logical-assignment-operators] --- 767
lgcl-or-assignment-operator-non-writeable-strict.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > Strict Mode - TypeError is not thrown if the LeftHandSide of a Logical Assignment operator(||=) is a reference to a data property with the attribute value {[[Writable]]:false} and PutValue step is not reached. flags: [onlyStrict] features: [logical-assignment-operators] --- 721
lgcl-or-assignment-operator-unresolved-lhs-strict.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > ReferenceError is thrown if the LeftHandSideExpression of a Logical Assignment operator(||=) evaluates to an unresolvable reference flags: [onlyStrict] features: [logical-assignment-operators] --- 529
lgcl-or-assignment-operator-unresolved-rhs-put.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > ReferenceError is thrown if the AssignmentExpression of a Logical Assignment operator(||=) evaluates to an unresolvable reference and the AssignmentExpression is evaluated. features: [logical-assignment-operators] --- 597
lgcl-or-assignment-operator-unresolved-rhs.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: > ReferenceError is not thrown if the AssignmentExpression of a Logical Assignment operator(||=) evaluates to an unresolvable reference and the AssignmentExpression is not evaluated. features: [logical-assignment-operators] --- 549
lgcl-or-assignment-operator.js --- esid: sec-assignment-operators-runtime-semantics-evaluation description: Logical Or Assignment Operator info: | AssignmentExpression: LeftHandSideExpression ||= AssignmentExpression 1. Let lref be the result of evaluating LeftHandSideExpression. 2. Let lval be ? GetValue(lref). 3. Let lbool be ! ToBoolean(lval). 4. If lbool is true, return lval. 5. Let rref be the result of evaluating AssignmentExpression. 6. Let rval be ? GetValue(rref). 7. Perform ? PutValue(lref, rval). 8. Return rval. features: [logical-assignment-operators] --- 1917
lgcl-or-eval-strict-strict.js --- esid: sec-assignment-operators description: > Strict Mode - SyntaxError is thrown if the identifier eval appear as the LeftHandSideExpression of a Logical Assignment operator(||=) flags: [onlyStrict] negative: phase: parse type: SyntaxError features: [logical-assignment-operators] --- 512
lgcl-or-non-simple.js --- esid: sec-assignment-operators-static-semantics-early-errors info: | It is an early Syntax Error if AssignmentTargetType of LeftHandSideExpression is invalid or strict. description: Logical "||=" assignment with non-simple target negative: phase: parse type: SyntaxError features: [logical-assignment-operators] --- 524
lgcl-or-whitespace.js --- info: | White Space and Line Terminator between LeftHandSideExpression and "@=" or between "@=" and AssignmentExpression are allowed esid: sec-assignment-operators description: Checking by evaluating expression "x[...]||=[...]y" features: [logical-assignment-operators] --- 1668
shell.js 0