質問: WSH) でも動作するような関数ライブラリを作っていてテストコードも組み込んでいます。 WSH は異様に古い環境なのでこれで動かすというのは非常にエッジケースで、 こんな環境で動作確認しているユーザーはいないのかもしれないのですが 上記のParts.js の master ブランチの ver 4.6.0 では、@babel/polyfill を使っていて npm start コマンドで全てのテストがOKになって動きます。 Windows で実行すると WSH でも正常に動いています。IE11は当然動きます。 develop ブランチの ver 5.0.0 beta では、 @babel/polyfill から core-js と regenerator-runtime に移行するために ビルド設定をいろいろ変えてみましたが IE11で動くようにはできましたが、WSH だけはどうしても読み込みが失敗してしまいます。 いくつかの問題はわかっていて core-js はそもそも ShiftJIS あるいはアスキーの範囲ではない UTF8な文字が入っているために JScript が読み込みに失敗する、という状態があるようです。 Webpack でビルドした差分を比較するのが差分が多すぎて全部をつぶしきれないという 状態になってしまっています。 私のビルドの設定に問題があって webpack.config や babel.config を修正すれば WSH でも動くようなものが作れたらすごく助かるのですが どなたかビルド設定に詳しい方、おわかりになる方おられましたら教えてください。 core-js でWSHやJScriptをターゲットにした出力に対応できますか? また、そういう設定がないのなら @babel/polyfillを非推奨にして core-js への置き換えを促すというのは 上位互換ではないようなので、問題があるのではないかとおもってます。 @babel/polyfillを非推奨にしないで、ということを babelのコミュニティに伝えたいのですが どちらに発信すればよいでしょうか? 稚拙な英語力なので伝わらないかもしれないですが とりあえず、言ってみようかなと思っています。 @babel/polyfill を非推奨となったままで 将来的にサポートされなくなったらこまるな、と思っています。
回答: 信用度が足らずコメントができないため回答に書きます。 core-jsを実行するまでになります。リンク先のテストは試していません JScriptでユニコードを扱うには、ファイルのエンコードをUTF-16LEにします。UTF-8, UTF-8 BOMは対応していません(ちなみにコンソールのエンコード(chcp)は関係ありません。) 以下の手順でWSHでcore-jsを動かすことはできました。 1. core-jsをダウンロードする 2. エンコードをUTF-16LEに変更する 3. 適当なコードをファイル末尾に追加する ``` var set = new Set(["A", "B", "C", "A", "B"]) set.forEach(function(e) { WScript.Echo(e) }) ``` 4. cscript.exe のエンジンにEdgeのエンジンを指定する `cscript //E:{1b7cd997-e5ff-4932-a7a6-2a9e636da385} minified.js`