Hallo 1unitedpower,
Statements haben in JavaScript schon heute Rückgabewerte, allein die Syntax-Regeln halten uns davon ab mit diesen Rückgabenwerten weiterzurechnen: Man kann den Rückgabewert nicht in Variablen speichern, weil auf der rechten Seite von Zuweisungen unmal keine Statements erlaubt sind. Mit
eval
kann man das allerdings simulieren:x = eval('if (true) 1; else 0;'); console.assert(x === 1);
Das Proposal zu do-Expression stützt sich auch auf diese Semantik.
Dann muss ich Dedlfix zustimmen: das Proposal geht nicht weit genug bzw wählt den falschen Ansatz. Das Erlauben einer Zuweisung wäre hier konsequenter und IMHO auch sinnvoller.
LG,
CK