IEではclassListで使えない機能があります。
代表的なのがtoggleとか。
で、今回引っかかったのが
const a = b.classList.value.replace(/-/g, '').split(' ');
で、IEで未定義またはNULL参照プロパティ'replace'は取得できません
とエラーに。
検証してみると、b.classList.value
がundefined。これが原因ぽい。
ただ、MDN見てもcaniuse見てもclassList.valueがどうなのか、記述が無い…
classList.value
はそのクラス名を文字列で取得するもの。
polyfillを入れて解決もできそうではあるが、Licenseが謎。
replaceするために文字列にしているので今回は別の方法で文字列化して解決。
const a = String(b.classList).replace(/-/g, '').split(' ');
これで解決しました。