Preview今日、以下のツイートがタイムラインを流れていました。ECMAScriptという部分です。これは、言い換えるとES2019より前はJSONはECMAScriptの(構文的な)サブセットではなかったということになります。これまで、JSONの謳い文句としても、そして、実際にJSONの仕様を読んだり使ったりした限りでも、サブセットでない挙動を経験したことがなかったので、これはどういうことだろう、としばらく考えていました。2019https://github.com/tc39/proposal-json-superset/blob/master/README.mdここに書いてあることは、JSONはU+2028とU+2029をエスケープしないで文字列の中に埋め込めるが、ECMAScriptの文字列リテラルには、そのような文字をエスケープして埋め込むことができない、ということのようです。この、U+2028とU+2019に関する問題を私が知らなかったためにこれまでそのことに気づかなかったのでした。JSONは当然のように(厳密に)ECMASCriptのサブセットだと思っていたので、ちょっとした驚きでした。JSONは当然のように(厳密に)ECMAScriptのサブセットだと思っていたので、ちょっとした驚きでした。(なお、この辺の問題には詳しくないので、ツッコミをお待ちしています)。