name = "up"; group = "stack"; shortDescription = "Select and print the stack frame above the current one"; longDescription = ""; seeAlso = [ "down", "frame" ]; function execute() { scheduleGetContextCount(); state = 1; } function handleResponse(resp) { if (state == 1) { var count = resp.result; var idx = getCurrentFrameIndex() + 1; if (idx == count) { warning("Already at top (outermost) frame."); return; } setCurrentFrameIndex(idx); scheduleGetContextInfo(idx); state = 2; } else if (state == 2) { var info = resp.result; setCurrentScriptId(info.scriptId); setCurrentLineNumber(info.lineNumber); scheduleGetBacktrace(); state = 3; } else if (state == 3) { var backtrace = resp.result; message("#" + getCurrentFrameIndex() + " " + backtrace[getCurrentFrameIndex()]); } }