![show/hide quicksearch [+]](../images/find.png)
Default number of frames offset
Default number of stack frames
Convenience method for Frame#bottom
 
               # File irb/frame.rb, line 67
def Frame.bottom(n = 0)
  @backtrace.bottom(n)
end
             
            Creates a new stack frame
 
               # File irb/frame.rb, line 32
def initialize
  @frames = [TOPLEVEL_BINDING] * INIT_STACK_TIMES
end
             
            Returns the binding context of the caller from the last frame initialized
 
               # File irb/frame.rb, line 77
def Frame.sender
  eval "self", @backtrace.top
end
             
            Convenience method for Frame#top
 
               # File irb/frame.rb, line 72
def Frame.top(n = 0)
  @backtrace.top(n)
end
             
            Returns the n number of frames on the call stack from the first frame initialized.
Raises FrameOverflow if there are no frames in the given stack range.
 
               # File irb/frame.rb, line 60
def bottom(n = 0)
  bind = @frames[n]
  fail FrameOverflow unless bind
  bind
end
             
            Returns the n number of frames on the call stack from the last frame initialized.
Raises FrameUnderflow if there are no frames in the given stack range.
 
               # File irb/frame.rb, line 50
def top(n = 0)
  bind = @frames[-(n + CALL_STACK_OFFSET)]
  fail FrameUnderflow unless bind
  bind
end
             
            Used by Kernel#set_trace_func to register each event in the call stack
 
               # File irb/frame.rb, line 37
def trace_func(event, file, line, id, binding)
  case event
  when 'call', 'class'
    @frames.push binding
  when 'return', 'end'
    @frames.pop
  end
end