Reviewers: ulan,

Description:
Adapt pre-parser heuristics for lazy compilation.

[email protected]


Please review this at https://chromiumcodereview.appspot.com/10540120/

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

Affected files:
  M src/parser.cc


Index: src/parser.cc
diff --git a/src/parser.cc b/src/parser.cc
index 7c51b694c88022d06b66416a9764c5e7badb56b7..903cb3bcd465b11ff7f149314b6354accf035607 100644
--- a/src/parser.cc
+++ b/src/parser.cc
@@ -4521,7 +4521,6 @@ FunctionLiteral* Parser::ParseFunctionLiteral(Handle<String> function_name,
     // The heuristics are:
// - It must not have been prohibited by the caller to Parse (some callers
     //   need a full AST).
-    // - The outer scope must be trivial (only global variables in scope).
// - The function mustn't be a function expression with an open parenthesis
     //   before; we consider that a hint that the function will be called
     //   immediately, and it would be a waste of time to make it lazily
@@ -4529,8 +4528,6 @@ FunctionLiteral* Parser::ParseFunctionLiteral(Handle<String> function_name, // These are all things we can know at this point, without looking at the
     // function itself.
     bool is_lazily_compiled = (mode() == PARSE_LAZILY &&
- top_scope_->outer_scope()->is_global_scope() &&
-                               top_scope_->HasTrivialOuterContext() &&
                                !parenthesized_function_);
parenthesized_function_ = false; // The bit was set for this function only.



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

Reply via email to