| // Copyright 2026 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. |
| |
| // Extended map for interceptor objects, it caches named and indexed |
| // InterceptorInfo objects in the Map for faster access. |
| @cppObjectLayoutDefinition |
| @hasSameInstanceTypeAsParent |
| @doNotGenerateCast |
| extern class JSInterceptorMap extends ExtendedMap { |
| flags: uint8; |
| @ifnot(TAGGED_SIZE_8_BYTES) extended_padding[2]: uint8; |
| @if(TAGGED_SIZE_8_BYTES) extended_padding[6]: uint8; |
| named_interceptor: InterceptorInfo; |
| indexed_interceptor: InterceptorInfo; |
| // This prototype validity cell guards modifications of the interceptor's |
| // prototype object that allow fast iterable-to-list optimization. It is |
| // different from Map::prototype_validity_cell which is used for guarding |
| // usages of Maps as a fast property transition handlers - it makes sure |
| // that the prototype chain does not have the property added by the map. |
| fast_case_validity_cell: Cell; |
| } |