LCOV - code coverage report
Current view: top level - src/interpreter - bytecode-array-random-iterator.cc (source / functions) Hit Total Coverage
Test: app.info Lines: 14 14 100.0 %
Date: 2019-04-17 Functions: 4 4 100.0 %

          Line data    Source code
       1             : // Copyright 2015 the V8 project authors. All rights reserved.
       2             : // Use of this source code is governed by a BSD-style license that can be
       3             : // found in the LICENSE file.
       4             : 
       5             : #include "src/interpreter/bytecode-array-random-iterator.h"
       6             : #include "src/objects-inl.h"
       7             : #include "src/objects/code-inl.h"
       8             : 
       9             : namespace v8 {
      10             : namespace internal {
      11             : namespace interpreter {
      12             : 
      13      530045 : BytecodeArrayRandomIterator::BytecodeArrayRandomIterator(
      14             :     Handle<BytecodeArray> bytecode_array, Zone* zone)
      15      530045 :     : BytecodeArrayAccessor(bytecode_array, 0), offsets_(zone) {
      16             :   // Run forwards through the bytecode array to determine the offset of each
      17             :   // bytecode.
      18    30996482 :   while (current_offset() < bytecode_array->length()) {
      19    30466437 :     offsets_.push_back(current_offset());
      20    15233221 :     SetOffset(current_offset() + current_bytecode_size());
      21             :   }
      22             :   GoToStart();
      23      530047 : }
      24             : 
      25    15763460 : bool BytecodeArrayRandomIterator::IsValid() const {
      26    67046787 :   return current_index_ >= 0 &&
      27    48756507 :          static_cast<size_t>(current_index_) < offsets_.size();
      28             : }
      29             : 
      30    18290280 : void BytecodeArrayRandomIterator::UpdateOffsetFromIndex() {
      31    18290280 :   if (IsValid()) {
      32    35519866 :     SetOffset(offsets_[current_index_]);
      33             :   }
      34    18290281 : }
      35             : 
      36             : }  // namespace interpreter
      37             : }  // namespace internal
      38      121996 : }  // namespace v8

Generated by: LCOV version 1.10