Hold the shipped source to ECMAScript alone, and run the suite on Deno and Bun #39
@@ -62,11 +62,11 @@ they never reach a consumer.
|
|||||||
|
|
||||||
- Runs on any ES2022 engine, not only Node — a browser as readily as a server. The shipped source
|
- Runs on any ES2022 engine, not only Node — a browser as readily as a server. The shipped source
|
||||||
is ECMAScript and nothing else: no host import, no host global, no DOM. `tsconfig.build.json` is
|
is ECMAScript and nothing else: no host import, no host global, no DOM. `tsconfig.build.json` is
|
||||||
that gate, typechecking the shipped files alone with `types: []` and `lib: ES2022`, so `node:fs`,
|
that gate, typechecking the shipped files alone, so `node:fs`, `process` and an ES2024 method are
|
||||||
`process` and an ES2024 method are compile errors here rather than a consumer's crash there. The
|
compile errors here rather than a consumer's crash there. The standard is the line, never an
|
||||||
standard is the line, never an engine list: one implementing it in part — Hermes is the live
|
engine list: one implementing it in part — Hermes is the live doubt, on §10's property escapes
|
||||||
doubt, on the Unicode property escapes and the lookbehind the markdown grammar spells — is out of
|
and on lookbehind — is out of scope rather than a bug. Node's test runner, the corpus reads and
|
||||||
scope rather than a bug. Node's test runner, the corpus reads and the build are the repo's own,
|
the build are the repo's own,
|
||||||
never the library's, and `engines.node` states the floor the shipped JavaScript needs — `>=18` —
|
never the library's, and `engines.node` states the floor the shipped JavaScript needs — `>=18` —
|
||||||
never the higher one those repo-only tools want.
|
never the higher one those repo-only tools want.
|
||||||
- ESM only — no CommonJS build, no dual-package hazard.
|
- ESM only — no CommonJS build, no dual-package hazard.
|
||||||
@@ -113,8 +113,9 @@ descends, so a document reports its first error in document order.
|
|||||||
differs from npm → publish and tag `vX.Y.Z`. No bump, no deploy; the bump is each shipping PR's
|
differs from npm → publish and tag `vX.Y.Z`. No bump, no deploy; the bump is each shipping PR's
|
||||||
deliberate semver judgment.
|
deliberate semver judgment.
|
||||||
- Renovate watches devDependencies, Docker pins and action tags; automerges everything on green CI.
|
- Renovate watches devDependencies, Docker pins and action tags; automerges everything on green CI.
|
||||||
- Docker images pin the full patch version (`node:24.19.0-alpine3.24`, never `node:24`); actions
|
- Docker images pin the full patch version (`node:24.19.0-alpine3.24`, never `node:24`), as
|
||||||
pin semver tags.
|
specific as the publisher tags: `oven/bun:1.4.0-alpine` pins Bun's patch and leaves the base
|
||||||
|
floating because Bun publishes nothing narrower. Actions pin semver tags.
|
||||||
|
|
||||||
## 10. Tests first, in Docker
|
## 10. Tests first, in Docker
|
||||||
|
|
||||||
|
|||||||
@@ -64,5 +64,5 @@ Personas, never named consumers (AGENTS.md §7):
|
|||||||
## The package
|
## The package
|
||||||
|
|
||||||
ESM only, no runtime dependencies, public npmjs. Built JavaScript with `.d.ts` beside it.
|
ESM only, no runtime dependencies, public npmjs. Built JavaScript with `.d.ts` beside it.
|
||||||
Pure ECMAScript at an ES2022 baseline, reaching for no host API, so a browser runs it as readily
|
Pure ECMAScript at an ES2022 baseline, reaching for no host API; the test suite runs under Node,
|
||||||
as a server; the test suite runs under Node, Deno and Bun. Contract: `AGENTS.md` §5–6.
|
Deno and Bun. Contract: `AGENTS.md` §5–6.
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ numbering is the order the work was planned in, not the order it ships.
|
|||||||
other half. Headless Firefox is that page, settling both at once: the browser proof, and the
|
other half. Headless Firefox is that page, settling both at once: the browser proof, and the
|
||||||
only SpiderMonkey there is, `ci.sh`'s three legs being two V8s and a JavaScriptCore that is
|
only SpiderMonkey there is, `ci.sh`'s three legs being two V8s and a JavaScriptCore that is
|
||||||
not Safari's. `engines.node` gets its one-line proof here
|
not Safari's. `engines.node` gets its one-line proof here
|
||||||
too — `import('./dist/index.js')` under a pinned `node:18` image, which cannot run the
|
too — `import('./dist/index.js')` under a pinned Node 18 image, which cannot run the
|
||||||
suite that type stripping wants 22+ for, but proves exactly what the field claims.
|
suite that type stripping wants 22+ for, but proves exactly what the field claims.
|
||||||
**Settled** (the maintainer, 2026-09-01): the round-trip proved over the checked-in corpus
|
**Settled** (the maintainer, 2026-09-01): the round-trip proved over the checked-in corpus
|
||||||
is what `0.1.0` ships on, and the open-ended proof work follows it rather than gating it —
|
is what `0.1.0` ships on, and the open-ended proof work follows it rather than gating it —
|
||||||
|
|||||||
Reference in New Issue
Block a user