Created attachment 463411 [details] I captured ECMAScript 2022 section 13.15.2. // input.js "use strict"; x = this.x = 0; ________________________________ Hello, Executing the input.js using JSC terminates normally, but it is expected to throw ReferenceError. According to ECMAScript 2022 section 13.15.2: Evaluation of `*AssignmentExpression* : *LeftHandSideExpression* = *AssignmentExpression*`, (link: https://tc39.es/ecma262/2022/multipage/ecmascript-language-expressions.html#sec-assignment-operators-runtime-semantics-evaluation) in line 1-a, *LeftHandSideExpression*, i.e. `x` should be evaluated first and the evaluation result is an unresolvable reference. Therefore PutValue() in line 1-e throws ReferenceError because strict mode is turned on. WebKit version: 615.1.10
<rdar://problem/102064848>
Pull request: https://github.com/WebKit/WebKit/pull/6438
Ross pointed out that this is spec issue actually. https://github.com/WebKit/WebKit/pull/6438#issuecomment-1312694884 https://github.com/WebKit/WebKit/pull/6438#issuecomment-1312922522 We close this since the spec will be upgraded.