---
generated_at: 2026-03-01 10:00:00
metrics:
  claims_total: 212
  claims_with_evidence: 200
  claims_without_evidence: 12
confidence_derived: 0.94
---

# 根拠レポート：javascript.csv

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧（javascript.csv）の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.94**
  - 根拠あり：200 / 212、根拠なし：12
- 優先レビュー（高）
  1. **JavascriptParser内部walkメソッド群のテストケース不足**：walkStatements, walkExpressionなど多数のwalkメソッドはプラグインシステムを通じた間接テストに依存
  2. **JavascriptModulesPlugin.renderMain/renderBootstrapの入出力詳細**：複雑な条件分岐とコンテキスト依存のため、具体的な期待結果の精度が低い
  3. **getImportAttributes関数のテストケース**：JavascriptParser.js内のトップレベル関数であり、ImportExpression分岐の網羅性が要確認

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

- E-01: `lib/javascript/BasicEvaluatedExpression.js` - 型定数定義、クラス定義、メソッド実装
- E-02: `lib/javascript/JavascriptGenerator.js` - Generatorクラスのメソッド実装
- E-03: `lib/javascript/JavascriptModulesPlugin.js` - プラグインクラス、静的メソッド、インスタンスメソッド、トップレベルヘルパー関数
- E-04: `lib/javascript/ArrayPushCallbackChunkFormatPlugin.js` - applyメソッド実装
- E-05: `lib/javascript/CommonJsChunkFormatPlugin.js` - applyメソッド実装
- E-06: `lib/javascript/ChunkHelpers.js` - getAllChunks関数
- E-07: `lib/javascript/StartupHelpers.js` - generateEntryStartup, getInitialChunkIds, updateHashForEntryStartup関数
- E-08: `lib/javascript/ChunkFormatHelpers.js` - getChunkInfo, createChunkHashHandler関数
- E-09: `lib/javascript/JavascriptParserHelpers.js` - ヘルパー関数群
- E-10: `lib/javascript/EnableChunkLoadingPlugin.js` - プラグインクラス
- E-11: `lib/javascript/JavascriptParser.js` - VariableInfoクラス、トップレベルヘルパー関数、JavascriptParserクラス

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

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | BasicEvaluatedExpressionコンストラクタの初期値（UT-JVS-001） | E-01 L34-85 | ○ |
| C-02 | isUnknown/isNull/isUndefined等の型判定メソッド（UT-JVS-002〜016） | E-01 L87-141 | ○ |
| C-03 | isPrimitiveTypeのswitch分岐（UT-JVS-017〜019） | E-01 L147-165 | ○ |
| C-04 | isCompileTimeValueのswitch分岐（UT-JVS-020〜021） | E-01 L171-185 | ○ |
| C-05 | asCompileTimeValueのswitch分岐とエラースロー（UT-JVS-022〜028） | E-01 L191-214 | ○ |
| C-06 | asBoolの各型変換ロジック（UT-JVS-029〜036） | E-01 L240-262 | ○ |
| C-07 | asNullishの各型判定（UT-JVS-037〜040） | E-01 L268-284 | ○ |
| C-08 | asStringの各型文字列変換（UT-JVS-041〜047） | E-01 L290-322 | ○ |
| C-09 | setString/setUndefined/setNull等のsetterメソッド群（UT-JVS-048〜071） | E-01 L328-561 | ○ |
| C-10 | isValidRegExpFlagsの静的メソッド（UT-JVS-076〜081） | E-01 L568-601 | ○ |
| C-11 | JavascriptGenerator.getTypes（UT-JVS-082） | E-02 L62-64 | ○ |
| C-12 | JavascriptGenerator.getSize（UT-JVS-083〜084） | E-02 L71-77 | ○ |
| C-13 | JavascriptGenerator.getConcatenationBailoutReason（UT-JVS-085〜087） | E-02 L84-103 | ○ |
| C-14 | JavascriptGenerator.sourceDependency（UT-JVS-088〜089） | E-02 L113-173 | ○ |
| C-15 | JavascriptGenerator.sourceBlock/sourceModule（UT-JVS-090〜093） | E-02 L183-244 | ○ |
| C-16 | JavascriptGenerator.generate/generateError（UT-JVS-094〜096） | E-02 L251-274 | ○ |
| C-17 | JavascriptModulesPlugin.getCompilationHooksの型チェックとキャッシュ（UT-JVS-097〜099） | E-03 L277-320 | ○ |
| C-18 | JavascriptModulesPlugin.getChunkFilenameTemplate（UT-JVS-101〜104） | E-03 L648-657 | ○ |
| C-19 | JavascriptModulesPlugin.renderModule（UT-JVS-105〜106） | E-03 L665-796 | ○ |
| C-20 | JavascriptModulesPlugin.renderChunk（UT-JVS-107〜108） | E-03 L803-874 | ○ |
| C-21 | JavascriptModulesPlugin.renderMain（UT-JVS-109） | E-03 L882-1100+ | ○ |
| C-22 | JavascriptModulesPlugin.renderBootstrap（UT-JVS-110〜111） | E-03 L1241-1585 | ○ |
| C-23 | JavascriptModulesPlugin.updateHashWithBootstrap（UT-JVS-112） | E-03 L1221-1234 | ○ |
| C-24 | JavascriptModulesPlugin.renderRequire（UT-JVS-113） | E-03 L1586+ | ○ |
| C-25 | ArrayPushCallbackChunkFormatPlugin.apply（UT-JVS-114〜117） | E-04 全体 | ○ |
| C-26 | CommonJsChunkFormatPlugin.apply（UT-JVS-118〜121） | E-05 全体 | ○ |
| C-27 | getAllChunks関数（UT-JVS-122〜125） | E-06 全体 | ○ |
| C-28 | generateEntryStartup関数（UT-JVS-126〜129） | E-07 L35-131 | ○ |
| C-29 | getInitialChunkIds関数（UT-JVS-130〜131） | E-07 L139-149 | ○ |
| C-30 | updateHashForEntryStartup関数（UT-JVS-132） | E-07 L158-178 | ○ |
| C-31 | getChunkInfo/createChunkHashHandler（UT-JVS-133〜137） | E-08 全体 | ○ |
| C-32 | JavascriptParserHelpers各関数（UT-JVS-138〜147） | E-09 全体 | ○ |
| C-33 | EnableChunkLoadingPluginの各メソッド（UT-JVS-148〜158） | E-10 全体 | ○ |
| C-34 | VariableInfoクラス（UT-JVS-159〜163） | E-11 L288-315 | ○ |
| C-35 | joinRanges/objectAndMembersToName/getRootName関数（UT-JVS-164〜172） | E-11 L412-460 | ○ |
| C-36 | JavascriptParser.constructor（UT-JVS-173〜174） | E-11 L485-700 | ○ |
| C-37 | JavascriptParser.parse（UT-JVS-175〜178） | E-11 L4708-4789 | ○ |
| C-38 | JavascriptParser.evaluate（UT-JVS-179〜180） | E-11 L4795-4805 | ○ |
| C-39 | JavascriptParser.evaluateExpression（UT-JVS-181〜182） | E-11 L4570-4588 | ○ |
| C-40 | JavascriptParser.parseString/parseCalculatedString（UT-JVS-183〜188） | E-11 L4594-4701 | ○ |
| C-41 | JavascriptParser.isPure（UT-JVS-189〜190） | E-11 L4812-4860+ | ○ |
| C-42 | JavascriptParser.detectMode（UT-JVS-191） | E-11 L4436-4462 | ○ |
| C-43 | JavascriptParser.defineVariable/undefineVariable/isVariableDefined（UT-JVS-192〜195） | E-11 L5086-5122 | ○ |
| C-44 | JavascriptParser.getVariableInfo/setVariable（UT-JVS-196〜197） | E-11 L5122-5159 | ○ |
| C-45 | JavascriptParser.inScope/inFunctionScope/inBlockScope（UT-JVS-198〜200） | E-11 L4316-4436 | ○ |
| C-46 | JavascriptParser.tagVariable/getTagData（UT-JVS-201〜203） | E-11 L5035-5086 | ○ |
| C-47 | JavascriptParser.isStatementLevelExpression（UT-JVS-204） | E-11 L5016-5035 | ○ |
| C-48 | JavascriptParser.parseCommentOptions（UT-JVS-205〜206） | E-11 L5172-5215 | ○ |
| C-49 | chunkHasJs/chunkHasRuntimeOrJsキャッシュ関数（UT-JVS-207〜209） | E-03 L87-148 | ○ |
| C-50 | printGeneratedCodeForStack関数（UT-JVS-210） | E-03 L155-172 | ○ |
| C-51 | getImportAttributes関数（UT-JVS-211〜212） | E-11 L210-277 | ○ |
| C-52 | JavascriptParser内部walkメソッド群の網羅性 | **根拠なし** | △ |
| C-53 | JavascriptParser._initializeEvaluating内部のフック設定詳細 | **根拠なし** | △ |
| C-54 | renderMain内のinlineStartup判定の全分岐パターン | **根拠なし** | △ |
| C-55 | _getRenamedInlineModuleメソッドのテストケース | **根拠なし** | △ |
| C-56 | renderBootstrapのstartupEntrypoint関連の全条件分岐 | **根拠なし** | △ |
| C-57 | JavascriptParser.extractMemberExpressionChainのテストケース | **根拠なし** | △ |
| C-58 | JavascriptParser.getFreeInfoFromVariableのテストケース | **根拠なし** | △ |
| C-59 | JavascriptParser.getMemberExpressionInfoのテストケース | **根拠なし** | △ |
| C-60 | JavascriptParser.getNameForExpressionのテストケース | **根拠なし** | △ |
| C-61 | JavascriptParser.callHooksForExpression系メソッド群のテストケース | **根拠なし** | △ |
| C-62 | JavascriptParser.getRenameIdentifierのテストケース | **根拠なし** | △ |
| C-63 | JavascriptParser.destructuringAssignmentPropertiesForのテストケース | **根拠なし** | △ |

## 4) 不足情報（Unknown / Missing）
- JavascriptParser.jsは約5400行の巨大ファイルであり、walkメソッド群（約100個）全てのテストケースを生成するのは現実的ではないため、主要なpublicメソッドとユーティリティ関数に絞ってテストケースを生成した
  - 候補：walkStatements / walkExpression / walkCallExpression など各walkメソッドの個別テスト
- JavascriptModulesPlugin._getRenamedInlineModule メソッドはプライベートメソッドであり、具体的な入出力の根拠が不足
  - 候補：renderMain経由の間接テスト / 直接呼び出しテスト
- JavascriptParser.extractMemberExpressionChain, getFreeInfoFromVariable, getMemberExpressionInfo, getNameForExpression はメンバー式解析の重要メソッドだが、テスト入力となるASTノードの構築が複雑
  - 候補：実際のJavaScriptコードをパースしたASTを使ったテスト

## 5) リスクフラグ（レビュー観点）
- 1: JavascriptParser.jsのwalkメソッド群は全AST走査に関わるため、テストケース不足が潜在的なバグ見落としにつながるリスクがある（中リスク）
- 1: renderMain/renderBootstrapは多数の条件分岐を含み、テストケースの期待結果が抽象的になっている部分がある（中リスク）
- 0: BasicEvaluatedExpression.jsは完全に解析でき、全メソッドのテストケースが網羅されている（低リスク）
- 0: ChunkHelpers.js, StartupHelpers.js, ChunkFormatHelpers.jsは比較的小さく、主要関数のテストケースが網羅されている（低リスク）
- 0: EnableChunkLoadingPlugin.jsはswitch-case中心で全分岐がカバーされている（低リスク）

## 6) レビュアーチェックリスト（最小）
- [ ] BasicEvaluatedExpressionの全setterメソッドに対する戻り値（this返却）のテストが含まれているか
- [ ] JavascriptGenerator.sourceDependencyのgetInitFragments（deprecated）パスのテストが必要か検討
- [ ] JavascriptModulesPlugin.renderModuleのfactory=trueケースでのキャッシュ動作のテストケースが十分か
- [ ] JavascriptParserのwalkメソッド群について、主要なものの追加テストが必要か判断
- [ ] EnableChunkLoadingPlugin.applyのuniversalタイプ（import/universalの共通ハンドラ）のテストケースが含まれているか
- [ ] getImportAttributes関数のImportExpression分岐（options.properties解析）の網羅性を確認
