summaryrefslogtreecommitdiff
path: root/deps/v8/src/common/assert-scope.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/common/assert-scope.cc')
-rw-r--r--deps/v8/src/common/assert-scope.cc16
1 files changed, 12 insertions, 4 deletions
diff --git a/deps/v8/src/common/assert-scope.cc b/deps/v8/src/common/assert-scope.cc
index f638a2c778..1b996b14e4 100644
--- a/deps/v8/src/common/assert-scope.cc
+++ b/deps/v8/src/common/assert-scope.cc
@@ -15,11 +15,15 @@ namespace internal {
namespace {
+// All asserts are allowed by default except for one.
+constexpr uint32_t kInitialValue =
+ ~(1 << HANDLE_DEREFERENCE_ALL_THREADS_ASSERT);
+
template <PerThreadAssertType kType>
using PerThreadDataBit = base::BitField<bool, kType, 1>;
-// Thread-local storage for assert data. Default all asserts to "allow".
-thread_local uint32_t current_per_thread_assert_data(~0);
+// Thread-local storage for assert data.
+thread_local uint32_t current_per_thread_assert_data(kInitialValue);
} // namespace
@@ -81,8 +85,10 @@ bool PerThreadAssertScope<kType, kAllow>::IsAllowed() {
enable) \
PER_ISOLATE_ASSERT_SCOPE_DEFINITION(DisableType, field, enable)
-PER_ISOLATE_ASSERT_TYPE(PER_ISOLATE_ASSERT_ENABLE_SCOPE_DEFINITION, true)
-PER_ISOLATE_ASSERT_TYPE(PER_ISOLATE_ASSERT_DISABLE_SCOPE_DEFINITION, false)
+PER_ISOLATE_DCHECK_TYPE(PER_ISOLATE_ASSERT_ENABLE_SCOPE_DEFINITION, true)
+PER_ISOLATE_CHECK_TYPE(PER_ISOLATE_ASSERT_ENABLE_SCOPE_DEFINITION, true)
+PER_ISOLATE_DCHECK_TYPE(PER_ISOLATE_ASSERT_DISABLE_SCOPE_DEFINITION, false)
+PER_ISOLATE_CHECK_TYPE(PER_ISOLATE_ASSERT_DISABLE_SCOPE_DEFINITION, false)
// -----------------------------------------------------------------------------
// Instantiations.
@@ -95,6 +101,8 @@ template class PerThreadAssertScope<HANDLE_ALLOCATION_ASSERT, false>;
template class PerThreadAssertScope<HANDLE_ALLOCATION_ASSERT, true>;
template class PerThreadAssertScope<HANDLE_DEREFERENCE_ASSERT, false>;
template class PerThreadAssertScope<HANDLE_DEREFERENCE_ASSERT, true>;
+template class PerThreadAssertScope<HANDLE_DEREFERENCE_ALL_THREADS_ASSERT,
+ true>;
template class PerThreadAssertScope<CODE_DEPENDENCY_CHANGE_ASSERT, false>;
template class PerThreadAssertScope<CODE_DEPENDENCY_CHANGE_ASSERT, true>;
template class PerThreadAssertScope<CODE_ALLOCATION_ASSERT, false>;