Chromium Code Reviews| Index: src/globals.h |
| diff --git a/src/globals.h b/src/globals.h |
| index 83fa2fa720e7b660034d84df15ee9a3c4a2e18cb..0f5de6a56807b9eb6690138a85c0713fdc66caad 100644 |
| --- a/src/globals.h |
| +++ b/src/globals.h |
| @@ -227,25 +227,46 @@ template <typename T, class P = FreeStoreAllocationPolicy> class List; |
| enum LanguageMode { |
| // LanguageMode is expressed as a bitmask. Descriptions of the bits: |
| - STRICT = 1 << 0, |
| + STRICT_BIT = 1 << 0, |
| + SANE_BIT = 1 << 1, |
| LANGUAGE_END, |
| // Shorthands for some common language modes. |
| - SLOPPY = 0 |
| + SLOPPY = 0, |
| + STRICT = STRICT_BIT, |
| + SANE = STRICT_BIT | SANE_BIT |
| }; |
| inline bool is_strict(LanguageMode language_mode) { |
| - return language_mode & STRICT; |
| + return language_mode & STRICT_BIT; |
| } |
| + |
| inline bool is_sloppy(LanguageMode language_mode) { |
|
rossberg
2015/02/04 16:18:08
Nit: perhaps reorder methods.
marja
2015/02/05 12:11:37
Done.
|
| - return (language_mode & STRICT) == 0; |
| + return (language_mode & STRICT_BIT) == 0; |
| } |
| + |
| +inline bool is_sane(LanguageMode language_mode) { |
| + return language_mode & SANE_BIT; |
| +} |
| + |
| + |
| inline bool is_valid_language_mode(int language_mode) { |
| - return language_mode == SLOPPY || language_mode == STRICT; |
| + return language_mode == SLOPPY || language_mode == STRICT || |
| + language_mode == SANE; |
| } |
| + |
| +inline LanguageMode construct_language_mode(bool strict_bit, bool sane_bit) { |
| + int language_mode = 0; |
| + if (strict_bit) language_mode |= STRICT_BIT; |
| + if (sane_bit) language_mode |= SANE_BIT; |
| + DCHECK(is_valid_language_mode(language_mode)); |
| + return static_cast<LanguageMode>(language_mode); |
| +} |
| + |
| + |
| // Mask for the sign bit in a smi. |
| const intptr_t kSmiSignMask = kIntptrSignBit; |