TextPosition DebuggerCallFrame::currentPosition() { if (!m_validMachineFrame) return TextPosition(); if (isTailDeleted()) { CodeBlock* codeBlock = m_shadowChickenFrame.codeBlock; if (std::optional<unsigned> bytecodeOffset = codeBlock->bytecodeOffsetFromCallSiteIndex(m_shadowChickenFrame.callSiteIndex)) { return TextPosition(OrdinalNumber::fromOneBasedInt(codeBlock->lineNumberForBytecodeOffset(*bytecodeOffset)), OrdinalNumber::fromOneBasedInt(codeBlock->columnNumberForBytecodeOffset(*bytecodeOffset))); } } return positionForCallFrame(m_validMachineFrame); }
DebuggerCallFrame::DebuggerCallFrame(CallFrame* callFrame) : m_callFrame(callFrame) { m_position = positionForCallFrame(m_callFrame); }