| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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/v8.h" | 5 #include "src/v8.h" |
| 6 | 6 |
| 7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
| 8 #include "src/arguments.h" | 8 #include "src/arguments.h" |
| 9 #include "src/compiler.h" | 9 #include "src/compiler.h" |
| 10 #include "src/debug.h" | 10 #include "src/debug.h" |
| (...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 469 public: | 469 public: |
| 470 FrameInspector(JavaScriptFrame* frame, int inlined_jsframe_index, | 470 FrameInspector(JavaScriptFrame* frame, int inlined_jsframe_index, |
| 471 Isolate* isolate) | 471 Isolate* isolate) |
| 472 : frame_(frame), deoptimized_frame_(NULL), isolate_(isolate) { | 472 : frame_(frame), deoptimized_frame_(NULL), isolate_(isolate) { |
| 473 has_adapted_arguments_ = frame_->has_adapted_arguments(); | 473 has_adapted_arguments_ = frame_->has_adapted_arguments(); |
| 474 is_bottommost_ = inlined_jsframe_index == 0; | 474 is_bottommost_ = inlined_jsframe_index == 0; |
| 475 is_optimized_ = frame_->is_optimized(); | 475 is_optimized_ = frame_->is_optimized(); |
| 476 // Calculate the deoptimized frame. | 476 // Calculate the deoptimized frame. |
| 477 if (frame->is_optimized()) { | 477 if (frame->is_optimized()) { |
| 478 // TODO(turbofan): Revisit once we support deoptimization. | 478 // TODO(turbofan): Revisit once we support deoptimization. |
| 479 if (frame->LookupCode()->is_turbofanned() && !FLAG_turbo_deoptimization) { | 479 if (frame->LookupCode()->is_turbofanned() && |
| 480 frame->function()->shared()->asm_function() && |
| 481 !FLAG_turbo_asm_deoptimization) { |
| 480 is_optimized_ = false; | 482 is_optimized_ = false; |
| 481 return; | 483 return; |
| 482 } | 484 } |
| 483 | 485 |
| 484 deoptimized_frame_ = Deoptimizer::DebuggerInspectableFrame( | 486 deoptimized_frame_ = Deoptimizer::DebuggerInspectableFrame( |
| 485 frame, inlined_jsframe_index, isolate); | 487 frame, inlined_jsframe_index, isolate); |
| 486 } | 488 } |
| 487 } | 489 } |
| 488 | 490 |
| 489 ~FrameInspector() { | 491 ~FrameInspector() { |
| (...skipping 11 matching lines...) Expand all Loading... |
| 501 Object* GetFunction() { | 503 Object* GetFunction() { |
| 502 return is_optimized_ ? deoptimized_frame_->GetFunction() | 504 return is_optimized_ ? deoptimized_frame_->GetFunction() |
| 503 : frame_->function(); | 505 : frame_->function(); |
| 504 } | 506 } |
| 505 Object* GetParameter(int index) { | 507 Object* GetParameter(int index) { |
| 506 return is_optimized_ ? deoptimized_frame_->GetParameter(index) | 508 return is_optimized_ ? deoptimized_frame_->GetParameter(index) |
| 507 : frame_->GetParameter(index); | 509 : frame_->GetParameter(index); |
| 508 } | 510 } |
| 509 Object* GetExpression(int index) { | 511 Object* GetExpression(int index) { |
| 510 // TODO(turbofan): Revisit once we support deoptimization. | 512 // TODO(turbofan): Revisit once we support deoptimization. |
| 511 if (frame_->LookupCode()->is_turbofanned() && !FLAG_turbo_deoptimization) { | 513 if (frame_->LookupCode()->is_turbofanned() && |
| 514 frame_->function()->shared()->asm_function() && |
| 515 !FLAG_turbo_asm_deoptimization) { |
| 512 return isolate_->heap()->undefined_value(); | 516 return isolate_->heap()->undefined_value(); |
| 513 } | 517 } |
| 514 return is_optimized_ ? deoptimized_frame_->GetExpression(index) | 518 return is_optimized_ ? deoptimized_frame_->GetExpression(index) |
| 515 : frame_->GetExpression(index); | 519 : frame_->GetExpression(index); |
| 516 } | 520 } |
| 517 int GetSourcePosition() { | 521 int GetSourcePosition() { |
| 518 return is_optimized_ ? deoptimized_frame_->GetSourcePosition() | 522 return is_optimized_ ? deoptimized_frame_->GetSourcePosition() |
| 519 : frame_->LookupCode()->SourcePosition(frame_->pc()); | 523 : frame_->LookupCode()->SourcePosition(frame_->pc()); |
| 520 } | 524 } |
| 521 bool IsConstructor() { | 525 bool IsConstructor() { |
| (...skipping 2685 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3207 return Smi::FromInt(isolate->debug()->is_active()); | 3211 return Smi::FromInt(isolate->debug()->is_active()); |
| 3208 } | 3212 } |
| 3209 | 3213 |
| 3210 | 3214 |
| 3211 RUNTIME_FUNCTION(Runtime_DebugBreakInOptimizedCode) { | 3215 RUNTIME_FUNCTION(Runtime_DebugBreakInOptimizedCode) { |
| 3212 UNIMPLEMENTED(); | 3216 UNIMPLEMENTED(); |
| 3213 return NULL; | 3217 return NULL; |
| 3214 } | 3218 } |
| 3215 } // namespace internal | 3219 } // namespace internal |
| 3216 } // namespace v8 | 3220 } // namespace v8 |
| OLD | NEW |