OLD | NEW |
---|---|
1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_INTERPRETER_BYTECODE_FLAGS_H_ | 5 #ifndef V8_INTERPRETER_BYTECODE_FLAGS_H_ |
6 #define V8_INTERPRETER_BYTECODE_FLAGS_H_ | 6 #define V8_INTERPRETER_BYTECODE_FLAGS_H_ |
7 | 7 |
8 #include "src/utils.h" | 8 #include "src/utils.h" |
9 | 9 |
10 namespace v8 { | 10 namespace v8 { |
11 namespace internal { | 11 namespace internal { |
12 namespace interpreter { | 12 namespace interpreter { |
13 | 13 |
14 class CreateArrayLiteralFlags { | |
15 public: | |
16 class FlagsBits : public BitField8<int, 0, 3> {}; | |
17 class MustUseRuntimeBit : public BitField8<bool, FlagsBits::kNext, 1> {}; | |
rmcilroy
2016/09/16 08:52:26
nit - the other flags use a bit to specify using t
klaasb
2016/09/19 13:53:57
Done.
| |
18 | |
19 static uint8_t Encode(bool must_use_runtime, int runtime_flags); | |
20 | |
21 private: | |
22 DISALLOW_IMPLICIT_CONSTRUCTORS(CreateArrayLiteralFlags); | |
23 }; | |
24 | |
14 class CreateObjectLiteralFlags { | 25 class CreateObjectLiteralFlags { |
15 public: | 26 public: |
16 class FlagsBits : public BitField8<int, 0, 3> {}; | 27 class FlagsBits : public BitField8<int, 0, 3> {}; |
17 class FastClonePropertiesCountBits | 28 class FastClonePropertiesCountBits |
18 : public BitField8<int, FlagsBits::kNext, 3> {}; | 29 : public BitField8<int, FlagsBits::kNext, 3> {}; |
19 | 30 |
20 static uint8_t Encode(bool fast_clone_supported, int properties_count, | 31 static uint8_t Encode(bool fast_clone_supported, int properties_count, |
21 int runtime_flags); | 32 int runtime_flags); |
22 | 33 |
23 private: | 34 private: |
24 DISALLOW_IMPLICIT_CONSTRUCTORS(CreateObjectLiteralFlags); | 35 DISALLOW_IMPLICIT_CONSTRUCTORS(CreateObjectLiteralFlags); |
25 }; | 36 }; |
26 | 37 |
27 class CreateClosureFlags { | 38 class CreateClosureFlags { |
28 public: | 39 public: |
29 class PretenuredBit : public BitField8<bool, 0, 1> {}; | 40 class PretenuredBit : public BitField8<bool, 0, 1> {}; |
30 class FastNewClosureBit : public BitField8<bool, PretenuredBit::kNext, 1> {}; | 41 class FastNewClosureBit : public BitField8<bool, PretenuredBit::kNext, 1> {}; |
31 | 42 |
32 static uint8_t Encode(bool pretenure, bool is_function_scope); | 43 static uint8_t Encode(bool pretenure, bool is_function_scope); |
33 | 44 |
34 private: | 45 private: |
35 DISALLOW_IMPLICIT_CONSTRUCTORS(CreateClosureFlags); | 46 DISALLOW_IMPLICIT_CONSTRUCTORS(CreateClosureFlags); |
36 }; | 47 }; |
37 | 48 |
38 } // namespace interpreter | 49 } // namespace interpreter |
39 } // namespace internal | 50 } // namespace internal |
40 } // namespace v8 | 51 } // namespace v8 |
41 | 52 |
42 #endif // V8_INTERPRETER_BYTECODE_FLAGS_H_ | 53 #endif // V8_INTERPRETER_BYTECODE_FLAGS_H_ |
OLD | NEW |