we (web engine): Experimental web browser project to understand the limits of Claude

Implement JS bytecode format and AST-to-bytecode compiler master

Add register-based bytecode instruction set designed for JIT compilation and a recursive-descent compiler that transforms the parser AST into bytecode functions. New files: - bytecode.rs — Instruction set (50+ opcodes), constant pool, function objects, bytecode builder with jump patching, and disassembler - compiler.rs — AST → bytecode compiler with greedy register allocation, scope-aware local variable binding, and support for all statement and expression types Instruction categories: register loads, arithmetic, bitwise, comparison, logical, control flow (jumps, calls, returns), object/property access, closures, and small-integer optimization (LoadInt8). Compiler handles: variable declarations, function/class/arrow declarations, if/else, for/while/do-while loops with break/continue/labels, switch, try/catch, member access, assignment (simple and compound), logical short-circuit, conditional expressions, template literals, destructuring, object/array literals, and nested function compilation. 52 unit tests covering bytecode encoding, constant pool dedup, jump patching, disassembler output, and compilation of all major grammar productions. All 176 workspace JS tests pass. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>


+2644
3 changed files