-
Notifications
You must be signed in to change notification settings - Fork 3
Support the TC39 pipeline operator #1015
Copy link
Copy link
Open
Labels
engineTGocciaEngine: language semantics, ECMAScript built-ins, parser, interpreter, bytecode VMTGocciaEngine: language semantics, ECMAScript built-ins, parser, interpreter, bytecode VMnew featureNew feature or requestNew feature or requestspec complianceMismatch against official JavaScript/TypeScript specificationMismatch against official JavaScript/TypeScript specification
Milestone
Description
Metadata
Metadata
Assignees
Labels
engineTGocciaEngine: language semantics, ECMAScript built-ins, parser, interpreter, bytecode VMTGocciaEngine: language semantics, ECMAScript built-ins, parser, interpreter, bytecode VMnew featureNew feature or requestNew feature or requestspec complianceMismatch against official JavaScript/TypeScript specificationMismatch against official JavaScript/TypeScript specification
Summary
Implement the Stage 2 TC39 proposal: https://github.com/tc39/proposal-pipeline-operator
Implement the current proposal exactly: topic syntax, precedence, associativity, early errors, evaluation order, and await/yield interactions.
Why
This proposal fits GocciaScript's modern ECMAScript surface and the 0.13.0 proposal roadmap. It should extend the engine's existing architecture rather than arrive as a userland shim.
Current behavior
No pipeline expression or topic-reference syntax exists.
Expected behavior
Implement the current proposal exactly: topic syntax, precedence, associativity, early errors, evaluation order, and await/yield interactions.
Scope notes
Treat the live proposal as authoritative; do not support legacy variants. Add dedicated AST/bytecode lowering after #875, evaluating each stage once and preserving suspension/scopes. Cover arrows, calls, optional chains, ASI adjacency, docs, formatting, and tests. Additive syntax: no flag.
Related bytecode roadmap: #871 and #875. Update the relevant language/built-in documentation and Goccia proposal inventory. Use the proposal repository and its current specification at implementation time; add focused project tests and matching pinned Test262/proposal coverage without regressions.
Acceptance criteria