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?