---
generated_at: 2026-03-01 12:00:00
metrics:
  claims_total: 117
  claims_with_evidence: 112
  claims_without_evidence: 5
confidence_derived: 0.96
---

# 根拠レポート：wasm-sync 単体テストケース一覧

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.96**
  - 根拠あり：112 / 117、根拠なし：5
- 優先レビュー（高）
  1. **C-41 (UT-WAS-041)**: WebAssemblyJavascriptGenerator.generate の全体的な出力検証 -- 生成されるコードの全体構造は複雑で、実行環境の依存関係が多く、テストケースの期待結果が高レベルの記述にとどまっている
  2. **C-82 (UT-WAS-082)**: WebAssemblyGenerator.generate のバイナリ変換 -- 実際のWASMバイナリ変換は @webassemblyjs ライブラリへの依存が大きく、モック化の程度がテストケースに明示されていない
  3. **C-89 (UT-WAS-089)**: WasmChunkLoadingRuntimeModule.generate のランタイムコード生成 -- 生成されるランタイムコードの検証方法が具体化されていない

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。

- E-01: `lib/wasm-sync/WebAssemblyParser.js` - WebAssemblyParser クラス定義、parse メソッド（L65-198）
- E-02: `lib/wasm-sync/WebAssemblyParser.js` - getJsIncompatibleType 関数（L28-38）
- E-03: `lib/wasm-sync/WebAssemblyParser.js` - getJsIncompatibleTypeOfFuncSignature 関数（L45-55）
- E-04: `lib/wasm-sync/WebAssemblyParser.js` - JS_COMPAT_TYPES 定数（L22）
- E-05: `lib/wasm-sync/WebAssemblyUtils.js` - getUsedDependencies 関数（L29-63）
- E-06: `lib/wasm-sync/WebAssemblyUtils.js` - MANGLED_MODULE 定数（L21）
- E-07: `lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js` - クラス定義（L9-20）
- E-08: `lib/wasm-sync/WebAssemblyInInitialChunkError.js` - クラス定義（L85-111）
- E-09: `lib/wasm-sync/WebAssemblyInInitialChunkError.js` - getInitialModuleChains 関数（L21-83）
- E-10: `lib/wasm-sync/WebAssemblyJavascriptGenerator.js` - クラス定義（L26-234）
- E-11: `lib/wasm-sync/WebAssemblyJavascriptGenerator.js` - getTypes メソッド（L31-33）
- E-12: `lib/wasm-sync/WebAssemblyJavascriptGenerator.js` - getSize メソッド（L40-42）
- E-13: `lib/wasm-sync/WebAssemblyJavascriptGenerator.js` - generate メソッド（L49-223）
- E-14: `lib/wasm-sync/WebAssemblyJavascriptGenerator.js` - generateError メソッド（L231-233）
- E-15: `lib/wasm-sync/WebAssemblyGenerator.js` - compose 関数（L47-51）
- E-16: `lib/wasm-sync/WebAssemblyGenerator.js` - getImportedGlobals 関数（L71-84）
- E-17: `lib/wasm-sync/WebAssemblyGenerator.js` - getCountImportedFunc 関数（L91-103）
- E-18: `lib/wasm-sync/WebAssemblyGenerator.js` - getNextTypeIndex 関数（L110-118）
- E-19: `lib/wasm-sync/WebAssemblyGenerator.js` - getNextFuncIndex 関数（L129-139）
- E-20: `lib/wasm-sync/WebAssemblyGenerator.js` - createDefaultInitForGlobal 関数（L146-159）
- E-21: `lib/wasm-sync/WebAssemblyGenerator.js` - rewriteImportedGlobals 関数（L175-238）
- E-22: `lib/wasm-sync/WebAssemblyGenerator.js` - rewriteExportNames 関数（L250-272）
- E-23: `lib/wasm-sync/WebAssemblyGenerator.js` - rewriteImports 関数（L283-300）
- E-24: `lib/wasm-sync/WebAssemblyGenerator.js` - addInitFunction 関数（L316-383）
- E-25: `lib/wasm-sync/WebAssemblyGenerator.js` - getUsedDependencyMap 関数（L392-406）
- E-26: `lib/wasm-sync/WebAssemblyGenerator.js` - WebAssemblyGenerator クラス（L413-533）
- E-27: `lib/wasm-sync/WebAssemblyGenerator.js` - removeStartFunc 関数（L59-64）
- E-28: `lib/wasm-sync/WasmChunkLoadingRuntimeModule.js` - WasmChunkLoadingRuntimeModule クラス（L230-420）
- E-29: `lib/wasm-sync/WasmChunkLoadingRuntimeModule.js` - getAllWasmModules 関数（L32-48）
- E-30: `lib/wasm-sync/WasmChunkLoadingRuntimeModule.js` - generateImportObject 関数（L61-220）
- E-31: `lib/wasm-sync/WebAssemblyModulesPlugin.js` - WebAssemblyModulesPlugin クラス（L38-149）
- E-32: `lib/wasm-sync/WasmFinalizeExportsPlugin.js` - WasmFinalizeExportsPlugin クラス（L18-91）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | WebAssemblyParser.parse: 有効なWASMバイナリを正しくパースできること | E-01 | ○ |
| C-02 | WebAssemblyParser.parse: WASMインポートがWebAssemblyImportDependencyとして追加されること | E-01 | ○ |
| C-03 | WebAssemblyParser.parse: WASMエクスポートがStaticExportsDependencyとして追加されること | E-01 | ○ |
| C-04 | WebAssemblyParser.parse: グローバルエクスポートがWebAssemblyExportImportedDependencyとして追加されること | E-01 | ○ |
| C-05 | WebAssemblyParser.parse: Memory型インポートのonlyDirectImport設定 | E-01 | ○ |
| C-06 | WebAssemblyParser.parse: Table型インポートのonlyDirectImport設定 | E-01 | ○ |
| C-07 | WebAssemblyParser.parse: JS非互換シグネチャのFuncインポート検出 | E-01, E-02 | ○ |
| C-08 | WebAssemblyParser.parse: JS非互換エクスポートのjsIncompatibleExports記録 | E-01, E-03 | ○ |
| C-09 | WebAssemblyParser.parse: Buffer以外入力でのError | E-01 | ○ |
| C-10 | getJsIncompatibleType: JS互換型でnull返却 | E-02, E-04 | ○ |
| C-11 | getJsIncompatibleType: 非互換パラメータ検出 | E-02, E-04 | ○ |
| C-12 | getJsIncompatibleType: 非互換結果型検出 | E-02, E-04 | ○ |
| C-13 | getJsIncompatibleType: 空シグネチャでnull | E-02 | ○ |
| C-14 | getJsIncompatibleTypeOfFuncSignature: 互換型でnull | E-03, E-04 | ○ |
| C-15 | getJsIncompatibleTypeOfFuncSignature: 非互換引数検出 | E-03, E-04 | ○ |
| C-16 | getJsIncompatibleTypeOfFuncSignature: 非互換結果検出 | E-03, E-04 | ○ |
| C-17 | getJsIncompatibleTypeOfFuncSignature: externref互換性 | E-03, E-04 | ○ |
| C-18 | getUsedDependencies: mangle=falseで元名使用 | E-05 | ○ |
| C-19 | getUsedDependencies: mangle=trueでマングル名使用 | E-05, E-06 | ○ |
| C-20 | getUsedDependencies: GlobalType依存関係スキップ | E-05 | ○ |
| C-21 | getUsedDependencies: null moduleスキップ | E-05 | ○ |
| C-22 | getUsedDependencies: 依存関係0件で空配列 | E-05 | ○ |
| C-23 | MANGLED_MODULE定数値 | E-06 | ○ |
| C-24 | UnsupportedWebAssemblyFeatureError: メッセージ設定 | E-07 | ○ |
| C-25 | UnsupportedWebAssemblyFeatureError: hideStack設定 | E-07 | ○ |
| C-26 | UnsupportedWebAssemblyFeatureError: WebpackError継承 | E-07 | ○ |
| C-27 | WebAssemblyInInitialChunkError: エラーメッセージ生成 | E-08, E-09 | ○ |
| C-28 | WebAssemblyInInitialChunkError: name設定 | E-08 | ○ |
| C-29 | WebAssemblyInInitialChunkError: module参照保持 | E-08 | ○ |
| C-30 | WebAssemblyInInitialChunkError: WebpackError継承 | E-08 | ○ |
| C-31 | getInitialModuleChains: 単一チェーン生成 | E-09 | ○ |
| C-32 | getInitialModuleChains: 複数チェーン生成 | E-09 | ○ |
| C-33 | getInitialModuleChains: 循環参照の切り詰め | E-09 | ○ |
| C-34 | getInitialModuleChains: explanationの表示 | E-09 | ○ |
| C-35 | getInitialModuleChains: 非初期チャンクの除外 | E-09 | ○ |
| C-36 | getInitialModuleChains: 接続0件での結果 | E-09 | ○ |
| C-37 | getInitialModuleChains: originModule=nullの処理 | E-09 | ○ |
| C-38 | WebAssemblyJavascriptGenerator.getTypes: WEBASSEMBLY_TYPES返却 | E-11 | ○ |
| C-39 | WebAssemblyJavascriptGenerator.getSize: 依存関係数ベースの計算 | E-12 | ○ |
| C-40 | WebAssemblyJavascriptGenerator.getSize: 依存関係0件 | E-12 | ○ |
| C-41 | WebAssemblyJavascriptGenerator.generate: JSラッパーコード生成 | E-13 | △ |
| C-42 | WebAssemblyJavascriptGenerator.generate: インポート文生成 | E-13 | ○ |
| C-43 | WebAssemblyJavascriptGenerator.generate: 再エクスポートコード生成 | E-13 | ○ |
| C-44 | WebAssemblyJavascriptGenerator.generate: 一括エクスポート代入 | E-13 | ○ |
| C-45 | WebAssemblyJavascriptGenerator.generate: 部分エクスポートのコピー | E-13 | ○ |
| C-46 | WebAssemblyJavascriptGenerator.generate: GlobalType初期化引数 | E-13 | ○ |
| C-47 | WebAssemblyJavascriptGenerator.generate: runtimeRequirements設定 | E-13 | ○ |
| C-48 | WebAssemblyJavascriptGenerator.generateError: throw文生成 | E-14 | ○ |
| C-49 | WebAssemblyJavascriptGenerator.generateError: エスケープ処理 | E-14 | ○ |
| C-50 | compose: 複数関数の順序適用 | E-15 | ○ |
| C-51 | compose: 単一関数の適用 | E-15 | ○ |
| C-52 | compose: 空の合成 | E-15 | ○ |
| C-53 | getImportedGlobals: グローバルインポート抽出 | E-16 | ○ |
| C-54 | getImportedGlobals: Func型除外 | E-16 | ○ |
| C-55 | getImportedGlobals: インポート0件 | E-16 | ○ |
| C-56 | getCountImportedFunc: 関数インポート数カウント | E-17 | ○ |
| C-57 | getCountImportedFunc: 0件の場合 | E-17 | ○ |
| C-58 | getNextTypeIndex: typeセクションからインデックス取得 | E-18 | ○ |
| C-59 | getNextTypeIndex: typeセクションなし | E-18 | ○ |
| C-60 | getNextFuncIndex: funcセクションとインポート数からインデックス取得 | E-19 | ○ |
| C-61 | getNextFuncIndex: funcセクションなし | E-19 | ○ |
| C-62 | createDefaultInitForGlobal: 整数型初期化 | E-20 | ○ |
| C-63 | createDefaultInitForGlobal: 浮動小数点型初期化 | E-20 | ○ |
| C-64 | createDefaultInitForGlobal: 未知型エラー | E-20 | ○ |
| C-65 | rewriteImportedGlobals: グローバルインポートの書き換え | E-21 | ○ |
| C-66 | rewriteImportedGlobals: get_global初期化子の処理 | E-21 | ○ |
| C-67 | rewriteExportNames: usedNameへの書き換え | E-22 | ○ |
| C-68 | rewriteExportNames: 外部エクスポート削除 | E-22 | ○ |
| C-69 | rewriteExportNames: 未使用エクスポート削除 | E-22 | ○ |
| C-70 | rewriteImports: マングル名への書き換え | E-23 | ○ |
| C-71 | rewriteImports: マッピングなしのインポート | E-23 | ○ |
| C-72 | addInitFunction: init関数の追加 | E-24 | ○ |
| C-73 | addInitFunction: start関数の呼び出し | E-24 | ○ |
| C-74 | addInitFunction: 追加初期化コードの挿入 | E-24 | ○ |
| C-75 | addInitFunction: グローバルなしのinit関数 | E-24 | ○ |
| C-76 | getUsedDependencyMap: マッピング生成 | E-25 | ○ |
| C-77 | getUsedDependencyMap: 依存関係0件 | E-25 | ○ |
| C-78 | WebAssemblyGenerator.constructor: options保存 | E-26 | ○ |
| C-79 | WebAssemblyGenerator.getTypes: WEBASSEMBLY_TYPES返却 | E-26 | ○ |
| C-80 | WebAssemblyGenerator.getSize: originalSourceサイズ | E-26 | ○ |
| C-81 | WebAssemblyGenerator.getSize: originalSourceがnull | E-26 | ○ |
| C-82 | WebAssemblyGenerator.generate: バイナリ変換の基本動作 | E-26 | △ |
| C-83 | WebAssemblyGenerator.generate: 変換パイプライン実行 | E-26 | ○ |
| C-84 | WebAssemblyGenerator.generate: externalExports収集 | E-26 | ○ |
| C-85 | WebAssemblyGenerator.generateError: エラーソース生成 | E-26 | ○ |
| C-86 | removeStartFunc: Start命令の除去 | E-27 | ○ |
| C-87 | WasmChunkLoadingRuntimeModule.constructor: オプション保存 | E-28 | ○ |
| C-88 | WasmChunkLoadingRuntimeModule.constructor: STAGE_ATTACH初期化 | E-28 | ○ |
| C-89 | WasmChunkLoadingRuntimeModule.generate: ランタイムコード生成 | E-28 | △ |
| C-90 | WasmChunkLoadingRuntimeModule.generate: ストリーミングサポート | E-28 | ○ |
| C-91 | WasmChunkLoadingRuntimeModule.generate: 非ストリーミングモード | E-28 | ○ |
| C-92 | WasmChunkLoadingRuntimeModule.generate: HMRサポート | E-28 | ○ |
| C-93 | WasmChunkLoadingRuntimeModule.generate: マングルインポート | E-28 | ○ |
| C-94 | getAllWasmModules: WASMモジュール収集 | E-29 | ○ |
| C-95 | getAllWasmModules: 非同期チャンクなし | E-29 | ○ |
| C-96 | generateImportObject: mangle=trueフラットオブジェクト | E-30 | ○ |
| C-97 | generateImportObject: mangle=falseネストオブジェクト | E-30 | ○ |
| C-98 | generateImportObject: direct=trueインスタンス変数アクセス | E-30 | ○ |
| C-99 | generateImportObject: direct=falseキャッシュラッパー | E-30 | ○ |
| C-100 | generateImportObject: waitForInstances=1 Promise.resolve | E-30 | ○ |
| C-101 | generateImportObject: waitForInstances>1 Promise.all | E-30 | ○ |
| C-102 | generateImportObject: waitForInstances=0 同期コード | E-30 | ○ |
| C-103 | WebAssemblyModulesPlugin.constructor: options保存 | E-31 | ○ |
| C-104 | WebAssemblyModulesPlugin.apply: WebAssemblyImportDependency登録 | E-31 | ○ |
| C-105 | WebAssemblyModulesPlugin.apply: WebAssemblyExportImportedDependency登録 | E-31 | ○ |
| C-106 | WebAssemblyModulesPlugin.apply: パーサー作成 | E-31 | ○ |
| C-107 | WebAssemblyModulesPlugin.apply: ジェネレーター作成 | E-31 | ○ |
| C-108 | WebAssemblyModulesPlugin.apply: レンダーマニフェスト処理 | E-31 | ○ |
| C-109 | WebAssemblyModulesPlugin.apply: 初期チャンクWASMエラー検出 | E-31 | ○ |
| C-110 | WebAssemblyModulesPlugin.apply: 非初期チャンクでのエラー非発生 | E-31 | ○ |
| C-111 | WasmFinalizeExportsPlugin.apply: JS非互換エクスポートエラー検出 | E-32 | ○ |
| C-112 | WasmFinalizeExportsPlugin.apply: WASM間参照でのエラー非発生 | E-32 | ○ |
| C-113 | WasmFinalizeExportsPlugin.apply: jsIncompatibleExports=undefinedスキップ | E-32 | ○ |
| C-114 | WasmFinalizeExportsPlugin.apply: 非アクティブ接続スキップ | E-32 | ○ |
| C-115 | WasmFinalizeExportsPlugin.apply: 非WASMモジュールスキップ | E-32 | ○ |
| C-116 | WasmFinalizeExportsPlugin.apply: 空名前スキップ | E-32 | ○ |
| C-117 | WasmFinalizeExportsPlugin.apply: オブジェクト名スキップ | E-32 | △ |

## 4) 不足情報（Unknown / Missing）
- **C-41 (WebAssemblyJavascriptGenerator.generate)**: generate メソッドは多数の外部依存（runtimeTemplate, moduleGraph, chunkGraph等）を持ち、生成コードの完全な検証にはこれらのモック化が必要。テストケースの期待結果は高レベルの記述にとどめている。
  - 候補：実際のwebpackテストケースの出力結果 / runtimeTemplateの仕様 / InitFragmentの動作仕様
- **C-82 (WebAssemblyGenerator.generate)**: @webassemblyjs ライブラリの decode, editWithAST, addWithAST の具体的な動作仕様がソースコード内では確認できない。
  - 候補：@webassemblyjs パッケージのドキュメント / テストコード / WASMバイナリ仕様
- **C-89 (WasmChunkLoadingRuntimeModule.generate)**: 生成されるランタイムコードの期待値が文字列パターンとしてしか検証できず、実行時の動作保証は別途必要。
  - 候補：webpackの既存テストケース / ランタイムコードの仕様書
- **C-117 (WasmFinalizeExportsPlugin.apply)**: referencedExportsの名前の先頭要素がオブジェクト型になるケースの発生条件が、ソースコード上のコメントでは明確でない。`typeof name === "object"` のチェックは存在するが、具体的な発生シナリオが不明。
  - 候補：getDependencyReferencedExportsの仕様 / webpackの他のテストケース
- **C-41, C-82, C-89 共通**: 複雑な統合処理のテストケースでは、入力値と期待結果の具体化が困難であり、テスト実装時に適切なモック設計が必要。

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク -- UnsupportedWebAssemblyFeatureError, WebAssemblyInInitialChunkError 等のエラークラスは単純な構造で、テストケースの根拠は明確
- 0: 低リスク -- getJsIncompatibleType, getJsIncompatibleTypeOfFuncSignature は純粋関数で、入出力の検証が容易
- 0: 低リスク -- WebAssemblyUtils.getUsedDependencies は明確なフィルタリングロジックで、テストケースの根拠は十分
- 0: 低リスク -- compose, getImportedGlobals, getCountImportedFunc, getNextTypeIndex, getNextFuncIndex 等のユーティリティ関数は単純で検証容易
- 1: 中リスク -- WebAssemblyGenerator.generate, WebAssemblyJavascriptGenerator.generate は複雑な統合処理で、テスト時のモック設計が重要
- 1: 中リスク -- WasmChunkLoadingRuntimeModule.generate は大量のランタイムコード生成を行い、出力の検証方法に工夫が必要
- 1: 中リスク -- WebAssemblyModulesPlugin.apply, WasmFinalizeExportsPlugin.apply はwebpackコンパイラのフック機構に依存しており、単体テストにはフック環境のセットアップが必要
- 2: 高リスク -- rewriteImportedGlobals, rewriteExportNames, rewriteImports, addInitFunction は @webassemblyjs のAST操作に強く依存しており、実際のWASMバイナリでのテストが望ましい

## 6) レビュアーチェックリスト（最小）
- [ ] WebAssemblyParser.parse のテストケース（C-01〜C-09）が、WASMバイナリのパース処理の主要な分岐を網羅しているか
- [ ] getJsIncompatibleType / getJsIncompatibleTypeOfFuncSignature のテストケース（C-10〜C-17）が、JS_COMPAT_TYPES の全型（i32, i64, f32, f64, externref）をカバーしているか
- [ ] WebAssemblyUtils.getUsedDependencies のテストケース（C-18〜C-22）が、mangle有無とスキップ条件を網羅しているか
- [ ] WebAssemblyGenerator の変換パイプライン関連テストケース（C-50〜C-77）が、各変換関数の入出力を適切に検証しているか
- [ ] WebAssemblyJavascriptGenerator.generate のテストケース（C-41〜C-47）の期待結果が、実装時に具体化可能なレベルか
- [ ] WasmChunkLoadingRuntimeModule.generate のテストケース（C-89〜C-93）が、supportsStreaming/HMR/mangleImportsの組み合わせを十分にカバーしているか
- [ ] WebAssemblyModulesPlugin.apply のテストケース（C-104〜C-110）が、全フック登録を網羅しているか
- [ ] WasmFinalizeExportsPlugin.apply のテストケース（C-111〜C-117）が、エラー検出と各スキップ条件を網羅しているか
