A “call stack” is basically a stack of function calls. Each entry on the stack is called a “stack frame”. Stack or Heap do not execute the JavaScript code, the JavaScript engine does. A stack frame is a mechanism of tracking the execution of the code. A stack frame contains a lot of information, like local variables, arguments, closures, etc.
When a function is executed, a stack frame is created. If another function is executed from that function, a pointer to the next stack frame is assigned. Each instruction inside a function is executed synchronously within the context of the stack frame. If any instruction results in an error, you could see the instruction line number in the stack trace.
The very reason you can see the instruction in the stack trace, in my opinion, is good enough reason to believe that instruction was executed “in the stack frame”.
However, as you pointed out the “loupe” demo, I do not believe it paints an accurate picture of the call stack. From my understanding, the non-function call instruction should be the part of the stack frame and not a stack frame itself.