OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 685 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
696 | 696 |
697 void PrintCurrentStackTrace(FILE* out); | 697 void PrintCurrentStackTrace(FILE* out); |
698 void PrintStackTrace(FILE* out, char* thread_data); | 698 void PrintStackTrace(FILE* out, char* thread_data); |
699 void PrintStack(StringStream* accumulator); | 699 void PrintStack(StringStream* accumulator); |
700 void PrintStack(); | 700 void PrintStack(); |
701 Handle<String> StackTraceString(); | 701 Handle<String> StackTraceString(); |
702 Handle<JSArray> CaptureCurrentStackTrace( | 702 Handle<JSArray> CaptureCurrentStackTrace( |
703 int frame_limit, | 703 int frame_limit, |
704 StackTrace::StackTraceOptions options); | 704 StackTrace::StackTraceOptions options); |
705 | 705 |
| 706 void CaptureAndSetCurrentStackTraceFor(Handle<JSObject> error_object); |
| 707 |
706 // Returns if the top context may access the given global object. If | 708 // Returns if the top context may access the given global object. If |
707 // the result is false, the pending exception is guaranteed to be | 709 // the result is false, the pending exception is guaranteed to be |
708 // set. | 710 // set. |
709 bool MayNamedAccess(JSObject* receiver, | 711 bool MayNamedAccess(JSObject* receiver, |
710 Object* key, | 712 Object* key, |
711 v8::AccessType type); | 713 v8::AccessType type); |
712 bool MayIndexedAccess(JSObject* receiver, | 714 bool MayIndexedAccess(JSObject* receiver, |
713 uint32_t index, | 715 uint32_t index, |
714 v8::AccessType type); | 716 v8::AccessType type); |
715 | 717 |
716 void SetFailedAccessCheckCallback(v8::FailedAccessCheckCallback callback); | 718 void SetFailedAccessCheckCallback(v8::FailedAccessCheckCallback callback); |
717 void ReportFailedAccessCheck(JSObject* receiver, v8::AccessType type); | 719 void ReportFailedAccessCheck(JSObject* receiver, v8::AccessType type); |
718 | 720 |
719 // Exception throwing support. The caller should use the result | 721 // Exception throwing support. The caller should use the result |
720 // of Throw() as its return value. | 722 // of Throw() as its return value. |
721 Failure* Throw(Object* exception, MessageLocation* location = NULL); | 723 Failure* Throw(Object* exception, MessageLocation* location = NULL); |
722 // Re-throw an exception. This involves no error reporting since | 724 // Re-throw an exception. This involves no error reporting since |
723 // error reporting was handled when the exception was thrown | 725 // error reporting was handled when the exception was thrown |
724 // originally. | 726 // originally. |
725 Failure* ReThrow(MaybeObject* exception, MessageLocation* location = NULL); | 727 Failure* ReThrow(MaybeObject* exception, MessageLocation* location = NULL); |
726 void ScheduleThrow(Object* exception); | 728 void ScheduleThrow(Object* exception); |
727 void ReportPendingMessages(); | 729 void ReportPendingMessages(); |
728 Failure* ThrowIllegalOperation(); | 730 Failure* ThrowIllegalOperation(); |
729 | 731 |
730 // Promote a scheduled exception to pending. Asserts has_scheduled_exception. | 732 // Promote a scheduled exception to pending. Asserts has_scheduled_exception. |
731 Failure* PromoteScheduledException(); | 733 Failure* PromoteScheduledException(); |
732 void DoThrow(MaybeObject* exception, MessageLocation* location); | 734 void DoThrow(Object* exception, MessageLocation* location); |
733 // Checks if exception should be reported and finds out if it's | 735 // Checks if exception should be reported and finds out if it's |
734 // caught externally. | 736 // caught externally. |
735 bool ShouldReportException(bool* can_be_caught_externally, | 737 bool ShouldReportException(bool* can_be_caught_externally, |
736 bool catchable_by_javascript); | 738 bool catchable_by_javascript); |
737 | 739 |
738 // Attempts to compute the current source location, storing the | 740 // Attempts to compute the current source location, storing the |
739 // result in the target out parameter. | 741 // result in the target out parameter. |
740 void ComputeLocation(MessageLocation* target); | 742 void ComputeLocation(MessageLocation* target); |
741 | 743 |
742 // Override command line flag. | 744 // Override command line flag. |
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1134 ThreadLocalTop* archived_thread_data); | 1136 ThreadLocalTop* archived_thread_data); |
1135 void MarkCompactEpilogue(bool is_compacting, | 1137 void MarkCompactEpilogue(bool is_compacting, |
1136 ThreadLocalTop* archived_thread_data); | 1138 ThreadLocalTop* archived_thread_data); |
1137 | 1139 |
1138 void FillCache(); | 1140 void FillCache(); |
1139 | 1141 |
1140 void PropagatePendingExceptionToExternalTryCatch(); | 1142 void PropagatePendingExceptionToExternalTryCatch(); |
1141 | 1143 |
1142 void InitializeDebugger(); | 1144 void InitializeDebugger(); |
1143 | 1145 |
| 1146 // Traverse prototype chain to find out whether the object is derived from |
| 1147 // the Error object. |
| 1148 bool IsErrorObject(Handle<Object> obj); |
| 1149 |
1144 int stack_trace_nesting_level_; | 1150 int stack_trace_nesting_level_; |
1145 StringStream* incomplete_message_; | 1151 StringStream* incomplete_message_; |
1146 // The preallocated memory thread singleton. | 1152 // The preallocated memory thread singleton. |
1147 PreallocatedMemoryThread* preallocated_memory_thread_; | 1153 PreallocatedMemoryThread* preallocated_memory_thread_; |
1148 Address isolate_addresses_[kIsolateAddressCount + 1]; // NOLINT | 1154 Address isolate_addresses_[kIsolateAddressCount + 1]; // NOLINT |
1149 NoAllocationStringAllocator* preallocated_message_space_; | 1155 NoAllocationStringAllocator* preallocated_message_space_; |
1150 | 1156 |
1151 Bootstrapper* bootstrapper_; | 1157 Bootstrapper* bootstrapper_; |
1152 RuntimeProfiler* runtime_profiler_; | 1158 RuntimeProfiler* runtime_profiler_; |
1153 CompilationCache* compilation_cache_; | 1159 CompilationCache* compilation_cache_; |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1398 | 1404 |
1399 // Mark the global context with out of memory. | 1405 // Mark the global context with out of memory. |
1400 inline void Context::mark_out_of_memory() { | 1406 inline void Context::mark_out_of_memory() { |
1401 global_context()->set_out_of_memory(HEAP->true_value()); | 1407 global_context()->set_out_of_memory(HEAP->true_value()); |
1402 } | 1408 } |
1403 | 1409 |
1404 | 1410 |
1405 } } // namespace v8::internal | 1411 } } // namespace v8::internal |
1406 | 1412 |
1407 #endif // V8_ISOLATE_H_ | 1413 #endif // V8_ISOLATE_H_ |
OLD | NEW |