---
generated_at: 2026-03-01 12:00:00
metrics:
  claims_total: 69
  claims_with_evidence: 66
  claims_without_evidence: 3
confidence_derived: 0.96
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.96**
  - 根拠あり：66 / 69、根拠なし：3
- 優先レビュー（高）
  1. **C-59 (UT-WAS-059)**：エラーメッセージにダブルクォートが含まれる場合のエスケープ動作 - JSON.stringifyの挙動推測
  2. **C-67 (UT-WAS-067)**：originalSourceがnullの場合のgenerate()の戻り値 - コード上はキャストされるため実際の挙動が不明
  3. **C-29 (UT-WAS-029)**：空のWASMバイナリの処理 - デコーダの挙動が外部ライブラリ依存

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `lib/wasm-async/AsyncWasmLoadingRuntimeModule.js` (154行)
- E-02: `lib/wasm-async/UniversalCompileAsyncWasmPlugin.js` (107行)
- E-03: `lib/wasm-async/AsyncWebAssemblyParser.js` (80行)
- E-04: `lib/wasm-async/AsyncWebAssemblyModulesPlugin.js` (209行)
- E-05: `lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js` (212行)
- E-06: `lib/wasm-async/AsyncWebAssemblyGenerator.js` (74行)
- E-07: `lib/RuntimeModule.js` (AsyncWasmLoadingRuntimeModuleの親クラス)
- E-08: `lib/Generator.js` (AsyncWebAssemblyGenerator, AsyncWebAssemblyJavascriptGeneratorの親クラス)
- E-09: `lib/Parser.js` (WebAssemblyParserの親クラス)
- E-10: `lib/ModuleSourceTypeConstants.js` (WEBASSEMBLY_TYPES定義)
- E-11: `lib/RuntimeGlobals.js` (instantiateWasm等のランタイムグローバル定義)
- E-12: `lib/ModuleTypeConstants.js` (WEBASSEMBLY_MODULE_TYPE_ASYNC定義)

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | AsyncWasmLoadingRuntimeModule: 全オプション指定でインスタンス生成 | E-01 (L31-47) | ○ |
| C-02 | AsyncWasmLoadingRuntimeModule: オプショナルプロパティ省略時にundefined | E-01 (L33-34) | ○ |
| C-03 | AsyncWasmLoadingRuntimeModule: 親コンストラクタ呼び出し | E-01 (L37), E-07 | ○ |
| C-04 | generate: supportsStreaming=trueでストリーミングコード生成 | E-01 (L86-137, L141) | ○ |
| C-05 | generate: supportsStreaming=falseでフォールバックコード生成 | E-01 (L75-85, L143-149) | ○ |
| C-06 | generate: generateBeforeLoadBinaryCode設定時に前処理コード含有 | E-01 (L93-95, L144-146) | ○ |
| C-07 | generate: generateBeforeInstantiateStreaming設定時に前処理コード含有 | E-01 (L105-108) | ○ |
| C-08 | generate: RuntimeGlobals.instantiateWasm代入コード生成 | E-01 (L56, L139) | ○ |
| C-09 | generate: wasmModuleSrcPathのパス構築 | E-01 (L57-72) | ○ |
| C-10 | generate: generateBeforeLoadBinaryCode未設定時に空文字 | E-01 (L93-95) | ○ |
| C-11 | generate: generateBeforeInstantiateStreaming未設定時に空文字 | E-01 (L105-108) | ○ |
| C-12 | UniversalCompileAsyncWasmPlugin: thisCompilationにタップ登録 | E-02 (L25) | ○ |
| C-13 | isEnabledForChunk: wasmLoading='universal'でtrue | E-02 (L31-38) | ○ |
| C-14 | isEnabledForChunk: entryOptions未設定時にグローバル設定使用 | E-02 (L32-37) | ○ |
| C-15 | isEnabledForChunk: universal以外でfalse | E-02 (L37) | ○ |
| C-16 | isEnabledForChunk: wasmLoading=undefinedでグローバル設定使用 | E-02 (L33-36) | ○ |
| C-17 | runtimeRequirementInTree: 有効チャンクでRuntimeModule追加 | E-02 (L81-101) | ○ |
| C-18 | runtimeRequirementInTree: 無効チャンクでスキップ | E-02 (L84) | ○ |
| C-19 | runtimeRequirementInTree: asyncWasmモジュール不在でスキップ | E-02 (L85-92) | ○ |
| C-20 | generateBeforeInstantiateStreaming: useFetchチェックコード生成 | E-02 (L39-44) | ○ |
| C-21 | generateBeforeLoadBinaryCode: useFetch/wasmUrl変数定義生成 | E-02 (L49-53) | ○ |
| C-22 | generateLoadBinaryCode: fetch/readFile分岐コード生成 | E-02 (L57-79) | ○ |
| C-23 | WebAssemblyParser.parse: 有効なWASMバイナリのパース | E-03 (L34-77) | ○ |
| C-24 | WebAssemblyParser.parse: exportのStaticExportsDependency追加 | E-03 (L58-59, L74) | ○ |
| C-25 | WebAssemblyParser.parse: importのWebAssemblyImportDependency追加 | E-03 (L62-71) | ○ |
| C-26 | WebAssemblyParser.parse: EnvironmentNotSupportAsyncWarning.check呼び出し | E-03 (L45-49) | ○ |
| C-27 | WebAssemblyParser.parse: Buffer以外でError | E-03 (L35-37) | ○ |
| C-28 | WebAssemblyParser.parse: null入力でError | E-03 (L35-37) | ○ |
| C-29 | WebAssemblyParser.parse: 空WASMバイナリの処理 | E-03 (L52-74) | △ |
| C-30 | WebAssemblyParser.parse: 複数import/exportの処理 | E-03 (L57-72) | ○ |
| C-31 | getCompilationHooks: 有効なCompilationでhooks返却 | E-04 (L68-86) | ○ |
| C-32 | getCompilationHooks: 同じインスタンスで同一hooks返却 | E-04 (L74-85) | ○ |
| C-33 | getCompilationHooks: Compilation以外でTypeError | E-04 (L69-73) | ○ |
| C-34 | getCompilationHooks: nullでTypeError | E-04 (L69-73) | ○ |
| C-35 | AsyncWebAssemblyModulesPlugin constructor: options保存 | E-04 (L91-93) | ○ |
| C-36 | AsyncWebAssemblyModulesPlugin constructor: 空options | E-04 (L91-93) | ○ |
| C-37 | apply: compilation hookにタップ登録 | E-04 (L102-103) | ○ |
| C-38 | apply: WebAssemblyImportDependencyファクトリ登録 | E-04 (L107-110) | ○ |
| C-39 | apply: パーサー登録 | E-04 (L112-118) | ○ |
| C-40 | apply: ジェネレータ登録 | E-04 (L119-130) | ○ |
| C-41 | apply: renderManifestフックでレンダリング情報追加 | E-04 (L132-178) | ○ |
| C-42 | apply: WASMモジュール不在時のresult不変 | E-04 (L145) | ○ |
| C-43 | renderModule: ソースレンダリング | E-04 (L189-206) | ○ |
| C-44 | renderModule: webassemblyタイプソース取得 | E-04 (L192-196) | ○ |
| C-45 | renderModule: エラー時のmodule付与 | E-04 (L202-204) | ○ |
| C-46 | AsyncWebAssemblyJavascriptGenerator.getTypes: WEBASSEMBLY_TYPES返却 | E-05 (L32-34), E-10 | ○ |
| C-47 | getSize: 依存関係数に基づくサイズ計算 | E-05 (L41-43) | ○ |
| C-48 | getSize: 依存関係0件で40返却 | E-05 (L42) | ○ |
| C-49 | generate: 非同期依存なしでmodule.exports代入コード | E-05 (L195) | ○ |
| C-50 | generate: 非同期依存ありでasyncModuleラッパー | E-05 (L165-194) | ○ |
| C-51 | generate: runtimeRequirements追加 | E-05 (L58-61) | ○ |
| C-52 | generate: 非同期依存時にasyncModule要件追加 | E-05 (L165-167) | ○ |
| C-53 | generate: import文生成 | E-05 (L90-108) | ○ |
| C-54 | generate: importsObj構築 | E-05 (L112-157) | ○ |
| C-55 | generate: import依存なしでimportsObj=undefined | E-05 (L150-157) | ○ |
| C-56 | generate: InitFragment.addToSource呼び出し | E-05 (L198) | ○ |
| C-57 | generate: 同一リクエストのグループ化 | E-05 (L78-84, L112-148) | ○ |
| C-58 | generateError: throw文のSource生成 | E-05 (L208) | ○ |
| C-59 | generateError: ダブルクォート含有時のエスケープ | E-05 (L208) | △ |
| C-60 | AsyncWebAssemblyGenerator constructor: options保存 | E-06 (L27-31) | ○ |
| C-61 | AsyncWebAssemblyGenerator constructor: 親コンストラクタ呼び出し | E-06 (L28), E-08 | ○ |
| C-62 | AsyncWebAssemblyGenerator.getTypes: WEBASSEMBLY_TYPES返却 | E-06 (L37-39), E-10 | ○ |
| C-63 | getSize: originalSource存在時にsize返却 | E-06 (L46-52) | ○ |
| C-64 | getSize: originalSource=nullで0返却 | E-06 (L48-49) | ○ |
| C-65 | getSize: size=0で0返却 | E-06 (L51) | ○ |
| C-66 | generate: originalSource()をそのまま返却 | E-06 (L60) | ○ |
| C-67 | generate: originalSource=nullでnull返却 | E-06 (L60) | △ |
| C-68 | generateError: RawSource生成 | E-06 (L70) | ○ |
| C-69 | generateError: 空メッセージのRawSource | E-06 (L70) | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-29 (空WASMバイナリの処理)**: `@webassemblyjs/wasm-parser` のdecodeが空バイナリに対してどのような挙動をするかは外部ライブラリの実装依存。空のWASMバイナリがそもそも有効なバイナリフォーマットかどうかも含め、実際のテスト実行で確認が必要。
  - 候補：`@webassemblyjs/wasm-parser` のドキュメント / WASMバイナリフォーマット仕様 / 実際のテスト実行結果
- **C-59 (ダブルクォートエスケープ)**: `JSON.stringify`の挙動としてダブルクォートのエスケープは標準仕様だが、generateError内で実際にその入力が渡されるユースケースの確認が不足。
  - 候補：実際のwebpackビルドエラーシナリオ / JSON.stringify仕様
- **C-67 (originalSource=nullでのgenerate戻り値)**: コード上は `/** @type {Source} */ (module.originalSource())` とキャストしており、nullが返る場合の公式な挙動が不明。実際にはoriginalSourceがnullになるケースが発生するかどうかの確認が必要。
  - 候補：NormalModule.originalSource()の実装 / webpack内部でのgenerate呼び出しコンテキスト

## 5) リスクフラグ（レビュー観点）
- **0 (低リスク)**: テストケースの大部分はソースコードの明示的なロジック分岐・メソッドシグネチャに基づいており、根拠が明確
- **1 (中リスク)**: C-29 - 外部ライブラリ(@webassemblyjs/wasm-parser)のdecode関数の挙動に依存するテストケース。実際のWASMバイナリを用いたテスト実行での検証が推奨される
- **1 (中リスク)**: C-67 - AsyncWebAssemblyGenerator.generate()のnull戻り値に関するテストケース。型キャスト(JSDoc)のみで実際のnullガードがないため、実行時の挙動確認が推奨される
- **0 (低リスク)**: C-59 - JSON.stringifyの標準的なエスケープ動作であり、リスクは低い

## 6) レビュアーチェックリスト（最小）
- [ ] AsyncWasmLoadingRuntimeModule.generate()のストリーミング/非ストリーミング分岐がテストケースで網羅されているか
- [ ] UniversalCompileAsyncWasmPlugin.apply()の内部関数(isEnabledForChunk, generateBeforeInstantiateStreaming, generateBeforeLoadBinaryCode, generateLoadBinaryCode)のテストが適切か
- [ ] WebAssemblyParser.parse()のBuffer検証・import/export収集のテストケースが十分か
- [ ] AsyncWebAssemblyModulesPlugin.getCompilationHooks()のTypeError検証が正確か
- [ ] AsyncWebAssemblyModulesPlugin.renderModule()のエラーハンドリングテストが適切か
- [ ] AsyncWebAssemblyJavascriptGenerator.generate()の非同期/同期分岐が網羅されているか
- [ ] AsyncWebAssemblyGenerator.getSize()のnullチェック分岐が正しくテストされているか
- [ ] 外部ライブラリ(@webassemblyjs)依存のテストケース(C-29)について、モック戦略が明確か
