Index: src/deoptimizer.h |
diff --git a/src/deoptimizer.h b/src/deoptimizer.h |
index f52974dcc1a51205782b14725b521870cfc84ce2..0259f01ccc2123a53b760f8954ba2efb63769482 100644 |
--- a/src/deoptimizer.h |
+++ b/src/deoptimizer.h |
@@ -27,6 +27,7 @@ class TranslatedValue { |
Handle<Object> GetValue(); |
bool IsMaterializedObject() const; |
+ bool IsMaterializableByDebugger() const; |
private: |
friend class TranslatedState; |
@@ -508,10 +509,6 @@ class Deoptimizer : public Malloced { |
void MaterializeHeapObjects(JavaScriptFrameIterator* it); |
- void MaterializeHeapNumbersForDebuggerInspectableFrame( |
- int frame_index, int parameter_count, int expression_count, |
- DeoptimizedFrameInfo* info); |
- |
static void ComputeOutputFrames(Deoptimizer* deoptimizer); |
@@ -645,11 +642,6 @@ class Deoptimizer : public Malloced { |
// searching all code objects). |
Code* FindDeoptimizingCode(Address addr); |
- // Fill the input from from a JavaScript frame. This is used when |
- // the debugger needs to inspect an optimized frame. For normal |
- // deoptimizations the input frame is filled in generated code. |
- void FillInputFrame(Address tos, JavaScriptFrame* frame); |
- |
// Fill the given output frame's registers to contain the failure handler |
// address and the number of parameters for a stub failure trampoline. |
void SetPlatformCompiledStubRegisters(FrameDescription* output_frame, |
@@ -744,8 +736,7 @@ class RegisterValues { |
class FrameDescription { |
public: |
- FrameDescription(uint32_t frame_size, |
- JSFunction* function); |
+ explicit FrameDescription(uint32_t frame_size, int parameter_count = 0); |
void* operator new(size_t size, uint32_t frame_size) { |
// Subtracts kPointerSize, as the member frame_content_ already supplies |
@@ -766,8 +757,6 @@ class FrameDescription { |
return static_cast<uint32_t>(frame_size_); |
} |
- JSFunction* GetFunction() const { return function_; } |
- |
unsigned GetOffsetFromSlotIndex(int slot_index); |
intptr_t GetFrameSlot(unsigned offset) { |
@@ -775,8 +764,7 @@ class FrameDescription { |
} |
Address GetFramePointerAddress() { |
- int fp_offset = GetFrameSize() - |
- (ComputeParametersCount() + 1) * kPointerSize - |
+ int fp_offset = GetFrameSize() - parameter_count() * kPointerSize - |
StandardFrameConstants::kCallerSPOffset; |
return reinterpret_cast<Address>(GetFrameSlotPointer(fp_offset)); |
} |
@@ -834,17 +822,8 @@ class FrameDescription { |
StackFrame::Type GetFrameType() const { return type_; } |
void SetFrameType(StackFrame::Type type) { type_ = type; } |
- // Get the incoming arguments count. |
- int ComputeParametersCount(); |
- |
- // Get a parameter value for an unoptimized frame. |
- Object* GetParameter(int index); |
- |
- // Get the expression stack height for a unoptimized frame. |
- unsigned GetExpressionCount(); |
- |
- // Get the expression stack value for an unoptimized frame. |
- Object* GetExpression(int index); |
+ // Argument count, including receiver. |
+ int parameter_count() { return parameter_count_; } |
static int registers_offset() { |
return OFFSET_OF(FrameDescription, register_values_.registers_); |
@@ -877,7 +856,7 @@ class FrameDescription { |
// keep the variable-size array frame_content_ of type intptr_t at |
// the end of the structure aligned. |
uintptr_t frame_size_; // Number of bytes. |
- JSFunction* function_; |
+ int parameter_count_; |
RegisterValues register_values_; |
intptr_t top_; |
intptr_t pc_; |
@@ -1072,10 +1051,9 @@ class MaterializedObjectStore { |
// formal parameter count. |
class DeoptimizedFrameInfo : public Malloced { |
public: |
- DeoptimizedFrameInfo(Deoptimizer* deoptimizer, |
- int frame_index, |
- bool has_arguments_adaptor, |
- bool has_construct_stub); |
+ DeoptimizedFrameInfo(TranslatedState* state, |
+ TranslatedState::iterator frame_it, Isolate* isolate); |
+ |
// Return the number of incoming arguments. |
int parameters_count() { return static_cast<int>(parameters_.size()); } |