The emitter assumes it has access to a token stream; in order to implement AST reflection, refactor the compiler so that it's possible to emit code from an AST that doesn't have an associated token stream. struct JSSourceCompiler : JSCompiler struct JSAstCompiler : JSCompiler Patch forthcoming.
Created attachment 428967 [details] [diff] [review] first attempt at JSSourceCompiler refactoring First attempt. Currently breaks tests: ecma_5/strict/11.3.1.js ecma_5/strict/11.3.2.js ecma_5/strict/11.4.4.js ecma_5/strict/11.4.5.js ecma_5/strict/11.13.1.js ecma_5/strict/11.13.2.js ecma_5/strict/12.2.1.js ecma_5/strict/12.14.1.js ecma_5/strict/13.1.js ecma_5/strict/regress-532254.js js1_5/Regress/regress-352197.js js1_8_1/strict/12.2.1.js js1_8_1/strict/generator-eval-arguments.js js1_8_1/strict/let-block-eval-arguments.js Most of these problems seem to be one bug: it's not enabling strict mode correctly.
Created attachment 428997 [details] [diff] [review] second try (fixed error-generation logic bug) All tests pass now. Still seems to have an error-display bug: doesn't print out the source line of the error anymore.
Created attachment 429010 [details] [diff] [review] restored missing error source-line reporting OK, fixed the bug where it wasn't reporting the source line of errors. And got rid of some dead comments. There's one XXX_dherman for review: I'm not sure what the proper ownership story is for JSCodeGenerator::filename.
uh, I didn't realize this was a 300k patch. We should probably run it through the benchmark Leary put together in bug 548621, just to be safe.
No argument here; I definitely want my work checked. Thanks, Dave
My apologies for the portly patch. I'm splitting this up into a number of smaller patches-- note the new dependencies on bug 518055, bug 550629, bug 550350, and bug 550630. Dave
Obsoleted by bug 558437. Dave
Status: NEW → RESOLVED
Last Resolved: 8 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.