#2115·esprima

Invalid UpdateExpression's arguments

Author: wind-ofCreated Jun 10, 2022Updated Jun 15, 2022

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

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

Expected output

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

Actual output

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

Relevant references