| 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 #ifndef V8_ISOLATE_H_ |     5 #ifndef V8_ISOLATE_H_ | 
|     6 #define V8_ISOLATE_H_ |     6 #define V8_ISOLATE_H_ | 
|     7  |     7  | 
|     8 #include "include/v8-debug.h" |     8 #include "include/v8-debug.h" | 
|     9 #include "src/allocation.h" |     9 #include "src/allocation.h" | 
|    10 #include "src/assert-scope.h" |    10 #include "src/assert-scope.h" | 
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   162 #define RETURN_FAILURE_ON_EXCEPTION(isolate, call)  \ |   162 #define RETURN_FAILURE_ON_EXCEPTION(isolate, call)  \ | 
|   163   RETURN_ON_EXCEPTION_VALUE(isolate, call, isolate->heap()->exception()) |   163   RETURN_ON_EXCEPTION_VALUE(isolate, call, isolate->heap()->exception()) | 
|   164  |   164  | 
|   165 #define RETURN_ON_EXCEPTION(isolate, call, T)  \ |   165 #define RETURN_ON_EXCEPTION(isolate, call, T)  \ | 
|   166   RETURN_ON_EXCEPTION_VALUE(isolate, call, MaybeHandle<T>()) |   166   RETURN_ON_EXCEPTION_VALUE(isolate, call, MaybeHandle<T>()) | 
|   167  |   167  | 
|   168  |   168  | 
|   169 #define FOR_EACH_ISOLATE_ADDRESS_NAME(C)                \ |   169 #define FOR_EACH_ISOLATE_ADDRESS_NAME(C)                \ | 
|   170   C(Handler, handler)                                   \ |   170   C(Handler, handler)                                   \ | 
|   171   C(CEntryFP, c_entry_fp)                               \ |   171   C(CEntryFP, c_entry_fp)                               \ | 
 |   172   C(CFunction, c_function)                              \ | 
|   172   C(Context, context)                                   \ |   173   C(Context, context)                                   \ | 
|   173   C(PendingException, pending_exception)                \ |   174   C(PendingException, pending_exception)                \ | 
|   174   C(ExternalCaughtException, external_caught_exception) \ |   175   C(ExternalCaughtException, external_caught_exception) \ | 
|   175   C(JSEntrySP, js_entry_sp) |   176   C(JSEntrySP, js_entry_sp) | 
|   176  |   177  | 
|   177  |   178  | 
|   178 // Platform-independent, reliable thread identifier. |   179 // Platform-independent, reliable thread identifier. | 
|   179 class ThreadId { |   180 class ThreadId { | 
|   180  public: |   181  public: | 
|   181   // Creates an invalid ThreadId. |   182   // Creates an invalid ThreadId. | 
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   276   // invariants that hold about pending_exception.  We may want to |   277   // invariants that hold about pending_exception.  We may want to | 
|   277   // unify them later. |   278   // unify them later. | 
|   278   Object* scheduled_exception_; |   279   Object* scheduled_exception_; | 
|   279   bool external_caught_exception_; |   280   bool external_caught_exception_; | 
|   280   SaveContext* save_context_; |   281   SaveContext* save_context_; | 
|   281   v8::TryCatch* catcher_; |   282   v8::TryCatch* catcher_; | 
|   282  |   283  | 
|   283   // Stack. |   284   // Stack. | 
|   284   Address c_entry_fp_;  // the frame pointer of the top c entry frame |   285   Address c_entry_fp_;  // the frame pointer of the top c entry frame | 
|   285   Address handler_;   // try-blocks are chained through the stack |   286   Address handler_;   // try-blocks are chained through the stack | 
 |   287   Address c_function_;  // C function that was called at c entry. | 
|   286  |   288  | 
|   287   // Throwing an exception may cause a Promise rejection.  For this purpose |   289   // Throwing an exception may cause a Promise rejection.  For this purpose | 
|   288   // we keep track of a stack of nested promises and the corresponding |   290   // we keep track of a stack of nested promises and the corresponding | 
|   289   // try-catch handlers. |   291   // try-catch handlers. | 
|   290   PromiseOnStack* promise_on_stack_; |   292   PromiseOnStack* promise_on_stack_; | 
|   291  |   293  | 
|   292 #ifdef USE_SIMULATOR |   294 #ifdef USE_SIMULATOR | 
|   293   Simulator* simulator_; |   295   Simulator* simulator_; | 
|   294 #endif |   296 #endif | 
|   295  |   297  | 
| (...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   642   } |   644   } | 
|   643  |   645  | 
|   644   // Serializer. |   646   // Serializer. | 
|   645   void PushToPartialSnapshotCache(Object* obj); |   647   void PushToPartialSnapshotCache(Object* obj); | 
|   646  |   648  | 
|   647   // JS execution stack (see frames.h). |   649   // JS execution stack (see frames.h). | 
|   648   static Address c_entry_fp(ThreadLocalTop* thread) { |   650   static Address c_entry_fp(ThreadLocalTop* thread) { | 
|   649     return thread->c_entry_fp_; |   651     return thread->c_entry_fp_; | 
|   650   } |   652   } | 
|   651   static Address handler(ThreadLocalTop* thread) { return thread->handler_; } |   653   static Address handler(ThreadLocalTop* thread) { return thread->handler_; } | 
 |   654   Address c_function() { return thread_local_top_.c_function_; } | 
|   652  |   655  | 
|   653   inline Address* c_entry_fp_address() { |   656   inline Address* c_entry_fp_address() { | 
|   654     return &thread_local_top_.c_entry_fp_; |   657     return &thread_local_top_.c_entry_fp_; | 
|   655   } |   658   } | 
|   656   inline Address* handler_address() { return &thread_local_top_.handler_; } |   659   inline Address* handler_address() { return &thread_local_top_.handler_; } | 
 |   660   inline Address* c_function_address() { | 
 |   661     return &thread_local_top_.c_function_; | 
 |   662   } | 
|   657  |   663  | 
|   658   // Bottom JS entry. |   664   // Bottom JS entry. | 
|   659   Address js_entry_sp() { |   665   Address js_entry_sp() { | 
|   660     return thread_local_top_.js_entry_sp_; |   666     return thread_local_top_.js_entry_sp_; | 
|   661   } |   667   } | 
|   662   inline Address* js_entry_sp_address() { |   668   inline Address* js_entry_sp_address() { | 
|   663     return &thread_local_top_.js_entry_sp_; |   669     return &thread_local_top_.js_entry_sp_; | 
|   664   } |   670   } | 
|   665  |   671  | 
|   666   // Generated code scratch locations. |   672   // Generated code scratch locations. | 
| (...skipping 885 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1552   } |  1558   } | 
|  1553  |  1559  | 
|  1554   EmbeddedVector<char, 128> filename_; |  1560   EmbeddedVector<char, 128> filename_; | 
|  1555   FILE* file_; |  1561   FILE* file_; | 
|  1556   int scope_depth_; |  1562   int scope_depth_; | 
|  1557 }; |  1563 }; | 
|  1558  |  1564  | 
|  1559 } }  // namespace v8::internal |  1565 } }  // namespace v8::internal | 
|  1560  |  1566  | 
|  1561 #endif  // V8_ISOLATE_H_ |  1567 #endif  // V8_ISOLATE_H_ | 
| OLD | NEW |