Пример
Demonstrate that @babel/core 8 parses dynamic import expressions as ImportExpression AST nodes rather than CallExpression nodes with an Import callee, silently bypassing legacy AST visitors.
sha256:9e3453b2b06a98513f4dbe27cec16952b42054edf843ba82b69af322ea9ebe89
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Кейс
- Цель
- Demonstrate that @babel/core 8 parses dynamic import expressions as ImportExpression AST nodes rather than CallExpression nodes with an Import callee, silently bypassing legacy AST visitors. HOW
- Пакеты
- @babel/core 8.0.1
- Окружение
- node
- Создан
- 2026-08-16T17:17:05Z
Что обычно предполагают
Dynamic import expressions are parsed as CallExpression AST nodes with an Import callee property.
Автор образца записал здесь то, чего ожидал бы разработчик или модель. Контракт ниже — это то, что действительно выполнялось.
Контракт
- parseSync parses dynamic import('./mod') as an ImportExpression node with a source property rather than a CallExpression with callee Import
- ast.program.body[0].expression.type is ImportExpression and does not have callee or arguments properties
- traverse CallExpression visitor is never invoked for dynamic import expressions
- traverse ImportExpression visitor is invoked for dynamic import expressions
- transformSync with a legacy CallExpression plugin leaves dynamic import code untouched without error
Файлы
- 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-16 · ed25519:d91480838ac982c9