| Index: src/inspector/v8-stack-trace-impl.cc | 
| diff --git a/src/inspector/v8-stack-trace-impl.cc b/src/inspector/v8-stack-trace-impl.cc | 
| index 9db6b47caf01c79944bb40412c1c9416a62e2a31..daa03fee875f91f342e3e603cdfab103fffde67e 100644 | 
| --- a/src/inspector/v8-stack-trace-impl.cc | 
| +++ b/src/inspector/v8-stack-trace-impl.cc | 
| @@ -264,6 +264,32 @@ bool V8StackTraceImpl::isEqualIgnoringTopFrame( | 
| return current.done() == target.done(); | 
| } | 
|  | 
| +void V8StackTraceImpl::allFrames(std::vector<StackFrame*>* frames) const { | 
| +  StackFrameIterator current(this); | 
| +  while (!current.done()) { | 
| +    frames->push_back(current.frame()); | 
| +    current.next(); | 
| +  } | 
| +} | 
| + | 
| +bool V8StackTraceImpl::isPrefix(V8StackTraceImpl* currentStack) const { | 
| +  std::vector<StackFrame*> prefix; | 
| +  allFrames(&prefix); | 
| +  std::vector<StackFrame*> current; | 
| +  currentStack->allFrames(¤t); | 
| + | 
| +  auto itPrefix = prefix.rbegin(); | 
| +  auto itCurrent = current.rbegin(); | 
| +  while (itPrefix != prefix.rend() && itCurrent != current.rend()) { | 
| +    if (!(*itPrefix)->isEqual(*itCurrent)) { | 
| +      return false; | 
| +    } | 
| +    ++itPrefix; | 
| +    ++itCurrent; | 
| +  } | 
| +  return itPrefix == prefix.rend(); | 
| +} | 
| + | 
| V8StackTraceImpl::StackFrameIterator::StackFrameIterator( | 
| const V8StackTraceImpl* stackTrace) | 
| : m_currentIt(stackTrace->m_frames.begin()), | 
|  |