Index: src/ast/variables.h |
diff --git a/src/ast/variables.h b/src/ast/variables.h |
index 950db3c0021263f93209609d24cfd61de8a2d58f..420097484e06b22cf389c889ec0281253df661ea 100644 |
--- a/src/ast/variables.h |
+++ b/src/ast/variables.h |
@@ -17,7 +17,7 @@ namespace internal { |
// after binding and variable allocation. |
class Variable: public ZoneObject { |
public: |
- enum Kind { NORMAL, FUNCTION, THIS, ARGUMENTS }; |
+ enum Kind { NORMAL, FUNCTION, THIS, ARGUMENTS, SLOPPY_FUNCTION_NAME }; |
Variable(Scope* scope, const AstRawString* name, VariableMode mode, Kind kind, |
InitializationFlag initialization_flag, |
@@ -71,10 +71,12 @@ class Variable: public ZoneObject { |
bool IsStaticGlobalObjectProperty() const; |
bool is_dynamic() const { return IsDynamicVariableMode(mode_); } |
- bool is_const_mode() const { return IsImmutableVariableMode(mode_); } |
bool binding_needs_init() const { |
return initialization_flag_ == kNeedsInitialization; |
} |
+ bool throw_on_const_assignment(LanguageMode language_mode) const { |
+ return kind_ != SLOPPY_FUNCTION_NAME || is_strict(language_mode); |
+ } |
bool is_function() const { return kind_ == FUNCTION; } |
bool is_this() const { return kind_ == THIS; } |