Index: src/frames.h |
diff --git a/src/frames.h b/src/frames.h |
index 678191b950a0172a37f62a78fb9533f977502613..3c44f5e5b4586a323bbec112c41d87b55b063000 100644 |
--- a/src/frames.h |
+++ b/src/frames.h |
@@ -93,6 +93,7 @@ class StackHandlerConstants : public AllStatic { |
static const int kFPOffset = 4 * kPointerSize; |
static const int kSize = kFPOffset + kPointerSize; |
+ static const int kSlotCount = kSize >> kPointerSizeLog2; |
}; |
@@ -131,9 +132,15 @@ class StackHandler BASE_EMBEDDED { |
inline bool is_catch() const; |
inline bool is_finally() const; |
+ // Generator support to preserve stack handlers. |
+ void Unwind(Isolate* isolate, FixedArray* array, int offset, |
+ int previous_handler_offset) const; |
+ int Rewind(Isolate* isolate, FixedArray* array, int offset, Address fp); |
+ |
private: |
// Accessors. |
inline Kind kind() const; |
+ inline unsigned index() const; |
inline Object** context_address() const; |
inline Object** code_address() const; |
@@ -541,6 +548,10 @@ class JavaScriptFrame: public StandardFrame { |
inline Object* GetOperand(int index) const; |
inline int ComputeOperandsCount() const; |
+ // Generator support to preserve operand stack and stack handlers. |
+ void SaveOperandStack(FixedArray* store, int* stack_handler_index) const; |
+ void RestoreOperandStack(FixedArray* store, int stack_handler_index); |
+ |
// Debugger access. |
void SetParameterValue(int index, Object* value) const; |