Closed Bug 1476321 Opened 6 years ago Closed 6 years ago

SpiderMonkey should throw ReferenceError on invalid left-hand side expression (++ ++)

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 1340307

People

(Reporter: iigor.simoes, Unassigned)

Details

User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36 OPR/54.0.2952.54

Steps to reproduce:

Hi everyone, 
according to ES6 (https://www.ecma-international.org/ecma-262/8.0/index.html#sec-update-expressions-static-semantics-early-errors), should throw ReferenceError if the expression is not valid on UnaryExpression.

OS: Ubuntu 16.04 x64
version: 62.0b8

var a = 1;
eval('++ ++ a;')


Actual results:

SyntaxError: expected expression, got '++'


Expected results:

ReferenceError: Invalid left-hand side expression in prefix operation (v8)
or
ReferenceError: Prefix ++ operator applied to value that is not a reference (jsc)
V8, Chakra, JSC and XS works as expected.

#### JavaScriptCore
ReferenceError: Prefix ++ operator applied to value that is not a reference.

#### V8
ReferenceError: Invalid left-hand side expression in prefix operation

#### Chakra
ReferenceError: Invalid left-hand side in assignment

#### XS
ReferenceError: no reference

#### SpiderMonkey
SyntaxError: expected expression, got '++':
Status: UNCONFIRMED → NEW
Component: Untriaged → JavaScript Engine
Ever confirmed: true
Product: Firefox → Core
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.