3 ms·
Not an easy read, but the ECMAScript specification is very interesting if you have the time: http://www.ecma-international.org/ecma-262/6.0/index.html#sec-exec
by victorNicollet 11y ago
Not an easy read, but the ECMAScript specification is very interesting if you have the time:
http://www.ecma-international.org/ecma-262/6.0/index.html#sec-execution-contexts http://www.ecma-international.org/ecma-262/6.0/index.html#se...
> At any point in time, there is at most one execution context that is actually executing code.
> Evaluation of code by the running execution context may be suspended at various points defined within this specification. Once the running execution context has been suspended a different execution context may become the running execution context and commence evaluating its code.
Suspending the evaluation context is triggered by executing certain constructs, some of which are obvious (calling a function suspends the caller context until that function returns) and some of which are complex (there's a nice game of context switching whenever generators are involved). The general idea is that the evaluation context decides to be suspended, rather than forced to do so by anything else (like a thread scheduler).