Home | History | Annotate | Download | only in src
      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
      3 // found in the LICENSE file.
      4 
      5 #ifndef V8_CHECKS_H_
      6 #define V8_CHECKS_H_
      7 
      8 #include "include/v8.h"
      9 #include "src/base/logging.h"
     10 
     11 namespace v8 {
     12 
     13 class Value;
     14 
     15 namespace internal {
     16 
     17 #ifdef ENABLE_SLOW_DCHECKS
     18 #define SLOW_DCHECK(condition) \
     19   CHECK(!v8::internal::FLAG_enable_slow_asserts || (condition))
     20 extern bool FLAG_enable_slow_asserts;
     21 #else
     22 #define SLOW_DCHECK(condition) ((void) 0)
     23 const bool FLAG_enable_slow_asserts = false;
     24 #endif
     25 
     26 }  // namespace internal
     27 }  // namespace v8
     28 
     29 #define DCHECK_TAG_ALIGNED(address)             \
     30   DCHECK((reinterpret_cast<intptr_t>(address) & \
     31           ::v8::internal::kHeapObjectTagMask) == 0)
     32 
     33 #define DCHECK_SIZE_TAG_ALIGNED(size) \
     34   DCHECK((size & ::v8::internal::kHeapObjectTagMask) == 0)
     35 
     36 #endif  // V8_CHECKS_H_
     37