summaryrefslogtreecommitdiff
path: root/chromium/v8/src/objects/swiss-name-dictionary-inl.h
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2021-10-26 13:57:00 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2021-11-02 11:31:01 +0000
commit1943b3c2a1dcee36c233724fc4ee7613d71b9cf6 (patch)
tree8c1b5f12357025c197da5427ae02cfdc2f3570d6 /chromium/v8/src/objects/swiss-name-dictionary-inl.h
parent21ba0c5d4bf8fba15dddd97cd693bad2358b77fd (diff)
downloadqtwebengine-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.h17
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)));