Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Side by Side Diff: src/isolate.h

Issue 516913003: Do not expose termination exceptions to the Exception API. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: address comment Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/ic/ic.cc ('k') | src/isolate.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 } \ 127 } \
128 } while (false) 128 } while (false)
129 129
130 #define ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, dst, call) \ 130 #define ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, dst, call) \
131 ASSIGN_RETURN_ON_EXCEPTION_VALUE( \ 131 ASSIGN_RETURN_ON_EXCEPTION_VALUE( \
132 isolate, dst, call, isolate->heap()->exception()) 132 isolate, dst, call, isolate->heap()->exception())
133 133
134 #define ASSIGN_RETURN_ON_EXCEPTION(isolate, dst, call, T) \ 134 #define ASSIGN_RETURN_ON_EXCEPTION(isolate, dst, call, T) \
135 ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, dst, call, MaybeHandle<T>()) 135 ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, dst, call, MaybeHandle<T>())
136 136
137 #define THROW_NEW_ERROR(isolate, call, T) \
138 do { \
139 Handle<Object> __error__; \
140 ASSIGN_RETURN_ON_EXCEPTION(isolate, __error__, isolate->factory()->call, \
141 T); \
142 return isolate->Throw<T>(__error__); \
143 } while (false)
144
145 #define THROW_NEW_ERROR_RETURN_FAILURE(isolate, call) \
146 do { \
147 Handle<Object> __error__; \
148 ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, __error__, \
149 isolate->factory()->call); \
150 return isolate->Throw(*__error__); \
151 } while (false)
152
137 #define RETURN_ON_EXCEPTION_VALUE(isolate, call, value) \ 153 #define RETURN_ON_EXCEPTION_VALUE(isolate, call, value) \
138 do { \ 154 do { \
139 if ((call).is_null()) { \ 155 if ((call).is_null()) { \
140 DCHECK((isolate)->has_pending_exception()); \ 156 DCHECK((isolate)->has_pending_exception()); \
141 return value; \ 157 return value; \
142 } \ 158 } \
143 } while (false) 159 } while (false)
144 160
145 #define RETURN_FAILURE_ON_EXCEPTION(isolate, call) \ 161 #define RETURN_FAILURE_ON_EXCEPTION(isolate, call) \
146 RETURN_ON_EXCEPTION_VALUE(isolate, call, isolate->heap()->exception()) 162 RETURN_ON_EXCEPTION_VALUE(isolate, call, isolate->heap()->exception())
(...skipping 608 matching lines...) Expand 10 before | Expand all | Expand 10 after
755 void ScheduleThrow(Object* exception); 771 void ScheduleThrow(Object* exception);
756 // Re-set pending message, script and positions reported to the TryCatch 772 // Re-set pending message, script and positions reported to the TryCatch
757 // back to the TLS for re-use when rethrowing. 773 // back to the TLS for re-use when rethrowing.
758 void RestorePendingMessageFromTryCatch(v8::TryCatch* handler); 774 void RestorePendingMessageFromTryCatch(v8::TryCatch* handler);
759 // Un-schedule an exception that was caught by a TryCatch handler. 775 // Un-schedule an exception that was caught by a TryCatch handler.
760 void CancelScheduledExceptionFromTryCatch(v8::TryCatch* handler); 776 void CancelScheduledExceptionFromTryCatch(v8::TryCatch* handler);
761 void ReportPendingMessages(); 777 void ReportPendingMessages();
762 // Return pending location if any or unfilled structure. 778 // Return pending location if any or unfilled structure.
763 MessageLocation GetMessageLocation(); 779 MessageLocation GetMessageLocation();
764 Object* ThrowIllegalOperation(); 780 Object* ThrowIllegalOperation();
765 Object* ThrowInvalidStringLength();
766 781
767 // Promote a scheduled exception to pending. Asserts has_scheduled_exception. 782 // Promote a scheduled exception to pending. Asserts has_scheduled_exception.
768 Object* PromoteScheduledException(); 783 Object* PromoteScheduledException();
769 void DoThrow(Object* exception, MessageLocation* location); 784 void DoThrow(Object* exception, MessageLocation* location);
770 // Checks if exception should be reported and finds out if it's 785 // Checks if exception should be reported and finds out if it's
771 // caught externally. 786 // caught externally.
772 bool ShouldReportException(bool* can_be_caught_externally, 787 bool ShouldReportException(bool* can_be_caught_externally,
773 bool catchable_by_javascript); 788 bool catchable_by_javascript);
774 789
775 // Attempts to compute the current source location, storing the 790 // Attempts to compute the current source location, storing the
(...skipping 766 matching lines...) Expand 10 before | Expand all | Expand 10 after
1542 } 1557 }
1543 1558
1544 EmbeddedVector<char, 128> filename_; 1559 EmbeddedVector<char, 128> filename_;
1545 FILE* file_; 1560 FILE* file_;
1546 int scope_depth_; 1561 int scope_depth_;
1547 }; 1562 };
1548 1563
1549 } } // namespace v8::internal 1564 } } // namespace v8::internal
1550 1565
1551 #endif // V8_ISOLATE_H_ 1566 #endif // V8_ISOLATE_H_
OLDNEW
« no previous file with comments | « src/ic/ic.cc ('k') | src/isolate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698