Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(329)

Side by Side Diff: src/debug/debug.cc

Issue 2882973002: [coverage] Block coverage with support for IfStatements (Closed)
Patch Set: Rebase Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/debug/debug.h" 5 #include "src/debug/debug.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "src/api.h" 9 #include "src/api.h"
10 #include "src/arguments.h" 10 #include "src/arguments.h"
(...skipping 1600 matching lines...) Expand 10 before | Expand all | Expand 10 after
1611 1611
1612 // Create debug info and add it to the list. 1612 // Create debug info and add it to the list.
1613 Handle<DebugInfo> debug_info = isolate_->factory()->NewDebugInfo(shared); 1613 Handle<DebugInfo> debug_info = isolate_->factory()->NewDebugInfo(shared);
1614 DebugInfoListNode* node = new DebugInfoListNode(*debug_info); 1614 DebugInfoListNode* node = new DebugInfoListNode(*debug_info);
1615 node->set_next(debug_info_list_); 1615 node->set_next(debug_info_list_);
1616 debug_info_list_ = node; 1616 debug_info_list_ = node;
1617 1617
1618 return debug_info; 1618 return debug_info;
1619 } 1619 }
1620 1620
1621 void Debug::InstallCoverageInfo(Handle<SharedFunctionInfo> shared,
1622 Handle<CoverageInfo> coverage_info) {
1623 DCHECK(FLAG_block_coverage);
1624 DCHECK(!coverage_info.is_null());
1625
1626 Handle<DebugInfo> debug_info = GetOrCreateDebugInfo(shared);
1627
1628 DCHECK(!debug_info->HasCoverageInfo());
1629
1630 debug_info->set_flags(debug_info->flags() | DebugInfo::kHasCoverageInfo);
1631 debug_info->set_coverage_info(*coverage_info);
1632 }
1633
1621 void Debug::FindDebugInfo(Handle<DebugInfo> debug_info, 1634 void Debug::FindDebugInfo(Handle<DebugInfo> debug_info,
1622 DebugInfoListNode** prev, DebugInfoListNode** curr) { 1635 DebugInfoListNode** prev, DebugInfoListNode** curr) {
1623 HandleScope scope(isolate_); 1636 HandleScope scope(isolate_);
1624 *prev = nullptr; 1637 *prev = nullptr;
1625 *curr = debug_info_list_; 1638 *curr = debug_info_list_;
1626 while (*curr != nullptr) { 1639 while (*curr != nullptr) {
1627 if ((*curr)->debug_info().is_identical_to(debug_info)) return; 1640 if ((*curr)->debug_info().is_identical_to(debug_info)) return;
1628 *prev = *curr; 1641 *prev = *curr;
1629 *curr = (*curr)->next(); 1642 *curr = (*curr)->next();
1630 } 1643 }
(...skipping 870 matching lines...) Expand 10 before | Expand all | Expand 10 after
2501 isolate_->Throw(*isolate_->factory()->NewEvalError( 2514 isolate_->Throw(*isolate_->factory()->NewEvalError(
2502 MessageTemplate::kNoSideEffectDebugEvaluate)); 2515 MessageTemplate::kNoSideEffectDebugEvaluate));
2503 } 2516 }
2504 isolate_->set_needs_side_effect_check(old_needs_side_effect_check_); 2517 isolate_->set_needs_side_effect_check(old_needs_side_effect_check_);
2505 isolate_->debug()->UpdateHookOnFunctionCall(); 2518 isolate_->debug()->UpdateHookOnFunctionCall();
2506 isolate_->debug()->side_effect_check_failed_ = false; 2519 isolate_->debug()->side_effect_check_failed_ = false;
2507 } 2520 }
2508 2521
2509 } // namespace internal 2522 } // namespace internal
2510 } // namespace v8 2523 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698