diff options
Diffstat (limited to 'deps/v8/src/compilation-dependencies.cc')
-rw-r--r-- | deps/v8/src/compilation-dependencies.cc | 15 |
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 |