| // Copyright 2016 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef V8_INTERPRETER_BYTECODE_FLAGS_H_ |
| #define V8_INTERPRETER_BYTECODE_FLAGS_H_ |
| |
| #include "src/utils.h" |
| |
| namespace v8 { |
| namespace internal { |
| namespace interpreter { |
| |
| class CreateArrayLiteralFlags { |
| public: |
| class FlagsBits : public BitField8<int, 0, 3> {}; |
| class FastShallowCloneBit : public BitField8<bool, FlagsBits::kNext, 1> {}; |
| |
| static uint8_t Encode(bool use_fast_shallow_clone, int runtime_flags); |
| |
| private: |
| DISALLOW_IMPLICIT_CONSTRUCTORS(CreateArrayLiteralFlags); |
| }; |
| |
| class CreateObjectLiteralFlags { |
| public: |
| class FlagsBits : public BitField8<int, 0, 3> {}; |
| class FastClonePropertiesCountBits |
| : public BitField8<int, FlagsBits::kNext, 3> {}; |
| |
| static uint8_t Encode(bool fast_clone_supported, int properties_count, |
| int runtime_flags); |
| |
| private: |
| DISALLOW_IMPLICIT_CONSTRUCTORS(CreateObjectLiteralFlags); |
| }; |
| |
| class CreateClosureFlags { |
| public: |
| class PretenuredBit : public BitField8<bool, 0, 1> {}; |
| class FastNewClosureBit : public BitField8<bool, PretenuredBit::kNext, 1> {}; |
| |
| static uint8_t Encode(bool pretenure, bool is_function_scope); |
| |
| private: |
| DISALLOW_IMPLICIT_CONSTRUCTORS(CreateClosureFlags); |
| }; |
| |
| } // namespace interpreter |
| } // namespace internal |
| } // namespace v8 |
| |
| #endif // V8_INTERPRETER_BYTECODE_FLAGS_H_ |