Avoid heap allocating the root scope chain node for eval and closure free functions
authoroliver@apple.com <oliver@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 20 Mar 2008 06:36:26 +0000 (06:36 +0000)
committeroliver@apple.com <oliver@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 20 Mar 2008 06:36:26 +0000 (06:36 +0000)
commitbb86a93ecb93952948b8aa357c36887816b362bb
tree827e899102a5730c2c409486c5013adb1af038b2
parentf597e83d04c0971b90dae6067675710ffeef93d1
Avoid heap allocating the root scope chain node for eval and closure free functions

Reviewed by Maciej

Maciej suggested using an inline ScopeChainNode for functions that don't use eval
or closures as they are unable to ever capture the scope chain.  This gives us a 2.4%
win in sunspider, a 15% win in controlflow-recursive, and big (>5%) wins in a number
of other tests.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@31172 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JavaScriptCore/ChangeLog
JavaScriptCore/kjs/ExecState.cpp
JavaScriptCore/kjs/ExecState.h
JavaScriptCore/kjs/scope_chain.h