| Index: src/top.h
|
| ===================================================================
|
| --- src/top.h (revision 5696)
|
| +++ src/top.h (working copy)
|
| @@ -84,7 +84,7 @@
|
| // lookups.
|
| Context* context_;
|
| int thread_id_;
|
| - Object* pending_exception_;
|
| + MaybeObject* pending_exception_;
|
| bool has_pending_message_;
|
| const char* pending_message_;
|
| Object* pending_message_obj_;
|
| @@ -94,7 +94,7 @@
|
| // Use a separate value for scheduled exceptions to preserve the
|
| // invariants that hold about pending_exception. We may want to
|
| // unify them later.
|
| - Object* scheduled_exception_;
|
| + MaybeObject* scheduled_exception_;
|
| bool external_caught_exception_;
|
| SaveContext* save_context_;
|
| v8::TryCatch* catcher_;
|
| @@ -165,21 +165,21 @@
|
| static void set_thread_id(int id) { thread_local_.thread_id_ = id; }
|
|
|
| // Interface to pending exception.
|
| - static Object* pending_exception() {
|
| + static MaybeObject* pending_exception() {
|
| ASSERT(has_pending_exception());
|
| return thread_local_.pending_exception_;
|
| }
|
| static bool external_caught_exception() {
|
| return thread_local_.external_caught_exception_;
|
| }
|
| - static void set_pending_exception(Object* exception) {
|
| + static void set_pending_exception(MaybeObject* exception) {
|
| thread_local_.pending_exception_ = exception;
|
| }
|
| static void clear_pending_exception() {
|
| thread_local_.pending_exception_ = Heap::the_hole_value();
|
| }
|
|
|
| - static Object** pending_exception_address() {
|
| + static MaybeObject** pending_exception_address() {
|
| return &thread_local_.pending_exception_;
|
| }
|
| static bool has_pending_exception() {
|
| @@ -208,11 +208,11 @@
|
| return &thread_local_.external_caught_exception_;
|
| }
|
|
|
| - static Object** scheduled_exception_address() {
|
| + static MaybeObject** scheduled_exception_address() {
|
| return &thread_local_.scheduled_exception_;
|
| }
|
|
|
| - static Object* scheduled_exception() {
|
| + static MaybeObject* scheduled_exception() {
|
| ASSERT(has_scheduled_exception());
|
| return thread_local_.scheduled_exception_;
|
| }
|
| @@ -302,14 +302,15 @@
|
| // Re-throw an exception. This involves no error reporting since
|
| // error reporting was handled when the exception was thrown
|
| // originally.
|
| - static Failure* ReThrow(Object* exception, MessageLocation* location = NULL);
|
| + static Failure* ReThrow(MaybeObject* exception,
|
| + MessageLocation* location = NULL);
|
| static void ScheduleThrow(Object* exception);
|
| static void ReportPendingMessages();
|
| static Failure* ThrowIllegalOperation();
|
|
|
| // Promote a scheduled exception to pending. Asserts has_scheduled_exception.
|
| - static Object* PromoteScheduledException();
|
| - static void DoThrow(Object* exception,
|
| + static Failure* PromoteScheduledException();
|
| + static void DoThrow(MaybeObject* exception,
|
| MessageLocation* location,
|
| const char* message);
|
| static bool ShouldReturnException(bool* is_caught_externally,
|
|
|