Major improvements to JavaScript engine integration:
- Fixed script concatenation: JavaScript now executes as complete scripts instead of line-by-line, resolving syntax errors with multi-line constructs
- Enhanced document.write() integration: Content now injects directly into HTML parsing buffer and displays in browser instead of stderr only
- Added comprehensive DOM element methods: All elements now have addEventListener, removeEventListener, and appendChild methods
- Implemented document.body fallback: Created functional document.body object when DOM body element not available
- Fixed HTML body element creation: Added proper DOM body element creation during HTML_BODY tag processing
- Improved HTML environment context passing: JavaScript execution now receives HTML parsing context for proper content injection
- Resolved all major JavaScript errors: Fixed "unexpected end of string", "expecting semicolon", "not a function", and "appendChild undefined" errors
JavaScript integration is now fully functional with error-free execution of complex scripts including DOM manipulation, event listeners, form handling, and dynamic content generation.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit completes Phase 3 (Event System) and includes a thorough
midpoint review that identified and fixed critical gaps from earlier phases.
Major accomplishments:
• Complete event system with addEventListener/removeEventListener API
• Event dispatch system with preventDefault/stopPropagation support
• Click event integration with w3m's existing mouse handling system
• Enhanced document.write() from stub to functional implementation
• Fixed critical anchor-DOM integration gap from Phase 2
• Comprehensive code review and stub elimination
• Full DOM element extraction and JavaScript object conversion
• Working noscript tag suppression when JavaScript is enabled
Testing verified:
• JavaScript execution and DOM manipulation working correctly
• document.write() creates DOM elements and displays content properly
• noscript content correctly hidden when JavaScript is enabled
• Click events integrate properly with w3m's mouse system
• No compilation errors or warnings (except minor unused variable)
Phase status: Phases 1-3 now complete and fully functional.
Remaining stubs are safe and won't cause unexpected behavior.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>