Ensure that non-optimized code objects are not flushed for inlined functions.
authorvegorov@chromium.org <vegorov@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 8 Dec 2011 16:07:07 +0000 (16:07 +0000)
committervegorov@chromium.org <vegorov@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 8 Dec 2011 16:07:07 +0000 (16:07 +0000)
commita457040ca6a21008905792fe8c032fc94aab6635
tree1acfc0900c58b9d476bcac442cbde0d03f287865
parentf206e15c42f27b4933360f1c6a6469f8ba9c1219
Ensure that non-optimized code objects are not flushed for inlined functions.

Collector was flushing them if optimized code was reachable only through the stack (not through the JSFunction object) which happens when you have a pending lazy deoptimization.

Also prevent v8::Script::New from leaking internal objects allocated by the compiler into outer HandleScope.

R=kmillikin@chromium.org
BUG=http://crbug.com/97116
TEST=test/mjsunit/regress/regress-97116.js

Review URL: http://codereview.chromium.org/8888011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
src/api.cc
src/mark-compact.cc
src/mark-compact.h
src/objects.h
src/v8threads.h
test/mjsunit/regress/regress-97116.js [new file with mode: 0644]