| Index: src/compiler.h
|
| diff --git a/src/compiler.h b/src/compiler.h
|
| index ecf112072c6e8d71ead58d95f4e4a7fbd3104515..46207560d92c705e8fb53cda4513ede37de555b4 100644
|
| --- a/src/compiler.h
|
| +++ b/src/compiler.h
|
| @@ -52,9 +52,10 @@ class CompilationInfo BASE_EMBEDDED {
|
| bool is_lazy() const { return IsLazy::decode(flags_); }
|
| bool is_eval() const { return IsEval::decode(flags_); }
|
| bool is_global() const { return IsGlobal::decode(flags_); }
|
| - bool is_strict_mode() const { return strict_mode_flag() == kStrictMode; }
|
| - StrictModeFlag strict_mode_flag() const {
|
| - return StrictModeFlagField::decode(flags_);
|
| + bool is_classic_mode() const { return language_mode() == CLASSIC_MODE; }
|
| + bool is_extended_mode() const { return language_mode() == EXTENDED_MODE; }
|
| + LanguageMode language_mode() const {
|
| + return LanguageModeField::decode(flags_);
|
| }
|
| bool is_in_loop() const { return IsInLoop::decode(flags_); }
|
| FunctionLiteral* function() const { return function_; }
|
| @@ -76,10 +77,11 @@ class CompilationInfo BASE_EMBEDDED {
|
| ASSERT(!is_lazy());
|
| flags_ |= IsGlobal::encode(true);
|
| }
|
| - void SetStrictModeFlag(StrictModeFlag strict_mode_flag) {
|
| - ASSERT(StrictModeFlagField::decode(flags_) == kNonStrictMode ||
|
| - StrictModeFlagField::decode(flags_) == strict_mode_flag);
|
| - flags_ = StrictModeFlagField::update(flags_, strict_mode_flag);
|
| + void SetLanguageMode(LanguageMode language_mode) {
|
| + ASSERT(this->language_mode() == CLASSIC_MODE ||
|
| + this->language_mode() == language_mode ||
|
| + language_mode == EXTENDED_MODE);
|
| + flags_ = LanguageModeField::update(flags_, language_mode);
|
| }
|
| void MarkAsInLoop() {
|
| ASSERT(is_lazy());
|
| @@ -189,8 +191,8 @@ class CompilationInfo BASE_EMBEDDED {
|
| MarkAsNative();
|
| }
|
| if (!shared_info_.is_null()) {
|
| - ASSERT(strict_mode_flag() == kNonStrictMode);
|
| - SetStrictModeFlag(shared_info_->strict_mode_flag());
|
| + ASSERT(language_mode() == CLASSIC_MODE);
|
| + SetLanguageMode(shared_info_->language_mode());
|
| }
|
| }
|
|
|
| @@ -210,7 +212,7 @@ class CompilationInfo BASE_EMBEDDED {
|
| // Flags that can be set for lazy compilation.
|
| class IsInLoop: public BitField<bool, 3, 1> {};
|
| // Strict mode - used in eager compilation.
|
| - class StrictModeFlagField: public BitField<StrictModeFlag, 4, 1> {};
|
| + class LanguageModeField: public BitField<LanguageMode, 4, 2> {};
|
| // Is this a function from our natives.
|
| class IsNative: public BitField<bool, 6, 1> {};
|
| // Is this code being compiled with support for deoptimization..
|
| @@ -289,7 +291,7 @@ class Compiler : public AllStatic {
|
| static Handle<SharedFunctionInfo> CompileEval(Handle<String> source,
|
| Handle<Context> context,
|
| bool is_global,
|
| - StrictModeFlag strict_mode,
|
| + LanguageMode language_mode,
|
| int scope_position);
|
|
|
| // Compile from function info (used for lazy compilation). Returns true on
|
|
|