Let me start from the roots...
Execution context is an object which consists of:
- variable object, which is activation object in case of functions
- scope chain, which you can think of as a linked list of outer scopes
Variable object is an abstract thing, which can be either one of those:
- global object (in global context) - the place where global vars (like
console in a browser) reside
- activation object (for functions, which define scopes in ECMAScript)
Activation object is an object which holds:
- formal args of the function
arguments object for this function
- any vars and (named) functions inside this function
So, activation object is just a special case of variable object.
It is basically a container for all the local stuff you can access by name inside a function, except for
this. I may be imprecise here, but that's what I think it is.
More explainations with some nice pictures: