This proposal is much more pragmatic than do-expressions.
I've just proposed a very similar syntax for IIFEs that uses do function, do async and do => (and possibly do class).
Slightly off topic, but isn't the following grammar dependent on significant whitespace?
const result = match (v) {
...
}
How would this parse?
const result = match(v)
{
...
}