summaryrefslogtreecommitdiff
path: root/deps/v8/src/compilation-dependencies.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/compilation-dependencies.cc')
-rw-r--r--deps/v8/src/compilation-dependencies.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/deps/v8/src/compilation-dependencies.cc b/deps/v8/src/compilation-dependencies.cc
index c9c194f19f..96b3859e9a 100644
--- a/deps/v8/src/compilation-dependencies.cc
+++ b/deps/v8/src/compilation-dependencies.cc
@@ -124,6 +124,20 @@ void CompilationDependencies::AssumeMapStable(Handle<Map> map) {
}
+void CompilationDependencies::AssumePrototypeMapsStable(
+ Handle<Map> map, MaybeHandle<JSReceiver> prototype) {
+ for (PrototypeIterator i(map); !i.IsAtEnd(); i.Advance()) {
+ Handle<JSReceiver> const current =
+ PrototypeIterator::GetCurrent<JSReceiver>(i);
+ AssumeMapStable(handle(current->map()));
+ Handle<JSReceiver> last;
+ if (prototype.ToHandle(&last) && last.is_identical_to(current)) {
+ break;
+ }
+ }
+}
+
+
void CompilationDependencies::AssumeTransitionStable(
Handle<AllocationSite> site) {
// Do nothing if the object doesn't have any useful element transitions left.
@@ -135,5 +149,6 @@ void CompilationDependencies::AssumeTransitionStable(
Insert(DependentCode::kAllocationSiteTransitionChangedGroup, site);
}
}
+
} // namespace internal
} // namespace v8