Index: src/scopes.h |
diff --git a/src/scopes.h b/src/scopes.h |
index c58d124939676e876a848d5741c94552bab76fa8..186530ceab2ef134b2384ef32e5b9b588ecc182e 100644 |
--- a/src/scopes.h |
+++ b/src/scopes.h |
@@ -6,6 +6,7 @@ |
#define V8_SCOPES_H_ |
#include "src/ast.h" |
+#include "src/pending-compilation-error-handler.h" |
#include "src/zone.h" |
namespace v8 { |
@@ -130,7 +131,7 @@ class Scope: public ZoneObject { |
// Declare a local variable in this scope. If the variable has been |
// declared before, the previously declared variable is returned. |
Variable* DeclareLocal(const AstRawString* name, VariableMode mode, |
- InitializationFlag init_flag, |
+ InitializationFlag init_flag, Variable::Kind kind, |
MaybeAssignedFlag maybe_assigned_flag = kNotAssigned); |
// Declare an implicit global variable in this scope which must be a |
@@ -142,12 +143,14 @@ class Scope: public ZoneObject { |
// Create a new unresolved variable. |
VariableProxy* NewUnresolved(AstNodeFactory* factory, |
const AstRawString* name, |
- int position = RelocInfo::kNoPosition) { |
+ int start_position = RelocInfo::kNoPosition, |
+ int end_position = RelocInfo::kNoPosition) { |
// Note that we must not share the unresolved variables with |
// the same name because they may be removed selectively via |
// RemoveUnresolved(). |
DCHECK(!already_resolved()); |
- VariableProxy* proxy = factory->NewVariableProxy(name, false, position); |
+ VariableProxy* proxy = |
+ factory->NewVariableProxy(name, false, start_position, end_position); |
unresolved_.Add(proxy, zone_); |
return proxy; |
} |
@@ -317,6 +320,12 @@ class Scope: public ZoneObject { |
// Does any inner scope access "this". |
bool inner_uses_this() const { return inner_scope_uses_this_; } |
+ const Scope* NearestOuterEvalScope() const { |
+ if (is_eval_scope()) return this; |
+ if (outer_scope() == nullptr) return nullptr; |
+ return outer_scope()->NearestOuterEvalScope(); |
+ } |
+ |
// --------------------------------------------------------------------------- |
// Accessors. |
@@ -470,6 +479,10 @@ class Scope: public ZoneObject { |
return params_.Contains(variables_.Lookup(name)); |
} |
+ // Error handling. |
+ void ReportMessage(int start_position, int end_position, const char* message, |
+ const AstRawString* arg); |
+ |
// --------------------------------------------------------------------------- |
// Debugging. |
@@ -696,6 +709,8 @@ class Scope: public ZoneObject { |
AstValueFactory* ast_value_factory_; |
Zone* zone_; |
+ |
+ PendingCompilationErrorHandler pending_error_handler_; |
}; |
} } // namespace v8::internal |