em_reset cleared only one row of em_meth_label: ldx #$FF / dex / bpl exits
after the first store because $FE is negative. Method label ids from the count
pass survived into the emitting pass after fl_init had freed every flow label,
so a later fl_alloc could hand the same id to another label. The loop now
clears all 256 rows, and labels are stored as id + 1 so 0 means unassigned.
hello-test.s never cleared em_on. Since 5489ae6 added emitter BSS, em_on lands
on RAM that VICE's power-on pattern leaves non-zero, so the statement emitter
ran without print vectors and reported E227 at end program. The fixture now
clears em_on before parse_file, as every emitter caller must.
harness.tests.ps1 embedded quotes in arguments for the call operator, which
PowerShell 7.3+ escapes into the path; it now passes plain arguments and runs
under both Windows PowerShell 5.1 and PowerShell 7.
Generated programs now have control-flow emission, text and fault output, a
free-list heap, class descriptors, and object construction/deletion. Each
story lands with an x128 fixture and verifier so the runtime stays proven
before the parser drives code generation.
🤖 Generated with Codebuff
Co-Authored-By: Codebuff <noreply@codebuff.com>