To sum up the concept of scope chaining:

As soon as a web page is loaded, Javascript locates function definitions and creates a so-called **Variable Object** to each one.
Each VO has to reference each local variables (or global) and so start with the first ancestor's function until the global context. 
Each function's scope chain is stored in the function property called: Scope.

Besides, when a function is called, a new object is created: an **Activation Object**.

What is this? :

It acts like a variable object(actually it is a VO) responsible for referencing all function internal's variable objects including the "arguments" object and formal parameters.

Of course, each of the chain composing of function ancestor's variable objects + function's Activation Object maps **at least** all variables to `undefined` firstly. Then, it evolves by updating its values (corresponding to referenced variables) as long as the execution progresses.

However, I notice Activation Object is different from a Variable Object solely because it contains the **Arguments** object and that this fact would prevent it to be created before function was called.

So, I wonder why people who built the Javascript engine didn't assign **at the function's definition step** each of the Activation Objects. Thus, when a function would be called, no need to create its own specific Activation Object since it already exists. Engine would just clear the corresponding arguments object at the end of the function execution so that the next call to this one could be possible without side effects.

Might it improve performance? Indeed, recreate a whole Activation Object at each call might consume.. Or is there an issue with this proposal?