diff --git a/src/domain/wasm-worker-protocol.ts b/src/domain/wasm-worker-protocol.ts index 43a6041f..95208660 100644 --- a/src/domain/wasm-worker-protocol.ts +++ b/src/domain/wasm-worker-protocol.ts @@ -19,7 +19,6 @@ import type { Export, Import, LanguageId, - ParamBinding, TypeMapEntry, } from '../types.js'; @@ -75,7 +74,6 @@ export interface SerializedExtractorOutput { newExpressions?: readonly string[]; returnTypeMap?: Array<[string, TypeMapEntry]>; callAssignments?: CallAssignment[]; - paramBindings?: ParamBinding[]; } export interface WorkerParseResponseOk { diff --git a/tests/parsers/javascript.test.ts b/tests/parsers/javascript.test.ts index 1cb8ad5d..1411f42d 100644 --- a/tests/parsers/javascript.test.ts +++ b/tests/parsers/javascript.test.ts @@ -908,4 +908,29 @@ describe('JavaScript parser', () => { ); }); }); + + describe('Phase 8.3e: extractSpreadForOfWalk — exported arrow function funcStack (#1354)', () => { + it('tracks plain const arrow function on funcStack for for-of loop', () => { + const symbols = parseJS(`const f = (arr) => { for (const x of arr) x(); };`); + expect(symbols.forOfBindings).toContainEqual(expect.objectContaining({ enclosingFunc: 'f' })); + }); + + it('tracks exported const arrow function on funcStack for for-of loop', () => { + const symbols = parseJS(`export const f = (arr) => { for (const x of arr) x(); };`); + expect(symbols.forOfBindings).toContainEqual(expect.objectContaining({ enclosingFunc: 'f' })); + }); + + it('records correct varName and sourceName for exported arrow for-of', () => { + const symbols = parseJS( + `export const handleItems = (items) => { for (const cb of items) cb(); };`, + ); + expect(symbols.forOfBindings).toContainEqual( + expect.objectContaining({ + varName: 'cb', + sourceName: 'items', + enclosingFunc: 'handleItems', + }), + ); + }); + }); });