| Index: src/debug.h
|
| diff --git a/src/debug.h b/src/debug.h
|
| index 7ec78015c6d2d65794b8f0f299444ccf570683b2..2adbd243386b083f42a3cd5f7630256962d1d73a 100644
|
| --- a/src/debug.h
|
| +++ b/src/debug.h
|
| @@ -457,6 +457,50 @@ class Debug {
|
| // Architecture-specific constant.
|
| static const bool kFrameDropperSupported;
|
|
|
| + /**
|
| + * Defines layout of a stack frame that supports padding. This is a regular
|
| + * internal frame that has a flexible stack structure. LiveEdit can shift
|
| + * its lower part up the stack, taking up the 'padding' space when additional
|
| + * stack memory is required.
|
| + * Such frame is expected immediately above the topmost JavaScript frame.
|
| + *
|
| + * Stack Layout:
|
| + * --- Top
|
| + * LiveEdit routine frames
|
| + * ---
|
| + * C frames of debug handler
|
| + * ---
|
| + * ...
|
| + * ---
|
| + * An internal frame that has n padding words:
|
| + * - any number of words as needed by code -- upper part of frame
|
| + * - padding size: a Smi storing n -- current size of padding
|
| + * - padding: n words filled with kPaddingValue in form of Smi
|
| + * - 3 context/type words of a regular InternalFrame
|
| + * - fp
|
| + * ---
|
| + * Topmost JavaScript frame
|
| + * ---
|
| + * ...
|
| + * --- Bottom
|
| + */
|
| + class FramePaddingLayout : public AllStatic {
|
| + public:
|
| + // Architecture-specific constant.
|
| + static const bool kIsSupported;
|
| +
|
| + // A size of frame base including fp. Padding words starts right above
|
| + // the base.
|
| + static const int kFrameBaseSize = 4;
|
| +
|
| + // A number of words that should be reserved on stack for the LiveEdit use.
|
| + // Normally equals 1. Stored on stack in form of Smi.
|
| + static const int kInitialSize;
|
| + // A value that padding words are filled with (in form of Smi). Going
|
| + // bottom-top, the first word not having this value is a counter word.
|
| + static const int kPaddingValue;
|
| + };
|
| +
|
| private:
|
| explicit Debug(Isolate* isolate);
|
| ~Debug();
|
|
|