In chapter 4 of the Zone JS primer the following is mentioned:
So far, we have discussed how zones are created, forked and how they maintain their state across asynchronous operations. Zones are nested at runtime in the same way that execution stack frames are nested (but usually with lower depth.) There is one zone which is special in the context of nesting, and it is the top most zone. When that zone exists the execution transitions from JavaScript to native host environment. (Another way of saying it is that when the top most execution stack frame exits the control is returned to the native code.) We will call topmost zone a Task.
To my knowledge, the call stack was flat (meaning there aren’t stack frames inside of stack frames), and the execution context is just the address of the last time the function was called for nested subroutines
Can someone provide some clarification as to what’s really going on in the v8 engine and what the difference is between a regular stack frame and an execution stack frame? Thanks