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 <memory> | 8 #include <memory> |
9 #include <queue> | 9 #include <queue> |
10 #include <set> | 10 #include <set> |
(...skipping 642 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
653 static int ArchiveSpacePerThread() { return sizeof(ThreadLocalTop); } | 653 static int ArchiveSpacePerThread() { return sizeof(ThreadLocalTop); } |
654 void FreeThreadResources() { thread_local_top_.Free(); } | 654 void FreeThreadResources() { thread_local_top_.Free(); } |
655 | 655 |
656 // This method is called by the api after operations that may throw | 656 // This method is called by the api after operations that may throw |
657 // exceptions. If an exception was thrown and not handled by an external | 657 // exceptions. If an exception was thrown and not handled by an external |
658 // handler the exception is scheduled to be rethrown when we return to running | 658 // handler the exception is scheduled to be rethrown when we return to running |
659 // JavaScript code. If an exception is scheduled true is returned. | 659 // JavaScript code. If an exception is scheduled true is returned. |
660 bool OptionalRescheduleException(bool is_bottom_call); | 660 bool OptionalRescheduleException(bool is_bottom_call); |
661 | 661 |
662 // Push and pop a promise and the current try-catch handler. | 662 // Push and pop a promise and the current try-catch handler. |
663 void PushPromise(Handle<JSObject> promise, Handle<JSFunction> function); | 663 void PushPromise(Handle<JSObject> promise); |
664 void PopPromise(); | 664 void PopPromise(); |
665 Handle<Object> GetPromiseOnStackOnThrow(); | 665 Handle<Object> GetPromiseOnStackOnThrow(); |
666 | 666 |
667 class ExceptionScope { | 667 class ExceptionScope { |
668 public: | 668 public: |
669 // Scope currently can only be used for regular exceptions, | 669 // Scope currently can only be used for regular exceptions, |
670 // not termination exception. | 670 // not termination exception. |
671 inline explicit ExceptionScope(Isolate* isolate); | 671 inline explicit ExceptionScope(Isolate* isolate); |
672 inline ~ExceptionScope(); | 672 inline ~ExceptionScope(); |
673 | 673 |
(...skipping 755 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1429 DISALLOW_COPY_AND_ASSIGN(Isolate); | 1429 DISALLOW_COPY_AND_ASSIGN(Isolate); |
1430 }; | 1430 }; |
1431 | 1431 |
1432 | 1432 |
1433 #undef FIELD_ACCESSOR | 1433 #undef FIELD_ACCESSOR |
1434 #undef THREAD_LOCAL_TOP_ACCESSOR | 1434 #undef THREAD_LOCAL_TOP_ACCESSOR |
1435 | 1435 |
1436 | 1436 |
1437 class PromiseOnStack { | 1437 class PromiseOnStack { |
1438 public: | 1438 public: |
1439 PromiseOnStack(Handle<JSFunction> function, Handle<JSObject> promise, | 1439 PromiseOnStack(Handle<JSObject> promise, PromiseOnStack* prev) |
1440 PromiseOnStack* prev) | 1440 : promise_(promise), prev_(prev) {} |
1441 : function_(function), promise_(promise), prev_(prev) {} | |
1442 Handle<JSFunction> function() { return function_; } | |
1443 Handle<JSObject> promise() { return promise_; } | 1441 Handle<JSObject> promise() { return promise_; } |
1444 PromiseOnStack* prev() { return prev_; } | 1442 PromiseOnStack* prev() { return prev_; } |
1445 | 1443 |
1446 private: | 1444 private: |
1447 Handle<JSFunction> function_; | |
1448 Handle<JSObject> promise_; | 1445 Handle<JSObject> promise_; |
1449 PromiseOnStack* prev_; | 1446 PromiseOnStack* prev_; |
1450 }; | 1447 }; |
1451 | 1448 |
1452 | 1449 |
1453 // If the GCC version is 4.1.x or 4.2.x an additional field is added to the | 1450 // If the GCC version is 4.1.x or 4.2.x an additional field is added to the |
1454 // class as a work around for a bug in the generated code found with these | 1451 // class as a work around for a bug in the generated code found with these |
1455 // versions of GCC. See V8 issue 122 for details. | 1452 // versions of GCC. See V8 issue 122 for details. |
1456 class SaveContext BASE_EMBEDDED { | 1453 class SaveContext BASE_EMBEDDED { |
1457 public: | 1454 public: |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1642 | 1639 |
1643 EmbeddedVector<char, 128> filename_; | 1640 EmbeddedVector<char, 128> filename_; |
1644 FILE* file_; | 1641 FILE* file_; |
1645 int scope_depth_; | 1642 int scope_depth_; |
1646 }; | 1643 }; |
1647 | 1644 |
1648 } // namespace internal | 1645 } // namespace internal |
1649 } // namespace v8 | 1646 } // namespace v8 |
1650 | 1647 |
1651 #endif // V8_ISOLATE_H_ | 1648 #endif // V8_ISOLATE_H_ |
OLD | NEW |