| Enter/Click時の onNextHandler 呼び出し |
nullチェックなしで呼ぶ(src/core/index.js:71, src/core/index.js:84) |
nullチェックあり(src/core/index.ts:99, src/core/index.ts:113) |
TS版のほうが安全(初期化前呼び出しで落ちにくい) |
| moveTo の duration デフォルト |
line.duration | 1(src/core/index.js:483) |
line.duration || 1(src/core/index.ts:514) |
JS版はビット演算で意図しない値になる可能性 |
| pause コマンドの動作 |
pause() を実行(src/core/index.js:525) |
stop() を実行(src/core/index.ts:556) |
TS版は一時停止でなく停止になる |
| route 時のBGMチェック |
this.bgm.isPlaying 直接参照(src/core/index.js:578) |
this.bgm && this.bgm.playing(src/core/index.ts:609) |
TS版のほうが null 安全 |
| HTTPエラー時のJSON処理 |
else側で json 未定義参照(src/core/index.js:648) |
else側でも await response.json()(src/core/index.ts:679) |
JS版は実行時エラーの可能性 |
| addScenario 呼び出し引数 |
第2引数なし(src/core/index.js:354, src/core/index.js:574, src/core/index.js:722) |
第2引数 0 あり(src/core/index.ts:385, src/core/index.ts:605, src/core/index.ts:753) |
ScenarioManager実装次第で挿入位置が変わる可能性 |
| ResourceManager 初期化 |
config importを渡す(src/core/index.js:47) |
引数なし(src/core/index.ts:73) |
リソース設定の読み込み挙動が変わる可能性 |
| サウンドキー生成(srcなし時) |
line.src.split(...) 前提(src/core/index.js:529, src/core/index.js:536) |
src なし時 bgm フォールバック(src/core/index.ts:560, src/core/index.ts:567) |
TS版のほうが安全 |
| シーン動的読み込み |
通常の import(...)(src/core/index.js:110) |
eval 経由の runtime import(src/core/index.ts:140) |
バンドル/実行環境で挙動差が出る可能性 |
| style 削除ループ |
live collection直接走査(src/core/index.js:175) |
Array.from で固定化(src/core/index.ts:207) |
TS版のほうが削除漏れしにくい |
| clickWait の resolve値 |
resolve(null)(src/core/index.js:332) |
resolve()(src/core/index.ts:363) |
実害はほぼなし(戻り値未使用なら同等) |
src/core/index.js と src/core/index.ts の機能差分
上記は、JS版から挙動が変わってるので、挙動をJS版に沿って修正が必要がである。