Lines Matching refs:FRAME
43 // particular frame. Needs to know the top of the handler chain.
46 StackHandlerIterator(const StackFrame* frame, StackHandler* handler)
47 : limit_(frame->fp()), handler_(handler) {
48 // Make sure the handler has already been unwound to this frame.
49 ASSERT(frame->sp() <= handler->address());
114 // Compute the state of the calling frame before restoring
116 // frame code that computes the caller state to access the top
121 // Unwind handlers corresponding to the current frame.
126 // Advance to the calling frame.
214 if (!frame()->function()->IsJSFunction()) return false;
215 Object* script = JSFunction::cast(frame()->function())->shared()->script();
282 StackFrame* last_frame = iterator_.frame();
284 // Before advancing to the next stack frame, perform pointer validity tests
292 // Check that we have actually moved to the previous frame in the stack
293 StackFrame* prev_frame = iterator_.frame();
298 bool SafeStackFrameIterator::CanIterateHandles(StackFrame* frame,
303 return !is_valid_top_ || (frame->sp() <= handler->address());
307 bool SafeStackFrameIterator::IsValidFrame(StackFrame* frame) const {
308 return IsValidStackAddress(frame->sp()) && IsValidStackAddress(frame->fp());
312 bool SafeStackFrameIterator::IsValidCaller(StackFrame* frame) {
314 if (frame->is_entry() || frame->is_entry_construct()) {
319 frame->fp() + EntryFrameConstants::kCallerFPOffset);
322 } else if (frame->is_arguments_adaptor()) {
326 Object* number_of_args = reinterpret_cast<ArgumentsAdaptorFrame*>(frame)->
332 frame->ComputeCallerState(&state);
334 iterator_.SingletonFor(frame->GetCallerState(&state)) != NULL;
354 if (!done() && !frame()->is_java_script()) Advance();
362 if (frame()->is_java_script()) return;
418 // smi then the frame is a JavaScript frame -- and the marker is
498 // the calling frame.
571 // Make sure that we're not doing "safe" stack frame iteration. We cannot
642 // Skip the arguments adaptor frame and look at the real caller.
729 if (opcode == Translation::FRAME) {
731 // frame can be a constructor frame in case of inlining.
748 // Get the correct receiver in the optimized frame.
757 // of the outermost, optimized frame.
826 if (opcode == Translation::FRAME) {
849 // caller is at a fixed offset from the frame pointer.
959 accumulator->Add("// no expression found - inconsistent frame?");
964 // Try to get hold of the context of this frame.
983 "// warning: missing context slot - inconsistent frame?");
986 accumulator->Add("// warning: no context found - inconsistent frame?");
1024 accumulator->Add("arguments adaptor frame: %d->%d", actual, expected);
1052 // Make sure that the entry frame does not contain more than one
1100 while (!iterator_.frame()->is_java_script()) iterator_.Advance();
1101 if (i == n) return JavaScriptFrame::cast(iterator_.frame());
1207 static StackFrame* AllocateFrameCopy(StackFrame* frame) {
1211 new field##_Wrapper(*(reinterpret_cast<field*>(frame))); \
1215 switch (frame->type()) {
1226 StackFrame* frame = AllocateFrameCopy(it.frame());
1227 list.Add(frame);