1 // Copyright 2017 the V8 project authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef V8_OBJECTS_PROPERTY_DESCRIPTOR_OBJECT_H_ 6 #define V8_OBJECTS_PROPERTY_DESCRIPTOR_OBJECT_H_ 7 8 #include "src/objects/struct.h" 9 #include "torque-generated/bit-fields.h" 10 11 // Has to be the last include (doesn't have include guards): 12 #include "src/objects/object-macros.h" 13 14 namespace v8 { 15 namespace internal { 16 17 #include "torque-generated/src/objects/property-descriptor-object-tq.inc" 18 19 class PropertyDescriptorObject 20 : public TorqueGeneratedPropertyDescriptorObject<PropertyDescriptorObject, 21 Struct> { 22 public: 23 DEFINE_TORQUE_GENERATED_PROPERTY_DESCRIPTOR_OBJECT_FLAGS() 24 25 static const int kRegularAccessorPropertyBits = 26 HasEnumerableBit::kMask | HasConfigurableBit::kMask | HasGetBit::kMask | 27 HasSetBit::kMask; 28 29 static const int kRegularDataPropertyBits = 30 HasEnumerableBit::kMask | HasConfigurableBit::kMask | 31 HasWritableBit::kMask | HasValueBit::kMask; 32 33 static const int kHasMask = HasEnumerableBit::kMask | 34 HasConfigurableBit::kMask | 35 HasWritableBit::kMask | HasValueBit::kMask | 36 HasGetBit::kMask | HasSetBit::kMask; 37 38 using BodyDescriptor = StructBodyDescriptor; 39 40 TQ_OBJECT_CONSTRUCTORS(PropertyDescriptorObject) 41 }; 42 43 } // namespace internal 44 } // namespace v8 45 46 #include "src/objects/object-macros-undef.h" 47 48 #endif // V8_OBJECTS_PROPERTY_DESCRIPTOR_OBJECT_H_ 49