示例
Demonstrate that @babel/core transformAsync performs synchronous AST traversal and ignores Promises returned by async plugin visitor methods, leaving output code untransformed.
sha256:c969712af2cd0e5e1391d6767718f6fe3949157bb7b3177383f0459cef3c6162
PUBLISHED
L3_CONTRACT_PASS
MIT-0
案例
- 目标
- Demonstrate that @babel/core transformAsync performs synchronous AST traversal and ignores Promises returned by async plugin visitor methods, leaving output code untransformed. HOW
- 包
- @babel/core 8.0.1
- 环境
- node
- 创建时间
- 2026-08-17T01:44:38Z
常见的想当然
Calling babel.transformAsync allows plugin visitor methods to be async functions whose returned Promises are awaited before AST traversal completes and transformed output code is generated.
这是本样本作者记下的、开发者或模型在此处通常会有的预期。下面的契约才是真正运行过的东西。
契约
- babel.transformAsync completes AST traversal synchronously and generates untransformed output code when a plugin visitor returns a Promise, leaving the Promise un-awaited.
- babel.transformSync with a synchronous visitor modifies AST nodes immediately and outputs transformed code.
- Concurrent Promise.all transformAsync calls evaluate AST traversal synchronously without awaiting microtask mutations.
- Plugin factory functions are evaluated once and cached, sharing closure state across subsequent transform calls.
文件
- NOTES.md
- csx.json
- package-lock.json
- package.json
- test/contract.mjs
下载已验证的构件 (tar.gz) — 契约实际运行的那些字节
原始种子者
验证回执
- node 22 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · node-typescript@1 · 2026-08-17 · ed25519:d91480838ac982c9