| // Copyright 2019 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. |
| |
| @generatePrint |
| @generateCppClass |
| extern class EnumCache extends Struct { |
| keys: FixedArray; |
| indices: FixedArray; |
| } |
| |
| @export |
| struct DescriptorEntry { |
| key: Name|Undefined; |
| details: Smi|Undefined; |
| value: JSAny|Weak<Map>|AccessorInfo|AccessorPair|ClassPositions; |
| } |
| |
| @export |
| @customCppClass |
| class DescriptorArray extends HeapObject { |
| const number_of_all_descriptors: uint16; |
| number_of_descriptors: uint16; |
| raw_number_of_marked_descriptors: uint16; |
| filler16_bits: uint16; |
| enum_cache: EnumCache; |
| descriptors[number_of_all_descriptors]: DescriptorEntry; |
| } |
| |
| // A descriptor array where all values are held strongly. |
| class StrongDescriptorArray extends DescriptorArray {} |