こんにちは、xhl_kogitsune です。2017年は Chromium の module script 実装の Blink 側の半分とかを作っていました。
今日は Chromium Browser Advent Calendar 20日目として、ES6 Modules のエラー報告の仕様(とChromium実装)を決定的(deterministic)にした話をします。
ES6 Modules は、モジュール間の依存関係を元にネットワークから複数の JavaScript ファイルをダウンロードしてきて実行してくれる便利な機構ですが、モジュールになんらかのエラーがあった時、エラー報告の挙動が非決定的であるという仕様上の問題がありました。今回はこの問題が認識され解決される過程を解説します。
グラフ理論の問題を考える、アルゴリズムを提案しあい反例を挙げあう、決定的だの可換だののワードが飛び交う、という楽しい話でもあったので、月刊「競技プログラミングは役に立つ」としても読めるかと思います。