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)
commitc635d17d8f6b24596a003d77752dd6dc9ffac5c9
tree827e899102a5730c2c409486c5013adb1af038b2
parent2e1b301ac978f5c979e92c34eb88e9c9016f309d
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: http://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