| OLD | NEW | 
|---|
| 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/isolate.h" | 5 #include "src/isolate.h" | 
| 6 | 6 | 
| 7 #include <stdlib.h> | 7 #include <stdlib.h> | 
| 8 | 8 | 
| 9 #include <fstream>  // NOLINT(readability/streams) | 9 #include <fstream>  // NOLINT(readability/streams) | 
| 10 #include <sstream> | 10 #include <sstream> | 
| (...skipping 1840 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1851       deferred_handles_head_(NULL), | 1851       deferred_handles_head_(NULL), | 
| 1852       optimizing_compile_dispatcher_(NULL), | 1852       optimizing_compile_dispatcher_(NULL), | 
| 1853       stress_deopt_count_(0), | 1853       stress_deopt_count_(0), | 
| 1854       virtual_handler_register_(NULL), | 1854       virtual_handler_register_(NULL), | 
| 1855       virtual_slot_register_(NULL), | 1855       virtual_slot_register_(NULL), | 
| 1856       next_optimization_id_(0), | 1856       next_optimization_id_(0), | 
| 1857       js_calls_from_api_counter_(0), | 1857       js_calls_from_api_counter_(0), | 
| 1858 #if TRACE_MAPS | 1858 #if TRACE_MAPS | 
| 1859       next_unique_sfi_id_(0), | 1859       next_unique_sfi_id_(0), | 
| 1860 #endif | 1860 #endif | 
|  | 1861       is_running_microtasks_(false), | 
| 1861       use_counter_callback_(NULL), | 1862       use_counter_callback_(NULL), | 
| 1862       basic_block_profiler_(NULL), | 1863       basic_block_profiler_(NULL), | 
| 1863       cancelable_task_manager_(new CancelableTaskManager()), | 1864       cancelable_task_manager_(new CancelableTaskManager()), | 
| 1864       abort_on_uncaught_exception_callback_(NULL) { | 1865       abort_on_uncaught_exception_callback_(NULL) { | 
| 1865   { | 1866   { | 
| 1866     base::LockGuard<base::Mutex> lock_guard(thread_data_table_mutex_.Pointer()); | 1867     base::LockGuard<base::Mutex> lock_guard(thread_data_table_mutex_.Pointer()); | 
| 1867     CHECK(thread_data_table_); | 1868     CHECK(thread_data_table_); | 
| 1868   } | 1869   } | 
| 1869   id_ = base::NoBarrier_AtomicIncrement(&isolate_counter_, 1); | 1870   id_ = base::NoBarrier_AtomicIncrement(&isolate_counter_, 1); | 
| 1870   TRACE_ISOLATE(constructor); | 1871   TRACE_ISOLATE(constructor); | 
| (...skipping 902 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2773   DCHECK(queue->get(num_tasks)->IsUndefined()); | 2774   DCHECK(queue->get(num_tasks)->IsUndefined()); | 
| 2774   queue->set(num_tasks, *microtask); | 2775   queue->set(num_tasks, *microtask); | 
| 2775   set_pending_microtask_count(num_tasks + 1); | 2776   set_pending_microtask_count(num_tasks + 1); | 
| 2776 } | 2777 } | 
| 2777 | 2778 | 
| 2778 | 2779 | 
| 2779 void Isolate::RunMicrotasks() { | 2780 void Isolate::RunMicrotasks() { | 
| 2780   // Increase call depth to prevent recursive callbacks. | 2781   // Increase call depth to prevent recursive callbacks. | 
| 2781   v8::Isolate::SuppressMicrotaskExecutionScope suppress( | 2782   v8::Isolate::SuppressMicrotaskExecutionScope suppress( | 
| 2782       reinterpret_cast<v8::Isolate*>(this)); | 2783       reinterpret_cast<v8::Isolate*>(this)); | 
|  | 2784   is_running_microtasks_ = true; | 
| 2783   RunMicrotasksInternal(); | 2785   RunMicrotasksInternal(); | 
|  | 2786   is_running_microtasks_ = false; | 
| 2784   FireMicrotasksCompletedCallback(); | 2787   FireMicrotasksCompletedCallback(); | 
| 2785 } | 2788 } | 
| 2786 | 2789 | 
| 2787 | 2790 | 
| 2788 void Isolate::RunMicrotasksInternal() { | 2791 void Isolate::RunMicrotasksInternal() { | 
| 2789   while (pending_microtask_count() > 0) { | 2792   while (pending_microtask_count() > 0) { | 
| 2790     HandleScope scope(this); | 2793     HandleScope scope(this); | 
| 2791     int num_tasks = pending_microtask_count(); | 2794     int num_tasks = pending_microtask_count(); | 
| 2792     Handle<FixedArray> queue(heap()->microtask_queue(), this); | 2795     Handle<FixedArray> queue(heap()->microtask_queue(), this); | 
| 2793     DCHECK(num_tasks <= queue->length()); | 2796     DCHECK(num_tasks <= queue->length()); | 
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2994   // Then check whether this scope intercepts. | 2997   // Then check whether this scope intercepts. | 
| 2995   if ((flag & intercept_mask_)) { | 2998   if ((flag & intercept_mask_)) { | 
| 2996     intercepted_flags_ |= flag; | 2999     intercepted_flags_ |= flag; | 
| 2997     return true; | 3000     return true; | 
| 2998   } | 3001   } | 
| 2999   return false; | 3002   return false; | 
| 3000 } | 3003 } | 
| 3001 | 3004 | 
| 3002 }  // namespace internal | 3005 }  // namespace internal | 
| 3003 }  // namespace v8 | 3006 }  // namespace v8 | 
| OLD | NEW | 
|---|