Removed a JSC-specific hack from the web inspector
https://bugs.webkit.org/show_bug.cgi?id=95033

Reviewed by Filip Pizlo.

Source/JavaScriptCore: 

Added support for what the web inspector really wanted instead.

* runtime/JSActivation.cpp:
(JSC::JSActivation::symbolTableGet):
(JSC::JSActivation::symbolTablePut): Added some explanation for these
checks, which were non-obvious to me.

(JSC::JSActivation::getOwnPropertySlot): It's impossible to access the
arguments property of an activation after it's been torn off, since the
only way to tear off an activation is to instantiate a new function,
which has its own arguments property in scope. However, the inspector
get special access to activations, and may try to perform this access,
so we need a special guard to maintain coherence and avoid crashing in
case the activation optimized out the arguments property.

* runtime/JSActivation.cpp:
(JSC::JSActivation::symbolTableGet):
(JSC::JSActivation::symbolTablePut):
(JSC::JSActivation::getOwnPropertyNames):
(JSC::JSActivation::getOwnPropertyDescriptor): Provide getOwnPropertyNames
and getOwnPropertyDescriptor implementations, to meet the web inspector's
needs. (User code can never call these.)

Source/WebCore: 

The hack was never reviewed. If it had been, I suspect it would have
gotten an r- for making weird assumptions about the engine's implimentation.

* inspector/InjectedScriptSource.js: It's not sound to assume that an
object has no properties except for "arguments" if and only if it's an
activation: non-activations can have a property named "arguments", and
activations can optimize out "arguments".


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126720 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Removed the NULL checks from visitChildren functions
https://bugs.webkit.org/show_bug.cgi?id=95021

Reviewed by Oliver Hunt.

Source/JavaScriptCore: 

As of http://trac.webkit.org/changeset/126624, all values are NULL-checked
during GC, so explicit NULL checks aren't needed anymore.

Source/WebCore: 

As of http://trac.webkit.org/changeset/126624, all values are NULL-checked
during GC, so explicit NULL checks aren't needed anymore.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126721 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Don't allocate space for arguments and call frame if arguments aren't captured
https://bugs.webkit.org/show_bug.cgi?id=95024

Reviewed by Phil Pizlo.

27% on v8-real-earley.

* runtime/JSActivation.h:
(JSC::JSActivation::registerOffset): The offset is zero if we're skipping
the arguments and call frame because "offset" means space reserved for
those things.

(JSC::JSActivation::tearOff): Don't copy the scope chain and callee. We
don't need them for anything, and we're no longer guaranteed to have
space for them.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126722 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, fix for builds without VALUE_PROFILING. I had forgotten that shouldEmitProfiling()
is designed to return true if DFG_JIT is disabled. I should be using canBeOptimized() instead.

* jit/JITCall.cpp:
(JSC::JIT::compileOpCall):
* jit/JITCall32_64.cpp:
(JSC::JIT::compileOpCall):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126723 268f45cc-cd09-0410-ab3c-d52691b4dbfc