Reviewers: ulan,
Message:
ulan, ptal
Description:
PreParser cleanup: no need to track with-ness of scopees.
Historically, we used to track the "with-ness" of a scope differently; not
creating a with scope, but setting a property on the scope (see
https://codereview.chromium.org/5166006 ). For laziness decisions, checking
the
with-ness should be unnecessary: the current scope is function scope, and
if the
outer scope is global scope, there's surely no with scope in between.
[email protected]
BUG=
Please review this at https://codereview.chromium.org/209863004/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+2, -16 lines):
M src/preparser.h
M src/preparser.cc
Index: src/preparser.cc
diff --git a/src/preparser.cc b/src/preparser.cc
index
459cb6ae8a3bd00491ff90b75a88d8b12869650b..31c73883e7d6cad78c8100667eadecc18fcf1e3f
100644
--- a/src/preparser.cc
+++ b/src/preparser.cc
@@ -850,7 +850,6 @@ PreParser::Expression PreParser::ParseFunctionLiteral(
// Parse function body.
ScopeType outer_scope_type = scope_->type();
- bool inside_with = scope_->inside_with();
PreParserScope function_scope(scope_, FUNCTION_SCOPE);
FunctionState function_state(&function_state_, &scope_, &function_scope);
function_state.set_is_generator(is_generator);
@@ -892,8 +891,7 @@ PreParser::Expression PreParser::ParseFunctionLiteral(
// See Parser::ParseFunctionLiteral for more information about lazy
parsing
// and lazy compilation.
- bool is_lazily_parsed = (outer_scope_type == GLOBAL_SCOPE &&
- !inside_with && allow_lazy() &&
+ bool is_lazily_parsed = (outer_scope_type == GLOBAL_SCOPE &&
allow_lazy() &&
!parenthesized_function_);
parenthesized_function_ = false;
Index: src/preparser.h
diff --git a/src/preparser.h b/src/preparser.h
index
ee8e46b96e6e00bb41ca3d926918206a40606e5e..080b7728730b576a18adcb6b5699f8dd20d5e4fb
100644
--- a/src/preparser.h
+++ b/src/preparser.h
@@ -678,18 +678,7 @@ class PreParserScope {
public:
explicit PreParserScope(PreParserScope* outer_scope, ScopeType
scope_type)
: scope_type_(scope_type) {
- if (outer_scope) {
- scope_inside_with_ = outer_scope->scope_inside_with_ ||
is_with_scope();
- strict_mode_ = outer_scope->strict_mode();
- } else {
- scope_inside_with_ = is_with_scope();
- strict_mode_ = SLOPPY;
- }
- }
-
- bool is_with_scope() const { return scope_type_ == WITH_SCOPE; }
- bool inside_with() const {
- return scope_inside_with_;
+ strict_mode_ = outer_scope ? outer_scope->strict_mode() : SLOPPY;
}
ScopeType type() { return scope_type_; }
@@ -698,7 +687,6 @@ class PreParserScope {
private:
ScopeType scope_type_;
- bool scope_inside_with_;
StrictMode strict_mode_;
};
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.