jquery / esprima

ECMAScript parsing infrastructure for multipurpose analysis
http://esprima.org
BSD 2-Clause "Simplified" License
7.04k stars 786 forks source link

Invalid UpdateExpression's arguments #2115

Open wind-of opened 2 years ago

wind-of commented 2 years ago

Invalid UpdateExpression's arguments

Esprima' UpdateExpression's argument is one of: ObjectExpression, ArrayExpression, MemberExpression, Identifier.

Consider behaviour of V8: image

Should be: Argument of UpdateExpression is one of: Identifier, MemberExpression

Steps to reproduce

esprima.parse('--[]') // or --{}, []--, (++[]), etc.

Expected output

Expected "Invalid left-hand side expression in prefix operation"

Actual output

{
  "type": "UpdateExpression",
  "operator": "--",
  "argument": {
    "type": "ArrayExpression",
    "elements": []
  },
  "prefix": true
}

Relevant references