OLD | NEW |
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 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 626 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
637 } | 637 } |
638 | 638 |
639 | 639 |
640 Failure* Top::Throw(Object* exception, MessageLocation* location) { | 640 Failure* Top::Throw(Object* exception, MessageLocation* location) { |
641 DoThrow(exception, location, NULL); | 641 DoThrow(exception, location, NULL); |
642 return Failure::Exception(); | 642 return Failure::Exception(); |
643 } | 643 } |
644 | 644 |
645 | 645 |
646 Failure* Top::ReThrow(Object* exception, MessageLocation* location) { | 646 Failure* Top::ReThrow(Object* exception, MessageLocation* location) { |
647 // Set the exception beeing re-thrown. | 647 // Set the exception being re-thrown. |
648 set_pending_exception(exception); | 648 set_pending_exception(exception); |
649 return Failure::Exception(); | 649 return Failure::Exception(); |
650 } | 650 } |
651 | 651 |
652 | 652 |
653 void Top::ScheduleThrow(Object* exception) { | 653 void Top::ScheduleThrow(Object* exception) { |
654 // When scheduling a throw we first throw the exception to get the | 654 // When scheduling a throw we first throw the exception to get the |
655 // error reporting if it is uncaught before rescheduling it. | 655 // error reporting if it is uncaught before rescheduling it. |
656 Throw(exception); | 656 Throw(exception); |
657 thread_local_.scheduled_exception_ = pending_exception(); | 657 thread_local_.scheduled_exception_ = pending_exception(); |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
698 Handle<Object> pos_obj(Smi::FromInt(pos)); | 698 Handle<Object> pos_obj(Smi::FromInt(pos)); |
699 // Fetch function and receiver. | 699 // Fetch function and receiver. |
700 Handle<JSFunction> fun(JSFunction::cast(frame->function())); | 700 Handle<JSFunction> fun(JSFunction::cast(frame->function())); |
701 Handle<Object> recv(frame->receiver()); | 701 Handle<Object> recv(frame->receiver()); |
702 // Advance to the next JavaScript frame and determine if the | 702 // Advance to the next JavaScript frame and determine if the |
703 // current frame is the top-level frame. | 703 // current frame is the top-level frame. |
704 it.Advance(); | 704 it.Advance(); |
705 Handle<Object> is_top_level = it.done() | 705 Handle<Object> is_top_level = it.done() |
706 ? Factory::true_value() | 706 ? Factory::true_value() |
707 : Factory::false_value(); | 707 : Factory::false_value(); |
708 // Generate and print strack trace line. | 708 // Generate and print stack trace line. |
709 Handle<String> line = | 709 Handle<String> line = |
710 Execution::GetStackTraceLine(recv, fun, pos_obj, is_top_level); | 710 Execution::GetStackTraceLine(recv, fun, pos_obj, is_top_level); |
711 if (line->length() > 0) { | 711 if (line->length() > 0) { |
712 line->PrintOn(out); | 712 line->PrintOn(out); |
713 fprintf(out, "\n"); | 713 fprintf(out, "\n"); |
714 } | 714 } |
715 } | 715 } |
716 } | 716 } |
717 | 717 |
718 | 718 |
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
957 Top::break_access_->Lock(); | 957 Top::break_access_->Lock(); |
958 } | 958 } |
959 | 959 |
960 | 960 |
961 ExecutionAccess::~ExecutionAccess() { | 961 ExecutionAccess::~ExecutionAccess() { |
962 Top::break_access_->Unlock(); | 962 Top::break_access_->Unlock(); |
963 } | 963 } |
964 | 964 |
965 | 965 |
966 } } // namespace v8::internal | 966 } } // namespace v8::internal |
OLD | NEW |