In Chrome
version ^72
if I run the following JavaScript
there are no errors.
{ prop: p } = { prop: 'prop' }
>> { prop: 'prop' }
So the line of code is interpreted as an expression statement, unexpectedly.
But if I run the same code with a semi-colon at the end it runs as expected.
{ prop: p } = { prop: 'prop' };
>> Uncaught SyntaxError: Unexpected token =
This is expected since the initial {
tells the JavaScript
engine that it is a code block unless we disambiguate with parentheses.
Why does this occur with the semi-colon but not without it?