Yeah, I wish that were handled better too. Since the parser is expecting a statements, it parses it like
{
a
}
= 5
As in, a block with just an "a" in it, followed by an assignment to nothing, which throws an syntax error.You can however do
({a} = 5);
to make the parser switch to expecting a destructuring pattern instead of an block statement.