| OLD | NEW |
| 1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 172 ASSERT(!external_caught_exception_); | 172 ASSERT(!external_caught_exception_); |
| 173 ASSERT(try_catch_handler_address_ == NULL); | 173 ASSERT(try_catch_handler_address_ == NULL); |
| 174 } | 174 } |
| 175 | 175 |
| 176 // The context where the current execution method is created and for variable | 176 // The context where the current execution method is created and for variable |
| 177 // lookups. | 177 // lookups. |
| 178 Context* context_; | 178 Context* context_; |
| 179 int thread_id_; | 179 int thread_id_; |
| 180 MaybeObject* pending_exception_; | 180 MaybeObject* pending_exception_; |
| 181 bool has_pending_message_; | 181 bool has_pending_message_; |
| 182 const char* pending_message_; | |
| 183 Object* pending_message_obj_; | 182 Object* pending_message_obj_; |
| 184 Script* pending_message_script_; | 183 Script* pending_message_script_; |
| 185 int pending_message_start_pos_; | 184 int pending_message_start_pos_; |
| 186 int pending_message_end_pos_; | 185 int pending_message_end_pos_; |
| 187 // Use a separate value for scheduled exceptions to preserve the | 186 // Use a separate value for scheduled exceptions to preserve the |
| 188 // invariants that hold about pending_exception. We may want to | 187 // invariants that hold about pending_exception. We may want to |
| 189 // unify them later. | 188 // unify them later. |
| 190 MaybeObject* scheduled_exception_; | 189 MaybeObject* scheduled_exception_; |
| 191 bool external_caught_exception_; | 190 bool external_caught_exception_; |
| 192 // True if unhandled message is being currently reported by | 191 // True if unhandled message is being currently reported by |
| (...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 508 thread_local_top_.pending_exception_ = heap_.the_hole_value(); | 507 thread_local_top_.pending_exception_ = heap_.the_hole_value(); |
| 509 } | 508 } |
| 510 MaybeObject** pending_exception_address() { | 509 MaybeObject** pending_exception_address() { |
| 511 return &thread_local_top_.pending_exception_; | 510 return &thread_local_top_.pending_exception_; |
| 512 } | 511 } |
| 513 bool has_pending_exception() { | 512 bool has_pending_exception() { |
| 514 return !thread_local_top_.pending_exception_->IsTheHole(); | 513 return !thread_local_top_.pending_exception_->IsTheHole(); |
| 515 } | 514 } |
| 516 void clear_pending_message() { | 515 void clear_pending_message() { |
| 517 thread_local_top_.has_pending_message_ = false; | 516 thread_local_top_.has_pending_message_ = false; |
| 518 thread_local_top_.pending_message_ = NULL; | |
| 519 thread_local_top_.pending_message_obj_ = heap_.the_hole_value(); | 517 thread_local_top_.pending_message_obj_ = heap_.the_hole_value(); |
| 520 thread_local_top_.pending_message_script_ = NULL; | 518 thread_local_top_.pending_message_script_ = NULL; |
| 521 } | 519 } |
| 522 v8::TryCatch* try_catch_handler() { | 520 v8::TryCatch* try_catch_handler() { |
| 523 return thread_local_top_.TryCatchHandler(); | 521 return thread_local_top_.TryCatchHandler(); |
| 524 } | 522 } |
| 525 Address try_catch_handler_address() { | 523 Address try_catch_handler_address() { |
| 526 return thread_local_top_.try_catch_handler_address(); | 524 return thread_local_top_.try_catch_handler_address(); |
| 527 } | 525 } |
| 528 bool* external_caught_exception_address() { | 526 bool* external_caught_exception_address() { |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 668 // Re-throw an exception. This involves no error reporting since | 666 // Re-throw an exception. This involves no error reporting since |
| 669 // error reporting was handled when the exception was thrown | 667 // error reporting was handled when the exception was thrown |
| 670 // originally. | 668 // originally. |
| 671 Failure* ReThrow(MaybeObject* exception, MessageLocation* location = NULL); | 669 Failure* ReThrow(MaybeObject* exception, MessageLocation* location = NULL); |
| 672 void ScheduleThrow(Object* exception); | 670 void ScheduleThrow(Object* exception); |
| 673 void ReportPendingMessages(); | 671 void ReportPendingMessages(); |
| 674 Failure* ThrowIllegalOperation(); | 672 Failure* ThrowIllegalOperation(); |
| 675 | 673 |
| 676 // Promote a scheduled exception to pending. Asserts has_scheduled_exception. | 674 // Promote a scheduled exception to pending. Asserts has_scheduled_exception. |
| 677 Failure* PromoteScheduledException(); | 675 Failure* PromoteScheduledException(); |
| 678 void DoThrow(MaybeObject* exception, | 676 void DoThrow(MaybeObject* exception, MessageLocation* location); |
| 679 MessageLocation* location, | |
| 680 const char* message); | |
| 681 // Checks if exception should be reported and finds out if it's | 677 // Checks if exception should be reported and finds out if it's |
| 682 // caught externally. | 678 // caught externally. |
| 683 bool ShouldReportException(bool* can_be_caught_externally, | 679 bool ShouldReportException(bool* can_be_caught_externally, |
| 684 bool catchable_by_javascript); | 680 bool catchable_by_javascript); |
| 685 | 681 |
| 686 // Attempts to compute the current source location, storing the | 682 // Attempts to compute the current source location, storing the |
| 687 // result in the target out parameter. | 683 // result in the target out parameter. |
| 688 void ComputeLocation(MessageLocation* target); | 684 void ComputeLocation(MessageLocation* target); |
| 689 | 685 |
| 690 // Override command line flag. | 686 // Override command line flag. |
| (...skipping 653 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1344 | 1340 |
| 1345 } } // namespace v8::internal | 1341 } } // namespace v8::internal |
| 1346 | 1342 |
| 1347 // TODO(isolates): Get rid of these -inl.h includes and place them only where | 1343 // TODO(isolates): Get rid of these -inl.h includes and place them only where |
| 1348 // they're needed. | 1344 // they're needed. |
| 1349 #include "allocation-inl.h" | 1345 #include "allocation-inl.h" |
| 1350 #include "zone-inl.h" | 1346 #include "zone-inl.h" |
| 1351 #include "frames-inl.h" | 1347 #include "frames-inl.h" |
| 1352 | 1348 |
| 1353 #endif // V8_ISOLATE_H_ | 1349 #endif // V8_ISOLATE_H_ |
| OLD | NEW |