Lines Matching defs:block
67 // Sort according to the block nesting structure.
94 // A utility class to simplify logic for performing passes over block coverage
124 // If a block has been deleted, subsequent iteration moves trailing blocks
141 CoverageBlock& block = GetBlock();
143 nesting_stack_.back().end <= block.start) {
147 DCHECK_IMPLIES(block.start >= function_->end,
148 block.end == kNoSourcePosition);
149 DCHECK_NE(block.start, kNoSourcePosition);
150 DCHECK_LE(block.end, GetParent().end);
232 CoverageBlock& block = iter.GetBlock();
235 if (!HaveSameSourceRange(block, next_block)) continue;
237 DCHECK_NE(kNoSourcePosition, block.end); // Non-singleton range.
238 next_block.count = std::max(block.count, next_block.count);
251 CoverageBlock& block = iter.GetBlock();
254 if (block.start >= function->end) {
255 DCHECK_EQ(block.end, kNoSourcePosition);
257 } else if (block.end == kNoSourcePosition) {
258 // The current block ends at the next sibling block (if it exists) or the
259 // end of the parent block otherwise.
261 block.end = iter.GetSiblingOrChild().start;
266 block.end = parent.end - 1;
268 block.end = parent.end;
278 CoverageBlock& block = iter.GetBlock();
282 if (sibling.start == block.end && sibling.count == block.count) {
285 sibling.start = block.start;
296 CoverageBlock& block = iter.GetBlock();
299 if (parent.count == block.count) {
315 CoverageBlock& block = iter.GetBlock();
316 if (block.start == SourceRange::kFunctionLiteralSourcePosition &&
317 block.end == SourceRange::kFunctionLiteralSourcePosition) {
318 // If a function-scope block exists, overwrite the function count. It has
321 function->count = block.count;
323 // Then delete it; for compatibility with non-block coverage modes, the
324 // function-scope block is expected in CoverageFunction, not as a
334 iter.Next(); // Advance once since we reference the previous block later.
338 CoverageBlock& block = iter.GetBlock();
340 bool is_singleton = block.end == kNoSourcePosition;
341 bool aliases_start = block.start == previous_block.start;
344 // The previous block must have a full range since duplicate singletons
347 // Likewise, the next block must have another start position since
349 DCHECK_IMPLIES(iter.HasNext(), iter.GetNextBlock().start != block.start);
359 CoverageBlock& block = iter.GetBlock();
361 if (block.count == 0 && parent.count == 0) iter.DeleteBlock();
369 CoverageBlock& block = iter.GetBlock();
370 if (block.start == block.end) iter.DeleteBlock();
378 CoverageBlock& block = iter.GetBlock();
379 if (block.count > 0) block.count = 1;
429 // To stay compatible with non-block coverage modes, the function-scope count
432 // and removes it from the block list.
444 // as a problematic example; if the then-block produces a continuation
493 for (const auto& block : function->blocks) {
494 i::PrintF("{start: %d, end: %d, count: %d}\n", block.start, block.end,
495 block.count);
723 // covered, or if it contains non-trivial block coverage.