diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-10-26 13:57:00 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-11-02 11:31:01 +0000 |
commit | 1943b3c2a1dcee36c233724fc4ee7613d71b9cf6 (patch) | |
tree | 8c1b5f12357025c197da5427ae02cfdc2f3570d6 /chromium/v8/src/objects/swiss-name-dictionary-inl.h | |
parent | 21ba0c5d4bf8fba15dddd97cd693bad2358b77fd (diff) | |
download | qtwebengine-chromium-1943b3c2a1dcee36c233724fc4ee7613d71b9cf6.tar.gz |
BASELINE: Update Chromium to 94.0.4606.111
Change-Id: I924781584def20fc800bedf6ff41fdb96c438193
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/v8/src/objects/swiss-name-dictionary-inl.h')
-rw-r--r-- | chromium/v8/src/objects/swiss-name-dictionary-inl.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/chromium/v8/src/objects/swiss-name-dictionary-inl.h b/chromium/v8/src/objects/swiss-name-dictionary-inl.h index 770c32b59f9..5ea4e27e6b1 100644 --- a/chromium/v8/src/objects/swiss-name-dictionary-inl.h +++ b/chromium/v8/src/objects/swiss-name-dictionary-inl.h @@ -8,6 +8,7 @@ #include <algorithm> #include "src/base/macros.h" +#include "src/base/optional.h" #include "src/execution/isolate-utils-inl.h" #include "src/heap/heap.h" #include "src/objects/fixed-array-inl.h" @@ -304,6 +305,22 @@ Object SwissNameDictionary::ValueAt(InternalIndex entry) { return ValueAtRaw(entry.as_int()); } +base::Optional<Object> SwissNameDictionary::TryValueAt(InternalIndex entry) { +#if DEBUG + Isolate* isolate; + GetIsolateFromHeapObject(*this, &isolate); + DCHECK_NE(isolate, nullptr); + SLOW_DCHECK(!isolate->heap()->IsPendingAllocation(*this)); +#endif // DEBUG + // We can read Capacity() in a non-atomic way since we are reading an + // initialized object which is not pending allocation. + if (static_cast<unsigned>(entry.as_int()) >= + static_cast<unsigned>(Capacity())) { + return {}; + } + return ValueAtRaw(entry.as_int()); +} + PropertyDetails SwissNameDictionary::DetailsAt(int entry) { // GetCtrl(entry) does a bounds check for |entry| value. DCHECK(IsFull(GetCtrl(entry))); |