28 #ifndef V8_ASSERT_SCOPE_H_
29 #define V8_ASSERT_SCOPE_H_
61 assert_states_[i] =
true;
66 assert_states_[type] = allow;
70 return assert_states_[type];
90 SetThreadLocalData(
data_);
101 SetThreadLocalData(
NULL);
120 template <PerThreadAssertType type,
bool allow>
132 return data ==
NULL || data->
get(type);
149 template <PerIsolateAssertType type,
bool allow>
176 template <PerThreadAssertType type,
bool allow>
178 class PerThreadAssertScopeDebugOnly :
public
179 PerThreadAssertScope<type, allow> {
188 template <PerIsolateAssertType type,
bool allow>
190 class PerIsolateAssertScopeDebugOnly :
public
191 PerIsolateAssertScope<type, allow> {
193 explicit PerIsolateAssertScopeDebugOnly(
Isolate* isolate)
194 : PerIsolateAssertScope<type, allow>(isolate) { }
205 typedef PerThreadAssertScopeDebugOnly<HANDLE_ALLOCATION_ASSERT, false>
273 #endif // V8_ASSERT_SCOPE_H_
PerIsolateAssertScope(Isolate *isolate)
enable upcoming ES6 features enable harmony block scoping enable harmony enable harmony proxies enable harmony generators enable harmony numeric enable harmony string enable harmony math functions harmony_scoping harmony_symbols harmony_collections harmony_iteration harmony_strings harmony_scoping harmony_maths tracks arrays with only smi values Optimize object Array DOM strings and string pretenure call new trace pretenuring decisions of HAllocate instructions track fields with only smi values track fields with heap values track_fields track_fields Enables optimizations which favor memory size over execution speed use string slices optimization filter maximum number of GVN fix point iterations use function inlining use allocation folding eliminate write barriers targeting allocations in optimized code maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining crankshaft harvests type feedback from stub cache trace check elimination phase hydrogen tracing filter NULL
static void * GetThreadLocal(LocalStorageKey key)
PerThreadAssertScopeDebugOnly()
PerThreadAssertScopeDebugOnly< DEFERRED_HANDLE_DEREFERENCE_ASSERT, false > DisallowDeferredHandleDereference
PerIsolateAssertScope< JAVASCRIPT_EXECUTION_ASSERT, true > AllowJavascriptExecution
PerThreadAssertScopeDebugOnly< HANDLE_DEREFERENCE_ASSERT, false > DisallowHandleDereference
#define ASSERT(condition)
static bool IsAllowed(Isolate *isolate)
PerThreadAssertScopeDebugOnly< DEFERRED_HANDLE_DEREFERENCE_ASSERT, true > AllowDeferredHandleDereference
PerThreadAssertScopeDebugOnly< HEAP_ALLOCATION_ASSERT, true > AllowHeapAllocation
PerThreadAssertScopeDebugOnly< CODE_DEPENDENCY_CHANGE_ASSERT, false > DisallowCodeDependencyChange
static uint32_t GetData(Isolate *isolate)
bool get(PerThreadAssertType type) const
STATIC_ASSERT(sizeof(CPURegister)==sizeof(Register))
PerIsolateAssertScopeDebugOnly< ALLOCATION_FAILURE_ASSERT, false > DisallowAllocationFailure
static uint32_t update(uint32_tprevious, T value)
PerIsolateAssertScope< JAVASCRIPT_EXECUTION_THROWS, true > NoThrowOnJavascriptExecution
PerThreadAssertScopeDebugOnly< HANDLE_ALLOCATION_ASSERT, false > DisallowHandleAllocation
PerIsolateAssertScope< JAVASCRIPT_EXECUTION_THROWS, false > ThrowOnJavascriptExecution
static PerThreadAssertData * GetAssertData()
PerIsolateAssertScope< JAVASCRIPT_EXECUTION_ASSERT, false > DisallowJavascriptExecution
PerThreadAssertScopeDebugOnly< HANDLE_ALLOCATION_ASSERT, true > AllowHandleAllocation
PerThreadAssertScopeBase()
static void SetThreadLocal(LocalStorageKey key, void *value)
static void SetData(Isolate *isolate, uint32_t data)
PerIsolateAssertScopeDebugOnly(Isolate *isolate)
PerThreadAssertScopeDebugOnly< HEAP_ALLOCATION_ASSERT, false > DisallowHeapAllocation
PerIsolateAssertScopeDebugOnly< ALLOCATION_FAILURE_ASSERT, true > AllowAllocationFailure
~PerThreadAssertScopeBase()
PerThreadAssertScopeDebugOnly< CODE_DEPENDENCY_CHANGE_ASSERT, true > AllowCodeDependencyChange
static Thread::LocalStorageKey thread_local_key
static T decode(uint32_tvalue)
PerThreadAssertScopeDebugOnly< HANDLE_DEREFERENCE_ASSERT, true > AllowHandleDereference
void set(PerThreadAssertType type, bool allow)
PerThreadAssertData * data_