OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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_OBJECTS_H_ | 5 #ifndef V8_OBJECTS_H_ |
6 #define V8_OBJECTS_H_ | 6 #define V8_OBJECTS_H_ |
7 | 7 |
8 #include <iosfwd> | 8 #include <iosfwd> |
9 #include <memory> | 9 #include <memory> |
10 | 10 |
(...skipping 4524 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4535 class HasNewTargetField | 4535 class HasNewTargetField |
4536 : public BitField<bool, ReceiverVariableField::kNext, 1> {}; | 4536 : public BitField<bool, ReceiverVariableField::kNext, 1> {}; |
4537 class FunctionVariableField | 4537 class FunctionVariableField |
4538 : public BitField<VariableAllocationInfo, HasNewTargetField::kNext, 2> {}; | 4538 : public BitField<VariableAllocationInfo, HasNewTargetField::kNext, 2> {}; |
4539 class AsmModuleField | 4539 class AsmModuleField |
4540 : public BitField<bool, FunctionVariableField::kNext, 1> {}; | 4540 : public BitField<bool, FunctionVariableField::kNext, 1> {}; |
4541 class AsmFunctionField : public BitField<bool, AsmModuleField::kNext, 1> {}; | 4541 class AsmFunctionField : public BitField<bool, AsmModuleField::kNext, 1> {}; |
4542 class HasSimpleParametersField | 4542 class HasSimpleParametersField |
4543 : public BitField<bool, AsmFunctionField::kNext, 1> {}; | 4543 : public BitField<bool, AsmFunctionField::kNext, 1> {}; |
4544 class FunctionKindField | 4544 class FunctionKindField |
4545 : public BitField<FunctionKind, HasSimpleParametersField::kNext, 9> {}; | 4545 : public BitField<FunctionKind, HasSimpleParametersField::kNext, 10> {}; |
4546 class HasOuterScopeInfoField | 4546 class HasOuterScopeInfoField |
4547 : public BitField<bool, FunctionKindField::kNext, 1> {}; | 4547 : public BitField<bool, FunctionKindField::kNext, 1> {}; |
4548 class IsDebugEvaluateScopeField | 4548 class IsDebugEvaluateScopeField |
4549 : public BitField<bool, HasOuterScopeInfoField::kNext, 1> {}; | 4549 : public BitField<bool, HasOuterScopeInfoField::kNext, 1> {}; |
4550 | 4550 |
4551 // Properties of variables. | 4551 // Properties of variables. |
4552 class VariableModeField : public BitField<VariableMode, 0, 3> {}; | 4552 class VariableModeField : public BitField<VariableMode, 0, 3> {}; |
4553 class InitFlagField : public BitField<InitializationFlag, 3, 1> {}; | 4553 class InitFlagField : public BitField<InitializationFlag, 3, 1> {}; |
4554 class MaybeAssignedFlagField : public BitField<MaybeAssignedFlag, 4, 1> {}; | 4554 class MaybeAssignedFlagField : public BitField<MaybeAssignedFlag, 4, 1> {}; |
4555 | 4555 |
(...skipping 3144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7700 kIsArrow = kFunctionKind, | 7700 kIsArrow = kFunctionKind, |
7701 kIsGenerator, | 7701 kIsGenerator, |
7702 kIsConciseMethod, | 7702 kIsConciseMethod, |
7703 kIsDefaultConstructor, | 7703 kIsDefaultConstructor, |
7704 kIsSubclassConstructor, | 7704 kIsSubclassConstructor, |
7705 kIsBaseConstructor, | 7705 kIsBaseConstructor, |
7706 kIsGetterFunction, | 7706 kIsGetterFunction, |
7707 kIsSetterFunction, | 7707 kIsSetterFunction, |
7708 // byte 3 | 7708 // byte 3 |
7709 kIsAsyncFunction, | 7709 kIsAsyncFunction, |
| 7710 kIsModule, |
7710 kDeserialized, | 7711 kDeserialized, |
7711 kIsDeclaration, | 7712 kIsDeclaration, |
7712 kIsAsmWasmBroken, | 7713 kIsAsmWasmBroken, |
7713 kRequiresClassFieldInit, | 7714 kRequiresClassFieldInit, |
7714 kIsClassFieldInitializer, | 7715 kIsClassFieldInitializer, |
7715 kCompilerHintsCount, // Pseudo entry | 7716 kCompilerHintsCount, // Pseudo entry |
7716 }; | 7717 }; |
7717 // kFunctionKind has to be byte-aligned | 7718 // kFunctionKind has to be byte-aligned |
7718 STATIC_ASSERT((kFunctionKind % kBitsPerByte) == 0); | 7719 STATIC_ASSERT((kFunctionKind % kBitsPerByte) == 0); |
7719 // Make sure that FunctionKind and byte 2 are in sync: | 7720 // Make sure that FunctionKind and byte 2 are in sync: |
7720 #define ASSERT_FUNCTION_KIND_ORDER(functionKind, compilerFunctionKind) \ | 7721 #define ASSERT_FUNCTION_KIND_ORDER(functionKind, compilerFunctionKind) \ |
7721 STATIC_ASSERT(FunctionKind::functionKind == \ | 7722 STATIC_ASSERT(FunctionKind::functionKind == \ |
7722 1 << (compilerFunctionKind - kFunctionKind)) | 7723 1 << (compilerFunctionKind - kFunctionKind)) |
7723 ASSERT_FUNCTION_KIND_ORDER(kArrowFunction, kIsArrow); | 7724 ASSERT_FUNCTION_KIND_ORDER(kArrowFunction, kIsArrow); |
7724 ASSERT_FUNCTION_KIND_ORDER(kGeneratorFunction, kIsGenerator); | 7725 ASSERT_FUNCTION_KIND_ORDER(kGeneratorFunction, kIsGenerator); |
7725 ASSERT_FUNCTION_KIND_ORDER(kConciseMethod, kIsConciseMethod); | 7726 ASSERT_FUNCTION_KIND_ORDER(kConciseMethod, kIsConciseMethod); |
7726 ASSERT_FUNCTION_KIND_ORDER(kDefaultConstructor, kIsDefaultConstructor); | 7727 ASSERT_FUNCTION_KIND_ORDER(kDefaultConstructor, kIsDefaultConstructor); |
7727 ASSERT_FUNCTION_KIND_ORDER(kSubclassConstructor, kIsSubclassConstructor); | 7728 ASSERT_FUNCTION_KIND_ORDER(kSubclassConstructor, kIsSubclassConstructor); |
7728 ASSERT_FUNCTION_KIND_ORDER(kBaseConstructor, kIsBaseConstructor); | 7729 ASSERT_FUNCTION_KIND_ORDER(kBaseConstructor, kIsBaseConstructor); |
7729 ASSERT_FUNCTION_KIND_ORDER(kGetterFunction, kIsGetterFunction); | 7730 ASSERT_FUNCTION_KIND_ORDER(kGetterFunction, kIsGetterFunction); |
7730 ASSERT_FUNCTION_KIND_ORDER(kSetterFunction, kIsSetterFunction); | 7731 ASSERT_FUNCTION_KIND_ORDER(kSetterFunction, kIsSetterFunction); |
| 7732 ASSERT_FUNCTION_KIND_ORDER(kAsyncFunction, kIsAsyncFunction); |
| 7733 ASSERT_FUNCTION_KIND_ORDER(kModule, kIsModule); |
7731 #undef ASSERT_FUNCTION_KIND_ORDER | 7734 #undef ASSERT_FUNCTION_KIND_ORDER |
7732 | 7735 |
7733 class FunctionKindBits : public BitField<FunctionKind, kIsArrow, 9> {}; | 7736 class FunctionKindBits : public BitField<FunctionKind, kIsArrow, 10> {}; |
7734 | 7737 |
7735 class DeoptCountBits : public BitField<int, 0, 4> {}; | 7738 class DeoptCountBits : public BitField<int, 0, 4> {}; |
7736 class OptReenableTriesBits : public BitField<int, 4, 18> {}; | 7739 class OptReenableTriesBits : public BitField<int, 4, 18> {}; |
7737 class ICAgeBits : public BitField<int, 22, 8> {}; | 7740 class ICAgeBits : public BitField<int, 22, 8> {}; |
7738 | 7741 |
7739 class OptCountBits : public BitField<int, 0, 22> {}; | 7742 class OptCountBits : public BitField<int, 0, 22> {}; |
7740 class DisabledOptimizationReasonBits : public BitField<int, 22, 8> {}; | 7743 class DisabledOptimizationReasonBits : public BitField<int, 22, 8> {}; |
7741 | 7744 |
7742 private: | 7745 private: |
7743 #if V8_HOST_ARCH_32_BIT | 7746 #if V8_HOST_ARCH_32_BIT |
(...skipping 3682 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11426 } | 11429 } |
11427 return value; | 11430 return value; |
11428 } | 11431 } |
11429 }; | 11432 }; |
11430 | 11433 |
11431 | 11434 |
11432 } // NOLINT, false-positive due to second-order macros. | 11435 } // NOLINT, false-positive due to second-order macros. |
11433 } // NOLINT, false-positive due to second-order macros. | 11436 } // NOLINT, false-positive due to second-order macros. |
11434 | 11437 |
11435 #endif // V8_OBJECTS_H_ | 11438 #endif // V8_OBJECTS_H_ |
OLD | NEW |