Reviewers: William Hesse, fschneider, Description: Split the AST LoopStatement type into separate types for do/while, while, and for loops.
Previously they were distinguished by a type field, which required runtime asserts to avoid invalid nodes (since not all loop types have the same internal structure). Now they C++ type system is used to require well-formed loop ASTs. Because they do not share compilation code, we had very large functions in the code generators that merely did a runtime dispatch to a specific implementation based on the type. Please review this at http://codereview.chromium.org/269049 SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected files: M src/arm/codegen-arm.h M src/arm/codegen-arm.cc M src/ast.h M src/ast.cc M src/codegen.h M src/codegen.cc M src/ia32/codegen-ia32.h M src/ia32/codegen-ia32.cc M src/parser.cc M src/prettyprinter.cc M src/rewriter.cc M src/usage-analyzer.cc M src/x64/codegen-x64.h M src/x64/codegen-x64.cc --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---
