aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/src/transitions.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/transitions.cc')
-rw-r--r--deps/v8/src/transitions.cc18
1 files changed, 18 insertions, 0 deletions
diff --git a/deps/v8/src/transitions.cc b/deps/v8/src/transitions.cc
index 3dbc1602fa..bdf16d7eef 100644
--- a/deps/v8/src/transitions.cc
+++ b/deps/v8/src/transitions.cc
@@ -690,5 +690,23 @@ void TransitionArray::Sort() {
DCHECK(IsSortedNoDuplicates());
}
+bool TransitionsAccessor::HasIntegrityLevelTransitionTo(
+ Map to, Symbol* out_symbol, PropertyAttributes* out_integrity_level) {
+ ReadOnlyRoots roots(isolate_);
+ if (SearchSpecial(roots.frozen_symbol()) == to) {
+ if (out_integrity_level) *out_integrity_level = FROZEN;
+ if (out_symbol) *out_symbol = roots.frozen_symbol();
+ } else if (SearchSpecial(roots.sealed_symbol()) == to) {
+ if (out_integrity_level) *out_integrity_level = SEALED;
+ if (out_symbol) *out_symbol = roots.sealed_symbol();
+ } else if (SearchSpecial(roots.nonextensible_symbol()) == to) {
+ if (out_integrity_level) *out_integrity_level = NONE;
+ if (out_symbol) *out_symbol = roots.nonextensible_symbol();
+ } else {
+ return false;
+ }
+ return true;
+}
+
} // namespace internal
} // namespace v8