Summary
The object-literal parser rejects a shorthand property with a default:
let a;
({ a = 5 } = {}); // Parse Error: Expect '}' after object literal.
This is the object-pattern cover-grammar form. Other object assignment-destructuring forms parse and work after #754: shorthand {a}, rename {a: x}, rename+default {a: x = 5}, nested {a: [x]}, rest {...r}, computed {[k]: v}, string-key {"a-b": v}.
Cause
ParseObjectLiteral does not accept = after a shorthand identifier key ({ a = 5 } is only valid as a destructuring pattern, not as an object literal expression). With no cover grammar, the LHS never parses, so the = dispatch in Parser.Expressions.cs is never reached.
Fix shape
Allow shorthand-with-default in the object-literal parser (storing it as { a: (a = 5) } shape, value = Expr.Assign) so it round-trips to the #754 assignment-destructuring lowering (which already handles a {a: x = 5} rename+default). The pure-expression use of {a = 5} remains a semantic error, as in tsc.
Summary
The object-literal parser rejects a shorthand property with a default:
This is the object-pattern cover-grammar form. Other object assignment-destructuring forms parse and work after #754: shorthand
{a}, rename{a: x}, rename+default{a: x = 5}, nested{a: [x]}, rest{...r}, computed{[k]: v}, string-key{"a-b": v}.Cause
ParseObjectLiteraldoes not accept=after a shorthand identifier key ({ a = 5 }is only valid as a destructuring pattern, not as an object literal expression). With no cover grammar, the LHS never parses, so the=dispatch inParser.Expressions.csis never reached.Fix shape
Allow shorthand-with-default in the object-literal parser (storing it as
{ a: (a = 5) }shape, value =Expr.Assign) so it round-trips to the #754 assignment-destructuring lowering (which already handles a{a: x = 5}rename+default). The pure-expression use of{a = 5}remains a semantic error, as in tsc.