| Index: src/objects-inl.h
|
| diff --git a/src/objects-inl.h b/src/objects-inl.h
|
| index 24c8c14f1ced7a1b8a266342cf287cf81f22b18a..2eb0073ef6558f53dd9d6fe23dbd4b3b0be8a3a6 100644
|
| --- a/src/objects-inl.h
|
| +++ b/src/objects-inl.h
|
| @@ -6161,9 +6161,25 @@ bool JSFunction::IsInOptimizationQueue() {
|
| }
|
|
|
|
|
| -bool JSFunction::IsInobjectSlackTrackingInProgress() {
|
| - return has_initial_map() &&
|
| - initial_map()->counter() >= Map::kSlackTrackingCounterEnd;
|
| +void JSFunction::CompleteInobjectSlackTrackingIfActive() {
|
| + if (has_initial_map() && initial_map()->IsInobjectSlackTrackingInProgress()) {
|
| + initial_map()->CompleteInobjectSlackTracking();
|
| + }
|
| +}
|
| +
|
| +
|
| +bool Map::IsInobjectSlackTrackingInProgress() {
|
| + return counter() >= Map::kSlackTrackingCounterEnd;
|
| +}
|
| +
|
| +
|
| +void Map::InobjectSlackTrackingStep() {
|
| + if (!IsInobjectSlackTrackingInProgress()) return;
|
| + int counter = this->counter();
|
| + set_counter(counter - 1);
|
| + if (counter == kSlackTrackingCounterEnd) {
|
| + CompleteInobjectSlackTracking();
|
| + }
|
| }
|
|
|
|
|
|
|