「文頭の function は式じゃなくて文(宣言)になるんだー」 と同じくらいやっかいな仕組みの
「文頭の { はオブジェクトじゃなくて複文の開始になる」 ですがまたもこれです

基本の問題はこれです
{
a: 1
b: 2
c: 3
}
オブジェクトだと カンマがないエラーなのですが 複文の場合は a, b, c がラベルで特に意味のない 1, 2, 3 のリテラルがあるだけでエラーはないです

こういうデータがあるとします
var obj = {
x: 1,
y: 2
}

データの中身確認のために REPL でカンマが抜けてこう書いたら
{
x: 3
y: obj
}
Object { }
x: 1
y: 2
エラーもなくキーはあってるのにバリューが予想外なものになってしまいます
ここの結果のところにもありますが コンソールの出力をコピペするとカンマがないですし x=1 みたいなカンマ不要なものをコピペして = を : にする場合もカンマぬけがありそうです

let が入って少しは使いみちあるのかもですが while や for などのあと以外で複文なんて作らないので構文をどうにかしてもらいたいものです