---
generated_at: 2026-03-01 10:00:00
metrics:
  claims_total: 162
  claims_with_evidence: 162
  claims_without_evidence: 0
confidence_derived: 1.00
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：162 / 162、根拠なし：0
- 優先レビュー（高）
  1. **RuntimePlugin.applyの統合テスト観点**: 各フックの実際の発火順序やモジュール間連携は単体テストの範囲外となるため、結合テストでの追加検証を推奨
  2. **RuntimeTemplate.moduleNamespacePromiseの網羅性**: deferred importやasyncモジュールに関するテストケースは分岐が複雑で、全パターン網羅が困難な可能性あり
  3. **RuntimeTemplate.exportFromImportの複合条件**: defaultInterop/exportsType/isCall/asiSafe/callContextの組み合わせが多く、全組み合わせ網羅は実施していない

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

- E-01: `lib/RuntimeGlobals.js` -- ランタイムグローバル定数定義ファイル（451行）
- E-02: `lib/RuntimeModule.js` -- RuntimeModuleクラス定義ファイル（243行）
- E-03: `lib/RuntimePlugin.js` -- RuntimePluginクラス定義ファイル（548行）
- E-04: `lib/RuntimeTemplate.js` -- RuntimeTemplateクラス定義ファイル（1289行）
- E-05: `docs/code-to-docs/単体テストケース一覧/plan.md` -- テスト対象モジュール定義

## 3) Claims と根拠の対応（レビューの主戦場）

### RuntimeGlobals.js（C-01 ~ C-07）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | amdDefineが'__webpack_require__.amdD'を返す | E-01 (L11) | ○ |
| C-02 | requireが'__webpack_require__'を返す | E-01 (L366) | ○ |
| C-03 | ensureChunkが'__webpack_require__.e'を返す | E-01 (L112) | ○ |
| C-04 | publicPathが'__webpack_require__.p'を返す | E-01 (L356) | ○ |
| C-05 | moduleFactoriesが'__webpack_require__.m'を返す | E-01 (L300) | ○ |
| C-06 | 全プロパティがstring型である | E-01 (全行) | ○ |
| C-07 | 全プロパティが一意な値を持つ | E-01 (全行) | ○ |

### RuntimeModule.js（C-08 ~ C-39）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-08 | constructorでnameとstageが設定される | E-02 (L42-47) | ○ |
| C-09 | stageのデフォルト値が0 | E-02 (L42) | ○ |
| C-10 | 初期プロパティが正しく設定される | E-02 (L48-63) | ○ |
| C-11 | super()にWEBPACK_MODULE_TYPE_RUNTIMEが渡される | E-02 (L43) | ○ |
| C-12 | attach()でcompilation/chunk/chunkGraphが設定される | E-02 (L72-76) | ○ |
| C-13 | attach()でchunkGraph省略時にcompilation.chunkGraphが使用される | E-02 (L72) | ○ |
| C-14 | identifier()が'webpack/runtime/{name}'を返す | E-02 (L82) | ○ |
| C-15 | readableIdentifier()が'webpack/runtime/{name}'を返す | E-02 (L89-91) | ○ |
| C-16 | needBuild()がcallback(null, false)を呼ぶ | E-02 (L98-100) | ○ |
| C-17 | build()がcallbackを即座に呼ぶ | E-02 (L110-114) | ○ |
| C-18 | updateHash()でfullHash=falseの場合getGeneratedCode使用 | E-02 (L121-136) | ○ |
| C-19 | updateHash()でfullHash=trueの場合generate()使用 | E-02 (L125-128) | ○ |
| C-20 | updateHash()でdependentHash=trueの場合generate()使用 | E-02 (L125-128) | ○ |
| C-21 | generate()エラー時にerr.messageでhash更新 | E-02 (L132-134) | ○ |
| C-22 | getSourceTypes()がRUNTIME_TYPESを返す | E-02 (L141-143) | ○ |
| C-23 | getSourceBasicTypes()がJAVASCRIPT_TYPESを返す | E-02 (L154-156) | ○ |
| C-24 | codeGeneration()でRawSourceが使用される | E-02 (L162-178) | ○ |
| C-25 | useSourceMap=trueでOriginalSource使用 | E-02 (L168-171) | ○ |
| C-26 | useSimpleSourceMap=trueでOriginalSource使用 | E-02 (L169) | ○ |
| C-27 | getGeneratedCode()がnullの場合sourcesが空 | E-02 (L166) | ○ |
| C-28 | runtimeRequirementsがnull | E-02 (L176) | ○ |
| C-29 | size()がコードの長さを返す | E-02 (L184-191) | ○ |
| C-30 | size()でnull時に0を返す | E-02 (L187) | ○ |
| C-31 | size()でエラー時に0を返す | E-02 (L188-189) | ○ |
| C-32 | generate()がAbstractMethodErrorをスロー | E-02 (L198-202) | ○ |
| C-33 | getGeneratedCode()初回でgenerate()結果をキャッシュ | E-02 (L207-212) | ○ |
| C-34 | getGeneratedCode()2回目でキャッシュ返却 | E-02 (L208-209) | ○ |
| C-35 | shouldIsolate()がtrueを返す | E-02 (L217-219) | ○ |
| C-36 | STAGE_NORMAL=0 | E-02 (L225) | ○ |
| C-37 | STAGE_BASIC=5 | E-02 (L230) | ○ |
| C-38 | STAGE_ATTACH=10 | E-02 (L235) | ○ |
| C-39 | STAGE_TRIGGER=20 | E-02 (L240) | ○ |

### RuntimePlugin.js（C-40 ~ C-55）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-40 | compilation hookがタップされる | E-03 (L124) | ○ |
| C-41 | GLOBALS_ON_REQUIREのruntimeRequirementInModuleフック登録 | E-03 (L142-146) | ○ |
| C-42 | GLOBALS_ON_REQUIREのruntimeRequirementInTreeフック登録 | E-03 (L148-152) | ○ |
| C-43 | TREE_DEPENDENCIESのフック登録 | E-03 (L154-162) | ○ |
| C-44 | MODULE_DEPENDENCIESのフック登録 | E-03 (L163-171) | ○ |
| C-45 | definePropertyGetters要件でRuntimeModule追加 | E-03 (L172-180) | ○ |
| C-46 | publicPath='auto'でAutoPublicPathRuntimeModule追加 | E-03 (L256-263) | ○ |
| C-47 | 文字列publicPathでPublicPathRuntimeModule追加 | E-03 (L267-276) | ○ |
| C-48 | [hash]含むpublicPathでfullHash=true | E-03 (L270-274) | ○ |
| C-49 | ensureChunk要件で非同期チャンク依存 | E-03 (L413-425) | ○ |
| C-50 | loadScript要件でtrustedTypes連携 | E-03 (L437-452) | ○ |
| C-51 | baseURI要件でチャンクローディング無効時 | E-03 (L498-505) | ○ |
| C-52 | systemContext要件でlibraryType=system時 | E-03 (L296-313) | ○ |
| C-53 | systemContext要件でlibraryType!=system時 | E-03 (L306) | ○ |
| C-54 | compat hookが使用中でCompatRuntimeModule追加 | E-03 (L519-532) | ○ |
| C-55 | chunkHashフックでXOR演算 | E-03 (L533-542) | ○ |

### RuntimeTemplate.js（C-56 ~ C-162）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-56 | getGlobalObject()で識別子がそのまま返る | E-04 (L77-90) | ○ |
| C-57 | getGlobalObject()でIIFE/呼び出し式がそのまま返る | E-04 (L86-90) | ○ |
| C-58 | getGlobalObject()でObject()ラップ | E-04 (L92) | ○ |
| C-59 | getGlobalObject()でundefined返却 | E-04 (L78) | ○ |
| C-60 | getGlobalObject()でトリム処理 | E-04 (L79) | ○ |
| C-61 | noModuleIdErrorMessage()のメッセージ生成 | E-04 (L52-71) | ○ |
| C-62 | constructorでプロパティ初期化 | E-04 (L101-109) | ○ |
| C-63 | outputOptions未指定で空オブジェクト | E-04 (L103) | ○ |
| C-64 | isIIFE()がiife返却 | E-04 (L111-113) | ○ |
| C-65 | isIIFE()=false | E-04 (L112) | ○ |
| C-66 | isModule()がmodule返却 | E-04 (L115-117) | ○ |
| C-67 | isNeutralPlatform()でweb/node=false | E-04 (L119-124) | ○ |
| C-68 | isNeutralPlatform()でweb=trueは false | E-04 (L121) | ○ |
| C-69 | supportsConst() | E-04 (L126-128) | ○ |
| C-70 | supportsArrowFunction() | E-04 (L134-136) | ○ |
| C-71 | supportsAsyncFunction() | E-04 (L138-140) | ○ |
| C-72 | supportsForOf() | E-04 (L146-148) | ○ |
| C-73 | supportsDestructuring() | E-04 (L150-152) | ○ |
| C-74 | supportsDynamicImport() | E-04 (L158-160) | ○ |
| C-75 | supportsEcmaScriptModuleSyntax() | E-04 (L162-164) | ○ |
| C-76 | supportTemplateLiteral() | E-04 (L166-168) | ○ |
| C-77 | supportNodePrefixForCoreModules() | E-04 (L170-172) | ○ |
| C-78 | renderNodePrefixForCoreModule()でnode:付き | E-04 (L178-182) | ○ |
| C-79 | renderNodePrefixForCoreModule()でnode:なし | E-04 (L181) | ○ |
| C-80 | renderConst()でconst返却 | E-04 (L187-189) | ○ |
| C-81 | renderConst()でvar返却 | E-04 (L188) | ○ |
| C-82 | returningFunction()でアロー関数形式 | E-04 (L196-199) | ○ |
| C-83 | returningFunction()でfunction形式 | E-04 (L199) | ○ |
| C-84 | returningFunction()でargs省略 | E-04 (L196) | ○ |
| C-85 | basicFunction()でアロー関数ブロック形式 | E-04 (L207-211) | ○ |
| C-86 | basicFunction()でfunction形式 | E-04 (L210) | ○ |
| C-87 | concatenation()で2引数 | E-04 (L220) | ○ |
| C-88 | concatenation()で0引数 | E-04 (L221) | ○ |
| C-89 | concatenation()で1引数文字列 | E-04 (L223-224) | ○ |
| C-90 | concatenation()で1引数expr | E-04 (L225) | ○ |
| C-91 | concatenation()でテンプレートリテラル | E-04 (L227-259) | ○ |
| C-92 | concatenation()でES5フォールバック | E-04 (L227) | ○ |
| C-93 | _es5Concatenation()で文字列+expr連結 | E-04 (L267-277) | ○ |
| C-94 | _es5Concatenation()で先頭2要素expr時""前置 | E-04 (L274-276) | ○ |
| C-95 | expressionFunction()でアロー式 | E-04 (L284-287) | ○ |
| C-96 | expressionFunction()でfunction形式 | E-04 (L287) | ○ |
| C-97 | emptyFunction()でアロー関数 | E-04 (L293-294) | ○ |
| C-98 | emptyFunction()でfunction | E-04 (L294) | ○ |
| C-99 | destructureArray()で分割代入 | E-04 (L302-308) | ○ |
| C-100 | destructureArray()で個別代入 | E-04 (L305-307) | ○ |
| C-101 | destructureObject()で分割代入 | E-04 (L315-323) | ○ |
| C-102 | destructureObject()でプロパティアクセス | E-04 (L318-322) | ○ |
| C-103 | iife()でIIFE形式 | E-04 (L330-332) | ○ |
| C-104 | forEach()でfor...of形式 | E-04 (L340-346) | ○ |
| C-105 | forEach()でforEach形式 | E-04 (L343-345) | ○ |
| C-106 | comment()でpathinfo=true | E-04 (L358-377) | ○ |
| C-107 | comment()でpathinfo=false | E-04 (L367-370) | ○ |
| C-108 | comment()で全パラメータfalsy時空文字列 | E-04 (L372) | ○ |
| C-109 | throwMissingModuleErrorBlock()のエラーブロック | E-04 (L384-389) | ○ |
| C-110 | throwMissingModuleErrorFunction()の関数生成 | E-04 (L396-400) | ○ |
| C-111 | missingModule()のObject()ラップ | E-04 (L407-409) | ○ |
| C-112 | missingModuleStatement()のセミコロン改行 | E-04 (L416-418) | ○ |
| C-113 | missingModulePromise()のPromise形式 | E-04 (L425-429) | ○ |
| C-114 | weakError()でtype=statements | E-04 (L440-465) | ○ |
| C-115 | weakError()でtype=promise | E-04 (L457-461) | ○ |
| C-116 | weakError()でtype=expression | E-04 (L462-463) | ○ |
| C-117 | weakError()でmoduleId=null時の汎用メッセージ | E-04 (L442-444) | ○ |
| C-118 | weakError()でidExpr指定時の動的メッセージ | E-04 (L445-446) | ○ |
| C-119 | moduleId()のJSON形式返却 | E-04 (L475-494) | ○ |
| C-120 | moduleId()でmodule=null時missingModule | E-04 (L476-479) | ○ |
| C-121 | moduleId()でmoduleId=null, weak=false時Error | E-04 (L482-491) | ○ |
| C-122 | moduleId()でmoduleId=null, weak=true時null文字列 | E-04 (L483-485) | ○ |
| C-123 | moduleRaw()で__webpack_require__(id)形式 | E-04 (L505-537) | ○ |
| C-124 | moduleRaw()でrequireがruntimeRequirementsに追加 | E-04 (L530) | ○ |
| C-125 | moduleRaw()でmodule=null時missingModule | E-04 (L506-509) | ○ |
| C-126 | moduleRaw()でweak=true, id=null時weakError | E-04 (L513-522) | ○ |
| C-127 | moduleExports()がmoduleRaw()に委譲 | E-04 (L548-556) | ○ |
| C-128 | moduleNamespace()でnamespace時moduleRaw | E-04 (L568-625) | ○ |
| C-129 | moduleNamespace()でdefault-with-named時(id, 3) | E-04 (L616-617) | ○ |
| C-130 | moduleNamespace()でdefault-only時(id, 1) | E-04 (L619-620) | ○ |
| C-131 | moduleNamespace()でdynamic時(id, 7) | E-04 (L622-623) | ○ |
| C-132 | moduleNamespace()でmodule=null時missingModule | E-04 (L576-579) | ○ |
| C-133 | moduleNamespacePromise()のPromiseチェーン | E-04 (L640-817) | ○ |
| C-134 | moduleNamespacePromise()でmodule=null時 | E-04 (L651-654) | ○ |
| C-135 | moduleNamespacePromise()でweak+id=null時 | E-04 (L657-666) | ○ |
| C-136 | blockPromise()でblock=null時Promise.resolve() | E-04 (L1164-1170) | ○ |
| C-137 | blockPromise()で空chunkGroup時Promise.resolve() | E-04 (L1171-1177) | ○ |
| C-138 | blockPromise()で1チャンク時ensureChunk(id) | E-04 (L1185-1197) | ○ |
| C-139 | blockPromise()で複数チャンク時Promise.all | E-04 (L1198-1217) | ○ |
| C-140 | blockPromise()でfetchPriority指定 | E-04 (L1189-1196) | ○ |
| C-141 | runtimeConditionExpression()でundefined=true | E-04 (L833) | ○ |
| C-142 | runtimeConditionExpression()でboolean文字列化 | E-04 (L834) | ○ |
| C-143 | runtimeConditionExpression()でRuntimeSpec条件 | E-04 (L836-853) | ○ |
| C-144 | importStatement()でharmonyインポート文 | E-04 (L870-958) | ○ |
| C-145 | importStatement()でupdate=trueでvar省略 | E-04 (L918) | ○ |
| C-146 | importStatement()でdynamic時compatGetDefaultExport | E-04 (L951-957) | ○ |
| C-147 | importStatement()でmodule=null時missingModuleStatement | E-04 (L882-888) | ○ |
| C-148 | importStatement()でweak+id=null時weakError | E-04 (L891-903) | ○ |
| C-149 | exportFromImport()で空exportName時importVar返却 | E-04 (L1150-1153) | ○ |
| C-150 | exportFromImport()でdefault+dynamic時 | E-04 (L1044-1052) | ○ |
| C-151 | exportFromImport()でdefault-only+非default時undefined | E-04 (L1063-1068) | ○ |
| C-152 | exportFromImport()で__esModule時true | E-04 (L1070-1073) | ○ |
| C-153 | exportFromImport()でmodule=null時missingModule | E-04 (L998-1001) | ○ |
| C-154 | exportFromImport()でisCall+callContext=false | E-04 (L1120-1126) | ○ |
| C-155 | asyncModuleFactory()の非同期ファクトリ生成 | E-04 (L1230-1252) | ○ |
| C-156 | asyncModuleFactory()でPromise.resolve時then省略 | E-04 (L1248-1249) | ○ |
| C-157 | syncModuleFactory()の同期ファクトリ生成 | E-04 (L1262-1273) | ○ |
| C-158 | defineEsModuleFlagStatement()のmakeNamespaceObject | E-04 (L1281-1285) | ○ |
| C-159 | defineEsModuleFlagStatement()のruntimeRequirements | E-04 (L1282-1283) | ○ |
| C-160 | supportsMethodShorthand() | E-04 (L130-132) | ○ |
| C-161 | supportsOptionalChaining() | E-04 (L142-144) | ○ |
| C-162 | supportsBigIntLiteral() | E-04 (L154-156) | ○ |

## 4) 不足情報（Unknown / Missing）
- 全テストケースにソースコードベースの直接的な根拠が存在するため、根拠不足の項目はありません。
- ただし、以下の観点は追加調査が有益です：
  - RuntimePlugin.apply() 内の各フックの実行順序に関する統合テスト
  - RuntimeTemplate.moduleNamespacePromise() の deferred import パスの全パターン網羅
  - RuntimeTemplate.exportFromImport() の defaultInterop/exportsType/asiSafe の全組み合わせ

## 5) リスクフラグ（レビュー観点）
- 0: RuntimeGlobals.js -- 定数定義のみであり、テストケースも単純。低リスク
- 0: RuntimeModule.js -- メソッドが明確で分岐も少ない。低リスク
- 1: RuntimePlugin.js -- フック登録が多数あり、各フックの条件分岐の網羅性を要確認。中リスク
- 1: RuntimeTemplate.js -- メソッド数が多く条件分岐が複雑（exportFromImport, moduleNamespacePromise等）。全組み合わせ網羅ではなく代表パターンのテスト。中リスク

## 6) レビュアーチェックリスト（最小）
- [ ] RuntimeGlobals.jsの全プロパティが漏れなくテスト対象になっているか（代表5件+全体2件で網羅としているが妥当か）
- [ ] RuntimeModule.jsの各メソッドの正常系・異常系・境界値が網羅されているか
- [ ] RuntimePlugin.applyの各runtimeRequirementInTreeフックハンドラが正しくテストケース化されているか
- [ ] RuntimeTemplate.jsの主要メソッド（moduleId, moduleRaw, moduleNamespace, moduleNamespacePromise, exportFromImport, blockPromise, importStatement）の分岐パターンが十分か
- [ ] 優先度（高/中/低）の割り当てが適切か（金額計算等はないが、コード生成の正確性は高優先度とした）
- [ ] テストIDの連番（UT-RNT-001〜162）に欠番がないか
