| OLD | NEW |
| 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 #include "src/frames.h" | 5 #include "src/frames.h" |
| 6 | 6 |
| 7 #include <sstream> | 7 #include <sstream> |
| 8 | 8 |
| 9 #include "src/ast.h" | 9 #include "src/ast.h" |
| 10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" |
| (...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 327 AdvanceOneFrame(); | 327 AdvanceOneFrame(); |
| 328 if (done()) return; | 328 if (done()) return; |
| 329 if (frame_->is_java_script()) return; | 329 if (frame_->is_java_script()) return; |
| 330 if (frame_->is_exit() && external_callback_scope_) { | 330 if (frame_->is_exit() && external_callback_scope_) { |
| 331 // Some of the EXIT frames may have ExternalCallbackScope allocated on | 331 // Some of the EXIT frames may have ExternalCallbackScope allocated on |
| 332 // top of them. In that case the scope corresponds to the first EXIT | 332 // top of them. In that case the scope corresponds to the first EXIT |
| 333 // frame beneath it. There may be other EXIT frames on top of the | 333 // frame beneath it. There may be other EXIT frames on top of the |
| 334 // ExternalCallbackScope, just skip them as we cannot collect any useful | 334 // ExternalCallbackScope, just skip them as we cannot collect any useful |
| 335 // information about them. | 335 // information about them. |
| 336 if (external_callback_scope_->scope_address() < frame_->fp()) { | 336 if (external_callback_scope_->scope_address() < frame_->fp()) { |
| 337 Address* callback_address = | 337 frame_->state_.pc_address = |
| 338 external_callback_scope_->callback_address(); | 338 external_callback_scope_->callback_entrypoint_address(); |
| 339 if (*callback_address != NULL) { | |
| 340 frame_->state_.pc_address = callback_address; | |
| 341 } | |
| 342 external_callback_scope_ = external_callback_scope_->previous(); | 339 external_callback_scope_ = external_callback_scope_->previous(); |
| 343 DCHECK(external_callback_scope_ == NULL || | 340 DCHECK(external_callback_scope_ == NULL || |
| 344 external_callback_scope_->scope_address() > frame_->fp()); | 341 external_callback_scope_->scope_address() > frame_->fp()); |
| 345 return; | 342 return; |
| 346 } | 343 } |
| 347 } | 344 } |
| 348 } | 345 } |
| 349 } | 346 } |
| 350 | 347 |
| 351 | 348 |
| (...skipping 1241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1593 for (StackFrameIterator it(isolate); !it.done(); it.Advance()) { | 1590 for (StackFrameIterator it(isolate); !it.done(); it.Advance()) { |
| 1594 StackFrame* frame = AllocateFrameCopy(it.frame(), zone); | 1591 StackFrame* frame = AllocateFrameCopy(it.frame(), zone); |
| 1595 list.Add(frame, zone); | 1592 list.Add(frame, zone); |
| 1596 } | 1593 } |
| 1597 return list.ToVector(); | 1594 return list.ToVector(); |
| 1598 } | 1595 } |
| 1599 | 1596 |
| 1600 | 1597 |
| 1601 } // namespace internal | 1598 } // namespace internal |
| 1602 } // namespace v8 | 1599 } // namespace v8 |
| OLD | NEW |