Chromium Code Reviews| Index: src/objects-inl.h |
| diff --git a/src/objects-inl.h b/src/objects-inl.h |
| index 24501c85bb3f429e9d7d6570445d38a54360d7e0..7c251d485bf81f6599cc643de7746c2566cd9080 100644 |
| --- a/src/objects-inl.h |
| +++ b/src/objects-inl.h |
| @@ -3480,23 +3480,36 @@ void SharedFunctionInfo::set_optimization_disabled(bool disable) { |
| } |
| -StrictModeFlag SharedFunctionInfo::strict_mode_flag() { |
| - return BooleanBit::get(compiler_hints(), kStrictModeFunction) |
| - ? kStrictMode : kNonStrictMode; |
| +LanguageMode SharedFunctionInfo::language_mode() { |
| + int hints = compiler_hints(); |
| + if (BooleanBit::get(hints, kExtendedModeFunction)) { |
| + ASSERT(BooleanBit::get(hints, kStrictModeFunction)); |
| + return EXTENDED_MODE; |
| + } |
| + return BooleanBit::get(hints, kStrictModeFunction) |
| + ? STRICT_MODE : CLASSIC_MODE; |
| } |
| -void SharedFunctionInfo::set_strict_mode_flag(StrictModeFlag strict_mode_flag) { |
| - ASSERT(strict_mode_flag == kStrictMode || |
| - strict_mode_flag == kNonStrictMode); |
| - bool value = strict_mode_flag == kStrictMode; |
| - set_compiler_hints( |
| - BooleanBit::set(compiler_hints(), kStrictModeFunction, value)); |
| +void SharedFunctionInfo::set_language_mode(LanguageMode language_mode) { |
| + ASSERT(this->language_mode() == CLASSIC_MODE || |
|
Rico
2011/11/15 08:25:07
add comment here stating that the allowed transiti
Steven
2011/11/15 13:33:30
Done.
|
| + this->language_mode() == language_mode || |
| + language_mode == EXTENDED_MODE); |
| + int hints = compiler_hints(); |
| + hints = BooleanBit::set( |
| + hints, kStrictModeFunction, language_mode != CLASSIC_MODE); |
| + hints = BooleanBit::set( |
| + hints, kExtendedModeFunction, language_mode == EXTENDED_MODE); |
| + set_compiler_hints(hints); |
| } |
| -BOOL_GETTER(SharedFunctionInfo, compiler_hints, strict_mode, |
| - kStrictModeFunction) |
| +bool SharedFunctionInfo::is_classic_mode() { |
| + return !BooleanBit::get(compiler_hints(), kStrictModeFunction); |
| +} |
| + |
| +BOOL_GETTER(SharedFunctionInfo, compiler_hints, is_extended_mode, |
| + kExtendedModeFunction) |
| BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, native, kNative) |
| BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, |
| name_should_print_as_anonymous, |