Reviewers: fschneider,

Description:
Fix a bug where if a non-lazily-compiled function is a candidate for
toplevel compilation and the toplevel compiler cannot handle the
function, we would erroneously signal a stack overflow instead of
falling back on the optimizing compiler.


Please review this at http://codereview.chromium.org/366005

SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/

Affected files:
   M     src/compiler.cc


Index: src/compiler.cc
===================================================================
--- src/compiler.cc     (revision 3218)
+++ src/compiler.cc     (working copy)
@@ -503,6 +503,7 @@
      }

      // Generate code and return it.
+    bool is_compiled = false;
      if (FLAG_fast_compiler && literal->try_fast_codegen()) {
        CodeGenSelector selector;
        CodeGenSelector::CodeGenTag code_gen = selector.Select(literal);
@@ -510,9 +511,12 @@
          code = FastCodeGenerator::MakeCode(literal,
                                             script,
                                             false);  // Not eval.
+        is_compiled = true;
        }
-      ASSERT(code_gen == CodeGenSelector::NORMAL);
-    } else {
+    }
+
+    if (!is_compiled) {
+      // We didn't try the fast compiler, or we failed to select it.
        code = CodeGenerator::MakeCode(literal,
                                       script,
                                       false);  // Not eval.



--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to