リグレッション 999998 以上のグループを持つ正規表現が InternalError を投げるようになりました

公開日: | カテゴリー: JavaScript

概要

Firefox 29 以降、999998 上のグループを伴った 正規表現 は動作しなくなり、「an error occurred while executing regular expression」という InternalError が投げられます。この変更は、カウンターがオーバーフローするのを防ぐことによって、パフォーマンスとセキュリティの改善を意図したものです。詳しくは Egor Homakov のブログ記事 を参照してください。

従来一致すべきなのに「一致なし」とされていた特定の正規表現が誤って InternalError につながるという、この変更によるリグレッションが報告されています。jQuery の旧バージョンに含まれる trim 関数も影響を受けることが判明しています。この問題は Firefox 30 で修正されました。

参考資料