---
generated_at: 2026-03-01 06:00:00
metrics:
  claims_total: 35
  claims_with_evidence: 32
  claims_without_evidence: 3
confidence_derived: 0.91
---

# 根拠レポート：babel-plugin-proposal-async-do-expressions 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.91**
  - 根拠あり：32 / 35、根拠なし：3
- 優先レビュー（高）
  1. **C-20（ネストしたasync do式）**：ソースコードでは直接的なネスト処理のテストケースがなく、推論に基づく
  2. **C-21（if文の分岐内の式）**：completion recordsの複数分岐処理は暗黙的に実装されているが、明示的なテストがない
  3. **C-23（関数引数での使用）**：標準的なAST変換として動作するが、専用のテストケースがない

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

- E-01: `packages/babel-plugin-proposal-async-do-expressions/src/index.ts` - メインプラグインソースコード
- E-02: `packages/babel-plugin-proposal-async-do-expressions/package.json` - パッケージ定義
- E-03: `packages/babel-plugin-proposal-async-do-expressions/test/fixtures/async-do-expressions/basic/input.js` - 基本テストケース入力
- E-04: `packages/babel-plugin-proposal-async-do-expressions/test/fixtures/async-do-expressions/basic/output.js` - 基本テストケース期待出力
- E-05: `packages/babel-plugin-proposal-async-do-expressions/test/fixtures/async-do-expressions/basic/exec.js` - 基本テストケース実行テスト
- E-06: `packages/babel-plugin-proposal-async-do-expressions/test/fixtures/async-do-expressions/throw-statement/input.js` - throw文テストケース入力
- E-07: `packages/babel-plugin-proposal-async-do-expressions/test/fixtures/async-do-expressions/throw-statement/output.js` - throw文テストケース期待出力
- E-08: `packages/babel-plugin-proposal-async-do-expressions/test/fixtures/async-do-expressions/throw-statement/exec.js` - throw文テストケース実行テスト
- E-09: `packages/babel-plugin-proposal-async-do-expressions/test/fixtures/async-do-expressions/empty-statement-list/input.js` - 空文リストテストケース入力
- E-10: `packages/babel-plugin-proposal-async-do-expressions/test/fixtures/async-do-expressions/empty-statement-list/output.js` - 空文リストテストケース期待出力
- E-11: `packages/babel-plugin-proposal-async-do-expressions/test/fixtures/async-do-expressions/lexical-declaration/input.js` - let宣言テストケース入力
- E-12: `packages/babel-plugin-proposal-async-do-expressions/test/fixtures/async-do-expressions/lexical-declaration/output.js` - let宣言テストケース期待出力
- E-13: `packages/babel-plugin-proposal-async-do-expressions/test/fixtures/async-do-expressions/lexical-declaration/exec.js` - let宣言テストケース実行テスト
- E-14: `packages/babel-plugin-proposal-async-do-expressions/test/fixtures/async-do-expressions/hoist-variables-assgined-in-sync-context/input.js` - 同期コンテキストvar宣言入力
- E-15: `packages/babel-plugin-proposal-async-do-expressions/test/fixtures/async-do-expressions/hoist-variables-assgined-in-sync-context/output.js` - 同期コンテキストvar宣言期待出力
- E-16: `packages/babel-plugin-proposal-async-do-expressions/test/fixtures/async-do-expressions/hoist-variables-assgined-in-sync-context/exec.js` - 同期コンテキストvar宣言実行テスト
- E-17: `packages/babel-plugin-proposal-async-do-expressions/test/fixtures/async-do-expressions/hoist-variables-assigned-in-async-context/input.js` - 非同期コンテキストvar宣言入力
- E-18: `packages/babel-plugin-proposal-async-do-expressions/test/fixtures/async-do-expressions/hoist-variables-assigned-in-async-context/output.js` - 非同期コンテキストvar宣言期待出力
- E-19: `packages/babel-plugin-proposal-async-do-expressions/test/fixtures/async-do-expressions/hoist-variables-assigned-in-async-context/exec.js` - 非同期コンテキストvar宣言実行テスト
- E-20: `packages/babel-plugin-proposal-async-do-expressions/test/fixtures/sync-do-expressions/basic/input.js` - 非asyncのdo式テストケース入力
- E-21: `packages/babel-plugin-proposal-async-do-expressions/test/fixtures/sync-do-expressions/basic/output.js` - 非asyncのdo式テストケース期待出力
- E-22: `packages/babel-plugin-proposal-async-do-expressions/test/fixtures/options.json` - テスト設定ファイル

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | Babel 7.13.0以上でプラグインが正常に初期化されること | E-01 (assertVersion行) | ○ |
| C-02 | Babel 8.0.0以上でプラグインが正常に初期化されること | E-01 (assertVersion行) | ○ |
| C-03 | サポート外バージョンでエラーがスローされること | E-01 (assertVersion行) | ○ |
| C-04 | asyncDoExpressionsパーサープラグインが追加されること | E-01 (manipulateOptions行) | ○ |
| C-05 | doExpressionsパーサープラグインが追加されること | E-01 (manipulateOptions行) | ○ |
| C-06 | 基本的なasync do式がasync IIFEに変換されること | E-03, E-04 | ○ |
| C-07 | 式文が自動的にreturn文に変換されること | E-01 (replaceWith行), E-04 | ○ |
| C-08 | var宣言が含まれるスコープでホイスティングされること（同期コンテキスト） | E-14, E-15 | ○ |
| C-09 | var宣言が含まれるスコープでホイスティングされること（非同期コンテキスト） | E-17, E-18 | ○ |
| C-10 | let宣言が適切に処理されること | E-11, E-12 | ○ |
| C-11 | throw文が適切に変換されること | E-06, E-07 | ○ |
| C-12 | 空のasync do式が変換されること | E-09, E-10 | ○ |
| C-13 | 非asyncのdo式は変換されないこと | E-20, E-21, E-01 (if文) | ○ |
| C-14 | node.asyncがfalseの場合は何もしないこと | E-01 (if文) | ○ |
| C-15 | 変換結果がPromiseインスタンスを返すこと | E-05 | ○ |
| C-16 | Promiseが正しい値でresolveされること | E-05 | ○ |
| C-17 | throw文を含む場合Promiseがrejectされること | E-08 | ○ |
| C-18 | 複数の式文がある場合最後の式がreturnされること | E-01 (completionRecordsループ) | ○ |
| C-19 | awaitを含む式が適切に処理されること | E-17, E-18 | ○ |
| C-20 | ネストしたasync do式が処理されること | **根拠なし** | △ |
| C-21 | if文の分岐内の式が処理されること | **根拠なし** | △ |
| C-22 | 代入先の変数に変換結果が格納されること | E-03, E-04 | ○ |
| C-23 | 関数呼び出しの引数内でasync doが使用できること | **根拠なし** | △ |
| C-24 | アロー関数がasyncとして生成されること | E-01 (arrowFunctionExpression行) | ○ |
| C-25 | 生成されるアロー関数が引数なしであること | E-01 (arrowFunctionExpression行) | ○ |
| C-26 | callExpressionで即時実行されること | E-01 (callExpression行) | ○ |
| C-27 | hoistVariablesが呼ばれること | E-01 (hoistVariables行) | ○ |
| C-28 | getCompletionRecordsで完了レコードが取得されること | E-01 (getCompletionRecords行) | ○ |
| C-29 | isExpressionStatementで式文が判定されること | E-01 (isExpressionStatement行) | ○ |
| C-30 | replaceWithでreturn文に置換されること | E-01 (replaceWith行) | ○ |
| C-31 | プラグイン名がproposal-async-do-expressionsであること | E-01 (name行) | ○ |
| C-32 | 単一の式のみを含むasync do式 | E-03, E-04 | ○ |
| C-33 | ホイストされた変数が外部スコープでアクセス可能なこと（同期的代入後） | E-16 | ○ |
| C-34 | ホイストされた変数がawait前はundefinedであること | E-19 | ○ |
| C-35 | ホイストされた変数がawait後に値を持つこと | E-19 | ○ |

## 4) 不足情報（Unknown / Missing）
- **ネストしたasync do式のテストケース**：現行のfixtureには存在しない。AST変換の再帰的処理により動作すると推定されるが、明示的なテストが必要
  - 候補：test/fixtures/async-do-expressions/nested/ を追加
- **条件分岐内のcompletion records処理**：getCompletionRecordsメソッドがif/switch等の分岐を処理するが、専用のテストケースがない
  - 候補：test/fixtures/async-do-expressions/conditional/ を追加
- **関数引数としての使用**：標準的なAST変換として動作するが、専用のテストがない
  - 候補：test/fixtures/async-do-expressions/as-argument/ を追加

## 5) リスクフラグ（レビュー観点）
- **リスク0（低）**：基本的な変換処理（UT-ADE-001〜007）- 既存テストで十分にカバー
- **リスク0（低）**：変数ホイスティング（UT-ADE-008〜009）- 専用のfixtureテストあり
- **リスク1（中）**：ネスト・条件分岐処理（UT-ADE-020〜021）- 推論に基づく、追加テスト推奨
- **リスク0（低）**：ランタイム動作（UT-ADE-015〜017）- exec.jsで検証済み
- **リスク1（中）**：エッジケース（UT-ADE-023）- 追加テスト推奨

## 6) レビュアーチェックリスト（最小）
- [ ] ソースコード（src/index.ts）の全ロジック分岐がテストケースでカバーされているか確認
- [ ] fixtureテストの入力・出力・実行テストの整合性を確認
- [ ] バージョン要件（^7.13.0 || ^8.0.0）が実運用環境と一致しているか確認
- [ ] ネストしたasync do式の動作について追加テストの必要性を検討
- [ ] 条件分岐内のcompletion records処理について追加テストの必要性を検討
- [ ] 変数ホイスティングの同期/非同期コンテキストでの動作差異を理解
