blob: f351cb0fb0a75ab7639b56d0e4f8c0dc10e935e8 [file]
// 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;
}