diff options
Diffstat (limited to 'chromium/v8/src/objects/map.tq')
-rw-r--r-- | chromium/v8/src/objects/map.tq | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/chromium/v8/src/objects/map.tq b/chromium/v8/src/objects/map.tq index 93c56278955..e7333a38634 100644 --- a/chromium/v8/src/objects/map.tq +++ b/chromium/v8/src/objects/map.tq @@ -80,3 +80,16 @@ extern class Map extends HeapObject { macro LoadMapPrototypeInfo(m: Map): PrototypeInfo labels HasNoPrototypeInfo { return m.PrototypeInfo() otherwise HasNoPrototypeInfo; } + +// Returns true if the map corresponds to non-special fast or dictionary +// object. +@export +macro IsSimpleObjectMap(map: Map): bool { + if (IsSpecialReceiverInstanceType(map.instance_type)) { + return false; + } + const bitField = map.bit_field; + return !bitField.has_named_interceptor & !bitField.is_access_check_needed; +} + +extern macro IsSpecialReceiverInstanceType(InstanceType): bool; |