Firefoxのコンソールで遊んでいたらバグが見つかった

Firefoxのコンソールで遊んでいたらバグが見つかった:

Firefoxのコンソールに

let [, ] = function*() { throw Error(); }(); 
と入力すると、

≫ let [, ] = function*() { throw Error(); }(); 
≫ 
エラーが握りつぶされてしまいます。! Errorが表示されず、← undefinedも表示されないため、エラーの検出自体はできているがどこかで握りつぶしてしまっているという、一番面倒くさいバグだと思われます。

似たようなコードでも、以下は正常に動作します。

≫ let [] = function*() { throw Error(); }(); 
← undefined 
≫ [, ] = function*() { throw Error(); }(); 
! Error 
≫ let [_, ] = function*() { throw Error(); }(); 
! Error 
≫ 
どうやら、letconstの分割代入文で値を変数に代入せずにスキップするところに問題があるようです。

バグがどのバージョンで再現されるかとか、既に同様のバグが報告されているかどうかとかはまだ確認していません。きっとこの記事をみた誰かがやってくれるはず...(←他力本願)

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)