1. 21 Jun, 2009 1 commit
  2. 15 Jun, 2009 1 commit
    • barraclough@apple.com's avatar
      2009-06-15 Gavin Barraclough <barraclough@apple.com> · af68f3d6
      barraclough@apple.com authored
              Reviewed by Sam Weinig.
      
              Having introduced the RepatchBuffer, ProcessorReturnAddress is now a do-nothing
              wrapper around ReturnAddressPtr.  Remove it.  In tugging on this piece of string
              it made sense to roll out the use of ReturnAddressPtr a little further into
              JITStubs (which had always been the intention).
      
              No performance impact.
      
              * assembler/AbstractMacroAssembler.h:
              (JSC::AbstractMacroAssembler::RepatchBuffer::relinkCallerToTrampoline):
              (JSC::AbstractMacroAssembler::RepatchBuffer::relinkCallerToFunction):
              (JSC::AbstractMacroAssembler::RepatchBuffer::relinkNearCallerToTrampoline):
              * assembler/MacroAssemblerCodeRef.h:
              (JSC::ReturnAddressPtr::ReturnAddressPtr):
              * bytecode/CodeBlock.h:
              (JSC::CodeBlock::getStubInfo):
              (JSC::CodeBlock::getCallLinkInfo):
              (JSC::CodeBlock::getMethodCallLinkInfo):
              (JSC::CodeBlock::getBytecodeIndex):
              * interpreter/Interpreter.cpp:
              (JSC::bytecodeOffsetForPC):
              * jit/JIT.cpp:
              (JSC::ctiPatchNearCallByReturnAddress):
              (JSC::ctiPatchCallByReturnAddress):
              * jit/JIT.h:
              (JSC::JIT::compileGetByIdProto):
              (JSC::JIT::compileGetByIdChain):
              (JSC::JIT::compilePutByIdTransition):
              (JSC::JIT::compilePatchGetArrayLength):
              * jit/JITPropertyAccess.cpp:
              (JSC::JIT::privateCompilePutByIdTransition):
              (JSC::JIT::patchGetByIdSelf):
              (JSC::JIT::patchPutByIdReplace):
              (JSC::JIT::privateCompilePatchGetArrayLength):
              (JSC::JIT::privateCompileGetByIdProto):
              (JSC::JIT::privateCompileGetByIdChain):
              * jit/JITStubs.cpp:
              (JSC::JITThunks::tryCachePutByID):
              (JSC::JITThunks::tryCacheGetByID):
              (JSC::StackHack::StackHack):
              (JSC::returnToThrowTrampoline):
              (JSC::throwStackOverflowError):
              (JSC::JITStubs::DEFINE_STUB_FUNCTION):
              * jit/JITStubs.h:
              (JSC::):
              (JSC::JITStackFrame::returnAddressSlot):
              * runtime/JSGlobalData.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44705 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      af68f3d6
  3. 23 May, 2009 1 commit
  4. 22 May, 2009 1 commit
    • barraclough@apple.com's avatar
      2009-05-21 Gavin Barraclough <barraclough@apple.com> · 07173248
      barraclough@apple.com authored
              Reviewed by Geoff Garen.
      
              op_method_check
      
              Optimize method calls, by caching specific function values within the Structure.
              The new opcode is used almost like an x86 opcode prefix byte to optimize op_get_by_id,
              where the property access is being used to read a function to be passed to op-call (i.e.
              'foo.bar();').  This patch modifies the Structure class such that when a property is
              put to an object for the first time we will check if the value is a function.  If it is,
              we will cache the function value on the Structure.  A Structure in such a state guarantees
              that not only does a property with the given identifier exist on the object, but also that
              its value is unchanged.  Upon any further attempt to put a property with the same identifier
              (but a different value) to the object, it will transition back to a normal Structure (where
              it will guarantee the presence but not the value of the property).
      
              op_method_check makes use of the new information made available by the Structure, by
              augmenting the functionality of op_get_by_id.  Upon generating a FunctionCallDotNode a
              check will be emitted prior to the property access reading the function value, and the JIT
              will generate an extra (initially unlinked but patchable) set of checks prior to the regular
              JIT code for get_by_id.  The new code will do inline structure and prototype structure check
              (unlike a regular get_by_id, which can only handle 'self' accesses inline), and then performs
              an immediate load of the function value, rather than using memory accesses to load the value
              from the obejct's property storage array.  If the method check fails it will revert, or if
              the access is polymorphic, the op_get_by_id will continue to operate - and optimize itself -
              just as any other regular op_get_by_id would.
      
              ~2.5% on v8-tests, due to a ~9% progression on richards.
      
              * API/JSCallbackObjectFunctions.h:
              (JSC::::put):
              (JSC::::staticFunctionGetter):
              * API/JSObjectRef.cpp:
              (JSObjectMakeConstructor):
              * JavaScriptCore.exp:
              * assembler/AbstractMacroAssembler.h:
              (JSC::AbstractMacroAssembler::differenceBetween):
              * assembler/MacroAssemblerX86.h:
              (JSC::MacroAssemblerX86::moveWithPatch):
              * bytecode/CodeBlock.cpp:
              (JSC::CodeBlock::dump):
              * bytecode/CodeBlock.h:
              (JSC::getMethodCallLinkInfoReturnLocation):
              (JSC::CodeBlock::getMethodCallLinkInfo):
              (JSC::CodeBlock::addMethodCallLinkInfos):
              (JSC::CodeBlock::methodCallLinkInfo):
              * bytecode/Opcode.h:
              * bytecompiler/BytecodeGenerator.cpp:
              (JSC::BytecodeGenerator::emitMethodCheck):
              * bytecompiler/BytecodeGenerator.h:
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::privateExecute):
              * jit/JIT.cpp:
              (JSC::JIT::privateCompileMainPass):
              (JSC::JIT::privateCompileSlowCases):
              (JSC::JIT::privateCompile):
              * jit/JIT.h:
              (JSC::MethodCallCompilationInfo::MethodCallCompilationInfo):
              * jit/JITOpcodes.cpp:
              * jit/JITPropertyAccess.cpp:
              (JSC::JIT::emit_op_method_check):
              (JSC::JIT::emitSlow_op_method_check):
              (JSC::JIT::emit_op_get_by_id):
              (JSC::JIT::emitSlow_op_get_by_id):
              (JSC::JIT::emit_op_put_by_id):
              (JSC::JIT::emitSlow_op_put_by_id):
              (JSC::JIT::compileGetByIdHotPath):
              (JSC::JIT::compileGetByIdSlowCase):
              (JSC::JIT::patchMethodCallProto):
              * jit/JITStubs.cpp:
              (JSC::JITStubs::cti_op_get_by_id_method_check):
              (JSC::JITStubs::cti_op_get_by_id_method_check_second):
              * jit/JITStubs.h:
              * jsc.cpp:
              (GlobalObject::GlobalObject):
              * parser/Nodes.cpp:
              (JSC::FunctionCallDotNode::emitBytecode):
              * runtime/Arguments.cpp:
              (JSC::Arguments::put):
              * runtime/ArrayConstructor.cpp:
              (JSC::ArrayConstructor::ArrayConstructor):
              * runtime/BooleanConstructor.cpp:
              (JSC::BooleanConstructor::BooleanConstructor):
              * runtime/DateConstructor.cpp:
              (JSC::DateConstructor::DateConstructor):
              * runtime/ErrorConstructor.cpp:
              (JSC::ErrorConstructor::ErrorConstructor):
              (JSC::constructError):
              * runtime/ErrorPrototype.cpp:
              (JSC::ErrorPrototype::ErrorPrototype):
              * runtime/FunctionConstructor.cpp:
              (JSC::FunctionConstructor::FunctionConstructor):
              * runtime/FunctionPrototype.cpp:
              (JSC::FunctionPrototype::FunctionPrototype):
              * runtime/InternalFunction.cpp:
              (JSC::InternalFunction::InternalFunction):
              * runtime/JSActivation.cpp:
              (JSC::JSActivation::put):
              (JSC::JSActivation::putWithAttributes):
              * runtime/JSByteArray.cpp:
              (JSC::JSByteArray::JSByteArray):
              * runtime/JSFunction.cpp:
              (JSC::JSFunction::JSFunction):
              (JSC::JSFunction::getOwnPropertySlot):
              * runtime/JSGlobalObject.cpp:
              (JSC::JSGlobalObject::putWithAttributes):
              (JSC::JSGlobalObject::reset):
              (JSC::JSGlobalObject::mark):
              * runtime/JSGlobalObject.h:
              (JSC::JSGlobalObject::JSGlobalObjectData::JSGlobalObjectData):
              (JSC::JSGlobalObject::methodCallDummy):
              * runtime/JSObject.cpp:
              (JSC::JSObject::put):
              (JSC::JSObject::putWithAttributes):
              (JSC::JSObject::deleteProperty):
              (JSC::JSObject::defineGetter):
              (JSC::JSObject::defineSetter):
              (JSC::JSObject::getPropertyAttributes):
              (JSC::JSObject::getPropertySpecificFunction):
              (JSC::JSObject::putDirectFunction):
              (JSC::JSObject::putDirectFunctionWithoutTransition):
              * runtime/JSObject.h:
              (JSC::getJSFunction):
              (JSC::JSObject::getDirectLocation):
              (JSC::JSObject::putDirect):
              (JSC::JSObject::putDirectWithoutTransition):
              * runtime/LiteralParser.cpp:
              (JSC::LiteralParser::parseObject):
              * runtime/Lookup.cpp:
              (JSC::setUpStaticFunctionSlot):
              * runtime/Lookup.h:
              (JSC::lookupPut):
              * runtime/MathObject.cpp:
              (JSC::MathObject::MathObject):
              * runtime/NativeErrorConstructor.cpp:
              (JSC::NativeErrorConstructor::NativeErrorConstructor):
              (JSC::NativeErrorConstructor::construct):
              * runtime/NativeErrorPrototype.cpp:
              (JSC::NativeErrorPrototype::NativeErrorPrototype):
              * runtime/NumberConstructor.cpp:
              (JSC::NumberConstructor::NumberConstructor):
              * runtime/ObjectConstructor.cpp:
              (JSC::ObjectConstructor::ObjectConstructor):
              * runtime/PropertyMapHashTable.h:
              (JSC::PropertyMapEntry::PropertyMapEntry):
              * runtime/PrototypeFunction.cpp:
              (JSC::PrototypeFunction::PrototypeFunction):
              * runtime/PutPropertySlot.h:
              (JSC::PutPropertySlot::):
              (JSC::PutPropertySlot::PutPropertySlot):
              (JSC::PutPropertySlot::setNewProperty):
              (JSC::PutPropertySlot::setDespecifyFunctionProperty):
              (JSC::PutPropertySlot::isCacheable):
              (JSC::PutPropertySlot::cachedOffset):
              * runtime/RegExpConstructor.cpp:
              (JSC::RegExpConstructor::RegExpConstructor):
              * runtime/StringConstructor.cpp:
              (JSC::StringConstructor::StringConstructor):
              * runtime/StringPrototype.cpp:
              (JSC::StringPrototype::StringPrototype):
              * runtime/Structure.cpp:
              (JSC::Structure::Structure):
              (JSC::Structure::~Structure):
              (JSC::Structure::materializePropertyMap):
              (JSC::Structure::addPropertyTransitionToExistingStructure):
              (JSC::Structure::addPropertyTransition):
              (JSC::Structure::changeFunctionTransition):
              (JSC::Structure::addPropertyWithoutTransition):
              (JSC::Structure::get):
              (JSC::Structure::despecifyFunction):
              (JSC::Structure::put):
              (JSC::Structure::remove):
              * runtime/Structure.h:
              (JSC::Structure::get):
              (JSC::Structure::specificFunction):
              * runtime/StructureTransitionTable.h:
              (JSC::StructureTransitionTableHashTraits::emptyValue):
              * wtf/Platform.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44076 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      07173248
  5. 21 May, 2009 2 commits
    • barraclough@apple.com's avatar
      2009-05-21 Gavin Barraclough <barraclough@apple.com> · 04b762d2
      barraclough@apple.com authored
              Reviewed by Darin Adler.
              Addition of MacroAssemblerCodeRef.h rubber stamped by Geoff Garen.
      
              Refactor JIT code-handle objects.  The representation of generated code is currently
              a bit of a mess.  We have a class JITCode which wraps the pointer to a block of
              generated code, but this object does not reference the executable pool meaning that
              external events (the pool being derefed) could make the pointer become invalid.
              To overcome this both the JIT and Yarr implement further (and similar) objects to
              wrap the code pointer with a RefPtr to the pool.  To add to the mire, as well as the
              CodeBlock containing a handle onto the code the FunctionBodyNode also contains a
              copy of the code pointer which is used almost (but not entirely) uniquely to access
              the JIT code for a function.
      
              Rationalization of all this:
      
                  * Add a new type 'MacroAssembler::CodeRef' as a handle for a block of JIT generated code.
                  * Change the JIT & Yarr to internally handle code using CodeRefs.
                  * Move the CodeRef (formerly anow defunct JITCodeRef) from CodeBlock to its owner node.
                  * Remove the (now) redundant code pointer from FunctionBodyNode.
      
              While tidying this up I've made the PatchBuffer return code in new allocations using a CodeRef,
              and have enforced an interface that the PatchBuffer will always be used, and 'finalizeCode()' or
              'finalizeCodeAddendum()' will always be called exactly once on the PatchBuffer to complete code generation.
      
              This gives us a potentially useful hook ('PatchBuffer::performFinalization()') at the end of generation,
              which may have a number of uses.  It may be helpful should we wish to switch our generation
              model to allow RW/RX exclusive memory, and it may be useful on non-cache-coherent platforms to
              give us an oportunity to cache flush as necessary.
      
              No performance impact.
      
              * assembler/AbstractMacroAssembler.h:
              (JSC::AbstractMacroAssembler::ProcessorReturnAddress::relinkCallerToTrampoline):
              (JSC::AbstractMacroAssembler::CodeRef::CodeRef):
              (JSC::AbstractMacroAssembler::CodeRef::trampolineAt):
              (JSC::AbstractMacroAssembler::PatchBuffer::PatchBuffer):
              (JSC::AbstractMacroAssembler::PatchBuffer::~PatchBuffer):
              (JSC::AbstractMacroAssembler::PatchBuffer::link):
              (JSC::AbstractMacroAssembler::PatchBuffer::linkTailRecursive):
              (JSC::AbstractMacroAssembler::PatchBuffer::patch):
              (JSC::AbstractMacroAssembler::PatchBuffer::complete):
              (JSC::AbstractMacroAssembler::PatchBuffer::finalize):
              (JSC::AbstractMacroAssembler::PatchBuffer::entry):
              * bytecode/CodeBlock.cpp:
              (JSC::CodeBlock::CodeBlock):
              (JSC::CodeBlock::reparseForExceptionInfoIfNecessary):
              (JSC::CodeBlock::setJITCode):
              * bytecode/CodeBlock.h:
              (JSC::CodeBlock::getBytecodeIndex):
              (JSC::CodeBlock::executablePool):
              * interpreter/CallFrameClosure.h:
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::execute):
              (JSC::Interpreter::prepareForRepeatCall):
              * jit/JIT.cpp:
              (JSC::JIT::privateCompile):
              (JSC::JIT::privateCompileCTIMachineTrampolines):
              (JSC::JIT::linkCall):
              * jit/JIT.h:
              * jit/JITCode.h:
              (JSC::JITCode::JITCode):
              (JSC::JITCode::operator bool):
              (JSC::JITCode::addressForCall):
              (JSC::JITCode::offsetOf):
              (JSC::JITCode::execute):
              (JSC::JITCode::size):
              (JSC::JITCode::executablePool):
              (JSC::JITCode::HostFunction):
              * jit/JITPropertyAccess.cpp:
              (JSC::JIT::privateCompilePutByIdTransition):
              (JSC::JIT::privateCompilePatchGetArrayLength):
              (JSC::JIT::privateCompileGetByIdProto):
              (JSC::JIT::privateCompileGetByIdSelfList):
              (JSC::JIT::privateCompileGetByIdProtoList):
              (JSC::JIT::privateCompileGetByIdChainList):
              (JSC::JIT::privateCompileGetByIdChain):
              * jit/JITStubs.cpp:
              (JSC::JITStubs::cti_vm_dontLazyLinkCall):
              (JSC::JITStubs::cti_vm_lazyLinkCall):
              * parser/Nodes.cpp:
              (JSC::ProgramNode::generateJITCode):
              (JSC::EvalNode::generateJITCode):
              (JSC::FunctionBodyNode::FunctionBodyNode):
              (JSC::FunctionBodyNode::createNativeThunk):
              (JSC::FunctionBodyNode::generateJITCode):
              * parser/Nodes.h:
              (JSC::ScopeNode::generatedJITCode):
              (JSC::ScopeNode::getExecutablePool):
              (JSC::ScopeNode::setJITCode):
              (JSC::ProgramNode::jitCode):
              (JSC::EvalNode::jitCode):
              (JSC::FunctionBodyNode::jitCode):
              * runtime/RegExp.cpp:
              (JSC::RegExp::match):
              * yarr/RegexJIT.cpp:
              (JSC::Yarr::RegexGenerator::compile):
              (JSC::Yarr::jitCompileRegex):
              (JSC::Yarr::executeRegex):
              * yarr/RegexJIT.h:
              (JSC::Yarr::RegexCodeBlock::RegexCodeBlock):
              (JSC::Yarr::RegexCodeBlock::pcreFallback):
              (JSC::Yarr::RegexCodeBlock::setFallback):
              (JSC::Yarr::RegexCodeBlock::operator bool):
              (JSC::Yarr::RegexCodeBlock::set):
              (JSC::Yarr::RegexCodeBlock::execute):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44030 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      04b762d2
    • oliver@apple.com's avatar
      <rdar://problem/6910264> REGRESSION: Cached DOM global object property access... · 6d36a7fc
      oliver@apple.com authored
      <rdar://problem/6910264> REGRESSION: Cached DOM global object property access fails in browser (25921)
      <https://bugs.webkit.org/show_bug.cgi?id=25921>
      
      Reviewed by Maciej Stachowiak.
      
      When caching properties on the global object we need to ensure that we're
      not attempting to cache through a shell object.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44016 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6d36a7fc
  6. 18 May, 2009 2 commits
    • barraclough@apple.com's avatar
      2009-05-18 Jan Michael Alonzo <jmalonzo@webkit.org> · cef2b1ce
      barraclough@apple.com authored
               Reviewed by Xan Lopez.
      
               [Gtk] Various autotools build refactoring and fixes
               https://bugs.webkit.org/show_bug.cgi?id=25286
      
               Add -no-install and -no-fast-install to programs and tests that we
               don't install. Also remove -O2 since this is already handled at
               configure time.
      
               * GNUmakefile.am:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@43839 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cef2b1ce
    • barraclough@apple.com's avatar
      2009-05-15 Gavin Barraclough <barraclough@apple.com> · 5c2d03bf
      barraclough@apple.com authored
              Reviewed by Darin Adler.
      
              Refactor JIT code-handle objects.  The representation of generated code is currently
              a bit of a mess.  We have a class JITCode which wraps the pointer to a block of
              generated code, but this object does not reference the executable pool meaning that
              external events (the pool being derefed) could make the pointer become invalid.
              To overcome this both the JIT and Yarr implement further (and similar) objects to
              wrap the code pointer with a RefPtr to the pool.  To add to the mire, as well as the
              CodeBlock containing a handle onto the code the FunctionBodyNode also contains a
              copy of the code pointer which is used almost (but not entirely) uniquely to access
              the JIT code for a function.
      
              Rationalization of all this:
      
                  * Add a new type 'MacroAssembler::CodeRef' as a handle for a block of JIT generated code.
                  * Change the JIT & Yarr to internally handle code using CodeRefs.
                  * Move the CodeRef (formerly anow defunct JITCodeRef) from CodeBlock to its owner node.
                  * Remove the (now) redundant code pointer from FunctionBodyNode.
      
              While tidying this up I've made the PatchBuffer return code in new allocations using a CodeRef,
              and have enforced an interface that the PatchBuffer will always be used, and 'finalizeCode()' or
              'finalizeCodeAddendum()' will always be called exactly once on the PatchBuffer to complete code generation.
      
              This gives us a potentially useful hook ('PatchBuffer::performFinalization()') at the end of generation,
              which may have a number of uses.  It may be helpful should we wish to switch our generation
              model to allow RW/RX exclusive memory, and it may be useful on non-cache-coherent platforms to
              give us an oportunity to cache flush as necessary.
      
              No performance impact.
      
              * assembler/AbstractMacroAssembler.h:
              (JSC::AbstractMacroAssembler::ProcessorReturnAddress::relinkCallerToTrampoline):
              (JSC::AbstractMacroAssembler::CodeRef::CodeRef):
              (JSC::AbstractMacroAssembler::CodeRef::trampolineAt):
              (JSC::AbstractMacroAssembler::PatchBuffer::PatchBuffer):
              (JSC::AbstractMacroAssembler::PatchBuffer::~PatchBuffer):
              (JSC::AbstractMacroAssembler::PatchBuffer::link):
              (JSC::AbstractMacroAssembler::PatchBuffer::linkTailRecursive):
              (JSC::AbstractMacroAssembler::PatchBuffer::patch):
              (JSC::AbstractMacroAssembler::PatchBuffer::complete):
              (JSC::AbstractMacroAssembler::PatchBuffer::finalize):
              (JSC::AbstractMacroAssembler::PatchBuffer::entry):
              * bytecode/CodeBlock.cpp:
              (JSC::CodeBlock::CodeBlock):
              (JSC::CodeBlock::reparseForExceptionInfoIfNecessary):
              (JSC::CodeBlock::setJITCode):
              * bytecode/CodeBlock.h:
              (JSC::CodeBlock::getBytecodeIndex):
              (JSC::CodeBlock::executablePool):
              * interpreter/CallFrameClosure.h:
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::execute):
              (JSC::Interpreter::prepareForRepeatCall):
              * jit/JIT.cpp:
              (JSC::JIT::privateCompile):
              (JSC::JIT::privateCompileCTIMachineTrampolines):
              (JSC::JIT::linkCall):
              * jit/JIT.h:
              * jit/JITCode.h:
              (JSC::JITCode::JITCode):
              (JSC::JITCode::operator bool):
              (JSC::JITCode::addressForCall):
              (JSC::JITCode::offsetOf):
              (JSC::JITCode::execute):
              (JSC::JITCode::size):
              (JSC::JITCode::executablePool):
              (JSC::JITCode::HostFunction):
              * jit/JITPropertyAccess.cpp:
              (JSC::JIT::privateCompilePutByIdTransition):
              (JSC::JIT::privateCompilePatchGetArrayLength):
              (JSC::JIT::privateCompileGetByIdProto):
              (JSC::JIT::privateCompileGetByIdSelfList):
              (JSC::JIT::privateCompileGetByIdProtoList):
              (JSC::JIT::privateCompileGetByIdChainList):
              (JSC::JIT::privateCompileGetByIdChain):
              * jit/JITStubs.cpp:
              (JSC::JITStubs::cti_vm_dontLazyLinkCall):
              (JSC::JITStubs::cti_vm_lazyLinkCall):
              * parser/Nodes.cpp:
              (JSC::ProgramNode::generateJITCode):
              (JSC::EvalNode::generateJITCode):
              (JSC::FunctionBodyNode::FunctionBodyNode):
              (JSC::FunctionBodyNode::createNativeThunk):
              (JSC::FunctionBodyNode::generateJITCode):
              * parser/Nodes.h:
              (JSC::ScopeNode::generatedJITCode):
              (JSC::ScopeNode::getExecutablePool):
              (JSC::ScopeNode::setJITCode):
              (JSC::ProgramNode::jitCode):
              (JSC::EvalNode::jitCode):
              (JSC::FunctionBodyNode::jitCode):
              * runtime/RegExp.cpp:
              (JSC::RegExp::match):
              * yarr/RegexJIT.cpp:
              (JSC::Yarr::RegexGenerator::compile):
              (JSC::Yarr::jitCompileRegex):
              (JSC::Yarr::executeRegex):
              * yarr/RegexJIT.h:
              (JSC::Yarr::RegexCodeBlock::RegexCodeBlock):
              (JSC::Yarr::RegexCodeBlock::pcreFallback):
              (JSC::Yarr::RegexCodeBlock::setFallback):
              (JSC::Yarr::RegexCodeBlock::operator bool):
              (JSC::Yarr::RegexCodeBlock::set):
              (JSC::Yarr::RegexCodeBlock::execute):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@43837 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5c2d03bf
  7. 13 May, 2009 2 commits
    • darin@apple.com's avatar
      JavaScriptCore: · d8085775
      darin@apple.com authored
      2009-05-13  Darin Adler  <darin@apple.com>
      
              Revert the parser arena change. It was a slowdown, not a speedup.
              Better luck next time (I'll break it up into pieces).
      
      WebCore:
      
      2009-05-13  Darin Adler  <darin@apple.com>
      
              Revert the parser arena change. It was a slowdown, not a speedup.
              Better luck next time (I'll break it up into pieces).
      
      WebKit/mac:
      
      2009-05-13  Darin Adler  <darin@apple.com>
      
              Revert the parser arena change. It was a slowdown, not a speedup.
              Better luck next time (I'll break it up into pieces).
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@43661 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d8085775
    • darin@apple.com's avatar
      JavaScriptCore: · 53ecc4e3
      darin@apple.com authored
      2009-05-13  Darin Adler  <darin@apple.com>
      
              Reviewed by Cameron Zwarich.
      
              Bug 25674: syntax tree nodes should use arena allocation
              https://bugs.webkit.org/show_bug.cgi?id=25674
      
              Step 3: Add some actual arena allocation. About 1% SunSpider speedup.
      
              * JavaScriptCore.exp: Updated.
      
              * bytecompiler/BytecodeGenerator.cpp:
              (JSC::BytecodeGenerator::BytecodeGenerator): Updated since VarStack
              contains const Identifier* now.
              (JSC::BytecodeGenerator::emitPushNewScope): Updated to take a const
              Identifier&.
              * bytecompiler/BytecodeGenerator.h: Ditto
      
              * bytecompiler/SegmentedVector.h: Added isEmpty.
      
              * debugger/Debugger.cpp:
              (JSC::Debugger::recompileAllJSFunctions): Moved this function here from
              WebCore so WebCore doesn't need the details of FunctionBodyNode.
              * debugger/Debugger.h: Ditto.
      
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::execute): Updated since VarStack contains const
              Identifier* now.
      
              * jit/JITStubs.cpp:
              (JSC::JITStubs::cti_vm_lazyLinkCall): Call isHostFunction on the body
              rather than on the function object, since we can't easily have inlined
              access to the FunctionBodyNode in JSFunction.h since WebCore needs
              access to that header.
              (JSC::JITStubs::cti_op_construct_JSConstruct): Ditto.
              * profiler/Profiler.cpp:
              (JSC::Profiler::createCallIdentifier): Ditto.
      
              * parser/Grammar.y: Use JSGlobalData* to pass the global data pointer
              around whenever possible instead of using void*. Changed
              SET_EXCEPTION_LOCATION from a macro to an inline function. Marked
              the structure-creating functions inline. Changed the VarStack to use
              identifier pointers instead of actual identifiers. This takes
              advantage of the fact that all identifier pointers come from the
              arena and avoids referenc count churn. Changed Identifier* to
              const Identifier* to make sure we don't modify any by accident.
              Used identifiers for regular expression strings too, using the new
              scanRegExp that has out parameters instead of the old one that relied
              on side effects in the Lexer. Move the creation of numeric identifiers
              out of this file and into the PropertyNode constructor.
      
              * parser/Lexer.cpp:
              (JSC::Lexer::setCode): Pass in ParserArena, used for identifiers.
              (JSC::Lexer::makeIdentifier): Changed return type to const Identifier*
              and changed to call ParserArena.
              (JSC::Lexer::scanRegExp): Added out arguments that are const Identifier*
              as well as a prefix character argument so we can handle the /= case
              without a string append.
              (JSC::Lexer::skipRegExp): Added. Skips a regular expression without
              allocating Identifier objects.
              (JSC::Lexer::clear): Removed the code to manage m_identifiers, m_pattern,
              and m_flags, and added code to set m_arena to 0.
              * parser/Lexer.h: Updated for changes above.
      
              * parser/NodeConstructors.h:
              (JSC::ParserArenaFreeable::operator new): Added. Calls allocateFreeable
              on the arena.
              (JSC::ParserArenaDeletable::operator new): Changed to call the
              allocateDeletable function on the arena instead of deleteWithArena.
              (JSC::RegExpNode::RegExpNode): Changed arguments to Identifier instead
              of UString since these come from the parser which makes identifiers.
              (JSC::PropertyNode::PropertyNode): Added new constructor that makes
              numeric identifiers. Some day we might want to optimize this for
              integers so it doesn't create a string for each one.
              (JSC::ContinueNode::ContinueNode): Initialize m_ident to nullIdentifier
              since it's now a const Identifier& so it can't be left uninitialized.
              (JSC::BreakNode::BreakNode): Ditto.
              (JSC::CaseClauseNode::CaseClauseNode): Updated to use SourceElements*
              to keep track of the statements rather than a separate statement vector.
              (JSC::BlockNode::BlockNode): Ditto.
              (JSC::ForInNode::ForInNode): Initialize m_ident to nullIdentifier.
      
              * parser/Nodes.cpp: Moved the comment explaining emitBytecode in here.
              It seemed strangely out of place in the header.
              (JSC::ThrowableExpressionData::emitThrowError): Added an overload for
              UString as well as Identifier.
              (JSC::SourceElements::singleStatement): Added.
              (JSC::SourceElements::lastStatement): Added.
              (JSC::RegExpNode::emitBytecode): Updated since the pattern and flags
              are now Identifier instead of UString. Also changed the throwError code
              to use the substitution mechanism instead of doing a string append.
              (JSC::SourceElements::emitBytecode): Added. Replaces the old
              statementListEmitCode function, since we now keep the SourceElements
              objects around.
              (JSC::BlockNode::lastStatement): Added.
              (JSC::BlockNode::emitBytecode): Changed to use emitBytecode instead of
              statementListEmitCode.
              (JSC::CaseClauseNode::emitBytecode): Added.
              (JSC::CaseBlockNode::emitBytecodeForBlock): Changed to use emitBytecode
              instead of statementListEmitCode.
              (JSC::ScopeNodeData::ScopeNodeData): Changed to store the
              SourceElements* instead of using releaseContentsIntoVector.
              (JSC::ScopeNode::emitStatementsBytecode): Added.
              (JSC::ScopeNode::singleStatement): Added.
              (JSC::ProgramNode::emitBytecode): Call emitStatementsBytecode instead
              of statementListEmitCode.
              (JSC::EvalNode::emitBytecode): Ditto.
              (JSC::EvalNode::generateBytecode): Removed code to clear the children
              vector. This optimization is no longer possible since everything is in
              a single arena.
              (JSC::FunctionBodyNode::emitBytecode): Call emitStatementsBytecode
              insetad of statementListEmitCode and check for the return node using
              the new functions.
      
              * parser/Nodes.h: Changed VarStack to store const Identifier* instead
              of Identifier and rely on the arena to control lifetime. Added a new
              ParserArenaFreeable class. Made ParserArenaDeletable inherit from
              FastAllocBase instead of having its own operator new. Base the Node
              class on ParserArenaFreeable. Changed the various Node classes
              to use const Identifier& instead of Identifier to avoid the need to
              call their destructors and allow them to function as "freeable" in the
              arena. Removed extraneous JSC_FAST_CALL on definitions of inline functions.
              Changed ElementNode, PropertyNode, ArgumentsNode, ParameterNode,
              CaseClauseNode, ClauseListNode, and CaseBlockNode to use ParserArenaFreeable
              as a base class since they do not descend from Node. Eliminated the
              StatementVector type and instead have various classes use SourceElements*
              instead of StatementVector. This prevents those classes from having th
              use ParserArenaDeletable to make sure the vector destructor is called.
      
              * parser/Parser.cpp:
              (JSC::Parser::parse): Pass the arena to the lexer.
      
              * parser/Parser.h: Added an include of ParserArena.h, which is no longer
              included by Nodes.h.
      
              * parser/ParserArena.cpp:
              (JSC::ParserArena::ParserArena): Added. Initializes the new members,
              m_freeableMemory, m_freeablePoolEnd, and m_identifiers.
              (JSC::ParserArena::freeablePool): Added. Computes the pool pointer,
              since we store only the current pointer and the end of pool pointer.
              (JSC::ParserArena::deallocateObjects): Added. Contains the common
              memory-deallocation logic used by both the destructor and the
              reset function.
              (JSC::ParserArena::~ParserArena): Changed to call deallocateObjects.
              (JSC::ParserArena::reset): Ditto. Also added code to zero out the
              new structures, and switched to use clear() instead of shrink(0) since
              we don't really reuse arenas.
              (JSC::ParserArena::makeNumericIdentifier): Added.
              (JSC::ParserArena::allocateFreeablePool): Added. Used when the pool
              is empty.
              (JSC::ParserArena::isEmpty): Added. No longer inline, which is fine
              since this is used only for assertions at the moment.
      
              * parser/ParserArena.h: Added an actual arena of "freeable" objects,
              ones that don't need destructors to be called. Also added the segmented
              vector of identifiers that used to be in the Lexer.
      
              * runtime/FunctionConstructor.cpp:
              (JSC::extractFunctionBody): Use singleStatement function rather than
              getting at a StatementVector.
      
              * runtime/FunctionPrototype.cpp:
              (JSC::functionProtoFuncToString): Call isHostFunction on the body
              rather than the function object.
      
              * runtime/JSFunction.cpp:
              (JSC::JSFunction::JSFunction): Moved the structure version of this in
              here from the header. It's not hot enough that it needs to be inlined.
              (JSC::JSFunction::isHostFunction): Moved this in here from the header.
              It's now a helper to be used only within the class.
              (JSC::JSFunction::setBody): Moved this in here. It's not hot enough that
              it needs to be inlined, and we want to be able to compile the header
              without the definition of FunctionBodyNode.
      
              * runtime/JSFunction.h: Eliminated the include of "Nodes.h". This was
              exposing too much JavaScriptCore dependency to WebCore. Because of this
              change and some changes made to WebCore, we could now export a lot fewer
              headers from JavaScriptCore, but I have not done that yet in this check-in.
              Made a couple functions non-inline. Removes some isHostFunction() assertions.
              
              * wtf/FastAllocBase.h: Added the conventional using statements we use in
              WTF so we can use identifiers from the WTF namespace without explicit
              namespace qualification or namespace directive. This is the usual WTF style,
              although it's unconventional in the C++ world. We use the namespace primarily
              for link-time disambiguation, not compile-time.
      
              * wtf/FastMalloc.cpp: Fixed an incorrect comment.
      
      WebCore:
      
      2009-05-13  Darin Adler  <darin@apple.com>
      
              Reviewed by Cameron Zwarich.
      
              Bug 25674: syntax tree nodes should use arena allocation
              https://bugs.webkit.org/show_bug.cgi?id=25674
      
              * bindings/js/JSDOMBinding.h: Removed include of JSFunction.h.
              We don't want the entire DOM binding to depend on that file.
      
              * bindings/js/JSAudioConstructor.cpp: Added include of Error.h.
              Before we inherited this automatically because JDDOMBinding.h
              included JSFunction.h, but that was excessive.
              * bindings/js/JSDOMWindowCustom.cpp: Ditto.
              * bindings/js/JSHTMLInputElementCustom.cpp: Ditto.
              * bindings/js/JSImageConstructor.cpp: Ditto.
              * bindings/js/JSLazyEventListener.cpp: Ditto, but for JSFunction.h.
              * bindings/js/JSMessageChannelConstructor.cpp: Ditto.
              * bindings/js/JSOptionConstructor.cpp: Ditto.
              * bindings/js/JSWorkerConstructor.cpp: Ditto.
              * bindings/js/JSXMLHttpRequestConstructor.cpp: Ditto.
              * bridge/jni/jni_jsobject.mm: Ditto, but for SourceCode.h.
              * inspector/InspectorController.cpp: Ditto.
      
              * inspector/JavaScriptDebugServer.cpp:
              (WebCore::JavaScriptDebugServer::recompileAllJSFunctions):
              Moved mose of this function into the base class in JavaScriptCore,
              so the details of compilation don't have to be exposed.
      
      WebKit/mac:
      
      2009-05-13  Darin Adler  <darin@apple.com>
      
              Reviewed by Cameron Zwarich.
      
              Bug 25674: syntax tree nodes should use arena allocation
              https://bugs.webkit.org/show_bug.cgi?id=25674
      
              * Plugins/Hosted/NetscapePluginInstanceProxy.mm: Updated includes.
              New ones needed due to reducing includes of JSDOMBinding.h.
              * WebView/WebScriptDebugger.mm: Ditto.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@43642 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      53ecc4e3
  8. 12 May, 2009 2 commits
    • barraclough@apple.com's avatar
      JavaScriptCore: · 65c43013
      barraclough@apple.com authored
      2009-05-12  Gavin Barraclough  <barraclough@apple.com>
      
              Reviewed by Oliver Hunt.
      
              instanceof should throw if the constructor being tested does not implement
              'HasInstance" (i.e. is a function).  Instead we were returning false.
      
              * interpreter/Interpreter.cpp:
              (JSC::isInvalidParamForIn):
              (JSC::isInvalidParamForInstanceOf):
              (JSC::Interpreter::privateExecute):
              * jit/JITStubs.cpp:
              (JSC::JITStubs::cti_op_instanceof):
              * tests/mozilla/ecma_2/instanceof/instanceof-003.js:
                  Fix broken test case.
              * tests/mozilla/ecma_2/instanceof/regress-7635.js:
                  Remove broken test case (was an exact duplicate of a test in instanceof-003.js).
      
      LayoutTests:
      
      2009-05-12  Gavin Barraclough  <barraclough@apple.com>
      
              Reviewed by Oliver Hunt.
      
              Test was checked in with one test case disabled since it exposed an existing bug;
              enable it now.
      
              * fast/js/instance-of-immediates-expected.txt:
              * fast/js/resources/instance-of-immediates.js:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@43560 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      65c43013
    • oliver@apple.com's avatar
      Improve function call forwarding performance · be38ac48
      oliver@apple.com authored
      Reviewed by Gavin Barraclough
      
      Make creation of the Arguments object occur lazily, so it
      is not necessarily created for every function that references
      it.  Then add logic to Function.apply to allow it to avoid
      allocating the Arguments object at all.  Helps a lot with
      the function forwarding/binding logic in jQuery, Prototype,
      and numerous other JS libraries.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@43559 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      be38ac48
  9. 08 May, 2009 2 commits
    • oliver@apple.com's avatar
      Add a limited literal parser for eval to handle object and array literals fired at eval · c57cb0dd
      oliver@apple.com authored
      Reviewed by Gavin Barraclough and Darin Adler.
      
      This is a simplified parser and lexer that we can throw at strings passed to eval
      in case a site is using eval to parse JSON (eg. json2.js).  The lexer is intentionally
      limited (in effect it's whitelisting a limited "common" subset of the JSON grammar)
      as this decreases the likelihood of us wating time attempting to parse any significant
      amount of non-JSON content.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@43424 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c57cb0dd
    • cwzwarich@webkit.org's avatar
      2009-05-08 Cameron Zwarich <cwzwarich@uwaterloo.ca> · 88aa8579
      cwzwarich@webkit.org authored
              Reviewed by Maciej Stachowiak.
      
              Add a new opcode jnlesseq, and optimize its compilation in the JIT using
              techniques similar to what were used to optimize jnless in r43363.
      
              This gives a 0.7% speedup on SunSpider, particularly on the tests 3d-cube,
              control-flow-recursive, date-format-xparb, and string-base64.
      
              * bytecode/CodeBlock.cpp:
              (JSC::CodeBlock::dump): Add support for dumping op_jnlesseq.
              * bytecode/Opcode.h: Add op_jnlesseq to the list of opcodes.
              * bytecompiler/BytecodeGenerator.cpp:
              (JSC::BytecodeGenerator::emitJumpIfFalse): Add a peephole optimization
              for op_jnlesseq when emitting lesseq followed by a jump.
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::privateExecute): Add case for op_jnlesseq.
              * jit/JIT.cpp:
              (JSC::JIT::privateCompileMainPass): Add case for op_jnlesseq.
              (JSC::JIT::privateCompileSlowCases): Add case for op_jnlesseq.
              * jit/JIT.h:
              * jit/JITArithmetic.cpp:
              (JSC::JIT::compileFastArith_op_jnlesseq): Added.
              (JSC::JIT::compileFastArithSlow_op_jnlesseq): Added.
              * jit/JITStubs.cpp:
              (JSC::JITStubs::cti_op_jlesseq): Added.
              * jit/JITStubs.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@43401 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      88aa8579
  10. 06 May, 2009 1 commit
    • barraclough@apple.com's avatar
      2009-05-06 Gavin Barraclough <barraclough@apple.com> · 14dc4e12
      barraclough@apple.com authored
              Reviewed by Maciej Stachowiak & Darin Adler.
      
              Improve string concatenation (as coded in JS as a sequence of adds).
      
              Detect patterns corresponding to string concatenation, and change the bytecode
              generation to emit a new op_strcat instruction.  By handling the full set of
              additions within a single function we do not need allocate JSString wrappers
              for intermediate results, and we can calculate the size of the output string
              prior to allocating storage, in order to prevent reallocation of the buffer.
      
              1.5%-2% progression on Sunspider, largely due to a 30% progression on date-format-xparb.
      
              * bytecode/CodeBlock.cpp:
              (JSC::CodeBlock::dump):
                  Add new opcodes.
              * bytecode/Opcode.h:
                  Add new opcodes.
              * bytecompiler/BytecodeGenerator.cpp:
              (JSC::BytecodeGenerator::emitStrcat):
              (JSC::BytecodeGenerator::emitToPrimitive):
                  Add generation of new opcodes.
              * bytecompiler/BytecodeGenerator.h:
                  Add generation of new opcodes.
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::privateExecute):
                  Add implmentation of new opcodes.
              * jit/JIT.cpp:
              (JSC::JIT::privateCompileMainPass):
              (JSC::JIT::privateCompileSlowCases):
                  Add implmentation of new opcodes.
              * jit/JITStubs.cpp:
              (JSC::JITStubs::cti_op_to_primitive):
              (JSC::JITStubs::cti_op_strcat):
                  Add implmentation of new opcodes.
              * jit/JITStubs.h:
                  Add implmentation of new opcodes.
              * parser/Nodes.cpp:
              (JSC::BinaryOpNode::emitStrcat):
              (JSC::BinaryOpNode::emitBytecode):
              (JSC::ReadModifyResolveNode::emitBytecode):
                  Add generation of new opcodes.
              * parser/Nodes.h:
              (JSC::ExpressionNode::):
              (JSC::AddNode::):
                  Add methods to allow identification of add nodes.
              * parser/ResultType.h:
              (JSC::ResultType::definitelyIsString):
              (JSC::ResultType::forAdd):
                  Fix error in detection of adds that will produce string results.
              * runtime/Operations.h:
              (JSC::concatenateStrings):
                  Add implmentation of new opcodes.
              * runtime/UString.cpp:
              (JSC::UString::appendNumeric):
                  Add methods to append numbers to an existing string.
              * runtime/UString.h:
              (JSC::UString::Rep::createEmptyBuffer):
              (JSC::UString::BaseString::BaseString):
                  Add support for creating an empty string with a non-zero capacity available in the BaseString.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@43331 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      14dc4e12
  11. 05 May, 2009 1 commit
  12. 02 May, 2009 1 commit
    • ggaren@apple.com's avatar
      JavaScriptCore: · acea358b
      ggaren@apple.com authored
      2009-05-02  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Sam Weinig.
      
              Simplified null-ish JSValues.
              
              Replaced calls to noValue() with calls to JSValue() (which is what
              noValue() returned). Removed noValue().
              
              Replaced almost all uses of jsImpossibleValue() with uses of JSValue().
              Its one remaining use is for construction of hash table deleted values.
              For that specific task, I made a new, private constructor with a special
              tag. Removed jsImpossibleValue().
              
              Removed "JSValue()" initialiazers, since default construction happens...
              by default.
      
              * API/JSCallbackObjectFunctions.h:
              (JSC::::call):
              * bytecompiler/BytecodeGenerator.cpp:
              (JSC::BytecodeGenerator::emitLoad):
              * bytecompiler/BytecodeGenerator.h:
              * debugger/DebuggerCallFrame.cpp:
              (JSC::DebuggerCallFrame::evaluate):
              * debugger/DebuggerCallFrame.h:
              (JSC::DebuggerCallFrame::DebuggerCallFrame):
              * interpreter/CallFrame.h:
              (JSC::ExecState::clearException):
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::privateExecute):
              (JSC::Interpreter::retrieveLastCaller):
              * interpreter/Register.h:
              (JSC::Register::Register):
              * jit/JITCall.cpp:
              (JSC::JIT::unlinkCall):
              (JSC::JIT::compileOpCallInitializeCallFrame):
              (JSC::JIT::compileOpCall):
              * jit/JITStubs.cpp:
              (JSC::JITStubs::cti_op_call_eval):
              (JSC::JITStubs::cti_vm_throw):
              * profiler/Profiler.cpp:
              (JSC::Profiler::willExecute):
              (JSC::Profiler::didExecute):
              * runtime/ArrayPrototype.cpp:
              (JSC::getProperty):
              * runtime/Completion.cpp:
              (JSC::evaluate):
              * runtime/Completion.h:
              (JSC::Completion::Completion):
              * runtime/GetterSetter.cpp:
              (JSC::GetterSetter::getPrimitiveNumber):
              * runtime/JSArray.cpp:
              (JSC::JSArray::putSlowCase):
              (JSC::JSArray::deleteProperty):
              (JSC::JSArray::increaseVectorLength):
              (JSC::JSArray::setLength):
              (JSC::JSArray::pop):
              (JSC::JSArray::sort):
              (JSC::JSArray::compactForSorting):
              * runtime/JSCell.cpp:
              (JSC::JSCell::getJSNumber):
              * runtime/JSCell.h:
              (JSC::JSValue::getJSNumber):
              * runtime/JSGlobalData.cpp:
              (JSC::JSGlobalData::JSGlobalData):
              * runtime/JSImmediate.h:
              (JSC::JSImmediate::fromNumberOutsideIntegerRange):
              (JSC::JSImmediate::from):
              * runtime/JSNumberCell.cpp:
              (JSC::jsNumberCell):
              * runtime/JSObject.cpp:
              (JSC::callDefaultValueFunction):
              * runtime/JSObject.h:
              (JSC::JSObject::getDirect):
              * runtime/JSPropertyNameIterator.cpp:
              (JSC::JSPropertyNameIterator::toPrimitive):
              * runtime/JSPropertyNameIterator.h:
              (JSC::JSPropertyNameIterator::next):
              * runtime/JSValue.h:
              (JSC::JSValue::):
              (JSC::JSValueHashTraits::constructDeletedValue):
              (JSC::JSValueHashTraits::isDeletedValue):
              (JSC::JSValue::JSValue):
              * runtime/JSWrapperObject.h:
              (JSC::JSWrapperObject::JSWrapperObject):
              * runtime/Operations.h:
              (JSC::resolveBase):
              * runtime/PropertySlot.h:
              (JSC::PropertySlot::clearBase):
              (JSC::PropertySlot::clearValue):
      
      WebCore:
      
      2009-05-02  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Sam Weinig.
      
              Simplified null-ish JSValues.
              
              Replaced calls to noValue() with calls to JSValue() (which is what
              noValue() returned). Removed noValue().
              
              Removed "JSValue()" initialiazers, since default construction happens...
              by default.
      
              * bindings/js/JSDOMBinding.cpp:
              (WebCore::setDOMException):
              * bindings/js/JSDOMWindowCustom.cpp:
              (WebCore::JSDOMWindow::open):
              (WebCore::JSDOMWindow::showModalDialog):
              * bindings/js/JSEventListener.cpp:
              (WebCore::JSEventListener::handleEvent):
              * bindings/js/JSJavaScriptCallFrameCustom.cpp:
              (WebCore::JSJavaScriptCallFrame::evaluate):
              * bindings/js/JSSQLResultSetRowListCustom.cpp:
              (WebCore::JSSQLResultSetRowList::item):
              * bindings/js/ScriptController.cpp:
              (WebCore::ScriptController::evaluate):
              * bindings/js/ScriptValue.h:
              (WebCore::ScriptValue::ScriptValue):
              (WebCore::ScriptValue::hasNoValue):
              * bindings/js/WorkerScriptController.cpp:
              (WebCore::WorkerScriptController::evaluate):
              * bridge/jni/jni_instance.cpp:
              (JavaInstance::invokeMethod):
              * bridge/jni/jni_runtime.cpp:
              (JavaField::dispatchValueFromInstance):
              (JavaField::dispatchSetValueToInstance):
              * bridge/runtime.h:
              (JSC::Bindings::Instance::invokeConstruct):
      
      WebKit/mac:
      
      2009-05-02  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Sam Weinig.
      
              Simplified null-ish JSValues.
              
              Replaced calls to noValue() with calls to JSValue() (which is what
              noValue() returned). Removed noValue().
              
              Removed "JSValue()" initialiazers, since default construction happens...
              by default.
      
              * WebView/WebScriptDebugDelegate.mm:
              (-[WebScriptCallFrame evaluateWebScript:]):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@43153 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      acea358b
  13. 01 May, 2009 2 commits
    • ggaren@apple.com's avatar
      JavaScriptCore: · dc067b62
      ggaren@apple.com authored
      2009-05-01  Geoffrey Garen  <ggaren@apple.com>
      
              Rubber Stamped by Sam Weinig.
              
              Renamed JSValuePtr => JSValue.
      
              * API/APICast.h:
              (toJS):
              (toRef):
              * API/JSCallbackConstructor.h:
              (JSC::JSCallbackConstructor::createStructure):
              * API/JSCallbackFunction.cpp:
              (JSC::JSCallbackFunction::call):
              * API/JSCallbackFunction.h:
              (JSC::JSCallbackFunction::createStructure):
              * API/JSCallbackObject.h:
              (JSC::JSCallbackObject::createStructure):
              * API/JSCallbackObjectFunctions.h:
              (JSC::::asCallbackObject):
              (JSC::::put):
              (JSC::::hasInstance):
              (JSC::::call):
              (JSC::::staticValueGetter):
              (JSC::::staticFunctionGetter):
              (JSC::::callbackGetter):
              * API/JSContextRef.cpp:
              * API/JSObjectRef.cpp:
              (JSObjectMakeConstructor):
              (JSObjectSetPrototype):
              (JSObjectGetProperty):
              (JSObjectSetProperty):
              (JSObjectGetPropertyAtIndex):
              (JSObjectSetPropertyAtIndex):
              * API/JSValueRef.cpp:
              (JSValueGetType):
              (JSValueIsUndefined):
              (JSValueIsNull):
              (JSValueIsBoolean):
              (JSValueIsNumber):
              (JSValueIsString):
              (JSValueIsObject):
              (JSValueIsObjectOfClass):
              (JSValueIsEqual):
              (JSValueIsStrictEqual):
              (JSValueIsInstanceOfConstructor):
              (JSValueToBoolean):
              (JSValueToNumber):
              (JSValueToStringCopy):
              (JSValueToObject):
              (JSValueProtect):
              (JSValueUnprotect):
              * JavaScriptCore.exp:
              * bytecode/CodeBlock.cpp:
              (JSC::valueToSourceString):
              (JSC::constantName):
              (JSC::CodeBlock::dump):
              * bytecode/CodeBlock.h:
              (JSC::CodeBlock::getConstant):
              (JSC::CodeBlock::addUnexpectedConstant):
              (JSC::CodeBlock::unexpectedConstant):
              * bytecode/EvalCodeCache.h:
              (JSC::EvalCodeCache::get):
              * bytecompiler/BytecodeGenerator.cpp:
              (JSC::BytecodeGenerator::addConstant):
              (JSC::BytecodeGenerator::addUnexpectedConstant):
              (JSC::BytecodeGenerator::emitLoad):
              (JSC::BytecodeGenerator::emitGetScopedVar):
              (JSC::BytecodeGenerator::emitPutScopedVar):
              (JSC::BytecodeGenerator::emitNewError):
              (JSC::keyForImmediateSwitch):
              * bytecompiler/BytecodeGenerator.h:
              (JSC::BytecodeGenerator::JSValueHashTraits::constructDeletedValue):
              (JSC::BytecodeGenerator::JSValueHashTraits::isDeletedValue):
              * debugger/Debugger.cpp:
              (JSC::evaluateInGlobalCallFrame):
              * debugger/Debugger.h:
              * debugger/DebuggerActivation.cpp:
              (JSC::DebuggerActivation::put):
              (JSC::DebuggerActivation::putWithAttributes):
              (JSC::DebuggerActivation::lookupGetter):
              (JSC::DebuggerActivation::lookupSetter):
              * debugger/DebuggerActivation.h:
              (JSC::DebuggerActivation::createStructure):
              * debugger/DebuggerCallFrame.cpp:
              (JSC::DebuggerCallFrame::evaluate):
              * debugger/DebuggerCallFrame.h:
              (JSC::DebuggerCallFrame::DebuggerCallFrame):
              (JSC::DebuggerCallFrame::exception):
              * interpreter/CachedCall.h:
              (JSC::CachedCall::CachedCall):
              (JSC::CachedCall::call):
              (JSC::CachedCall::setThis):
              (JSC::CachedCall::setArgument):
              * interpreter/CallFrame.cpp:
              (JSC::CallFrame::thisValue):
              (JSC::CallFrame::dumpCaller):
              * interpreter/CallFrame.h:
              (JSC::ExecState::setException):
              (JSC::ExecState::exception):
              (JSC::ExecState::exceptionSlot):
              * interpreter/CallFrameClosure.h:
              (JSC::CallFrameClosure::setArgument):
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::resolve):
              (JSC::Interpreter::resolveSkip):
              (JSC::Interpreter::resolveGlobal):
              (JSC::Interpreter::resolveBase):
              (JSC::Interpreter::resolveBaseAndProperty):
              (JSC::Interpreter::resolveBaseAndFunc):
              (JSC::isNotObject):
              (JSC::Interpreter::callEval):
              (JSC::Interpreter::unwindCallFrame):
              (JSC::Interpreter::throwException):
              (JSC::Interpreter::execute):
              (JSC::Interpreter::prepareForRepeatCall):
              (JSC::Interpreter::createExceptionScope):
              (JSC::Interpreter::tryCachePutByID):
              (JSC::Interpreter::tryCacheGetByID):
              (JSC::Interpreter::privateExecute):
              (JSC::Interpreter::retrieveArguments):
              (JSC::Interpreter::retrieveCaller):
              (JSC::Interpreter::retrieveLastCaller):
              * interpreter/Interpreter.h:
              * interpreter/Register.h:
              (JSC::Register::):
              (JSC::Register::Register):
              (JSC::Register::jsValue):
              * jit/JIT.cpp:
              (JSC::):
              (JSC::JIT::privateCompileMainPass):
              * jit/JIT.h:
              * jit/JITArithmetic.cpp:
              (JSC::JIT::compileFastArith_op_mod):
              * jit/JITCall.cpp:
              (JSC::JIT::unlinkCall):
              (JSC::JIT::compileOpCallInitializeCallFrame):
              (JSC::JIT::compileOpCall):
              * jit/JITCode.h:
              (JSC::):
              (JSC::JITCode::execute):
              * jit/JITInlineMethods.h:
              (JSC::JIT::emitGetVirtualRegister):
              (JSC::JIT::getConstantOperand):
              (JSC::JIT::emitPutJITStubArgFromVirtualRegister):
              (JSC::JIT::emitInitRegister):
              * jit/JITPropertyAccess.cpp:
              (JSC::JIT::privateCompilePutByIdTransition):
              (JSC::JIT::patchGetByIdSelf):
              (JSC::JIT::patchPutByIdReplace):
              (JSC::JIT::privateCompileGetByIdSelf):
              (JSC::JIT::privateCompileGetByIdProto):
              (JSC::JIT::privateCompileGetByIdSelfList):
              (JSC::JIT::privateCompileGetByIdProtoList):
              (JSC::JIT::privateCompileGetByIdChainList):
              (JSC::JIT::privateCompileGetByIdChain):
              (JSC::JIT::privateCompilePutByIdReplace):
              * jit/JITStubs.cpp:
              (JSC::JITStubs::tryCachePutByID):
              (JSC::JITStubs::tryCacheGetByID):
              (JSC::JITStubs::cti_op_convert_this):
              (JSC::JITStubs::cti_op_add):
              (JSC::JITStubs::cti_op_pre_inc):
              (JSC::JITStubs::cti_op_loop_if_less):
              (JSC::JITStubs::cti_op_loop_if_lesseq):
              (JSC::JITStubs::cti_op_get_by_id_generic):
              (JSC::JITStubs::cti_op_get_by_id):
              (JSC::JITStubs::cti_op_get_by_id_second):
              (JSC::JITStubs::cti_op_get_by_id_self_fail):
              (JSC::JITStubs::cti_op_get_by_id_proto_list):
              (JSC::JITStubs::cti_op_get_by_id_proto_list_full):
              (JSC::JITStubs::cti_op_get_by_id_proto_fail):
              (JSC::JITStubs::cti_op_get_by_id_array_fail):
              (JSC::JITStubs::cti_op_get_by_id_string_fail):
              (JSC::JITStubs::cti_op_instanceof):
              (JSC::JITStubs::cti_op_del_by_id):
              (JSC::JITStubs::cti_op_mul):
              (JSC::JITStubs::cti_op_call_NotJSFunction):
              (JSC::JITStubs::cti_op_resolve):
              (JSC::JITStubs::cti_op_construct_NotJSConstruct):
              (JSC::JITStubs::cti_op_get_by_val):
              (JSC::JITStubs::cti_op_get_by_val_string):
              (JSC::JITStubs::cti_op_get_by_val_byte_array):
              (JSC::JITStubs::cti_op_resolve_func):
              (JSC::JITStubs::cti_op_sub):
              (JSC::JITStubs::cti_op_put_by_val):
              (JSC::JITStubs::cti_op_put_by_val_array):
              (JSC::JITStubs::cti_op_put_by_val_byte_array):
              (JSC::JITStubs::cti_op_lesseq):
              (JSC::JITStubs::cti_op_loop_if_true):
              (JSC::JITStubs::cti_op_load_varargs):
              (JSC::JITStubs::cti_op_negate):
              (JSC::JITStubs::cti_op_resolve_base):
              (JSC::JITStubs::cti_op_resolve_skip):
              (JSC::JITStubs::cti_op_resolve_global):
              (JSC::JITStubs::cti_op_div):
              (JSC::JITStubs::cti_op_pre_dec):
              (JSC::JITStubs::cti_op_jless):
              (JSC::JITStubs::cti_op_not):
              (JSC::JITStubs::cti_op_jtrue):
              (JSC::JITStubs::cti_op_post_inc):
              (JSC::JITStubs::cti_op_eq):
              (JSC::JITStubs::cti_op_lshift):
              (JSC::JITStubs::cti_op_bitand):
              (JSC::JITStubs::cti_op_rshift):
              (JSC::JITStubs::cti_op_bitnot):
              (JSC::JITStubs::cti_op_resolve_with_base):
              (JSC::JITStubs::cti_op_mod):
              (JSC::JITStubs::cti_op_less):
              (JSC::JITStubs::cti_op_neq):
              (JSC::JITStubs::cti_op_post_dec):
              (JSC::JITStubs::cti_op_urshift):
              (JSC::JITStubs::cti_op_bitxor):
              (JSC::JITStubs::cti_op_bitor):
              (JSC::JITStubs::cti_op_call_eval):
              (JSC::JITStubs::cti_op_throw):
              (JSC::JITStubs::cti_op_next_pname):
              (JSC::JITStubs::cti_op_typeof):
              (JSC::JITStubs::cti_op_is_undefined):
              (JSC::JITStubs::cti_op_is_boolean):
              (JSC::JITStubs::cti_op_is_number):
              (JSC::JITStubs::cti_op_is_string):
              (JSC::JITStubs::cti_op_is_object):
              (JSC::JITStubs::cti_op_is_function):
              (JSC::JITStubs::cti_op_stricteq):
              (JSC::JITStubs::cti_op_nstricteq):
              (JSC::JITStubs::cti_op_to_jsnumber):
              (JSC::JITStubs::cti_op_in):
              (JSC::JITStubs::cti_op_switch_imm):
              (JSC::JITStubs::cti_op_switch_char):
              (JSC::JITStubs::cti_op_switch_string):
              (JSC::JITStubs::cti_op_del_by_val):
              (JSC::JITStubs::cti_op_new_error):
              (JSC::JITStubs::cti_vm_throw):
              * jit/JITStubs.h:
              * jsc.cpp:
              (functionPrint):
              (functionDebug):
              (functionGC):
              (functionVersion):
              (functionRun):
              (functionLoad):
              (functionSetSamplingFlag):
              (functionClearSamplingFlag):
              (functionReadline):
              (functionQuit):
              * parser/Nodes.cpp:
              (JSC::processClauseList):
              * profiler/ProfileGenerator.cpp:
              (JSC::ProfileGenerator::addParentForConsoleStart):
              * profiler/Profiler.cpp:
              (JSC::Profiler::willExecute):
              (JSC::Profiler::didExecute):
              (JSC::Profiler::createCallIdentifier):
              * profiler/Profiler.h:
              * runtime/ArgList.cpp:
              (JSC::MarkedArgumentBuffer::slowAppend):
              * runtime/ArgList.h:
              (JSC::MarkedArgumentBuffer::at):
              (JSC::MarkedArgumentBuffer::append):
              (JSC::ArgList::ArgList):
              (JSC::ArgList::at):
              * runtime/Arguments.cpp:
              (JSC::Arguments::put):
              * runtime/Arguments.h:
              (JSC::Arguments::createStructure):
              (JSC::asArguments):
              * runtime/ArrayConstructor.cpp:
              (JSC::callArrayConstructor):
              * runtime/ArrayPrototype.cpp:
              (JSC::getProperty):
              (JSC::putProperty):
              (JSC::arrayProtoFuncToString):
              (JSC::arrayProtoFuncToLocaleString):
              (JSC::arrayProtoFuncJoin):
              (JSC::arrayProtoFuncConcat):
              (JSC::arrayProtoFuncPop):
              (JSC::arrayProtoFuncPush):
              (JSC::arrayProtoFuncReverse):
              (JSC::arrayProtoFuncShift):
              (JSC::arrayProtoFuncSlice):
              (JSC::arrayProtoFuncSort):
              (JSC::arrayProtoFuncSplice):
              (JSC::arrayProtoFuncUnShift):
              (JSC::arrayProtoFuncFilter):
              (JSC::arrayProtoFuncMap):
              (JSC::arrayProtoFuncEvery):
              (JSC::arrayProtoFuncForEach):
              (JSC::arrayProtoFuncSome):
              (JSC::arrayProtoFuncReduce):
              (JSC::arrayProtoFuncReduceRight):
              (JSC::arrayProtoFuncIndexOf):
              (JSC::arrayProtoFuncLastIndexOf):
              * runtime/BooleanConstructor.cpp:
              (JSC::callBooleanConstructor):
              (JSC::constructBooleanFromImmediateBoolean):
              * runtime/BooleanConstructor.h:
              * runtime/BooleanObject.h:
              (JSC::asBooleanObject):
              * runtime/BooleanPrototype.cpp:
              (JSC::booleanProtoFuncToString):
              (JSC::booleanProtoFuncValueOf):
              * runtime/CallData.cpp:
              (JSC::call):
              * runtime/CallData.h:
              * runtime/Collector.cpp:
              (JSC::Heap::protect):
              (JSC::Heap::unprotect):
              (JSC::Heap::heap):
              * runtime/Collector.h:
              * runtime/Completion.cpp:
              (JSC::evaluate):
              * runtime/Completion.h:
              (JSC::Completion::Completion):
              (JSC::Completion::value):
              (JSC::Completion::setValue):
              * runtime/ConstructData.cpp:
              (JSC::construct):
              * runtime/ConstructData.h:
              * runtime/DateConstructor.cpp:
              (JSC::constructDate):
              (JSC::callDate):
              (JSC::dateParse):
              (JSC::dateNow):
              (JSC::dateUTC):
              * runtime/DateInstance.h:
              (JSC::asDateInstance):
              * runtime/DatePrototype.cpp:
              (JSC::dateProtoFuncToString):
              (JSC::dateProtoFuncToUTCString):
              (JSC::dateProtoFuncToDateString):
              (JSC::dateProtoFuncToTimeString):
              (JSC::dateProtoFuncToLocaleString):
              (JSC::dateProtoFuncToLocaleDateString):
              (JSC::dateProtoFuncToLocaleTimeString):
              (JSC::dateProtoFuncGetTime):
              (JSC::dateProtoFuncGetFullYear):
              (JSC::dateProtoFuncGetUTCFullYear):
              (JSC::dateProtoFuncToGMTString):
              (JSC::dateProtoFuncGetMonth):
              (JSC::dateProtoFuncGetUTCMonth):
              (JSC::dateProtoFuncGetDate):
              (JSC::dateProtoFuncGetUTCDate):
              (JSC::dateProtoFuncGetDay):
              (JSC::dateProtoFuncGetUTCDay):
              (JSC::dateProtoFuncGetHours):
              (JSC::dateProtoFuncGetUTCHours):
              (JSC::dateProtoFuncGetMinutes):
              (JSC::dateProtoFuncGetUTCMinutes):
              (JSC::dateProtoFuncGetSeconds):
              (JSC::dateProtoFuncGetUTCSeconds):
              (JSC::dateProtoFuncGetMilliSeconds):
              (JSC::dateProtoFuncGetUTCMilliseconds):
              (JSC::dateProtoFuncGetTimezoneOffset):
              (JSC::dateProtoFuncSetTime):
              (JSC::setNewValueFromTimeArgs):
              (JSC::setNewValueFromDateArgs):
              (JSC::dateProtoFuncSetMilliSeconds):
              (JSC::dateProtoFuncSetUTCMilliseconds):
              (JSC::dateProtoFuncSetSeconds):
              (JSC::dateProtoFuncSetUTCSeconds):
              (JSC::dateProtoFuncSetMinutes):
              (JSC::dateProtoFuncSetUTCMinutes):
              (JSC::dateProtoFuncSetHours):
              (JSC::dateProtoFuncSetUTCHours):
              (JSC::dateProtoFuncSetDate):
              (JSC::dateProtoFuncSetUTCDate):
              (JSC::dateProtoFuncSetMonth):
              (JSC::dateProtoFuncSetUTCMonth):
              (JSC::dateProtoFuncSetFullYear):
              (JSC::dateProtoFuncSetUTCFullYear):
              (JSC::dateProtoFuncSetYear):
              (JSC::dateProtoFuncGetYear):
              * runtime/DatePrototype.h:
              (JSC::DatePrototype::createStructure):
              * runtime/ErrorConstructor.cpp:
              (JSC::callErrorConstructor):
              * runtime/ErrorPrototype.cpp:
              (JSC::errorProtoFuncToString):
              * runtime/ExceptionHelpers.cpp:
              (JSC::createInterruptedExecutionException):
              (JSC::createError):
              (JSC::createStackOverflowError):
              (JSC::createUndefinedVariableError):
              (JSC::createErrorMessage):
              (JSC::createInvalidParamError):
              (JSC::createNotAConstructorError):
              (JSC::createNotAFunctionError):
              * runtime/ExceptionHelpers.h:
              * runtime/FunctionConstructor.cpp:
              (JSC::callFunctionConstructor):
              * runtime/FunctionPrototype.cpp:
              (JSC::callFunctionPrototype):
              (JSC::functionProtoFuncToString):
              (JSC::functionProtoFuncApply):
              (JSC::functionProtoFuncCall):
              * runtime/FunctionPrototype.h:
              (JSC::FunctionPrototype::createStructure):
              * runtime/GetterSetter.cpp:
              (JSC::GetterSetter::toPrimitive):
              (JSC::GetterSetter::getPrimitiveNumber):
              * runtime/GetterSetter.h:
              (JSC::asGetterSetter):
              * runtime/InternalFunction.cpp:
              (JSC::InternalFunction::displayName):
              * runtime/InternalFunction.h:
              (JSC::InternalFunction::createStructure):
              (JSC::asInternalFunction):
              * runtime/JSActivation.cpp:
              (JSC::JSActivation::getOwnPropertySlot):
              (JSC::JSActivation::put):
              (JSC::JSActivation::putWithAttributes):
              (JSC::JSActivation::argumentsGetter):
              * runtime/JSActivation.h:
              (JSC::JSActivation::createStructure):
              (JSC::asActivation):
              * runtime/JSArray.cpp:
              (JSC::storageSize):
              (JSC::JSArray::JSArray):
              (JSC::JSArray::getOwnPropertySlot):
              (JSC::JSArray::put):
              (JSC::JSArray::putSlowCase):
              (JSC::JSArray::deleteProperty):
              (JSC::JSArray::setLength):
              (JSC::JSArray::pop):
              (JSC::JSArray::push):
              (JSC::JSArray::mark):
              (JSC::compareNumbersForQSort):
              (JSC::JSArray::sortNumeric):
              (JSC::JSArray::sort):
              (JSC::JSArray::compactForSorting):
              (JSC::JSArray::checkConsistency):
              (JSC::constructArray):
              * runtime/JSArray.h:
              (JSC::JSArray::getIndex):
              (JSC::JSArray::setIndex):
              (JSC::JSArray::createStructure):
              (JSC::asArray):
              (JSC::isJSArray):
              * runtime/JSByteArray.cpp:
              (JSC::JSByteArray::createStructure):
              (JSC::JSByteArray::put):
              * runtime/JSByteArray.h:
              (JSC::JSByteArray::getIndex):
              (JSC::JSByteArray::setIndex):
              (JSC::asByteArray):
              (JSC::isJSByteArray):
              * runtime/JSCell.cpp:
              (JSC::JSCell::put):
              (JSC::JSCell::getJSNumber):
              * runtime/JSCell.h:
              (JSC::asCell):
              (JSC::JSValue::asCell):
              (JSC::JSValue::isString):
              (JSC::JSValue::isGetterSetter):
              (JSC::JSValue::isObject):
              (JSC::JSValue::getString):
              (JSC::JSValue::getObject):
              (JSC::JSValue::getCallData):
              (JSC::JSValue::getConstructData):
              (JSC::JSValue::getUInt32):
              (JSC::JSValue::getTruncatedInt32):
              (JSC::JSValue::getTruncatedUInt32):
              (JSC::JSValue::mark):
              (JSC::JSValue::marked):
              (JSC::JSValue::toPrimitive):
              (JSC::JSValue::getPrimitiveNumber):
              (JSC::JSValue::toBoolean):
              (JSC::JSValue::toNumber):
              (JSC::JSValue::toString):
              (JSC::JSValue::toObject):
              (JSC::JSValue::toThisObject):
              (JSC::JSValue::needsThisConversion):
              (JSC::JSValue::toThisString):
              (JSC::JSValue::getJSNumber):
              * runtime/JSFunction.cpp:
              (JSC::JSFunction::call):
              (JSC::JSFunction::argumentsGetter):
              (JSC::JSFunction::callerGetter):
              (JSC::JSFunction::lengthGetter):
              (JSC::JSFunction::getOwnPropertySlot):
              (JSC::JSFunction::put):
              (JSC::JSFunction::construct):
              * runtime/JSFunction.h:
              (JSC::JSFunction::createStructure):
              (JSC::asFunction):
              * runtime/JSGlobalData.h:
              * runtime/JSGlobalObject.cpp:
              (JSC::markIfNeeded):
              (JSC::JSGlobalObject::put):
              (JSC::JSGlobalObject::putWithAttributes):
              (JSC::JSGlobalObject::reset):
              (JSC::JSGlobalObject::resetPrototype):
              * runtime/JSGlobalObject.h:
              (JSC::JSGlobalObject::createStructure):
              (JSC::JSGlobalObject::GlobalPropertyInfo::GlobalPropertyInfo):
              (JSC::asGlobalObject):
              (JSC::Structure::prototypeForLookup):
              (JSC::Structure::prototypeChain):
              (JSC::Structure::isValid):
              * runtime/JSGlobalObjectFunctions.cpp:
              (JSC::encode):
              (JSC::decode):
              (JSC::globalFuncEval):
              (JSC::globalFuncParseInt):
              (JSC::globalFuncParseFloat):
              (JSC::globalFuncIsNaN):
              (JSC::globalFuncIsFinite):
              (JSC::globalFuncDecodeURI):
              (JSC::globalFuncDecodeURIComponent):
              (JSC::globalFuncEncodeURI):
              (JSC::globalFuncEncodeURIComponent):
              (JSC::globalFuncEscape):
              (JSC::globalFuncUnescape):
              (JSC::globalFuncJSCPrint):
              * runtime/JSGlobalObjectFunctions.h:
              * runtime/JSImmediate.cpp:
              (JSC::JSImmediate::toThisObject):
              (JSC::JSImmediate::toObject):
              (JSC::JSImmediate::prototype):
              (JSC::JSImmediate::toString):
              * runtime/JSImmediate.h:
              (JSC::JSImmediate::isImmediate):
              (JSC::JSImmediate::isNumber):
              (JSC::JSImmediate::isIntegerNumber):
              (JSC::JSImmediate::isDoubleNumber):
              (JSC::JSImmediate::isPositiveIntegerNumber):
              (JSC::JSImmediate::isBoolean):
              (JSC::JSImmediate::isUndefinedOrNull):
              (JSC::JSImmediate::isEitherImmediate):
              (JSC::JSImmediate::areBothImmediate):
              (JSC::JSImmediate::areBothImmediateIntegerNumbers):
              (JSC::JSImmediate::makeValue):
              (JSC::JSImmediate::makeInt):
              (JSC::JSImmediate::makeDouble):
              (JSC::JSImmediate::makeBool):
              (JSC::JSImmediate::makeUndefined):
              (JSC::JSImmediate::makeNull):
              (JSC::JSImmediate::doubleValue):
              (JSC::JSImmediate::intValue):
              (JSC::JSImmediate::uintValue):
              (JSC::JSImmediate::boolValue):
              (JSC::JSImmediate::rawValue):
              (JSC::JSImmediate::trueImmediate):
              (JSC::JSImmediate::falseImmediate):
              (JSC::JSImmediate::undefinedImmediate):
              (JSC::JSImmediate::nullImmediate):
              (JSC::JSImmediate::zeroImmediate):
              (JSC::JSImmediate::oneImmediate):
              (JSC::JSImmediate::impossibleValue):
              (JSC::JSImmediate::toBoolean):
              (JSC::JSImmediate::getTruncatedUInt32):
              (JSC::JSImmediate::fromNumberOutsideIntegerRange):
              (JSC::JSImmediate::from):
              (JSC::JSImmediate::getTruncatedInt32):
              (JSC::JSImmediate::toDouble):
              (JSC::JSImmediate::getUInt32):
              (JSC::JSValue::JSValue):
              (JSC::JSValue::isUndefinedOrNull):
              (JSC::JSValue::isBoolean):
              (JSC::JSValue::getBoolean):
              (JSC::JSValue::toInt32):
              (JSC::JSValue::toUInt32):
              (JSC::JSValue::isCell):
              (JSC::JSValue::isInt32Fast):
              (JSC::JSValue::getInt32Fast):
              (JSC::JSValue::isUInt32Fast):
              (JSC::JSValue::getUInt32Fast):
              (JSC::JSValue::makeInt32Fast):
              (JSC::JSValue::areBothInt32Fast):
              (JSC::JSFastMath::canDoFastBitwiseOperations):
              (JSC::JSFastMath::equal):
              (JSC::JSFastMath::notEqual):
              (JSC::JSFastMath::andImmediateNumbers):
              (JSC::JSFastMath::xorImmediateNumbers):
              (JSC::JSFastMath::orImmediateNumbers):
              (JSC::JSFastMath::canDoFastRshift):
              (JSC::JSFastMath::canDoFastUrshift):
              (JSC::JSFastMath::rightShiftImmediateNumbers):
              (JSC::JSFastMath::canDoFastAdditiveOperations):
              (JSC::JSFastMath::addImmediateNumbers):
              (JSC::JSFastMath::subImmediateNumbers):
              (JSC::JSFastMath::incImmediateNumber):
              (JSC::JSFastMath::decImmediateNumber):
              * runtime/JSNotAnObject.cpp:
              (JSC::JSNotAnObject::toPrimitive):
              (JSC::JSNotAnObject::getPrimitiveNumber):
              (JSC::JSNotAnObject::put):
              * runtime/JSNotAnObject.h:
              (JSC::JSNotAnObject::createStructure):
              * runtime/JSNumberCell.cpp:
              (JSC::JSNumberCell::toPrimitive):
              (JSC::JSNumberCell::getPrimitiveNumber):
              (JSC::JSNumberCell::getJSNumber):
              (JSC::jsNumberCell):
              * runtime/JSNumberCell.h:
              (JSC::JSNumberCell::createStructure):
              (JSC::isNumberCell):
              (JSC::asNumberCell):
              (JSC::jsNumber):
              (JSC::JSValue::isDoubleNumber):
              (JSC::JSValue::getDoubleNumber):
              (JSC::JSValue::isNumber):
              (JSC::JSValue::uncheckedGetNumber):
              (JSC::jsNaN):
              (JSC::JSValue::toJSNumber):
              (JSC::JSValue::getNumber):
              (JSC::JSValue::numberToInt32):
              (JSC::JSValue::numberToUInt32):
              * runtime/JSObject.cpp:
              (JSC::JSObject::mark):
              (JSC::JSObject::put):
              (JSC::JSObject::putWithAttributes):
              (JSC::callDefaultValueFunction):
              (JSC::JSObject::getPrimitiveNumber):
              (JSC::JSObject::defaultValue):
              (JSC::JSObject::defineGetter):
              (JSC::JSObject::defineSetter):
              (JSC::JSObject::lookupGetter):
              (JSC::JSObject::lookupSetter):
              (JSC::JSObject::hasInstance):
              (JSC::JSObject::toNumber):
              (JSC::JSObject::toString):
              (JSC::JSObject::fillGetterPropertySlot):
              * runtime/JSObject.h:
              (JSC::JSObject::getDirect):
              (JSC::JSObject::getDirectLocation):
              (JSC::JSObject::offsetForLocation):
              (JSC::JSObject::locationForOffset):
              (JSC::JSObject::getDirectOffset):
              (JSC::JSObject::putDirectOffset):
              (JSC::JSObject::createStructure):
              (JSC::asObject):
              (JSC::JSObject::prototype):
              (JSC::JSObject::setPrototype):
              (JSC::JSValue::isObject):
              (JSC::JSObject::inlineGetOwnPropertySlot):
              (JSC::JSObject::getOwnPropertySlotForWrite):
              (JSC::JSObject::getPropertySlot):
              (JSC::JSObject::get):
              (JSC::JSObject::putDirect):
              (JSC::JSObject::putDirectWithoutTransition):
              (JSC::JSObject::toPrimitive):
              (JSC::JSValue::get):
              (JSC::JSValue::put):
              (JSC::JSObject::allocatePropertyStorageInline):
              * runtime/JSPropertyNameIterator.cpp:
              (JSC::JSPropertyNameIterator::toPrimitive):
              (JSC::JSPropertyNameIterator::getPrimitiveNumber):
              * runtime/JSPropertyNameIterator.h:
              (JSC::JSPropertyNameIterator::create):
              (JSC::JSPropertyNameIterator::next):
              * runtime/JSStaticScopeObject.cpp:
              (JSC::JSStaticScopeObject::put):
              (JSC::JSStaticScopeObject::putWithAttributes):
              * runtime/JSStaticScopeObject.h:
              (JSC::JSStaticScopeObject::JSStaticScopeObject):
              (JSC::JSStaticScopeObject::createStructure):
              * runtime/JSString.cpp:
              (JSC::JSString::toPrimitive):
              (JSC::JSString::getPrimitiveNumber):
              (JSC::JSString::getOwnPropertySlot):
              * runtime/JSString.h:
              (JSC::JSString::createStructure):
              (JSC::asString):
              (JSC::isJSString):
              (JSC::JSValue::toThisJSString):
              * runtime/JSValue.cpp:
              (JSC::JSValue::toInteger):
              (JSC::JSValue::toIntegerPreserveNaN):
              * runtime/JSValue.h:
              (JSC::JSValue::makeImmediate):
              (JSC::JSValue::asValue):
              (JSC::noValue):
              (JSC::jsImpossibleValue):
              (JSC::jsNull):
              (JSC::jsUndefined):
              (JSC::jsBoolean):
              (JSC::operator==):
              (JSC::operator!=):
              (JSC::JSValue::encode):
              (JSC::JSValue::decode):
              (JSC::JSValue::JSValue):
              (JSC::JSValue::operator bool):
              (JSC::JSValue::operator==):
              (JSC::JSValue::operator!=):
              (JSC::JSValue::isUndefined):
              (JSC::JSValue::isNull):
              * runtime/JSVariableObject.h:
              (JSC::JSVariableObject::symbolTablePut):
              (JSC::JSVariableObject::symbolTablePutWithAttributes):
              * runtime/JSWrapperObject.h:
              (JSC::JSWrapperObject::internalValue):
              (JSC::JSWrapperObject::setInternalValue):
              * runtime/Lookup.cpp:
              (JSC::setUpStaticFunctionSlot):
              * runtime/Lookup.h:
              (JSC::lookupPut):
              * runtime/MathObject.cpp:
              (JSC::mathProtoFuncAbs):
              (JSC::mathProtoFuncACos):
              (JSC::mathProtoFuncASin):
              (JSC::mathProtoFuncATan):
              (JSC::mathProtoFuncATan2):
              (JSC::mathProtoFuncCeil):
              (JSC::mathProtoFuncCos):
              (JSC::mathProtoFuncExp):
              (JSC::mathProtoFuncFloor):
              (JSC::mathProtoFuncLog):
              (JSC::mathProtoFuncMax):
              (JSC::mathProtoFuncMin):
              (JSC::mathProtoFuncPow):
              (JSC::mathProtoFuncRandom):
              (JSC::mathProtoFuncRound):
              (JSC::mathProtoFuncSin):
              (JSC::mathProtoFuncSqrt):
              (JSC::mathProtoFuncTan):
              * runtime/MathObject.h:
              (JSC::MathObject::createStructure):
              * runtime/NativeErrorConstructor.cpp:
              (JSC::callNativeErrorConstructor):
              * runtime/NumberConstructor.cpp:
              (JSC::numberConstructorNaNValue):
              (JSC::numberConstructorNegInfinity):
              (JSC::numberConstructorPosInfinity):
              (JSC::numberConstructorMaxValue):
              (JSC::numberConstructorMinValue):
              (JSC::callNumberConstructor):
              * runtime/NumberConstructor.h:
              (JSC::NumberConstructor::createStructure):
              * runtime/NumberObject.cpp:
              (JSC::NumberObject::getJSNumber):
              (JSC::constructNumber):
              * runtime/NumberObject.h:
              * runtime/NumberPrototype.cpp:
              (JSC::numberProtoFuncToString):
              (JSC::numberProtoFuncToLocaleString):
              (JSC::numberProtoFuncValueOf):
              (JSC::numberProtoFuncToFixed):
              (JSC::numberProtoFuncToExponential):
              (JSC::numberProtoFuncToPrecision):
              * runtime/ObjectConstructor.cpp:
              (JSC::constructObject):
              (JSC::callObjectConstructor):
              * runtime/ObjectPrototype.cpp:
              (JSC::objectProtoFuncValueOf):
              (JSC::objectProtoFuncHasOwnProperty):
              (JSC::objectProtoFuncIsPrototypeOf):
              (JSC::objectProtoFuncDefineGetter):
              (JSC::objectProtoFuncDefineSetter):
              (JSC::objectProtoFuncLookupGetter):
              (JSC::objectProtoFuncLookupSetter):
              (JSC::objectProtoFuncPropertyIsEnumerable):
              (JSC::objectProtoFuncToLocaleString):
              (JSC::objectProtoFuncToString):
              * runtime/ObjectPrototype.h:
              * runtime/Operations.cpp:
              (JSC::JSValue::equalSlowCase):
              (JSC::JSValue::strictEqualSlowCase):
              (JSC::throwOutOfMemoryError):
              (JSC::jsAddSlowCase):
              (JSC::jsTypeStringForValue):
              (JSC::jsIsObjectType):
              (JSC::jsIsFunctionType):
              * runtime/Operations.h:
              (JSC::JSValue::equal):
              (JSC::JSValue::equalSlowCaseInline):
              (JSC::JSValue::strictEqual):
              (JSC::JSValue::strictEqualSlowCaseInline):
              (JSC::jsLess):
              (JSC::jsLessEq):
              (JSC::jsAdd):
              (JSC::countPrototypeChainEntriesAndCheckForProxies):
              (JSC::resolveBase):
              * runtime/PropertySlot.cpp:
              (JSC::PropertySlot::functionGetter):
              * runtime/PropertySlot.h:
              (JSC::PropertySlot::PropertySlot):
              (JSC::PropertySlot::getValue):
              (JSC::PropertySlot::putValue):
              (JSC::PropertySlot::setValueSlot):
              (JSC::PropertySlot::setValue):
              (JSC::PropertySlot::setCustom):
              (JSC::PropertySlot::setCustomIndex):
              (JSC::PropertySlot::slotBase):
              (JSC::PropertySlot::setBase):
              (JSC::PropertySlot::):
              * runtime/Protect.h:
              (JSC::gcProtect):
              (JSC::gcUnprotect):
              (JSC::ProtectedPtr::operator JSValue):
              (JSC::ProtectedJSValue::ProtectedJSValue):
              (JSC::ProtectedJSValue::get):
              (JSC::ProtectedJSValue::operator JSValue):
              (JSC::ProtectedJSValue::operator->):
              (JSC::ProtectedJSValue::~ProtectedJSValue):
              (JSC::ProtectedJSValue::operator=):
              (JSC::operator==):
              (JSC::operator!=):
              * runtime/RegExpConstructor.cpp:
              (JSC::RegExpConstructor::getBackref):
              (JSC::RegExpConstructor::getLastParen):
              (JSC::RegExpConstructor::getLeftContext):
              (JSC::RegExpConstructor::getRightContext):
              (JSC::regExpConstructorDollar1):
              (JSC::regExpConstructorDollar2):
              (JSC::regExpConstructorDollar3):
              (JSC::regExpConstructorDollar4):
              (JSC::regExpConstructorDollar5):
              (JSC::regExpConstructorDollar6):
              (JSC::regExpConstructorDollar7):
              (JSC::regExpConstructorDollar8):
              (JSC::regExpConstructorDollar9):
              (JSC::regExpConstructorInput):
              (JSC::regExpConstructorMultiline):
              (JSC::regExpConstructorLastMatch):
              (JSC::regExpConstructorLastParen):
              (JSC::regExpConstructorLeftContext):
              (JSC::regExpConstructorRightContext):
              (JSC::RegExpConstructor::put):
              (JSC::setRegExpConstructorInput):
              (JSC::setRegExpConstructorMultiline):
              (JSC::constructRegExp):
              (JSC::callRegExpConstructor):
              * runtime/RegExpConstructor.h:
              (JSC::RegExpConstructor::createStructure):
              (JSC::asRegExpConstructor):
              * runtime/RegExpMatchesArray.h:
              (JSC::RegExpMatchesArray::put):
              * runtime/RegExpObject.cpp:
              (JSC::regExpObjectGlobal):
              (JSC::regExpObjectIgnoreCase):
              (JSC::regExpObjectMultiline):
              (JSC::regExpObjectSource):
              (JSC::regExpObjectLastIndex):
              (JSC::RegExpObject::put):
              (JSC::setRegExpObjectLastIndex):
              (JSC::RegExpObject::test):
              (JSC::RegExpObject::exec):
              (JSC::callRegExpObject):
              * runtime/RegExpObject.h:
              (JSC::RegExpObject::createStructure):
              (JSC::asRegExpObject):
              * runtime/RegExpPrototype.cpp:
              (JSC::regExpProtoFuncTest):
              (JSC::regExpProtoFuncExec):
              (JSC::regExpProtoFuncCompile):
              (JSC::regExpProtoFuncToString):
              * runtime/StringConstructor.cpp:
              (JSC::stringFromCharCodeSlowCase):
              (JSC::stringFromCharCode):
              (JSC::callStringConstructor):
              * runtime/StringObject.cpp:
              (JSC::StringObject::put):
              * runtime/StringObject.h:
              (JSC::StringObject::createStructure):
              (JSC::asStringObject):
              * runtime/StringObjectThatMasqueradesAsUndefined.h:
              (JSC::StringObjectThatMasqueradesAsUndefined::createStructure):
              * runtime/StringPrototype.cpp:
              (JSC::stringProtoFuncReplace):
              (JSC::stringProtoFuncToString):
              (JSC::stringProtoFuncCharAt):
              (JSC::stringProtoFuncCharCodeAt):
              (JSC::stringProtoFuncConcat):
              (JSC::stringProtoFuncIndexOf):
              (JSC::stringProtoFuncLastIndexOf):
              (JSC::stringProtoFuncMatch):
              (JSC::stringProtoFuncSearch):
              (JSC::stringProtoFuncSlice):
              (JSC::stringProtoFuncSplit):
              (JSC::stringProtoFuncSubstr):
              (JSC::stringProtoFuncSubstring):
              (JSC::stringProtoFuncToLowerCase):
              (JSC::stringProtoFuncToUpperCase):
              (JSC::stringProtoFuncLocaleCompare):
              (JSC::stringProtoFuncBig):
              (JSC::stringProtoFuncSmall):
              (JSC::stringProtoFuncBlink):
              (JSC::stringProtoFuncBold):
              (JSC::stringProtoFuncFixed):
              (JSC::stringProtoFuncItalics):
              (JSC::stringProtoFuncStrike):
              (JSC::stringProtoFuncSub):
              (JSC::stringProtoFuncSup):
              (JSC::stringProtoFuncFontcolor):
              (JSC::stringProtoFuncFontsize):
              (JSC::stringProtoFuncAnchor):
              (JSC::stringProtoFuncLink):
              * runtime/Structure.cpp:
              (JSC::Structure::Structure):
              (JSC::Structure::changePrototypeTransition):
              * runtime/Structure.h:
              (JSC::Structure::create):
              (JSC::Structure::setPrototypeWithoutTransition):
              (JSC::Structure::storedPrototype):
      
      JavaScriptGlue:
      
      2009-05-01  Geoffrey Garen  <ggaren@apple.com>
      
              Rubber Stamped by Sam Weinig.
              
              Renamed JSValuePtr => JSValue.
      
              * JSObject.cpp:
              (nativeCallFunction):
              * JSUtils.cpp:
              (KJSValueToJSObject):
              (JSObjectKJSValue):
              (KJSValueToCFTypeInternal):
              (KJSValueToCFType):
              * JSUtils.h:
              * JSValueWrapper.cpp:
              (JSValueWrapper::JSValueWrapper):
              (JSValueWrapper::GetValue):
              (JSValueWrapper::JSObjectCopyProperty):
              (JSValueWrapper::JSObjectSetProperty):
              (JSValueWrapper::JSObjectCallFunction):
              * JSValueWrapper.h:
              * UserObjectImp.cpp:
              (UserObjectImp::callAsFunction):
              (UserObjectImp::userObjectGetter):
              (UserObjectImp::getOwnPropertySlot):
              (UserObjectImp::put):
              (UserObjectImp::toPrimitive):
              * UserObjectImp.h:
              (UserObjectImp::createStructure):
      
      WebCore:
      
      2009-05-01  Geoffrey Garen  <ggaren@apple.com>
      
              Rubber Stamped by Sam Weinig.
              
              Renamed JSValuePtr => JSValue.
      
              * bindings/js/JSAttrCustom.cpp:
              (WebCore::JSAttr::setValue):
              * bindings/js/JSCDATASectionCustom.cpp:
              (WebCore::toJSNewlyCreated):
              * bindings/js/JSCSSRuleCustom.cpp:
              (WebCore::toJS):
              * bindings/js/JSCSSStyleDeclarationCustom.cpp:
              (WebCore::JSCSSStyleDeclaration::nameGetter):
              (WebCore::JSCSSStyleDeclaration::customPut):
              * bindings/js/JSCSSValueCustom.cpp:
              (WebCore::toJS):
              * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
              (WebCore::toJS):
              (WebCore::toHTMLCanvasStyle):
              (WebCore::JSCanvasRenderingContext2D::strokeStyle):
              (WebCore::JSCanvasRenderingContext2D::setStrokeStyle):
              (WebCore::JSCanvasRenderingContext2D::fillStyle):
              (WebCore::JSCanvasRenderingContext2D::setFillStyle):
              (WebCore::JSCanvasRenderingContext2D::setFillColor):
              (WebCore::JSCanvasRenderingContext2D::setStrokeColor):
              (WebCore::JSCanvasRenderingContext2D::strokeRect):
              (WebCore::JSCanvasRenderingContext2D::drawImage):
              (WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
              (WebCore::JSCanvasRenderingContext2D::setShadow):
              (WebCore::JSCanvasRenderingContext2D::createPattern):
              (WebCore::JSCanvasRenderingContext2D::putImageData):
              (WebCore::JSCanvasRenderingContext2D::fillText):
              (WebCore::JSCanvasRenderingContext2D::strokeText):
              * bindings/js/JSClipboardCustom.cpp:
              (WebCore::JSClipboard::types):
              (WebCore::JSClipboard::clearData):
              (WebCore::JSClipboard::getData):
              (WebCore::JSClipboard::setData):
              (WebCore::JSClipboard::setDragImage):
              * bindings/js/JSConsoleCustom.cpp:
              (WebCore::JSConsole::profiles):
              * bindings/js/JSCoordinatesCustom.cpp:
              (WebCore::JSCoordinates::altitude):
              (WebCore::JSCoordinates::altitudeAccuracy):
              (WebCore::JSCoordinates::heading):
              (WebCore::JSCoordinates::speed):
              * bindings/js/JSCustomPositionCallback.cpp:
              (WebCore::JSCustomPositionCallback::handleEvent):
              * bindings/js/JSCustomPositionErrorCallback.cpp:
              (WebCore::JSCustomPositionErrorCallback::handleEvent):
              * bindings/js/JSCustomSQLStatementCallback.cpp:
              (WebCore::JSCustomSQLStatementCallback::handleEvent):
              * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
              (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
              * bindings/js/JSCustomSQLTransactionCallback.cpp:
              (WebCore::JSCustomSQLTransactionCallback::handleEvent):
              * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
              (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
              * bindings/js/JSCustomVoidCallback.cpp:
              (WebCore::JSCustomVoidCallback::handleEvent):
              (WebCore::toVoidCallback):
              * bindings/js/JSCustomVoidCallback.h:
              * bindings/js/JSCustomXPathNSResolver.cpp:
              (WebCore::JSCustomXPathNSResolver::create):
              (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
              * bindings/js/JSCustomXPathNSResolver.h:
              * bindings/js/JSDOMApplicationCacheCustom.cpp:
              (WebCore::JSDOMApplicationCache::hasItem):
              (WebCore::JSDOMApplicationCache::add):
              (WebCore::JSDOMApplicationCache::remove):
              (WebCore::JSDOMApplicationCache::addEventListener):
              (WebCore::JSDOMApplicationCache::removeEventListener):
              * bindings/js/JSDOMBinding.cpp:
              (WebCore::jsStringOrNull):
              (WebCore::jsOwnedStringOrNull):
              (WebCore::jsStringOrUndefined):
              (WebCore::jsStringOrFalse):
              (WebCore::valueToStringWithNullCheck):
              (WebCore::valueToStringWithUndefinedOrNullCheck):
              (WebCore::reportException):
              (WebCore::reportCurrentException):
              (WebCore::setDOMException):
              (WebCore::objectToStringFunctionGetter):
              * bindings/js/JSDOMBinding.h:
              (WebCore::getDOMObjectWrapper):
              (WebCore::getDOMNodeWrapper):
              (WebCore::toJS):
              * bindings/js/JSDOMGlobalObject.cpp:
              (WebCore::JSDOMGlobalObject::findJSEventListener):
              (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener):
              (WebCore::JSDOMGlobalObject::createJSAttributeEventListener):
              * bindings/js/JSDOMGlobalObject.h:
              * bindings/js/JSDOMStringListCustom.cpp:
              (WebCore::JSDOMStringList::getByIndex):
              (WebCore::JSDOMStringList::item):
              * bindings/js/JSDOMWindowBase.cpp:
              (WebCore::JSDOMWindowBase::childFrameGetter):
              (WebCore::JSDOMWindowBase::indexGetter):
              (WebCore::JSDOMWindowBase::namedItemGetter):
              (WebCore::JSDOMWindowBase::getOwnPropertySlot):
              (WebCore::JSDOMWindowBase::put):
              (WebCore::JSDOMWindowBase::setReturnValueSlot):
              (WebCore::toJS):
              (WebCore::toJSDOMWindow):
              * bindings/js/JSDOMWindowBase.h:
              * bindings/js/JSDOMWindowCustom.cpp:
              (WebCore::JSDOMWindow::lookupGetter):
              (WebCore::JSDOMWindow::lookupSetter):
              (WebCore::JSDOMWindow::history):
              (WebCore::JSDOMWindow::location):
              (WebCore::JSDOMWindow::setLocation):
              (WebCore::JSDOMWindow::crypto):
              (WebCore::JSDOMWindow::event):
              (WebCore::JSDOMWindow::image):
              (WebCore::JSDOMWindow::option):
              (WebCore::JSDOMWindow::audio):
              (WebCore::JSDOMWindow::webKitPoint):
              (WebCore::JSDOMWindow::webKitCSSMatrix):
              (WebCore::JSDOMWindow::xmlHttpRequest):
              (WebCore::JSDOMWindow::xsltProcessor):
              (WebCore::JSDOMWindow::messageChannel):
              (WebCore::JSDOMWindow::worker):
              (WebCore::createWindow):
              (WebCore::JSDOMWindow::open):
              (WebCore::JSDOMWindow::showModalDialog):
              (WebCore::JSDOMWindow::postMessage):
              (WebCore::JSDOMWindow::setTimeout):
              (WebCore::JSDOMWindow::setInterval):
              (WebCore::JSDOMWindow::atob):
              (WebCore::JSDOMWindow::btoa):
              (WebCore::JSDOMWindow::addEventListener):
              (WebCore::JSDOMWindow::removeEventListener):
              (WebCore::toDOMWindow):
              * bindings/js/JSDOMWindowCustom.h:
              (WebCore::nonCachingStaticFunctionGetter):
              (WebCore::JSDOMWindow::customPut):
              * bindings/js/JSDOMWindowShell.cpp:
              (WebCore::JSDOMWindowShell::put):
              (WebCore::JSDOMWindowShell::putWithAttributes):
              (WebCore::JSDOMWindowShell::lookupGetter):
              (WebCore::JSDOMWindowShell::lookupSetter):
              (WebCore::toJS):
              * bindings/js/JSDOMWindowShell.h:
              (WebCore::JSDOMWindowShell::createStructure):
              * bindings/js/JSDatabaseCustom.cpp:
              (WebCore::JSDatabase::changeVersion):
              (WebCore::JSDatabase::transaction):
              * bindings/js/JSDocumentCustom.cpp:
              (WebCore::JSDocument::location):
              (WebCore::JSDocument::setLocation):
              (WebCore::toJS):
              * bindings/js/JSElementCustom.cpp:
              (WebCore::JSElement::setAttribute):
              (WebCore::JSElement::setAttributeNode):
              (WebCore::JSElement::setAttributeNS):
              (WebCore::JSElement::setAttributeNodeNS):
              (WebCore::toJSNewlyCreated):
              * bindings/js/JSEventCustom.cpp:
              (WebCore::JSEvent::clipboardData):
              (WebCore::toJS):
              * bindings/js/JSEventListener.cpp:
              (WebCore::JSEventListener::handleEvent):
              * bindings/js/JSEventTarget.cpp:
              (WebCore::toJS):
              (WebCore::toEventTarget):
              * bindings/js/JSEventTarget.h:
              * bindings/js/JSEventTargetBase.h:
              * bindings/js/JSGeolocationCustom.cpp:
              (WebCore::createPositionOptions):
              (WebCore::JSGeolocation::getCurrentPosition):
              (WebCore::JSGeolocation::watchPosition):
              * bindings/js/JSHTMLAllCollection.h:
              (WebCore::JSHTMLAllCollection::createStructure):
              * bindings/js/JSHTMLAppletElementCustom.cpp:
              (WebCore::JSHTMLAppletElement::customPut):
              (WebCore::JSHTMLAppletElement::nameGetter):
              * bindings/js/JSHTMLCollectionCustom.cpp:
              (WebCore::getNamedItems):
              (WebCore::callHTMLCollection):
              (WebCore::JSHTMLCollection::nameGetter):
              (WebCore::JSHTMLCollection::item):
              (WebCore::JSHTMLCollection::namedItem):
              (WebCore::toJS):
              * bindings/js/JSHTMLDocumentCustom.cpp:
              (WebCore::JSHTMLDocument::nameGetter):
              (WebCore::JSHTMLDocument::all):
              (WebCore::JSHTMLDocument::setAll):
              (WebCore::JSHTMLDocument::open):
              (WebCore::JSHTMLDocument::write):
              (WebCore::JSHTMLDocument::writeln):
              * bindings/js/JSHTMLEmbedElementCustom.cpp:
              (WebCore::JSHTMLEmbedElement::customPut):
              (WebCore::JSHTMLEmbedElement::nameGetter):
              * bindings/js/JSHTMLFormElementCustom.cpp:
              (WebCore::JSHTMLFormElement::nameGetter):
              (WebCore::JSHTMLFormElement::submit):
              * bindings/js/JSHTMLFrameElementCustom.cpp:
              (WebCore::JSHTMLFrameElement::setSrc):
              (WebCore::JSHTMLFrameElement::setLocation):
              * bindings/js/JSHTMLFrameSetElementCustom.cpp:
              (WebCore::JSHTMLFrameSetElement::nameGetter):
              * bindings/js/JSHTMLIFrameElementCustom.cpp:
              (WebCore::JSHTMLIFrameElement::setSrc):
              * bindings/js/JSHTMLInputElementCustom.cpp:
              (WebCore::JSHTMLInputElement::selectionStart):
              (WebCore::JSHTMLInputElement::setSelectionStart):
              (WebCore::JSHTMLInputElement::selectionEnd):
              (WebCore::JSHTMLInputElement::setSelectionEnd):
              (WebCore::JSHTMLInputElement::setSelectionRange):
              * bindings/js/JSHTMLObjectElementCustom.cpp:
              (WebCore::JSHTMLObjectElement::customPut):
              (WebCore::JSHTMLObjectElement::nameGetter):
              * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
              (WebCore::JSHTMLOptionsCollection::length):
              (WebCore::JSHTMLOptionsCollection::setLength):
              (WebCore::JSHTMLOptionsCollection::indexSetter):
              (WebCore::JSHTMLOptionsCollection::add):
              (WebCore::JSHTMLOptionsCollection::remove):
              * bindings/js/JSHTMLSelectElementCustom.cpp:
              (WebCore::JSHTMLSelectElement::remove):
              (WebCore::selectIndexSetter):
              (WebCore::JSHTMLSelectElement::indexSetter):
              * bindings/js/JSHTMLSelectElementCustom.h:
              * bindings/js/JSHistoryCustom.cpp:
              (WebCore::nonCachingStaticBackFunctionGetter):
              (WebCore::nonCachingStaticForwardFunctionGetter):
              (WebCore::nonCachingStaticGoFunctionGetter):
              (WebCore::JSHistory::customPut):
              * bindings/js/JSImageDataCustom.cpp:
              (WebCore::toJS):
              * bindings/js/JSInspectedObjectWrapper.cpp:
              (WebCore::JSInspectedObjectWrapper::wrap):
              (WebCore::JSInspectedObjectWrapper::prepareIncomingValue):
              * bindings/js/JSInspectedObjectWrapper.h:
              (WebCore::JSInspectedObjectWrapper::wrapOutgoingValue):
              * bindings/js/JSInspectorCallbackWrapper.cpp:
              (WebCore::JSInspectorCallbackWrapper::wrap):
              (WebCore::JSInspectorCallbackWrapper::prepareIncomingValue):
              * bindings/js/JSInspectorCallbackWrapper.h:
              (WebCore::JSInspectorCallbackWrapper::wrapOutgoingValue):
              * bindings/js/JSInspectorControllerCustom.cpp:
              (WebCore::JSInspectorController::highlightDOMNode):
              (WebCore::JSInspectorController::addResourceSourceToFrame):
              (WebCore::JSInspectorController::addSourceToFrame):
              (WebCore::JSInspectorController::getResourceDocumentNode):
              (WebCore::JSInspectorController::search):
              (WebCore::JSInspectorController::databaseTableNames):
              (WebCore::JSInspectorController::inspectedWindow):
              (WebCore::JSInspectorController::setting):
              (WebCore::JSInspectorController::setSetting):
              (WebCore::JSInspectorController::wrapCallback):
              (WebCore::JSInspectorController::currentCallFrame):
              (WebCore::JSInspectorController::profiles):
              * bindings/js/JSJavaScriptCallFrameCustom.cpp:
              (WebCore::JSJavaScriptCallFrame::evaluate):
              (WebCore::JSJavaScriptCallFrame::thisObject):
              (WebCore::JSJavaScriptCallFrame::type):
              (WebCore::JSJavaScriptCallFrame::scopeChain):
              * bindings/js/JSLazyEventListener.cpp:
              (WebCore::JSLazyEventListener::parseCode):
              * bindings/js/JSLocationCustom.cpp:
              (WebCore::nonCachingStaticReplaceFunctionGetter):
              (WebCore::nonCachingStaticReloadFunctionGetter):
              (WebCore::nonCachingStaticAssignFunctionGetter):
              (WebCore::JSLocation::customPut):
              (WebCore::JSLocation::setHref):
              (WebCore::JSLocation::setProtocol):
              (WebCore::JSLocation::setHost):
              (WebCore::JSLocation::setHostname):
              (WebCore::JSLocation::setPort):
              (WebCore::JSLocation::setPathname):
              (WebCore::JSLocation::setSearch):
              (WebCore::JSLocation::setHash):
              (WebCore::JSLocation::replace):
              (WebCore::JSLocation::reload):
              (WebCore::JSLocation::assign):
              (WebCore::JSLocation::toString):
              (WebCore::JSLocationPrototype::customPut):
              * bindings/js/JSMessagePortCustom.cpp:
              (WebCore::JSMessagePort::startConversation):
              (WebCore::JSMessagePort::addEventListener):
              (WebCore::JSMessagePort::removeEventListener):
              * bindings/js/JSMimeTypeArrayCustom.cpp:
              (WebCore::JSMimeTypeArray::nameGetter):
              * bindings/js/JSNamedNodeMapCustom.cpp:
              (WebCore::JSNamedNodeMap::nameGetter):
              * bindings/js/JSNamedNodesCollection.cpp:
              (WebCore::JSNamedNodesCollection::lengthGetter):
              (WebCore::JSNamedNodesCollection::indexGetter):
              * bindings/js/JSNamedNodesCollection.h:
              (WebCore::JSNamedNodesCollection::createStructure):
              * bindings/js/JSNavigatorCustom.cpp:
              (WebCore::needsYouTubeQuirk):
              (WebCore::JSNavigator::appVersion):
              * bindings/js/JSNodeCustom.cpp:
              (WebCore::JSNode::insertBefore):
              (WebCore::JSNode::replaceChild):
              (WebCore::JSNode::removeChild):
              (WebCore::JSNode::appendChild):
              (WebCore::JSNode::addEventListener):
              (WebCore::JSNode::removeEventListener):
              (WebCore::createWrapper):
              (WebCore::toJSNewlyCreated):
              (WebCore::toJS):
              * bindings/js/JSNodeFilterCondition.cpp:
              (WebCore::JSNodeFilterCondition::JSNodeFilterCondition):
              (WebCore::JSNodeFilterCondition::acceptNode):
              * bindings/js/JSNodeFilterCondition.h:
              (WebCore::JSNodeFilterCondition::create):
              * bindings/js/JSNodeFilterCustom.cpp:
              (WebCore::JSNodeFilter::acceptNode):
              (WebCore::toNodeFilter):
              * bindings/js/JSNodeIteratorCustom.cpp:
              (WebCore::JSNodeIterator::nextNode):
              (WebCore::JSNodeIterator::previousNode):
              * bindings/js/JSNodeListCustom.cpp:
              (WebCore::callNodeList):
              (WebCore::JSNodeList::nameGetter):
              * bindings/js/JSPluginArrayCustom.cpp:
              (WebCore::JSPluginArray::nameGetter):
              * bindings/js/JSPluginCustom.cpp:
              (WebCore::JSPlugin::nameGetter):
              * bindings/js/JSPluginElementFunctions.cpp:
              (WebCore::runtimeObjectGetter):
              (WebCore::runtimeObjectPropertyGetter):
              (WebCore::runtimeObjectCustomPut):
              (WebCore::callPlugin):
              * bindings/js/JSPluginElementFunctions.h:
              * bindings/js/JSQuarantinedObjectWrapper.cpp:
              (WebCore::JSQuarantinedObjectWrapper::asWrapper):
              (WebCore::JSQuarantinedObjectWrapper::cachedValueGetter):
              (WebCore::JSQuarantinedObjectWrapper::transferExceptionToExecState):
              (WebCore::JSQuarantinedObjectWrapper::getOwnPropertySlot):
              (WebCore::JSQuarantinedObjectWrapper::put):
              (WebCore::JSQuarantinedObjectWrapper::construct):
              (WebCore::JSQuarantinedObjectWrapper::hasInstance):
              (WebCore::JSQuarantinedObjectWrapper::call):
              * bindings/js/JSQuarantinedObjectWrapper.h:
              (WebCore::JSQuarantinedObjectWrapper::createStructure):
              * bindings/js/JSRGBColor.cpp:
              (WebCore::getJSRGBColor):
              (jsRGBColorRed):
              (jsRGBColorGreen):
              (jsRGBColorBlue):
              * bindings/js/JSRGBColor.h:
              (WebCore::JSRGBColor::createStructure):
              * bindings/js/JSSQLResultSetRowListCustom.cpp:
              (WebCore::JSSQLResultSetRowList::item):
              * bindings/js/JSSQLTransactionCustom.cpp:
              (WebCore::JSSQLTransaction::executeSql):
              * bindings/js/JSSVGElementInstanceCustom.cpp:
              (WebCore::JSSVGElementInstance::addEventListener):
              (WebCore::JSSVGElementInstance::removeEventListener):
              (WebCore::toJS):
              * bindings/js/JSSVGLengthCustom.cpp:
              (WebCore::JSSVGLength::value):
              (WebCore::JSSVGLength::convertToSpecifiedUnits):
              * bindings/js/JSSVGMatrixCustom.cpp:
              (WebCore::JSSVGMatrix::inverse):
              (WebCore::JSSVGMatrix::rotateFromVector):
              * bindings/js/JSSVGPathSegCustom.cpp:
              (WebCore::toJS):
              * bindings/js/JSSVGPathSegListCustom.cpp:
              (WebCore::JSSVGPathSegList::clear):
              (WebCore::JSSVGPathSegList::initialize):
              (WebCore::JSSVGPathSegList::getItem):
              (WebCore::JSSVGPathSegList::insertItemBefore):
              (WebCore::JSSVGPathSegList::replaceItem):
              (WebCore::JSSVGPathSegList::removeItem):
              (WebCore::JSSVGPathSegList::appendItem):
              * bindings/js/JSSVGPointListCustom.cpp:
              (WebCore::finishGetter):
              (WebCore::finishSetter):
              (WebCore::finishSetterReadOnlyResult):
              (WebCore::JSSVGPointList::clear):
              (WebCore::JSSVGPointList::initialize):
              (WebCore::JSSVGPointList::getItem):
              (WebCore::JSSVGPointList::insertItemBefore):
              (WebCore::JSSVGPointList::replaceItem):
              (WebCore::JSSVGPointList::removeItem):
              (WebCore::JSSVGPointList::appendItem):
              * bindings/js/JSSVGTransformListCustom.cpp:
              (WebCore::finishGetter):
              (WebCore::finishSetter):
              (WebCore::finishSetterReadOnlyResult):
              (WebCore::JSSVGTransformList::clear):
              (WebCore::JSSVGTransformList::initialize):
              (WebCore::JSSVGTransformList::getItem):
              (WebCore::JSSVGTransformList::insertItemBefore):
              (WebCore::JSSVGTransformList::replaceItem):
              (WebCore::JSSVGTransformList::removeItem):
              (WebCore::JSSVGTransformList::appendItem):
              * bindings/js/JSStorageCustom.cpp:
              (WebCore::JSStorage::nameGetter):
              (WebCore::JSStorage::deleteProperty):
              (WebCore::JSStorage::customPut):
              * bindings/js/JSStyleSheetCustom.cpp:
              (WebCore::toJS):
              * bindings/js/JSStyleSheetListCustom.cpp:
              (WebCore::JSStyleSheetList::nameGetter):
              * bindings/js/JSTextCustom.cpp:
              (WebCore::toJSNewlyCreated):
              * bindings/js/JSTreeWalkerCustom.cpp:
              (WebCore::JSTreeWalker::parentNode):
              (WebCore::JSTreeWalker::firstChild):
              (WebCore::JSTreeWalker::lastChild):
              (WebCore::JSTreeWalker::nextSibling):
              (WebCore::JSTreeWalker::previousSibling):
              (WebCore::JSTreeWalker::previousNode):
              (WebCore::JSTreeWalker::nextNode):
              * bindings/js/JSWorkerContextCustom.cpp:
              (WebCore::JSWorkerContext::self):
              (WebCore::JSWorkerContext::setSelf):
              (WebCore::JSWorkerContext::xmlHttpRequest):
              (WebCore::JSWorkerContext::importScripts):
              (WebCore::JSWorkerContext::addEventListener):
              (WebCore::JSWorkerContext::removeEventListener):
              (WebCore::JSWorkerContext::setTimeout):
              (WebCore::JSWorkerContext::setInterval):
              * bindings/js/JSWorkerCustom.cpp:
              (WebCore::JSWorker::addEventListener):
              (WebCore::JSWorker::removeEventListener):
              * bindings/js/JSXMLHttpRequestCustom.cpp:
              (WebCore::JSXMLHttpRequest::open):
              (WebCore::JSXMLHttpRequest::setRequestHeader):
              (WebCore::JSXMLHttpRequest::send):
              (WebCore::JSXMLHttpRequest::getResponseHeader):
              (WebCore::JSXMLHttpRequest::overrideMimeType):
              (WebCore::JSXMLHttpRequest::addEventListener):
              (WebCore::JSXMLHttpRequest::removeEventListener):
              (WebCore::JSXMLHttpRequest::responseText):
              * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
              (WebCore::JSXMLHttpRequestUpload::addEventListener):
              (WebCore::JSXMLHttpRequestUpload::removeEventListener):
              * bindings/js/JSXSLTProcessorCustom.cpp:
              (WebCore::JSXSLTProcessor::importStylesheet):
              (WebCore::JSXSLTProcessor::transformToFragment):
              (WebCore::JSXSLTProcessor::transformToDocument):
              (WebCore::JSXSLTProcessor::setParameter):
              (WebCore::JSXSLTProcessor::getParameter):
              (WebCore::JSXSLTProcessor::removeParameter):
              * bindings/js/ScheduledAction.cpp:
              (WebCore::ScheduledAction::create):
              (WebCore::ScheduledAction::ScheduledAction):
              (WebCore::ScheduledAction::executeFunctionInContext):
              * bindings/js/ScheduledAction.h:
              * bindings/js/ScriptCallStack.cpp:
              (WebCore::ScriptCallStack::ScriptCallStack):
              (WebCore::ScriptCallStack::initialize):
              * bindings/js/ScriptCallStack.h:
              * bindings/js/ScriptController.cpp:
              (WebCore::ScriptController::jsObjectForPluginElement):
              * bindings/js/ScriptFunctionCall.cpp:
              (WebCore::ScriptFunctionCall::appendArgument):
              (WebCore::ScriptFunctionCall::call):
              (WebCore::ScriptFunctionCall::construct):
              * bindings/js/ScriptFunctionCall.h:
              * bindings/js/ScriptObject.cpp:
              (WebCore::ScriptGlobalObject::get):
              * bindings/js/ScriptValue.h:
              (WebCore::ScriptValue::ScriptValue):
              (WebCore::ScriptValue::jsValue):
              * bindings/objc/WebScriptObject.mm:
              (-[WebScriptObject callWebScriptMethod:withArguments:]):
              (-[WebScriptObject evaluateWebScript:]):
              (-[WebScriptObject valueForKey:]):
              (-[WebScriptObject webScriptValueAtIndex:]):
              (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
              * bindings/objc/WebScriptObjectPrivate.h:
              * bridge/NP_jsobject.cpp:
              (_NPN_InvokeDefault):
              (_NPN_Invoke):
              (_NPN_Evaluate):
              (_NPN_GetProperty):
              (_NPN_HasMethod):
              (_NPN_Construct):
              * bridge/c/c_instance.cpp:
              (JSC::Bindings::CInstance::invokeMethod):
              (JSC::Bindings::CInstance::invokeDefaultMethod):
              (JSC::Bindings::CInstance::invokeConstruct):
              (JSC::Bindings::CInstance::defaultValue):
              (JSC::Bindings::CInstance::stringValue):
              (JSC::Bindings::CInstance::numberValue):
              (JSC::Bindings::CInstance::booleanValue):
              (JSC::Bindings::CInstance::valueOf):
              * bridge/c/c_instance.h:
              * bridge/c/c_runtime.cpp:
              (JSC::Bindings::CField::valueFromInstance):
              (JSC::Bindings::CField::setValueToInstance):
              * bridge/c/c_runtime.h:
              * bridge/c/c_utility.cpp:
              (JSC::Bindings::convertValueToNPVariant):
              (JSC::Bindings::convertNPVariantToValue):
              * bridge/c/c_utility.h:
              * bridge/jni/jni_instance.cpp:
              (JavaInstance::stringValue):
              (JavaInstance::numberValue):
              (JavaInstance::booleanValue):
              (JavaInstance::invokeMethod):
              (JavaInstance::defaultValue):
              (JavaInstance::valueOf):
              * bridge/jni/jni_instance.h:
              * bridge/jni/jni_jsobject.h:
              * bridge/jni/jni_jsobject.mm:
              (JavaJSObject::call):
              (JavaJSObject::eval):
              (JavaJSObject::getMember):
              (JavaJSObject::getSlot):
              (JavaJSObject::convertValueToJObject):
              (JavaJSObject::convertJObjectToValue):
              * bridge/jni/jni_objc.mm:
              (JSC::Bindings::dispatchJNICall):
              * bridge/jni/jni_runtime.cpp:
              (JavaArray::convertJObjectToArray):
              (JavaField::dispatchValueFromInstance):
              (JavaField::valueFromInstance):
              (JavaField::dispatchSetValueToInstance):
              (JavaField::setValueToInstance):
              (JavaArray::setValueAt):
              (JavaArray::valueAt):
              * bridge/jni/jni_runtime.h:
              * bridge/jni/jni_utility.cpp:
              (JSC::Bindings::convertArrayInstanceToJavaArray):
              (JSC::Bindings::convertValueToJValue):
              * bridge/jni/jni_utility.h:
              * bridge/objc/WebScriptObject.h:
              * bridge/objc/objc_class.h:
              * bridge/objc/objc_class.mm:
              (JSC::Bindings::ObjcClass::fallbackObject):
              * bridge/objc/objc_instance.h:
              * bridge/objc/objc_instance.mm:
              (ObjcInstance::invokeMethod):
              (ObjcInstance::invokeDefaultMethod):
              (ObjcInstance::setValueOfUndefinedField):
              (ObjcInstance::getValueOfUndefinedField):
              (ObjcInstance::defaultValue):
              (ObjcInstance::stringValue):
              (ObjcInstance::numberValue):
              (ObjcInstance::booleanValue):
              (ObjcInstance::valueOf):
              * bridge/objc/objc_runtime.h:
              (JSC::Bindings::ObjcFallbackObjectImp::createStructure):
              * bridge/objc/objc_runtime.mm:
              (JSC::Bindings::ObjcField::valueFromInstance):
              (JSC::Bindings::convertValueToObjcObject):
              (JSC::Bindings::ObjcField::setValueToInstance):
              (JSC::Bindings::ObjcArray::setValueAt):
              (JSC::Bindings::ObjcArray::valueAt):
              (JSC::Bindings::ObjcFallbackObjectImp::put):
              (JSC::Bindings::callObjCFallbackObject):
              (JSC::Bindings::ObjcFallbackObjectImp::defaultValue):
              * bridge/objc/objc_utility.h:
              * bridge/objc/objc_utility.mm:
              (JSC::Bindings::convertValueToObjcValue):
              (JSC::Bindings::convertNSStringToString):
              (JSC::Bindings::convertObjcValueToValue):
              * bridge/runtime.h:
              (JSC::Bindings::Class::fallbackObject):
              (JSC::Bindings::Instance::setValueOfUndefinedField):
              (JSC::Bindings::Instance::invokeDefaultMethod):
              (JSC::Bindings::Instance::invokeConstruct):
              (JSC::Bindings::Instance::put):
              * bridge/runtime_array.cpp:
              (JSC::RuntimeArray::lengthGetter):
              (JSC::RuntimeArray::indexGetter):
              (JSC::RuntimeArray::put):
              * bridge/runtime_array.h:
              (JSC::RuntimeArray::createStructure):
              * bridge/runtime_method.cpp:
              (JSC::RuntimeMethod::lengthGetter):
              (JSC::callRuntimeMethod):
              * bridge/runtime_method.h:
              (JSC::RuntimeMethod::createStructure):
              * bridge/runtime_object.cpp:
              (JSC::RuntimeObjectImp::fallbackObjectGetter):
              (JSC::RuntimeObjectImp::fieldGetter):
              (JSC::RuntimeObjectImp::methodGetter):
              (JSC::RuntimeObjectImp::put):
              (JSC::RuntimeObjectImp::defaultValue):
              (JSC::callRuntimeObject):
              (JSC::callRuntimeConstructor):
              * bridge/runtime_object.h:
              (JSC::RuntimeObjectImp::createStructure):
              * inspector/JavaScriptCallFrame.cpp:
              (WebCore::JavaScriptCallFrame::evaluate):
              * inspector/JavaScriptCallFrame.h:
              * inspector/JavaScriptProfile.cpp:
              (WebCore::toJS):
              * inspector/JavaScriptProfile.h:
              * inspector/JavaScriptProfileNode.cpp:
              (WebCore::toJS):
              * inspector/JavaScriptProfileNode.h:
      
      WebKit/mac:
      
      2009-05-01  Geoffrey Garen  <ggaren@apple.com>
      
              Rubber Stamped by Sam Weinig.
              
              Renamed JSValuePtr => JSValue.
      
              * Plugins/Hosted/NetscapePluginInstanceProxy.h:
              * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
              (WebKit::NetscapePluginInstanceProxy::evaluate):
              (WebKit::NetscapePluginInstanceProxy::invoke):
              (WebKit::NetscapePluginInstanceProxy::invokeDefault):
              (WebKit::NetscapePluginInstanceProxy::construct):
              (WebKit::NetscapePluginInstanceProxy::getProperty):
              (WebKit::NetscapePluginInstanceProxy::setProperty):
              (WebKit::NetscapePluginInstanceProxy::hasMethod):
              (WebKit::NetscapePluginInstanceProxy::addValueToArray):
              (WebKit::NetscapePluginInstanceProxy::marshalValue):
              (WebKit::NetscapePluginInstanceProxy::demarshalValueFromArray):
              (WebKit::NetscapePluginInstanceProxy::demarshalValue):
              (WebKit::NetscapePluginInstanceProxy::demarshalValues):
              * Plugins/Hosted/ProxyInstance.h:
              * Plugins/Hosted/ProxyInstance.mm:
              (WebKit::ProxyField::valueFromInstance):
              (WebKit::ProxyField::setValueToInstance):
              (WebKit::ProxyInstance::invoke):
              (WebKit::ProxyInstance::invokeMethod):
              (WebKit::ProxyInstance::invokeDefaultMethod):
              (WebKit::ProxyInstance::invokeConstruct):
              (WebKit::ProxyInstance::defaultValue):
              (WebKit::ProxyInstance::stringValue):
              (WebKit::ProxyInstance::numberValue):
              (WebKit::ProxyInstance::booleanValue):
              (WebKit::ProxyInstance::valueOf):
              (WebKit::ProxyInstance::fieldValue):
              (WebKit::ProxyInstance::setFieldValue):
              * WebView/WebFrame.mm:
              (-[WebFrame _stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
              * WebView/WebScriptDebugDelegate.mm:
              (-[WebScriptCallFrame _convertValueToObjcValue:]):
              (-[WebScriptCallFrame exception]):
              (-[WebScriptCallFrame evaluateWebScript:]):
              * WebView/WebView.mm:
              (aeDescFromJSValue):
              (-[WebView aeDescByEvaluatingJavaScriptFromString:]):
      
      WebKit/qt:
      
      2009-05-01  Geoffrey Garen  <ggaren@apple.com>
      
              Rubber Stamped by Sam Weinig.
              
              Renamed JSValuePtr => JSValue.
      
              * Api/qwebelement.cpp:
              (setupScriptContext):
              (setupScriptObject):
              (QWebElement::evaluateScript):
              (QWebElement::functions):
              (QWebElement::scriptableProperty):
              (QWebElement::setScriptableProperty):
              (QWebElement::scriptableProperties):
      
      WebKit/win:
      
      2009-05-01  Geoffrey Garen  <ggaren@apple.com>
      
              Rubber Stamped by Sam Weinig.
              
              Renamed JSValuePtr => JSValue.
      
              * WebView.cpp:
              (WebView::stringByEvaluatingJavaScriptFromString):
      
      WebKit/wx:
      
      2009-05-01  Geoffrey Garen  <ggaren@apple.com>
      
              Rubber Stamped by Sam Weinig.
              
              Renamed JSValuePtr => JSValue.
      
              * WebFrame.cpp:
              (wxWebFrame::RunScript):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@43122 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dc067b62
    • ggaren@apple.com's avatar
      2009-05-01 Geoffrey Garen <ggaren@apple.com> · 525f795b
      ggaren@apple.com authored
              Reviewed by Sam "That doesn't look like what I thought it looks like" Weinig.
              
              Beefed up the JSValuePtr class and removed some non-JSValuePtr dependencies
              on JSImmediate, in prepapration for making JSImmediate an implementation
              detail of JSValuePtr.
              
              SunSpider reports no change.
      
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::privateExecute):
              * jit/JIT.cpp:
              (JSC::JIT::privateCompileMainPass):
              * jit/JITArithmetic.cpp:
              (JSC::JIT::compileFastArith_op_mod):
              * runtime/JSGlobalObjectFunctions.cpp:
              (JSC::globalFuncParseInt): Updated for interface changes.
      
              * runtime/JSImmediate.h:
              (JSC::JSValuePtr::JSValuePtr):
              * runtime/JSValue.h:
              (JSC::JSValuePtr::):
              (JSC::jsImpossibleValue):
              (JSC::jsNull):
              (JSC::jsUndefined):
              (JSC::jsBoolean):
              (JSC::JSValuePtr::encode):
              (JSC::JSValuePtr::decode):
              (JSC::JSValuePtr::JSValuePtr):
              (JSC::JSValuePtr::operator bool):
              (JSC::JSValuePtr::operator==):
              (JSC::JSValuePtr::operator!=):
              (JSC::JSValuePtr::isUndefined):
              (JSC::JSValuePtr::isNull): Changed jsImpossibleValue(), jsNull(),
              jsUndefined(), and jsBoolean() to operate in terms of JSValuePtr instead
              of JSImmediate.
      
              * wtf/StdLibExtras.h:
              (WTF::bitwise_cast): Fixed up for clarity.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@43121 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      525f795b
  14. 29 Apr, 2009 1 commit
    • ggaren@apple.com's avatar
      JavaScriptCore: · 339077ed
      ggaren@apple.com authored
      2009-04-28  Geoffrey Garen  <ggaren@apple.com>
      
              Rubber stamped by Beth Dakin.
              
              Removed scaffolding supporting dynamically converting between 32bit and
              64bit value representations. 
      
              * API/JSCallbackConstructor.cpp:
              (JSC::constructJSCallback):
              * API/JSCallbackFunction.cpp:
              (JSC::JSCallbackFunction::call):
              * API/JSCallbackObjectFunctions.h:
              (JSC::::construct):
              (JSC::::call):
              * bytecode/CodeBlock.cpp:
              (JSC::CodeBlock::dump):
              * bytecode/CodeBlock.h:
              (JSC::CodeBlock::getConstant):
              * bytecompiler/BytecodeGenerator.cpp:
              (JSC::BytecodeGenerator::emitEqualityOp):
              * interpreter/CallFrame.cpp:
              (JSC::CallFrame::thisValue):
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::callEval):
              (JSC::Interpreter::throwException):
              (JSC::Interpreter::createExceptionScope):
              (JSC::Interpreter::privateExecute):
              (JSC::Interpreter::retrieveArguments):
              * interpreter/Register.h:
              (JSC::Register::):
              (JSC::Register::Register):
              (JSC::Register::jsValue):
              (JSC::Register::marked):
              (JSC::Register::mark):
              (JSC::Register::i):
              (JSC::Register::activation):
              (JSC::Register::arguments):
              (JSC::Register::callFrame):
              (JSC::Register::codeBlock):
              (JSC::Register::function):
              (JSC::Register::propertyNameIterator):
              (JSC::Register::scopeChain):
              (JSC::Register::vPC):
              * jit/JITStubs.cpp:
              (JSC::JITStubs::cti_op_call_NotJSFunction):
              (JSC::JITStubs::cti_op_load_varargs):
              (JSC::JITStubs::cti_op_call_eval):
              * jsc.cpp:
              (functionPrint):
              (functionDebug):
              (functionRun):
              (functionLoad):
              * runtime/ArgList.h:
              (JSC::ArgList::at):
              * runtime/Arguments.cpp:
              (JSC::Arguments::copyToRegisters):
              (JSC::Arguments::fillArgList):
              (JSC::Arguments::getOwnPropertySlot):
              * runtime/ArrayConstructor.cpp:
              (JSC::constructArrayWithSizeQuirk):
              * runtime/ArrayPrototype.cpp:
              (JSC::arrayProtoFuncJoin):
              (JSC::arrayProtoFuncConcat):
              (JSC::arrayProtoFuncPush):
              (JSC::arrayProtoFuncSlice):
              (JSC::arrayProtoFuncSort):
              (JSC::arrayProtoFuncSplice):
              (JSC::arrayProtoFuncUnShift):
              (JSC::arrayProtoFuncFilter):
              (JSC::arrayProtoFuncMap):
              (JSC::arrayProtoFuncEvery):
              (JSC::arrayProtoFuncForEach):
              (JSC::arrayProtoFuncSome):
              (JSC::arrayProtoFuncReduce):
              (JSC::arrayProtoFuncReduceRight):
              (JSC::arrayProtoFuncIndexOf):
              (JSC::arrayProtoFuncLastIndexOf):
              * runtime/BooleanConstructor.cpp:
              (JSC::constructBoolean):
              (JSC::callBooleanConstructor):
              * runtime/DateConstructor.cpp:
              (JSC::constructDate):
              (JSC::dateParse):
              (JSC::dateUTC):
              * runtime/DatePrototype.cpp:
              (JSC::formatLocaleDate):
              (JSC::fillStructuresUsingTimeArgs):
              (JSC::fillStructuresUsingDateArgs):
              (JSC::dateProtoFuncSetTime):
              (JSC::dateProtoFuncSetYear):
              * runtime/ErrorConstructor.cpp:
              (JSC::constructError):
              * runtime/FunctionConstructor.cpp:
              (JSC::constructFunction):
              * runtime/FunctionPrototype.cpp:
              (JSC::functionProtoFuncApply):
              (JSC::functionProtoFuncCall):
              * runtime/JSArray.cpp:
              (JSC::JSArray::JSArray):
              (JSC::constructArray):
              * runtime/JSArray.h:
              * runtime/JSGlobalObjectFunctions.cpp:
              (JSC::encode):
              (JSC::decode):
              (JSC::globalFuncEval):
              (JSC::globalFuncParseInt):
              (JSC::globalFuncParseFloat):
              (JSC::globalFuncIsNaN):
              (JSC::globalFuncIsFinite):
              (JSC::globalFuncEscape):
              (JSC::globalFuncUnescape):
              (JSC::globalFuncJSCPrint):
              * runtime/MathObject.cpp:
              (JSC::mathProtoFuncAbs):
              (JSC::mathProtoFuncACos):
              (JSC::mathProtoFuncASin):
              (JSC::mathProtoFuncATan):
              (JSC::mathProtoFuncATan2):
              (JSC::mathProtoFuncCeil):
              (JSC::mathProtoFuncCos):
              (JSC::mathProtoFuncExp):
              (JSC::mathProtoFuncFloor):
              (JSC::mathProtoFuncLog):
              (JSC::mathProtoFuncMax):
              (JSC::mathProtoFuncMin):
              (JSC::mathProtoFuncPow):
              (JSC::mathProtoFuncRound):
              (JSC::mathProtoFuncSin):
              (JSC::mathProtoFuncSqrt):
              (JSC::mathProtoFuncTan):
              * runtime/NativeErrorConstructor.cpp:
              (JSC::NativeErrorConstructor::construct):
              * runtime/NumberConstructor.cpp:
              (JSC::constructWithNumberConstructor):
              (JSC::callNumberConstructor):
              * runtime/NumberPrototype.cpp:
              (JSC::numberProtoFuncToString):
              (JSC::numberProtoFuncToFixed):
              (JSC::numberProtoFuncToExponential):
              (JSC::numberProtoFuncToPrecision):
              * runtime/ObjectConstructor.cpp:
              (JSC::constructObject):
              * runtime/ObjectPrototype.cpp:
              (JSC::objectProtoFuncHasOwnProperty):
              (JSC::objectProtoFuncIsPrototypeOf):
              (JSC::objectProtoFuncDefineGetter):
              (JSC::objectProtoFuncDefineSetter):
              (JSC::objectProtoFuncLookupGetter):
              (JSC::objectProtoFuncLookupSetter):
              (JSC::objectProtoFuncPropertyIsEnumerable):
              * runtime/PropertySlot.h:
              (JSC::PropertySlot::getValue):
              * runtime/RegExpConstructor.cpp:
              (JSC::constructRegExp):
              * runtime/RegExpObject.cpp:
              (JSC::RegExpObject::match):
              * runtime/RegExpPrototype.cpp:
              (JSC::regExpProtoFuncCompile):
              * runtime/StringConstructor.cpp:
              (JSC::stringFromCharCodeSlowCase):
              (JSC::stringFromCharCode):
              (JSC::constructWithStringConstructor):
              (JSC::callStringConstructor):
              * runtime/StringPrototype.cpp:
              (JSC::stringProtoFuncReplace):
              (JSC::stringProtoFuncCharAt):
              (JSC::stringProtoFuncCharCodeAt):
              (JSC::stringProtoFuncConcat):
              (JSC::stringProtoFuncIndexOf):
              (JSC::stringProtoFuncLastIndexOf):
              (JSC::stringProtoFuncMatch):
              (JSC::stringProtoFuncSearch):
              (JSC::stringProtoFuncSlice):
              (JSC::stringProtoFuncSplit):
              (JSC::stringProtoFuncSubstr):
              (JSC::stringProtoFuncSubstring):
              (JSC::stringProtoFuncLocaleCompare):
              (JSC::stringProtoFuncFontcolor):
              (JSC::stringProtoFuncFontsize):
              (JSC::stringProtoFuncAnchor):
              (JSC::stringProtoFuncLink):
      
      WebCore:
      
      2009-04-28  Geoffrey Garen  <ggaren@apple.com>
      
              Rubber stamped by Beth Dakin.
              
              Removed scaffolding supporting dynamically converting between 32bit and
              64bit value representations. 
      
              * bindings/js/JSAudioConstructor.cpp:
              (WebCore::constructAudio):
              * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
              (WebCore::JSCanvasRenderingContext2D::setFillColor):
              (WebCore::JSCanvasRenderingContext2D::setStrokeColor):
              (WebCore::JSCanvasRenderingContext2D::strokeRect):
              (WebCore::JSCanvasRenderingContext2D::drawImage):
              (WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
              (WebCore::JSCanvasRenderingContext2D::setShadow):
              (WebCore::JSCanvasRenderingContext2D::createPattern):
              (WebCore::JSCanvasRenderingContext2D::putImageData):
              (WebCore::JSCanvasRenderingContext2D::fillText):
              (WebCore::JSCanvasRenderingContext2D::strokeText):
              * bindings/js/JSClipboardCustom.cpp:
              (WebCore::JSClipboard::clearData):
              (WebCore::JSClipboard::getData):
              (WebCore::JSClipboard::setData):
              (WebCore::JSClipboard::setDragImage):
              * bindings/js/JSDOMApplicationCacheCustom.cpp:
              (WebCore::JSDOMApplicationCache::hasItem):
              (WebCore::JSDOMApplicationCache::add):
              (WebCore::JSDOMApplicationCache::remove):
              (WebCore::JSDOMApplicationCache::addEventListener):
              (WebCore::JSDOMApplicationCache::removeEventListener):
              * bindings/js/JSDOMStringListCustom.cpp:
              (WebCore::JSDOMStringList::item):
              * bindings/js/JSDOMWindowCustom.cpp:
              (WebCore::JSDOMWindow::open):
              (WebCore::JSDOMWindow::showModalDialog):
              (WebCore::JSDOMWindow::postMessage):
              (WebCore::JSDOMWindow::setTimeout):
              (WebCore::JSDOMWindow::setInterval):
              (WebCore::JSDOMWindow::atob):
              (WebCore::JSDOMWindow::btoa):
              (WebCore::JSDOMWindow::addEventListener):
              (WebCore::JSDOMWindow::removeEventListener):
              * bindings/js/JSDatabaseCustom.cpp:
              (WebCore::JSDatabase::changeVersion):
              (WebCore::JSDatabase::transaction):
              * bindings/js/JSElementCustom.cpp:
              (WebCore::JSElement::setAttribute):
              (WebCore::JSElement::setAttributeNode):
              (WebCore::JSElement::setAttributeNS):
              (WebCore::JSElement::setAttributeNodeNS):
              * bindings/js/JSGeolocationCustom.cpp:
              (WebCore::JSGeolocation::getCurrentPosition):
              (WebCore::JSGeolocation::watchPosition):
              * bindings/js/JSHTMLCollectionCustom.cpp:
              (WebCore::callHTMLCollection):
              (WebCore::JSHTMLCollection::item):
              (WebCore::JSHTMLCollection::namedItem):
              * bindings/js/JSHTMLDocumentCustom.cpp:
              (WebCore::documentWrite):
              * bindings/js/JSHTMLInputElementCustom.cpp:
              (WebCore::JSHTMLInputElement::setSelectionRange):
              * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
              (WebCore::JSHTMLOptionsCollection::add):
              * bindings/js/JSHTMLSelectElementCustom.cpp:
              (WebCore::JSHTMLSelectElement::remove):
              * bindings/js/JSImageConstructor.cpp:
              (WebCore::constructImage):
              * bindings/js/JSInspectorControllerCustom.cpp:
              (WebCore::JSInspectorController::highlightDOMNode):
              (WebCore::JSInspectorController::addResourceSourceToFrame):
              (WebCore::JSInspectorController::addSourceToFrame):
              (WebCore::JSInspectorController::getResourceDocumentNode):
              (WebCore::JSInspectorController::search):
              (WebCore::JSInspectorController::databaseTableNames):
              (WebCore::JSInspectorController::setting):
              (WebCore::JSInspectorController::setSetting):
              (WebCore::JSInspectorController::wrapCallback):
              * bindings/js/JSJavaScriptCallFrameCustom.cpp:
              (WebCore::JSJavaScriptCallFrame::evaluate):
              * bindings/js/JSLocationCustom.cpp:
              (WebCore::JSLocation::replace):
              (WebCore::JSLocation::assign):
              * bindings/js/JSMessagePortCustom.cpp:
              (WebCore::JSMessagePort::startConversation):
              (WebCore::JSMessagePort::addEventListener):
              (WebCore::JSMessagePort::removeEventListener):
              * bindings/js/JSNodeCustom.cpp:
              (WebCore::JSNode::insertBefore):
              (WebCore::JSNode::replaceChild):
              (WebCore::JSNode::removeChild):
              (WebCore::JSNode::appendChild):
              (WebCore::JSNode::addEventListener):
              (WebCore::JSNode::removeEventListener):
              * bindings/js/JSNodeFilterCustom.cpp:
              (WebCore::JSNodeFilter::acceptNode):
              * bindings/js/JSNodeListCustom.cpp:
              (WebCore::callNodeList):
              * bindings/js/JSOptionConstructor.cpp:
              (WebCore::constructHTMLOptionElement):
              * bindings/js/JSQuarantinedObjectWrapper.cpp:
              (WebCore::JSQuarantinedObjectWrapper::construct):
              (WebCore::JSQuarantinedObjectWrapper::call):
              * bindings/js/JSSQLResultSetRowListCustom.cpp:
              (WebCore::JSSQLResultSetRowList::item):
              * bindings/js/JSSQLTransactionCustom.cpp:
              (WebCore::JSSQLTransaction::executeSql):
              * bindings/js/JSSVGElementInstanceCustom.cpp:
              (WebCore::JSSVGElementInstance::addEventListener):
              (WebCore::JSSVGElementInstance::removeEventListener):
              * bindings/js/JSSVGLengthCustom.cpp:
              (WebCore::JSSVGLength::convertToSpecifiedUnits):
              * bindings/js/JSSVGMatrixCustom.cpp:
              (WebCore::JSSVGMatrix::rotateFromVector):
              * bindings/js/JSSVGPathSegListCustom.cpp:
              (WebCore::JSSVGPathSegList::initialize):
              (WebCore::JSSVGPathSegList::getItem):
              (WebCore::JSSVGPathSegList::insertItemBefore):
              (WebCore::JSSVGPathSegList::replaceItem):
              (WebCore::JSSVGPathSegList::removeItem):
              (WebCore::JSSVGPathSegList::appendItem):
              * bindings/js/JSSVGPointListCustom.cpp:
              (WebCore::JSSVGPointList::initialize):
              (WebCore::JSSVGPointList::getItem):
              (WebCore::JSSVGPointList::insertItemBefore):
              (WebCore::JSSVGPointList::replaceItem):
              (WebCore::JSSVGPointList::removeItem):
              (WebCore::JSSVGPointList::appendItem):
              * bindings/js/JSSVGTransformListCustom.cpp:
              (WebCore::JSSVGTransformList::initialize):
              (WebCore::JSSVGTransformList::getItem):
              (WebCore::JSSVGTransformList::insertItemBefore):
              (WebCore::JSSVGTransformList::replaceItem):
              (WebCore::JSSVGTransformList::removeItem):
              (WebCore::JSSVGTransformList::appendItem):
              * bindings/js/JSWebKitCSSMatrixConstructor.cpp:
              (WebCore::constructWebKitCSSMatrix):
              * bindings/js/JSWebKitPointConstructor.cpp:
              (WebCore::constructWebKitPoint):
              * bindings/js/JSWorkerConstructor.cpp:
              (WebCore::constructWorker):
              * bindings/js/JSWorkerContextCustom.cpp:
              (WebCore::JSWorkerContext::importScripts):
              (WebCore::JSWorkerContext::addEventListener):
              (WebCore::JSWorkerContext::removeEventListener):
              (WebCore::JSWorkerContext::setTimeout):
              (WebCore::JSWorkerContext::setInterval):
              * bindings/js/JSWorkerCustom.cpp:
              (WebCore::JSWorker::addEventListener):
              (WebCore::JSWorker::removeEventListener):
              * bindings/js/JSXMLHttpRequestCustom.cpp:
              (WebCore::JSXMLHttpRequest::open):
              (WebCore::JSXMLHttpRequest::setRequestHeader):
              (WebCore::JSXMLHttpRequest::send):
              (WebCore::JSXMLHttpRequest::getResponseHeader):
              (WebCore::JSXMLHttpRequest::overrideMimeType):
              (WebCore::JSXMLHttpRequest::addEventListener):
              (WebCore::JSXMLHttpRequest::removeEventListener):
              * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
              (WebCore::JSXMLHttpRequestUpload::addEventListener):
              (WebCore::JSXMLHttpRequestUpload::removeEventListener):
              * bindings/js/JSXSLTProcessorCustom.cpp:
              (WebCore::JSXSLTProcessor::importStylesheet):
              (WebCore::JSXSLTProcessor::transformToFragment):
              (WebCore::JSXSLTProcessor::transformToDocument):
              (WebCore::JSXSLTProcessor::setParameter):
              (WebCore::JSXSLTProcessor::getParameter):
              (WebCore::JSXSLTProcessor::removeParameter):
              * bindings/js/ScheduledAction.cpp:
              (WebCore::ScheduledAction::create):
              (WebCore::ScheduledAction::ScheduledAction):
              * bindings/js/ScheduledAction.h:
              * bindings/js/ScriptCallFrame.cpp:
              (WebCore::ScriptCallFrame::ScriptCallFrame):
              * bindings/js/ScriptCallFrame.h:
              * bindings/js/ScriptCallStack.cpp:
              (WebCore::ScriptCallStack::ScriptCallStack):
              (WebCore::ScriptCallStack::initialize):
              * bridge/c/c_instance.cpp:
              (JSC::Bindings::CInstance::invokeMethod):
              (JSC::Bindings::CInstance::invokeDefaultMethod):
              (JSC::Bindings::CInstance::invokeConstruct):
              * bridge/jni/jni_instance.cpp:
              (JavaInstance::invokeMethod):
              * bridge/objc/objc_instance.mm:
              (ObjcInstance::invokeMethod):
              (ObjcInstance::invokeDefaultMethod):
      
      WebKit/mac:
      
      2009-04-28  Geoffrey Garen  <ggaren@apple.com>
      
              Rubber stamped by Beth Dakin.
              
              Removed scaffolding supporting dynamically converting between 32bit and
              64bit value representations. 
      
              * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
              (WebKit::NetscapePluginInstanceProxy::marshalValues):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@42989 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      339077ed
  15. 21 Apr, 2009 1 commit
    • ggaren@apple.com's avatar
      2009-04-21 Geoffrey Garen <ggaren@apple.com> · d2ef2b52
      ggaren@apple.com authored
              Reviewed by Cameron Zwarich and Oliver Hunt.
              
              Re-Fixed <rdar://problem/6406045> REGRESSION: Stack overflow on PowerPC on
              fast/workers/use-machine-stack.html (22531)
              
              SunSpider reports no change.
              
              Use a larger recursion limit on the main thread (because we can, and
              there's some evidence that it may improve compatibility), and a smaller
              recursion limit on secondary threads (because they tend to have smaller
              stacks).
      
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::execute):
              (JSC::Interpreter::prepareForRepeatCall):
              * interpreter/Interpreter.h:
              (JSC::): Ditto. I wrote the recursion test slightly funny, so that the
              common case remains a simple compare to constant.
      
              * runtime/ArrayPrototype.cpp:
              (JSC::arrayProtoFuncToString):
              (JSC::arrayProtoFuncToLocaleString):
              (JSC::arrayProtoFuncJoin): Conservatively, set the array recursion limits
              to the lower, secondary thread limit. We can do something fancier if
              compatibility moves us, but this seems sufficient for now.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@42734 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d2ef2b52
  16. 15 Apr, 2009 2 commits
  17. 08 Apr, 2009 1 commit
    • oliver@apple.com's avatar
      Improve function.apply performance · 65e286e6
      oliver@apple.com authored
      Reviewed by Geoff Garen.
      
      Jump through a few hoops to improve performance of function.apply in the general case.
      
      In the case of zero or one arguments, or if there are only two arguments and the
      second is an array literal we treat function.apply as function.call.
      
      Otherwise we use the new opcodes op_load_varargs and op_call_varargs to do the .apply call
      without re-entering the virtual machine.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@42337 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      65e286e6
  18. 27 Mar, 2009 1 commit
  19. 25 Mar, 2009 1 commit
  20. 26 Feb, 2009 1 commit
    • barraclough@apple.com's avatar
      JavaScriptCore: · 1dfe6f81
      barraclough@apple.com authored
      2009-02-26  Gavin Barraclough  <barraclough@apple.com>
      
              Reviewed by Geoff Garen.
      
              Fix bug #23614.  Switches on double precision values were incorrectly
              truncating the scrutinee value.  E.g.:
      
                  switch (1.1) { case 1: print("FAIL"); }
      
              Was resulting in FAIL.
      
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::privateExecute):
              * jit/JITStubs.cpp:
              (JSC::JITStubs::cti_op_switch_imm):
      
      LayoutTests:
      
      2009-02-26  Gavin Barraclough  <barraclough@apple.com>
      
              Rubber stamped by Geoff Garen.
      
              Layout test for bug #23614.
      
              * fast/js/resources/switch-behaviour.js:
              * fast/js/switch-behaviour-expected.txt:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@41277 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1dfe6f81
  21. 25 Feb, 2009 1 commit
    • ggaren@apple.com's avatar
      JavaScriptCore: · c8bc3c87
      ggaren@apple.com authored
      2009-02-25  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Maciej Stachowiak.
              
              Fixed <rdar://problem/6611174> REGRESSION (r36701): Unable to select
              messages on hotmail (24052)
              
              The bug was that for-in enumeration used a cached prototype chain without
              validating that it was up-to-date.
              
              This led me to refactor prototype chain caching so it was easier to work
              with and harder to get wrong.
              
              After a bit of inlining, this patch is performance-neutral on SunSpider
              and the v8 benchmarks.
      
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::tryCachePutByID):
              (JSC::Interpreter::tryCacheGetByID):
              * jit/JITStubs.cpp:
              (JSC::JITStubs::tryCachePutByID):
              (JSC::JITStubs::tryCacheGetByID):
              (JSC::JITStubs::cti_op_get_by_id_proto_list): Use the new refactored goodness. See
              lines beginning with "-" and smile.
      
              * runtime/JSGlobalObject.h:
              (JSC::Structure::prototypeForLookup): A shout out to const.
      
              * runtime/JSPropertyNameIterator.h:
              (JSC::JSPropertyNameIterator::next): We can use a pointer comparison to
              see if our cached structure chain is equal to the object's structure chain,
              since in the case of a cache hit, we share references to the same structure
              chain.
      
              * runtime/Operations.h:
              (JSC::countPrototypeChainEntriesAndCheckForProxies): Use the new refactored
              goodness.
      
              * runtime/PropertyNameArray.h:
              (JSC::PropertyNameArray::PropertyNameArray):
              (JSC::PropertyNameArray::setShouldCache):
              (JSC::PropertyNameArray::shouldCache): Renamed "cacheable" to "shouldCache"
              to communicate that the client is specifying a recommendation, not a
              capability.
              
              * runtime/Structure.cpp:
              (JSC::Structure::Structure): No need to initialize a RefPtr.
              (JSC::Structure::getEnumerablePropertyNames): Moved some code into helper
              functions.
      
              (JSC::Structure::prototypeChain): New centralized accessor for a prototype
              chain. Revalidates on every access, since the objects in the prototype
              chain may have mutated.
      
              (JSC::Structure::isValid): Helper function for revalidating a cached
              prototype chain.
      
              (JSC::Structure::getEnumerableNamesFromPropertyTable):
              (JSC::Structure::getEnumerableNamesFromClassInfoTable): Factored out of
              getEnumerablePropertyNames.
      
              * runtime/Structure.h:
      
              * runtime/StructureChain.cpp:
              (JSC::StructureChain::StructureChain):
              * runtime/StructureChain.h:
              (JSC::StructureChain::create): No need for structureChainsAreEqual, since
              we use pointer equality now. Refactored StructureChain to make a little
              more sense and eliminate special cases for null prototypes.
      
      LayoutTests:
      
      2009-02-24  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Maciej Stachowiak.
              
              Added a test for <rdar://problem/6611174> REGRESSION (r36701): Unable to
              select messages on hotmail (24052)
      
              * fast/js/for-in-cached-expected.txt: Added.
              * fast/js/for-in-cached.html: Added.
              * fast/js/resources/for-in-cached.js: Added.
              (forIn):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@41232 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c8bc3c87
  22. 23 Feb, 2009 1 commit
    • ggaren@apple.com's avatar
      2009-02-23 Geoffrey Garen <ggaren@apple.com> · c3343bd2
      ggaren@apple.com authored
              Reviewed by Sam Weinig.
      
              Next step in splitting JIT functionality out of the Interpreter class:
              Moved vptr storage from Interpreter to JSGlobalData, so it could be shared
              between Interpreter and JITStubs, and moved the *Trampoline JIT stubs
              into the JITStubs class. Also added a VPtrSet class to encapsulate vptr
              hacks during JSGlobalData initialization.
              
              SunSpider says 0.4% faster. Meh.
      
              * JavaScriptCore.exp:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::Interpreter):
              (JSC::Interpreter::tryCacheGetByID):
              (JSC::Interpreter::privateExecute):
              * interpreter/Interpreter.h:
              * jit/JIT.cpp:
              (JSC::JIT::privateCompileMainPass):
              (JSC::JIT::privateCompile):
              (JSC::JIT::privateCompileCTIMachineTrampolines):
              * jit/JIT.h:
              (JSC::JIT::compileCTIMachineTrampolines):
              * jit/JITCall.cpp:
              (JSC::JIT::compileOpCall):
              (JSC::JIT::compileOpCallSlowCase):
              * jit/JITPropertyAccess.cpp:
              (JSC::JIT::privateCompilePatchGetArrayLength):
              * jit/JITStubs.cpp:
              (JSC::JITStubs::JITStubs):
              (JSC::JITStubs::tryCacheGetByID):
              (JSC::JITStubs::cti_vm_dontLazyLinkCall):
              (JSC::JITStubs::cti_op_get_by_val):
              (JSC::JITStubs::cti_op_get_by_val_byte_array):
              (JSC::JITStubs::cti_op_put_by_val):
              (JSC::JITStubs::cti_op_put_by_val_array):
              (JSC::JITStubs::cti_op_put_by_val_byte_array):
              (JSC::JITStubs::cti_op_is_string):
              * jit/JITStubs.h:
              (JSC::JITStubs::ctiArrayLengthTrampoline):
              (JSC::JITStubs::ctiStringLengthTrampoline):
              (JSC::JITStubs::ctiVirtualCallPreLink):
              (JSC::JITStubs::ctiVirtualCallLink):
              (JSC::JITStubs::ctiVirtualCall):
              * runtime/ArrayPrototype.cpp:
              (JSC::arrayProtoFuncPop):
              (JSC::arrayProtoFuncPush):
              * runtime/FunctionPrototype.cpp:
              (JSC::functionProtoFuncApply):
              * runtime/JSArray.h:
              (JSC::isJSArray):
              * runtime/JSByteArray.h:
              (JSC::asByteArray):
              (JSC::isJSByteArray):
              * runtime/JSCell.h:
              * runtime/JSFunction.h:
              * runtime/JSGlobalData.cpp:
              (JSC::VPtrSet::VPtrSet):
              (JSC::JSGlobalData::JSGlobalData):
              (JSC::JSGlobalData::create):
              (JSC::JSGlobalData::sharedInstance):
              * runtime/JSGlobalData.h:
              * runtime/JSString.h:
              (JSC::isJSString):
              * runtime/Operations.h:
              (JSC::jsLess):
              (JSC::jsLessEq):
              * wrec/WREC.cpp:
              (JSC::WREC::Generator::compileRegExp):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@41168 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c3343bd2
  23. 22 Feb, 2009 1 commit
    • ggaren@apple.com's avatar
      JavaScriptCore: · 339f7503
      ggaren@apple.com authored
      2009-02-22  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Sam Weinig.
      
              Next step in splitting JIT functionality out of the Interpreter class:
              Created a JITStubs class and renamed Interpreter::cti_* to JITStubs::cti_*.
              
              Also, moved timeout checking into its own class, located in JSGlobalData,
              so both the Interpreter and the JIT could have access to it.
      
              * JavaScriptCore.exp:
              * JavaScriptCore.pri:
              * JavaScriptCore.scons:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * JavaScriptCoreSources.bkl:
              * interpreter/CallFrame.h:
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::Interpreter):
              (JSC::Interpreter::privateExecute):
              * interpreter/Interpreter.h:
              * interpreter/Register.h:
              * jit/JIT.cpp:
              (JSC::):
              (JSC::JIT::emitTimeoutCheck):
              (JSC::JIT::privateCompileMainPass):
              (JSC::JIT::privateCompileSlowCases):
              (JSC::JIT::privateCompile):
              (JSC::JIT::privateCompileCTIMachineTrampolines):
              * jit/JIT.h:
              * jit/JITArithmetic.cpp:
              (JSC::JIT::compileFastArithSlow_op_lshift):
              (JSC::JIT::compileFastArithSlow_op_rshift):
              (JSC::JIT::compileFastArithSlow_op_bitand):
              (JSC::JIT::compileFastArithSlow_op_mod):
              (JSC::JIT::compileFastArith_op_mod):
              (JSC::JIT::compileFastArithSlow_op_post_inc):
              (JSC::JIT::compileFastArithSlow_op_post_dec):
              (JSC::JIT::compileFastArithSlow_op_pre_inc):
              (JSC::JIT::compileFastArithSlow_op_pre_dec):
              (JSC::JIT::compileFastArith_op_add):
              (JSC::JIT::compileFastArith_op_mul):
              (JSC::JIT::compileFastArith_op_sub):
              (JSC::JIT::compileBinaryArithOpSlowCase):
              (JSC::JIT::compileFastArithSlow_op_add):
              (JSC::JIT::compileFastArithSlow_op_mul):
              * jit/JITCall.cpp:
              (JSC::JIT::compileOpCall):
              (JSC::JIT::compileOpCallSlowCase):
              * jit/JITPropertyAccess.cpp:
              (JSC::JIT::compileGetByIdHotPath):
              (JSC::JIT::compilePutByIdHotPath):
              (JSC::JIT::compileGetByIdSlowCase):
              (JSC::JIT::compilePutByIdSlowCase):
              (JSC::JIT::privateCompilePutByIdTransition):
              (JSC::JIT::patchGetByIdSelf):
              (JSC::JIT::patchPutByIdReplace):
              (JSC::JIT::privateCompilePatchGetArrayLength):
              (JSC::JIT::privateCompileGetByIdSelf):
              (JSC::JIT::privateCompileGetByIdProto):
              (JSC::JIT::privateCompileGetByIdChain):
              (JSC::JIT::privateCompilePutByIdReplace):
              * jit/JITStubs.cpp:
              (JSC::JITStubs::tryCachePutByID):
              (JSC::JITStubs::tryCacheGetByID):
              (JSC::JITStubs::cti_op_convert_this):
              (JSC::JITStubs::cti_op_end):
              (JSC::JITStubs::cti_op_add):
              (JSC::JITStubs::cti_op_pre_inc):
              (JSC::JITStubs::cti_timeout_check):
              (JSC::JITStubs::cti_register_file_check):
              (JSC::JITStubs::cti_op_loop_if_less):
              (JSC::JITStubs::cti_op_loop_if_lesseq):
              (JSC::JITStubs::cti_op_new_object):
              (JSC::JITStubs::cti_op_put_by_id_generic):
              (JSC::JITStubs::cti_op_get_by_id_generic):
              (JSC::JITStubs::cti_op_put_by_id):
              (JSC::JITStubs::cti_op_put_by_id_second):
              (JSC::JITStubs::cti_op_put_by_id_fail):
              (JSC::JITStubs::cti_op_get_by_id):
              (JSC::JITStubs::cti_op_get_by_id_second):
              (JSC::JITStubs::cti_op_get_by_id_self_fail):
              (JSC::JITStubs::cti_op_get_by_id_proto_list):
              (JSC::JITStubs::cti_op_get_by_id_proto_list_full):
              (JSC::JITStubs::cti_op_get_by_id_proto_fail):
              (JSC::JITStubs::cti_op_get_by_id_array_fail):
              (JSC::JITStubs::cti_op_get_by_id_string_fail):
              (JSC::JITStubs::cti_op_instanceof):
              (JSC::JITStubs::cti_op_del_by_id):
              (JSC::JITStubs::cti_op_mul):
              (JSC::JITStubs::cti_op_new_func):
              (JSC::JITStubs::cti_op_call_JSFunction):
              (JSC::JITStubs::cti_op_call_arityCheck):
              (JSC::JITStubs::cti_vm_dontLazyLinkCall):
              (JSC::JITStubs::cti_vm_lazyLinkCall):
              (JSC::JITStubs::cti_op_push_activation):
              (JSC::JITStubs::cti_op_call_NotJSFunction):
              (JSC::JITStubs::cti_op_create_arguments):
              (JSC::JITStubs::cti_op_create_arguments_no_params):
              (JSC::JITStubs::cti_op_tear_off_activation):
              (JSC::JITStubs::cti_op_tear_off_arguments):
              (JSC::JITStubs::cti_op_profile_will_call):
              (JSC::JITStubs::cti_op_profile_did_call):
              (JSC::JITStubs::cti_op_ret_scopeChain):
              (JSC::JITStubs::cti_op_new_array):
              (JSC::JITStubs::cti_op_resolve):
              (JSC::JITStubs::cti_op_construct_JSConstruct):
              (JSC::JITStubs::cti_op_construct_NotJSConstruct):
              (JSC::JITStubs::cti_op_get_by_val):
              (JSC::JITStubs::cti_op_get_by_val_byte_array):
              (JSC::JITStubs::cti_op_resolve_func):
              (JSC::JITStubs::cti_op_sub):
              (JSC::JITStubs::cti_op_put_by_val):
              (JSC::JITStubs::cti_op_put_by_val_array):
              (JSC::JITStubs::cti_op_put_by_val_byte_array):
              (JSC::JITStubs::cti_op_lesseq):
              (JSC::JITStubs::cti_op_loop_if_true):
              (JSC::JITStubs::cti_op_negate):
              (JSC::JITStubs::cti_op_resolve_base):
              (JSC::JITStubs::cti_op_resolve_skip):
              (JSC::JITStubs::cti_op_resolve_global):
              (JSC::JITStubs::cti_op_div):
              (JSC::JITStubs::cti_op_pre_dec):
              (JSC::JITStubs::cti_op_jless):
              (JSC::JITStubs::cti_op_not):
              (JSC::JITStubs::cti_op_jtrue):
              (JSC::JITStubs::cti_op_post_inc):
              (JSC::JITStubs::cti_op_eq):
              (JSC::JITStubs::cti_op_lshift):
              (JSC::JITStubs::cti_op_bitand):
              (JSC::JITStubs::cti_op_rshift):
              (JSC::JITStubs::cti_op_bitnot):
              (JSC::JITStubs::cti_op_resolve_with_base):
              (JSC::JITStubs::cti_op_new_func_exp):
              (JSC::JITStubs::cti_op_mod):
              (JSC::JITStubs::cti_op_less):
              (JSC::JITStubs::cti_op_neq):
              (JSC::JITStubs::cti_op_post_dec):
              (JSC::JITStubs::cti_op_urshift):
              (JSC::JITStubs::cti_op_bitxor):
              (JSC::JITStubs::cti_op_new_regexp):
              (JSC::JITStubs::cti_op_bitor):
              (JSC::JITStubs::cti_op_call_eval):
              (JSC::JITStubs::cti_op_throw):
              (JSC::JITStubs::cti_op_get_pnames):
              (JSC::JITStubs::cti_op_next_pname):
              (JSC::JITStubs::cti_op_push_scope):
              (JSC::JITStubs::cti_op_pop_scope):
              (JSC::JITStubs::cti_op_typeof):
              (JSC::JITStubs::cti_op_is_undefined):
              (JSC::JITStubs::cti_op_is_boolean):
              (JSC::JITStubs::cti_op_is_number):
              (JSC::JITStubs::cti_op_is_string):
              (JSC::JITStubs::cti_op_is_object):
              (JSC::JITStubs::cti_op_is_function):
              (JSC::JITStubs::cti_op_stricteq):
              (JSC::JITStubs::cti_op_nstricteq):
              (JSC::JITStubs::cti_op_to_jsnumber):
              (JSC::JITStubs::cti_op_in):
              (JSC::JITStubs::cti_op_push_new_scope):
              (JSC::JITStubs::cti_op_jmp_scopes):
              (JSC::JITStubs::cti_op_put_by_index):
              (JSC::JITStubs::cti_op_switch_imm):
              (JSC::JITStubs::cti_op_switch_char):
              (JSC::JITStubs::cti_op_switch_string):
              (JSC::JITStubs::cti_op_del_by_val):
              (JSC::JITStubs::cti_op_put_getter):
              (JSC::JITStubs::cti_op_put_setter):
              (JSC::JITStubs::cti_op_new_error):
              (JSC::JITStubs::cti_op_debug):
              (JSC::JITStubs::cti_vm_throw):
              * jit/JITStubs.h:
              (JSC::):
              * runtime/JSFunction.h:
              * runtime/JSGlobalData.cpp:
              (JSC::JSGlobalData::JSGlobalData):
              * runtime/JSGlobalData.h:
              * runtime/JSGlobalObject.cpp:
              * runtime/JSGlobalObject.h:
              * runtime/TimeoutChecker.cpp: Copied from interpreter/Interpreter.cpp.
              (JSC::TimeoutChecker::TimeoutChecker):
              (JSC::TimeoutChecker::reset):
              (JSC::TimeoutChecker::didTimeOut):
              * runtime/TimeoutChecker.h: Copied from interpreter/Interpreter.h.
              (JSC::TimeoutChecker::setTimeoutInterval):
              (JSC::TimeoutChecker::ticksUntilNextCheck):
              (JSC::TimeoutChecker::start):
              (JSC::TimeoutChecker::stop):
      
      WebCore:
      
      2009-02-20  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Sam Weinig.
      
              Updated for JavaScriptCore changes to timeout checking.
      
              * bindings/js/JSCustomPositionCallback.cpp:
              (WebCore::JSCustomPositionCallback::handleEvent):
              * bindings/js/JSCustomPositionErrorCallback.cpp:
              (WebCore::JSCustomPositionErrorCallback::handleEvent):
              * bindings/js/JSCustomSQLStatementCallback.cpp:
              (WebCore::JSCustomSQLStatementCallback::handleEvent):
              * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
              (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
              * bindings/js/JSCustomSQLTransactionCallback.cpp:
              (WebCore::JSCustomSQLTransactionCallback::handleEvent):
              * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
              (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
              * bindings/js/JSCustomVoidCallback.cpp:
              (WebCore::JSCustomVoidCallback::handleEvent):
              * bindings/js/JSCustomXPathNSResolver.cpp:
              (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
              * bindings/js/JSDOMWindowBase.cpp:
              (WebCore::JSDOMWindowBase::JSDOMWindowBase):
              (WebCore::JSDOMWindowBase::commonJSGlobalData):
              * bindings/js/JSEventListener.cpp:
              (WebCore::JSAbstractEventListener::handleEvent):
              * bindings/js/ScheduledAction.cpp:
              (WebCore::ScheduledAction::executeFunctionInContext):
              * bindings/js/ScriptController.cpp:
              (WebCore::ScriptController::evaluate):
              * bindings/js/WorkerScriptController.cpp:
              (WebCore::WorkerScriptController::evaluate):
              (WebCore::WorkerScriptController::forbidExecution):
              * bindings/objc/WebScriptObject.mm:
              (-[WebScriptObject callWebScriptMethod:withArguments:]):
              (-[WebScriptObject evaluateWebScript:]):
              * bridge/NP_jsobject.cpp:
              (_NPN_InvokeDefault):
              (_NPN_Invoke):
              (_NPN_Evaluate):
              (_NPN_Construct):
              * bridge/jni/jni_jsobject.mm:
              (JavaJSObject::call):
              (JavaJSObject::eval):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@41126 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      339f7503
  24. 19 Feb, 2009 2 commits
    • ggaren@apple.com's avatar
      2009-02-19 Geoffrey Garen <ggaren@apple.com> · bb63926d
      ggaren@apple.com authored
              Reviewed by Gavin Barraclough.
              
              First step in splitting JIT functionality out of the Interpreter class:
              Created JITStubs.h/.cpp, and moved Interpreter::cti_* into JITStubs.cpp.
              
              Functions that the Interpreter and JITStubs share moved to Operations.h/.cpp.
      
              * GNUmakefile.am:
              * JavaScriptCore.pri:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::resolveBase):
              (JSC::Interpreter::checkTimeout):
              (JSC::Interpreter::privateExecute):
              * interpreter/Interpreter.h:
              * jit/JITStubs.cpp: Copied from interpreter/Interpreter.cpp.
              (JSC::Interpreter::cti_op_resolve_base):
              * jit/JITStubs.h: Copied from interpreter/Interpreter.h.
              * runtime/Operations.cpp:
              (JSC::jsAddSlowCase):
              (JSC::jsTypeStringForValue):
              (JSC::jsIsObjectType):
              (JSC::jsIsFunctionType):
              * runtime/Operations.h:
              (JSC::jsLess):
              (JSC::jsLessEq):
              (JSC::jsAdd):
              (JSC::cachePrototypeChain):
              (JSC::countPrototypeChainEntriesAndCheckForProxies):
              (JSC::resolveBase):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@41100 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bb63926d
    • barraclough@apple.com's avatar
      2009-02-19 Gavin Barraclough <barraclough@apple.com> · d7e13388
      barraclough@apple.com authored
              Reviewed by Oliver Hunt.
      
              Fix for x86-64. Where the JavaScriptCore text segment lies outside
              a 2gb range of the heap containing JIT generated code, callbacks
              from JIT code to the stub functions in Interpreter will be incorrectly
              linked.
      
              No performance impact on Sunspider, 1% regression on v8-tests,
              due to a 3% regression on richards.
      
              * assembler/AbstractMacroAssembler.h:
              (JSC::AbstractMacroAssembler::Call::Call):
              (JSC::AbstractMacroAssembler::Jump::link):
              (JSC::AbstractMacroAssembler::Jump::linkTo):
              (JSC::AbstractMacroAssembler::CodeLocationJump::relink):
              (JSC::AbstractMacroAssembler::CodeLocationCall::relink):
              (JSC::AbstractMacroAssembler::ProcessorReturnAddress::relinkCallerToFunction):
              (JSC::AbstractMacroAssembler::PatchBuffer::link):
              (JSC::AbstractMacroAssembler::PatchBuffer::linkTailRecursive):
              (JSC::AbstractMacroAssembler::differenceBetween):
              * assembler/MacroAssembler.h:
              (JSC::MacroAssembler::tailRecursiveCall):
              (JSC::MacroAssembler::makeTailRecursiveCall):
              * assembler/MacroAssemblerX86.h:
              (JSC::MacroAssemblerX86::call):
              * assembler/MacroAssemblerX86Common.h:
              * assembler/MacroAssemblerX86_64.h:
              (JSC::MacroAssemblerX86_64::call):
              (JSC::MacroAssemblerX86_64::moveWithPatch):
              (JSC::MacroAssemblerX86_64::branchPtrWithPatch):
              (JSC::MacroAssemblerX86_64::storePtrWithPatch):
              * assembler/X86Assembler.h:
              (JSC::X86Assembler::jmp_r):
              (JSC::X86Assembler::linkJump):
              (JSC::X86Assembler::patchJump):
              (JSC::X86Assembler::patchCall):
              (JSC::X86Assembler::linkCall):
              (JSC::X86Assembler::patchAddress):
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::tryCTICachePutByID):
              * jit/JIT.cpp:
              (JSC::JIT::privateCompile):
              (JSC::JIT::privateCompileCTIMachineTrampolines):
              * jit/JIT.h:
              * jit/JITArithmetic.cpp:
              (JSC::JIT::putDoubleResultToJSNumberCellOrJSImmediate):
              (JSC::JIT::compileBinaryArithOp):
              * jit/JITPropertyAccess.cpp:
              (JSC::JIT::privateCompilePutByIdTransition):
              (JSC::JIT::privateCompileGetByIdSelf):
              (JSC::JIT::privateCompilePutByIdReplace):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@41089 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d7e13388
  25. 10 Feb, 2009 2 commits
    • barraclough@apple.com's avatar
      2009-02-10 Gavin Barraclough <barraclough@apple.com> · 8c4ea6b0
      barraclough@apple.com authored
              Reviewed by Oliver Hunt.
      
              Reduce use of void* / reinterpret_cast in JIT repatching code,
              add strong types for Calls and for the various types of pointers
              we retain into the JIT generated instruction stream.
      
              No performance impact.
      
              * assembler/AbstractMacroAssembler.h:
              (JSC::AbstractMacroAssembler::ImmPtr::ImmPtr):
              (JSC::AbstractMacroAssembler::ImmPtr::asIntptr):
              (JSC::AbstractMacroAssembler::Imm32::Imm32):
              (JSC::AbstractMacroAssembler::Label::Label):
              (JSC::AbstractMacroAssembler::DataLabelPtr::DataLabelPtr):
              (JSC::AbstractMacroAssembler::Call::Call):
              (JSC::AbstractMacroAssembler::Call::link):
              (JSC::AbstractMacroAssembler::Call::linkTo):
              (JSC::AbstractMacroAssembler::Jump::Jump):
              (JSC::AbstractMacroAssembler::Jump::linkTo):
              (JSC::AbstractMacroAssembler::CodeLocationCommon::CodeLocationCommon):
              (JSC::AbstractMacroAssembler::CodeLocationCommon::operator bool):
              (JSC::AbstractMacroAssembler::CodeLocationCommon::reset):
              (JSC::AbstractMacroAssembler::CodeLocationLabel::CodeLocationLabel):
              (JSC::AbstractMacroAssembler::CodeLocationLabel::addressForSwitch):
              (JSC::AbstractMacroAssembler::CodeLocationLabel::addressForExceptionHandler):
              (JSC::AbstractMacroAssembler::CodeLocationLabel::addressForJSR):
              (JSC::AbstractMacroAssembler::CodeLocationLabel::getJumpDestination):
              (JSC::AbstractMacroAssembler::CodeLocationJump::CodeLocationJump):
              (JSC::AbstractMacroAssembler::CodeLocationJump::relink):
              (JSC::AbstractMacroAssembler::CodeLocationCall::CodeLocationCall):
              (JSC::AbstractMacroAssembler::CodeLocationCall::relink):
              (JSC::AbstractMacroAssembler::CodeLocationCall::calleeReturnAddressValue):
              (JSC::AbstractMacroAssembler::CodeLocationDataLabel32::CodeLocationDataLabel32):
              (JSC::AbstractMacroAssembler::CodeLocationDataLabel32::repatch):
              (JSC::AbstractMacroAssembler::CodeLocationDataLabelPtr::CodeLocationDataLabelPtr):
              (JSC::AbstractMacroAssembler::CodeLocationDataLabelPtr::repatch):
              (JSC::AbstractMacroAssembler::ProcessorReturnAddress::ProcessorReturnAddress):
              (JSC::AbstractMacroAssembler::ProcessorReturnAddress::relinkCallerToFunction):
              (JSC::AbstractMacroAssembler::ProcessorReturnAddress::operator void*):
              (JSC::AbstractMacroAssembler::PatchBuffer::entry):
              (JSC::AbstractMacroAssembler::PatchBuffer::trampolineAt):
              (JSC::AbstractMacroAssembler::PatchBuffer::link):
              (JSC::AbstractMacroAssembler::PatchBuffer::linkTailRecursive):
              (JSC::AbstractMacroAssembler::PatchBuffer::patch):
              (JSC::AbstractMacroAssembler::PatchBuffer::locationOf):
              (JSC::AbstractMacroAssembler::PatchBuffer::returnAddressOffset):
              (JSC::AbstractMacroAssembler::differenceBetween):
              (JSC::::CodeLocationCommon::labelAtOffset):
              (JSC::::CodeLocationCommon::jumpAtOffset):
              (JSC::::CodeLocationCommon::callAtOffset):
              (JSC::::CodeLocationCommon::dataLabelPtrAtOffset):
              (JSC::::CodeLocationCommon::dataLabel32AtOffset):
              * assembler/MacroAssemblerX86Common.h:
              (JSC::MacroAssemblerX86Common::call):
              * assembler/X86Assembler.h:
              (JSC::X86Assembler::getCallReturnOffset):
              * bytecode/CodeBlock.h:
              (JSC::CallLinkInfo::CallLinkInfo):
              (JSC::getStructureStubInfoReturnLocation):
              (JSC::getCallLinkInfoReturnLocation):
              * bytecode/Instruction.h:
              (JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
              (JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
              * bytecode/JumpTable.h:
              (JSC::StringJumpTable::ctiForValue):
              (JSC::SimpleJumpTable::ctiForValue):
              * bytecode/StructureStubInfo.h:
              (JSC::StructureStubInfo::StructureStubInfo):
              * bytecompiler/BytecodeGenerator.cpp:
              (JSC::BytecodeGenerator::emitCatch):
              (JSC::prepareJumpTableForStringSwitch):
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::cti_op_get_by_id_self_fail):
              (JSC::getPolymorphicAccessStructureListSlot):
              (JSC::Interpreter::cti_op_throw):
              (JSC::Interpreter::cti_op_switch_imm):
              (JSC::Interpreter::cti_op_switch_char):
              (JSC::Interpreter::cti_op_switch_string):
              (JSC::Interpreter::cti_vm_throw):
              * jit/JIT.cpp:
              (JSC::ctiSetReturnAddress):
              (JSC::ctiPatchCallByReturnAddress):
              (JSC::JIT::privateCompile):
              (JSC::JIT::privateCompileCTIMachineTrampolines):
              * jit/JIT.h:
              (JSC::CallRecord::CallRecord):
              (JSC::JIT::compileGetByIdSelf):
              (JSC::JIT::compileGetByIdProto):
              (JSC::JIT::compileGetByIdChain):
              (JSC::JIT::compilePutByIdReplace):
              (JSC::JIT::compilePutByIdTransition):
              (JSC::JIT::compilePatchGetArrayLength):
              (JSC::JIT::emitCTICall):
              * jit/JITCall.cpp:
              (JSC::JIT::unlinkCall):
              (JSC::JIT::linkCall):
              * jit/JITInlineMethods.h:
              (JSC::JIT::emitNakedCall):
              (JSC::JIT::emitCTICall_internal):
              * jit/JITPropertyAccess.cpp:
              (JSC::JIT::compileGetByIdSlowCase):
              (JSC::JIT::compilePutByIdSlowCase):
              (JSC::JIT::privateCompilePutByIdTransition):
              (JSC::JIT::patchGetByIdSelf):
              (JSC::JIT::patchPutByIdReplace):
              (JSC::JIT::privateCompilePatchGetArrayLength):
              (JSC::JIT::privateCompileGetByIdSelf):
              (JSC::JIT::privateCompileGetByIdProto):
              (JSC::JIT::privateCompileGetByIdSelfList):
              (JSC::JIT::privateCompileGetByIdProtoList):
              (JSC::JIT::privateCompileGetByIdChainList):
              (JSC::JIT::privateCompileGetByIdChain):
              (JSC::JIT::privateCompilePutByIdReplace):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@40846 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8c4ea6b0
    • barraclough@apple.com's avatar
      2009-02-09 Gavin Barraclough <barraclough@apple.com> · 12515d4d
      barraclough@apple.com authored
              Reviewed by Oliver Hunt.
      
              Provide a class type for a generated block of JIT code.
              Also changes the return address -> bytecode index map to
              track the return addess as an unsigned offset into the code
              instead of a ptrdiff_t in terms of void**s - the latter is
              equal to the actual offset / sizeof(void*), making it a
              potentially lossy representation.
      
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * assembler/AbstractMacroAssembler.h:
              (JSC::AbstractMacroAssembler::PatchBuffer::returnAddressOffset):
              * assembler/X86Assembler.h:
              (JSC::X86Assembler::getCallReturnOffset):
              * bytecode/CodeBlock.h:
              (JSC::CallReturnOffsetToBytecodeIndex::CallReturnOffsetToBytecodeIndex):
              (JSC::getCallReturnOffset):
              (JSC::CodeBlock::getBytecodeIndex):
              (JSC::CodeBlock::jitCode):
              (JSC::CodeBlock::callReturnIndexVector):
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::execute):
              (JSC::Interpreter::cti_vm_dontLazyLinkCall):
              (JSC::Interpreter::cti_vm_lazyLinkCall):
              * jit/JIT.cpp:
              (JSC::JIT::privateCompile):
              * jit/JIT.h:
              (JSC::):
              * jit/JITCall.cpp:
              (JSC::JIT::linkCall):
              * jit/JITCode.h: Added.
              (JSC::):
              (JSC::JITCode::JITCode):
              (JSC::JITCode::operator bool):
              (JSC::JITCode::addressForCall):
              (JSC::JITCode::offsetOf):
              (JSC::JITCode::execute):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@40813 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      12515d4d
  26. 29 Jan, 2009 1 commit
    • cwzwarich@webkit.org's avatar
      2009-01-29 Cameron Zwarich <cwzwarich@uwaterloo.ca> · fc02a0c2
      cwzwarich@webkit.org authored
              Reviewed by Oliver Hunt.
      
              Bug 23551: Crash on page load with profiler enabled and running
              <https://bugs.webkit.org/show_bug.cgi?id=23551>
              <rdar://problem/6529521>
      
              Interpreter::execute(FunctionBodyNode*, ...) calls Profiler::didExecute()
              with a stale CallFrame. If some part of the scope chain has already been
              freed, Profiler::didExecute() will crash when attempting to get the lexical
              global object. The fix is to make the didExecute() call use the caller's
              CallFrame, not the one made for the function call. In this case, the
              willExecute() call should also be changed to match.
      
              Since this occurs in the actual inspector JS, it is difficult to reduce.
              I couldn't make a layout test.
      
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::execute):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@40396 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fc02a0c2
  27. 21 Jan, 2009 2 commits
  28. 19 Jan, 2009 1 commit
    • weinig@apple.com's avatar
      JavaScriptCore: · 92fdaefb
      weinig@apple.com authored
      2009-01-19  Sam Weinig  <sam@webkit.org>
      
              Rubber-stamped by Gavin Barraclough.
      
              Remove temporary operator-> from JSValuePtr.
      
              * API/JSCallbackFunction.cpp:
              (JSC::JSCallbackFunction::call):
              * API/JSCallbackObjectFunctions.h:
              (JSC::::call):
              (JSC::::toNumber):
              (JSC::::toString):
              * API/JSObjectRef.cpp:
              (JSObjectSetPrototype):
              * API/JSValueRef.cpp:
              (JSValueGetType):
              (JSValueIsUndefined):
              (JSValueIsNull):
              (JSValueIsBoolean):
              (JSValueIsNumber):
              (JSValueIsString):
              (JSValueIsObject):
              (JSValueIsObjectOfClass):
              (JSValueToBoolean):
              (JSValueToNumber):
              (JSValueToStringCopy):
              (JSValueToObject):
              * bytecode/CodeBlock.cpp:
              (JSC::valueToSourceString):
              (JSC::CodeBlock::mark):
              * bytecode/CodeBlock.h:
              (JSC::CodeBlock::isKnownNotImmediate):
              * bytecompiler/BytecodeGenerator.cpp:
              (JSC::BytecodeGenerator::emitEqualityOp):
              (JSC::keyForImmediateSwitch):
              * interpreter/Interpreter.cpp:
              (JSC::jsLess):
              (JSC::jsLessEq):
              (JSC::jsAddSlowCase):
              (JSC::jsAdd):
              (JSC::jsTypeStringForValue):
              (JSC::jsIsObjectType):
              (JSC::jsIsFunctionType):
              (JSC::isNotObject):
              (JSC::Interpreter::callEval):
              (JSC::Interpreter::throwException):
              (JSC::cachePrototypeChain):
              (JSC::Interpreter::tryCachePutByID):
              (JSC::countPrototypeChainEntriesAndCheckForProxies):
              (JSC::Interpreter::tryCacheGetByID):
              (JSC::Interpreter::privateExecute):
              (JSC::Interpreter::tryCTICachePutByID):
              (JSC::Interpreter::tryCTICacheGetByID):
              (JSC::Interpreter::cti_op_convert_this):
              (JSC::Interpreter::cti_op_add):
              (JSC::Interpreter::cti_op_pre_inc):
              (JSC::Interpreter::cti_op_put_by_id_generic):
              (JSC::Interpreter::cti_op_get_by_id_generic):
              (JSC::Interpreter::cti_op_put_by_id):
              (JSC::Interpreter::cti_op_put_by_id_second):
              (JSC::Interpreter::cti_op_put_by_id_fail):
              (JSC::Interpreter::cti_op_get_by_id):
              (JSC::Interpreter::cti_op_get_by_id_second):
              (JSC::Interpreter::cti_op_get_by_id_self_fail):
              (JSC::Interpreter::cti_op_get_by_id_proto_list):
              (JSC::Interpreter::cti_op_get_by_id_proto_list_full):
              (JSC::Interpreter::cti_op_get_by_id_proto_fail):
              (JSC::Interpreter::cti_op_get_by_id_array_fail):
              (JSC::Interpreter::cti_op_get_by_id_string_fail):
              (JSC::Interpreter::cti_op_instanceof):
              (JSC::Interpreter::cti_op_del_by_id):
              (JSC::Interpreter::cti_op_mul):
              (JSC::Interpreter::cti_op_call_JSFunction):
              (JSC::Interpreter::cti_op_call_NotJSFunction):
              (JSC::Interpreter::cti_op_construct_JSConstruct):
              (JSC::Interpreter::cti_op_construct_NotJSConstruct):
              (JSC::Interpreter::cti_op_get_by_val):
              (JSC::Interpreter::cti_op_get_by_val_byte_array):
              (JSC::Interpreter::cti_op_sub):
              (JSC::Interpreter::cti_op_put_by_val):
              (JSC::Interpreter::cti_op_put_by_val_array):
              (JSC::Interpreter::cti_op_put_by_val_byte_array):
              (JSC::Interpreter::cti_op_loop_if_true):
              (JSC::Interpreter::cti_op_negate):
              (JSC::Interpreter::cti_op_div):
              (JSC::Interpreter::cti_op_pre_dec):
              (JSC::Interpreter::cti_op_not):
              (JSC::Interpreter::cti_op_jtrue):
              (JSC::Interpreter::cti_op_post_inc):
              (JSC::Interpreter::cti_op_lshift):
              (JSC::Interpreter::cti_op_bitand):
              (JSC::Interpreter::cti_op_rshift):
              (JSC::Interpreter::cti_op_bitnot):
              (JSC::Interpreter::cti_op_mod):
              (JSC::Interpreter::cti_op_post_dec):
              (JSC::Interpreter::cti_op_urshift):
              (JSC::Interpreter::cti_op_bitxor):
              (JSC::Interpreter::cti_op_bitor):
              (JSC::Interpreter::cti_op_push_scope):
              (JSC::Interpreter::cti_op_is_undefined):
              (JSC::Interpreter::cti_op_is_boolean):
              (JSC::Interpreter::cti_op_is_number):
              (JSC::Interpreter::cti_op_to_jsnumber):
              (JSC::Interpreter::cti_op_in):
              (JSC::Interpreter::cti_op_put_by_index):
              (JSC::Interpreter::cti_op_switch_imm):
              (JSC::Interpreter::cti_op_switch_char):
              (JSC::Interpreter::cti_op_switch_string):
              (JSC::Interpreter::cti_op_del_by_val):
              (JSC::Interpreter::cti_op_put_getter):
              (JSC::Interpreter::cti_op_put_setter):
              (JSC::Interpreter::cti_op_new_error):
              * interpreter/Interpreter.h:
              (JSC::Interpreter::isJSArray):
              (JSC::Interpreter::isJSString):
              (JSC::Interpreter::isJSByteArray):
              * interpreter/Register.h:
              (JSC::Register::marked):
              (JSC::Register::mark):
              * jit/JITInlineMethods.h:
              (JSC::JIT::getConstantOperandImmediateInt):
              (JSC::JIT::isOperandConstantImmediateInt):
              * jsc.cpp:
              (functionPrint):
              (functionDebug):
              (functionRun):
              (functionLoad):
              (runWithScripts):
              (runInteractive):
              * parser/Nodes.cpp:
              (JSC::processClauseList):
              * profiler/ProfileGenerator.cpp:
              (JSC::ProfileGenerator::addParentForConsoleStart):
              * profiler/Profiler.cpp:
              (JSC::Profiler::createCallIdentifier):
              * runtime/ArrayConstructor.cpp:
              (JSC::constructArrayWithSizeQuirk):
              * runtime/ArrayPrototype.cpp:
              (JSC::arrayProtoFuncToString):
              (JSC::arrayProtoFuncToLocaleString):
              (JSC::arrayProtoFuncJoin):
              (JSC::arrayProtoFuncConcat):
              (JSC::arrayProtoFuncPop):
              (JSC::arrayProtoFuncPush):
              (JSC::arrayProtoFuncReverse):
              (JSC::arrayProtoFuncShift):
              (JSC::arrayProtoFuncSlice):
              (JSC::arrayProtoFuncSort):
              (JSC::arrayProtoFuncSplice):
              (JSC::arrayProtoFuncUnShift):
              (JSC::arrayProtoFuncFilter):
              (JSC::arrayProtoFuncMap):
              (JSC::arrayProtoFuncEvery):
              (JSC::arrayProtoFuncForEach):
              (JSC::arrayProtoFuncSome):
              (JSC::arrayProtoFuncIndexOf):
              (JSC::arrayProtoFuncLastIndexOf):
              * runtime/BooleanConstructor.cpp:
              (JSC::constructBoolean):
              (JSC::callBooleanConstructor):
              * runtime/BooleanPrototype.cpp:
              (JSC::booleanProtoFuncToString):
              (JSC::booleanProtoFuncValueOf):
              * runtime/Collector.cpp:
              (JSC::Heap::protect):
              (JSC::Heap::unprotect):
              (JSC::Heap::heap):
              (JSC::Heap::collect):
              (JSC::typeName):
              * runtime/Completion.cpp:
              (JSC::evaluate):
              * runtime/DateConstructor.cpp:
              (JSC::constructDate):
              (JSC::dateParse):
              (JSC::dateUTC):
              * runtime/DateInstance.h:
              (JSC::DateInstance::internalNumber):
              * runtime/DatePrototype.cpp:
              (JSC::formatLocaleDate):
              (JSC::fillStructuresUsingTimeArgs):
              (JSC::fillStructuresUsingDateArgs):
              (JSC::dateProtoFuncToString):
              (JSC::dateProtoFuncToUTCString):
              (JSC::dateProtoFuncToDateString):
              (JSC::dateProtoFuncToTimeString):
              (JSC::dateProtoFuncToLocaleString):
              (JSC::dateProtoFuncToLocaleDateString):
              (JSC::dateProtoFuncToLocaleTimeString):
              (JSC::dateProtoFuncGetTime):
              (JSC::dateProtoFuncGetFullYear):
              (JSC::dateProtoFuncGetUTCFullYear):
              (JSC::dateProtoFuncToGMTString):
              (JSC::dateProtoFuncGetMonth):
              (JSC::dateProtoFuncGetUTCMonth):
              (JSC::dateProtoFuncGetDate):
              (JSC::dateProtoFuncGetUTCDate):
              (JSC::dateProtoFuncGetDay):
              (JSC::dateProtoFuncGetUTCDay):
              (JSC::dateProtoFuncGetHours):
              (JSC::dateProtoFuncGetUTCHours):
              (JSC::dateProtoFuncGetMinutes):
              (JSC::dateProtoFuncGetUTCMinutes):
              (JSC::dateProtoFuncGetSeconds):
              (JSC::dateProtoFuncGetUTCSeconds):
              (JSC::dateProtoFuncGetMilliSeconds):
              (JSC::dateProtoFuncGetUTCMilliseconds):
              (JSC::dateProtoFuncGetTimezoneOffset):
              (JSC::dateProtoFuncSetTime):
              (JSC::setNewValueFromTimeArgs):
              (JSC::setNewValueFromDateArgs):
              (JSC::dateProtoFuncSetYear):
              (JSC::dateProtoFuncGetYear):
              * runtime/ErrorConstructor.cpp:
              (JSC::constructError):
              * runtime/ErrorPrototype.cpp:
              (JSC::errorProtoFuncToString):
              * runtime/ExceptionHelpers.cpp:
              (JSC::createError):
              (JSC::createErrorMessage):
              * runtime/FunctionConstructor.cpp:
              (JSC::constructFunction):
              * runtime/FunctionPrototype.cpp:
              (JSC::functionProtoFuncToString):
              (JSC::functionProtoFuncApply):
              (JSC::functionProtoFuncCall):
              * runtime/GetterSetter.cpp:
              (JSC::GetterSetter::toObject):
              * runtime/JSActivation.cpp:
              (JSC::JSActivation::getOwnPropertySlot):
              * runtime/JSArray.cpp:
              (JSC::JSArray::put):
              (JSC::JSArray::mark):
              (JSC::JSArray::sort):
              (JSC::AVLTreeAbstractorForArrayCompare::compare_key_key):
              (JSC::JSArray::compactForSorting):
              * runtime/JSByteArray.h:
              (JSC::JSByteArray::setIndex):
              * runtime/JSCell.h:
              (JSC::asCell):
              * runtime/JSFunction.cpp:
              (JSC::JSFunction::call):
              (JSC::JSFunction::construct):
              * runtime/JSGlobalObject.cpp:
              (JSC::markIfNeeded):
              (JSC::lastInPrototypeChain):
              * runtime/JSGlobalObjectFunctions.cpp:
              (JSC::encode):
              (JSC::decode):
              (JSC::globalFuncEval):
              (JSC::globalFuncParseInt):
              (JSC::globalFuncParseFloat):
              (JSC::globalFuncIsNaN):
              (JSC::globalFuncIsFinite):
              (JSC::globalFuncEscape):
              (JSC::globalFuncUnescape):
              (JSC::globalFuncJSCPrint):
              * runtime/JSImmediate.cpp:
              (JSC::JSImmediate::toThisObject):
              (JSC::JSImmediate::toObject):
              (JSC::JSImmediate::prototype):
              (JSC::JSImmediate::toString):
              * runtime/JSImmediate.h:
              * runtime/JSObject.cpp:
              (JSC::JSObject::mark):
              (JSC::JSObject::put):
              (JSC::callDefaultValueFunction):
              (JSC::JSObject::getPrimitiveNumber):
              (JSC::JSObject::defineGetter):
              (JSC::JSObject::defineSetter):
              (JSC::JSObject::lookupGetter):
              (JSC::JSObject::lookupSetter):
              (JSC::JSObject::hasInstance):
              (JSC::JSObject::toNumber):
              (JSC::JSObject::toString):
              * runtime/JSObject.h:
              (JSC::JSObject::JSObject):
              (JSC::JSObject::inlineGetOwnPropertySlot):
              (JSC::JSObject::getOwnPropertySlotForWrite):
              (JSC::JSObject::getPropertySlot):
              (JSC::JSValuePtr::get):
              * runtime/JSPropertyNameIterator.h:
              (JSC::JSPropertyNameIterator::create):
              * runtime/JSString.cpp:
              (JSC::JSString::getOwnPropertySlot):
              * runtime/JSValue.h:
              * runtime/JSWrapperObject.cpp:
              (JSC::JSWrapperObject::mark):
              * runtime/JSWrapperObject.h:
              (JSC::JSWrapperObject::setInternalValue):
              * runtime/MathObject.cpp:
              (JSC::mathProtoFuncAbs):
              (JSC::mathProtoFuncACos):
              (JSC::mathProtoFuncASin):
              (JSC::mathProtoFuncATan):
              (JSC::mathProtoFuncATan2):
              (JSC::mathProtoFuncCeil):
              (JSC::mathProtoFuncCos):
              (JSC::mathProtoFuncExp):
              (JSC::mathProtoFuncFloor):
              (JSC::mathProtoFuncLog):
              (JSC::mathProtoFuncMax):
              (JSC::mathProtoFuncMin):
              (JSC::mathProtoFuncPow):
              (JSC::mathProtoFuncRound):
              (JSC::mathProtoFuncSin):
              (JSC::mathProtoFuncSqrt):
              (JSC::mathProtoFuncTan):
              * runtime/NativeErrorConstructor.cpp:
              (JSC::NativeErrorConstructor::NativeErrorConstructor):
              (JSC::NativeErrorConstructor::construct):
              * runtime/NumberConstructor.cpp:
              (JSC::constructWithNumberConstructor):
              (JSC::callNumberConstructor):
              * runtime/NumberPrototype.cpp:
              (JSC::numberProtoFuncToString):
              (JSC::numberProtoFuncToLocaleString):
              (JSC::numberProtoFuncValueOf):
              (JSC::numberProtoFuncToFixed):
              (JSC::numberProtoFuncToExponential):
              (JSC::numberProtoFuncToPrecision):
              * runtime/ObjectConstructor.cpp:
              (JSC::constructObject):
              * runtime/ObjectPrototype.cpp:
              (JSC::objectProtoFuncValueOf):
              (JSC::objectProtoFuncHasOwnProperty):
              (JSC::objectProtoFuncIsPrototypeOf):
              (JSC::objectProtoFuncDefineGetter):
              (JSC::objectProtoFuncDefineSetter):
              (JSC::objectProtoFuncLookupGetter):
              (JSC::objectProtoFuncLookupSetter):
              (JSC::objectProtoFuncPropertyIsEnumerable):
              (JSC::objectProtoFuncToLocaleString):
              (JSC::objectProtoFuncToString):
              * runtime/Operations.h:
              (JSC::JSValuePtr::equalSlowCaseInline):
              (JSC::JSValuePtr::strictEqual):
              (JSC::JSValuePtr::strictEqualSlowCaseInline):
              * runtime/Protect.h:
              (JSC::gcProtect):
              (JSC::gcUnprotect):
              * runtime/RegExpConstructor.cpp:
              (JSC::setRegExpConstructorInput):
              (JSC::setRegExpConstructorMultiline):
              (JSC::constructRegExp):
              * runtime/RegExpObject.cpp:
              (JSC::setRegExpObjectLastIndex):
              (JSC::RegExpObject::match):
              * runtime/RegExpPrototype.cpp:
              (JSC::regExpProtoFuncTest):
              (JSC::regExpProtoFuncExec):
              (JSC::regExpProtoFuncCompile):
              (JSC::regExpProtoFuncToString):
              * runtime/StringConstructor.cpp:
              (JSC::stringFromCharCodeSlowCase):
              (JSC::stringFromCharCode):
              (JSC::constructWithStringConstructor):
              (JSC::callStringConstructor):
              * runtime/StringPrototype.cpp:
              (JSC::stringProtoFuncReplace):
              (JSC::stringProtoFuncToString):
              (JSC::stringProtoFuncCharAt):
              (JSC::stringProtoFuncCharCodeAt):
              (JSC::stringProtoFuncConcat):
              (JSC::stringProtoFuncIndexOf):
              (JSC::stringProtoFuncLastIndexOf):
              (JSC::stringProtoFuncMatch):
              (JSC::stringProtoFuncSearch):
              (JSC::stringProtoFuncSlice):
              (JSC::stringProtoFuncSplit):
              (JSC::stringProtoFuncSubstr):
              (JSC::stringProtoFuncSubstring):
              (JSC::stringProtoFuncToLowerCase):
              (JSC::stringProtoFuncToUpperCase):
              (JSC::stringProtoFuncLocaleCompare):
              (JSC::stringProtoFuncBig):
              (JSC::stringProtoFuncSmall):
              (JSC::stringProtoFuncBlink):
              (JSC::stringProtoFuncBold):
              (JSC::stringProtoFuncFixed):
              (JSC::stringProtoFuncItalics):
              (JSC::stringProtoFuncStrike):
              (JSC::stringProtoFuncSub):
              (JSC::stringProtoFuncSup):
              (JSC::stringProtoFuncFontcolor):
              (JSC::stringProtoFuncFontsize):
              (JSC::stringProtoFuncAnchor):
              (JSC::stringProtoFuncLink):
              * runtime/Structure.cpp:
              (JSC::Structure::Structure):
              (JSC::Structure::getEnumerablePropertyNames):
              (JSC::Structure::createCachedPrototypeChain):
              * runtime/Structure.h:
              (JSC::Structure::mark):
              * runtime/StructureChain.cpp:
              (JSC::StructureChain::StructureChain):
      
      JavaScriptGlue:
      
      2009-01-19  Sam Weinig  <sam@webkit.org>
      
              Rubber-stamped by Gavin Barraclough.
      
              Remove temporary operator-> from JSValuePtr.
      
              * JSUtils.cpp:
              (KJSValueToJSObject):
              (KJSValueToCFTypeInternal):
              * JSValueWrapper.cpp:
              (JSValueWrapper::JSObjectCopyPropertyNames):
              (JSValueWrapper::JSObjectCopyProperty):
              (JSValueWrapper::JSObjectSetProperty):
              (JSValueWrapper::JSObjectCallFunction):
              (JSValueWrapper::JSObjectMark):
              * UserObjectImp.cpp:
              (UserObjectImp::getOwnPropertySlot):
      
      WebCore:
      
      2009-01-19  Sam Weinig  <sam@webkit.org>
      
              Rubber-stamped by Gavin Barraclough.
      
              Remove temporary operator-> from JSValuePtr.
      
              * WebCore.xcodeproj/project.pbxproj:
              * bindings/js/JSAudioConstructor.cpp:
              (WebCore::constructAudio):
              * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
              (WebCore::toHTMLCanvasStyle):
              (WebCore::JSCanvasRenderingContext2D::setFillColor):
              (WebCore::JSCanvasRenderingContext2D::setStrokeColor):
              (WebCore::JSCanvasRenderingContext2D::strokeRect):
              (WebCore::JSCanvasRenderingContext2D::drawImage):
              (WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
              (WebCore::JSCanvasRenderingContext2D::setShadow):
              (WebCore::JSCanvasRenderingContext2D::createPattern):
              (WebCore::JSCanvasRenderingContext2D::putImageData):
              (WebCore::JSCanvasRenderingContext2D::fillText):
              (WebCore::JSCanvasRenderingContext2D::strokeText):
              * bindings/js/JSClipboardCustom.cpp:
              (WebCore::JSClipboard::clearData):
              (WebCore::JSClipboard::getData):
              (WebCore::JSClipboard::setData):
              (WebCore::JSClipboard::setDragImage):
              * bindings/js/JSCustomPositionCallback.cpp:
              (WebCore::JSCustomPositionCallback::handleEvent):
              * bindings/js/JSCustomPositionErrorCallback.cpp:
              (WebCore::JSCustomPositionErrorCallback::handleEvent):
              * bindings/js/JSCustomSQLStatementCallback.cpp:
              (WebCore::JSCustomSQLStatementCallback::handleEvent):
              * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
              (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
              * bindings/js/JSCustomSQLTransactionCallback.cpp:
              (WebCore::JSCustomSQLTransactionCallback::handleEvent):
              * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
              (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
              * bindings/js/JSCustomVoidCallback.cpp:
              (WebCore::JSCustomVoidCallback::handleEvent):
              (WebCore::toVoidCallback):
              * bindings/js/JSCustomXPathNSResolver.cpp:
              (WebCore::JSCustomXPathNSResolver::create):
              (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
              * bindings/js/JSDOMApplicationCacheCustom.cpp:
              (WebCore::JSDOMApplicationCache::hasItem):
              (WebCore::JSDOMApplicationCache::add):
              (WebCore::JSDOMApplicationCache::remove):
              (WebCore::JSDOMApplicationCache::addEventListener):
              (WebCore::JSDOMApplicationCache::removeEventListener):
              * bindings/js/JSDOMBinding.cpp:
              (WebCore::valueToStringWithNullCheck):
              (WebCore::valueToStringWithUndefinedOrNullCheck):
              (WebCore::reportException):
              * bindings/js/JSDOMGlobalObject.cpp:
              (WebCore::JSDOMGlobalObject::findJSEventListener):
              (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener):
              (WebCore::JSDOMGlobalObject::findJSUnprotectedEventListener):
              (WebCore::JSDOMGlobalObject::findOrCreateJSUnprotectedEventListener):
              * bindings/js/JSDOMStringListCustom.cpp:
              (WebCore::JSDOMStringList::item):
              * bindings/js/JSDOMWindowBase.cpp:
              (WebCore::JSDOMWindowBase::getOwnPropertySlot):
              (windowProtoFuncOpen):
              (WebCore::toJSDOMWindow):
              * bindings/js/JSDOMWindowCustom.cpp:
              (WebCore::JSDOMWindow::setLocation):
              (WebCore::JSDOMWindow::postMessage):
              (WebCore::setTimeoutOrInterval):
              (WebCore::JSDOMWindow::clearTimeout):
              (WebCore::JSDOMWindow::clearInterval):
              (WebCore::JSDOMWindow::atob):
              (WebCore::JSDOMWindow::btoa):
              (WebCore::JSDOMWindow::addEventListener):
              (WebCore::JSDOMWindow::removeEventListener):
              (WebCore::toDOMWindow):
              * bindings/js/JSDatabaseCustom.cpp:
              (WebCore::JSDatabase::changeVersion):
              (WebCore::JSDatabase::transaction):
              * bindings/js/JSDocumentCustom.cpp:
              (WebCore::JSDocument::setLocation):
              * bindings/js/JSElementCustom.cpp:
              (WebCore::JSElement::setAttribute):
              (WebCore::JSElement::setAttributeNS):
              * bindings/js/JSEventListener.cpp:
              (WebCore::JSAbstractEventListener::handleEvent):
              (WebCore::JSLazyEventListener::parseCode):
              * bindings/js/JSEventTargetNodeCustom.cpp:
              (WebCore::JSEventTargetNode::addEventListener):
              (WebCore::JSEventTargetNode::removeEventListener):
              * bindings/js/JSGeolocationCustom.cpp:
              (WebCore::createPositionOptions):
              (WebCore::JSGeolocation::getCurrentPosition):
              (WebCore::JSGeolocation::watchPosition):
              * bindings/js/JSHTMLCollectionCustom.cpp:
              (WebCore::callHTMLCollection):
              (WebCore::JSHTMLCollection::canGetItemsForName):
              (WebCore::JSHTMLCollection::item):
              (WebCore::JSHTMLCollection::namedItem):
              * bindings/js/JSHTMLDocumentCustom.cpp:
              (WebCore::JSHTMLDocument::open):
              (WebCore::writeHelper):
              * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
              (WebCore::JSHTMLOptionsCollection::setLength):
              (WebCore::JSHTMLOptionsCollection::add):
              * bindings/js/JSHTMLSelectElementCustom.cpp:
              (WebCore::JSHTMLSelectElement::remove):
              (WebCore::selectIndexSetter):
              * bindings/js/JSImageConstructor.cpp:
              (WebCore::constructImage):
              * bindings/js/JSInspectedObjectWrapper.cpp:
              (WebCore::JSInspectedObjectWrapper::wrap):
              (WebCore::JSInspectedObjectWrapper::prepareIncomingValue):
              * bindings/js/JSInspectorCallbackWrapper.cpp:
              (WebCore::JSInspectorCallbackWrapper::wrap):
              * bindings/js/JSJavaScriptCallFrameCustom.cpp:
              (WebCore::JSJavaScriptCallFrame::evaluate):
              * bindings/js/JSLocationCustom.cpp:
              (WebCore::JSLocation::setHref):
              (WebCore::JSLocation::setProtocol):
              (WebCore::JSLocation::setHost):
              (WebCore::JSLocation::setHostname):
              (WebCore::JSLocation::setPort):
              (WebCore::JSLocation::setPathname):
              (WebCore::JSLocation::setSearch):
              (WebCore::JSLocation::setHash):
              (WebCore::JSLocation::replace):
              (WebCore::JSLocation::assign):
              * bindings/js/JSMessageChannelConstructor.cpp:
              (WebCore::JSMessageChannelConstructor::mark):
              * bindings/js/JSMessagePortCustom.cpp:
              (WebCore::JSMessagePort::startConversation):
              (WebCore::JSMessagePort::addEventListener):
              (WebCore::JSMessagePort::removeEventListener):
              * bindings/js/JSNodeFilterCondition.cpp:
              (WebCore::JSNodeFilterCondition::mark):
              (WebCore::JSNodeFilterCondition::acceptNode):
              * bindings/js/JSNodeFilterCondition.h:
              * bindings/js/JSNodeFilterCustom.cpp:
              (WebCore::toNodeFilter):
              * bindings/js/JSNodeListCustom.cpp:
              (WebCore::callNodeList):
              * bindings/js/JSOptionConstructor.cpp:
              (WebCore::constructHTMLOptionElement):
              * bindings/js/JSQuarantinedObjectWrapper.cpp:
              (WebCore::JSQuarantinedObjectWrapper::asWrapper):
              (WebCore::JSQuarantinedObjectWrapper::construct):
              * bindings/js/JSSQLResultSetRowListCustom.cpp:
              (WebCore::JSSQLResultSetRowList::item):
              * bindings/js/JSSQLTransactionCustom.cpp:
              (WebCore::JSSQLTransaction::executeSql):
              * bindings/js/JSSVGElementInstanceCustom.cpp:
              (WebCore::JSSVGElementInstance::addEventListener):
              (WebCore::JSSVGElementInstance::removeEventListener):
              * bindings/js/JSSVGLengthCustom.cpp:
              (WebCore::JSSVGLength::convertToSpecifiedUnits):
              * bindings/js/JSSVGMatrixCustom.cpp:
              (WebCore::JSSVGMatrix::translate):
              (WebCore::JSSVGMatrix::scale):
              (WebCore::JSSVGMatrix::scaleNonUniform):
              (WebCore::JSSVGMatrix::rotate):
              (WebCore::JSSVGMatrix::rotateFromVector):
              (WebCore::JSSVGMatrix::skewX):
              (WebCore::JSSVGMatrix::skewY):
              * bindings/js/JSSVGPathSegListCustom.cpp:
              (WebCore::JSSVGPathSegList::getItem):
              (WebCore::JSSVGPathSegList::insertItemBefore):
              (WebCore::JSSVGPathSegList::replaceItem):
              (WebCore::JSSVGPathSegList::removeItem):
              * bindings/js/JSSVGPointListCustom.cpp:
              (WebCore::JSSVGPointList::getItem):
              (WebCore::JSSVGPointList::insertItemBefore):
              (WebCore::JSSVGPointList::replaceItem):
              (WebCore::JSSVGPointList::removeItem):
              * bindings/js/JSSVGTransformListCustom.cpp:
              (WebCore::JSSVGTransformList::getItem):
              (WebCore::JSSVGTransformList::insertItemBefore):
              (WebCore::JSSVGTransformList::replaceItem):
              (WebCore::JSSVGTransformList::removeItem):
              * bindings/js/JSStorageCustom.cpp:
              (WebCore::JSStorage::deleteProperty):
              (WebCore::JSStorage::customPut):
              * bindings/js/JSWebKitCSSMatrixConstructor.cpp:
              (WebCore::constructWebKitCSSMatrix):
              * bindings/js/JSWorkerConstructor.cpp:
              (WebCore::constructWorker):
              * bindings/js/JSWorkerContextCustom.cpp:
              (WebCore::JSWorkerContext::addEventListener):
              (WebCore::JSWorkerContext::removeEventListener):
              * bindings/js/JSWorkerCustom.cpp:
              (WebCore::JSWorker::addEventListener):
              (WebCore::JSWorker::removeEventListener):
              * bindings/js/JSXMLHttpRequestCustom.cpp:
              (WebCore::JSXMLHttpRequest::open):
              (WebCore::JSXMLHttpRequest::setRequestHeader):
              (WebCore::JSXMLHttpRequest::send):
              (WebCore::JSXMLHttpRequest::getResponseHeader):
              (WebCore::JSXMLHttpRequest::overrideMimeType):
              (WebCore::JSXMLHttpRequest::addEventListener):
              (WebCore::JSXMLHttpRequest::removeEventListener):
              * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
              (WebCore::JSXMLHttpRequestUpload::addEventListener):
              (WebCore::JSXMLHttpRequestUpload::removeEventListener):
              * bindings/js/JSXSLTProcessorCustom.cpp:
              (WebCore::JSXSLTProcessor::importStylesheet):
              (WebCore::JSXSLTProcessor::transformToFragment):
              (WebCore::JSXSLTProcessor::transformToDocument):
              (WebCore::JSXSLTProcessor::setParameter):
              (WebCore::JSXSLTProcessor::getParameter):
              (WebCore::JSXSLTProcessor::removeParameter):
              * bindings/js/ScheduledAction.cpp:
              (WebCore::ScheduledAction::executeFunctionInContext):
              * bindings/js/ScriptCallStack.cpp:
              (WebCore::ScriptCallStack::initialize):
              * bindings/js/ScriptController.cpp:
              (WebCore::ScriptController::createScriptObjectForPluginElement):
              * bindings/js/ScriptValue.cpp:
              (WebCore::ScriptValue::getString):
              (WebCore::ScriptValue::isNull):
              (WebCore::ScriptValue::isUndefined):
              * bindings/objc/WebScriptObject.mm:
              (-[WebScriptObject callWebScriptMethod:withArguments:]):
              (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
              * bindings/scripts/CodeGeneratorJS.pm:
              * bridge/NP_jsobject.cpp:
              (_NPN_InvokeDefault):
              (_NPN_Invoke):
              (_NPN_HasMethod):
              (_NPN_Construct):
              * bridge/c/c_utility.cpp:
              (JSC::Bindings::convertValueToNPVariant):
              * bridge/jni/jni_instance.cpp:
              (JavaInstance::invokeMethod):
              * bridge/jni/jni_jsobject.mm:
              (JavaJSObject::call):
              (JavaJSObject::convertValueToJObject):
              * bridge/jni/jni_runtime.cpp:
              (JavaField::dispatchValueFromInstance):
              (JavaField::valueFromInstance):
              (JavaField::dispatchSetValueToInstance):
              (JavaField::setValueToInstance):
              * bridge/jni/jni_utility.cpp:
              (JSC::Bindings::convertArrayInstanceToJavaArray):
              (JSC::Bindings::convertValueToJValue):
              * bridge/objc/objc_runtime.mm:
              (JSC::Bindings::callObjCFallbackObject):
              * bridge/objc/objc_utility.mm:
              (JSC::Bindings::convertValueToObjcValue):
              * bridge/runtime_method.cpp:
              (JSC::callRuntimeMethod):
              * bridge/runtime_object.cpp:
              (JSC::RuntimeObjectImp::getOwnPropertySlot):
              (JSC::callRuntimeConstructor):
      
      WebKit/mac:
      
      2009-01-19  Sam Weinig  <sam@webkit.org>
      
              Rubber-stamped by Gavin Barraclough.
      
              Remove temporary operator-> from JSValuePtr.
      
              * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
              (WebKit::NetscapePluginInstanceProxy::invoke):
              (WebKit::NetscapePluginInstanceProxy::hasMethod):
              (WebKit::NetscapePluginInstanceProxy::marshalValue):
              * WebView/WebFrame.mm:
              (-[WebFrame _stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
              * WebView/WebView.mm:
              (aeDescFromJSValue):
      
      WebKit/win:
      
      2009-01-19  Sam Weinig  <sam@webkit.org>
      
              Rubber-stamped by Gavin Barraclough.
      
              Remove temporary operator-> from JSValuePtr.
      
              * WebScriptCallFrame.cpp:
              (WebScriptCallFrame::jsValueToString):
              * WebView.cpp:
              (WebView::stringByEvaluatingJavaScriptFromString):
      
      WebKit/wx:
      
      2009-01-19  Sam Weinig  <sam@webkit.org>
      
              Rubber-stamped by Gavin Barraclough.
      
              Remove temporary operator-> from JSValuePtr.
      
              * WebFrame.cpp:
              (wxWebFrame::RunScript):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@40046 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      92fdaefb
  29. 15 Jan, 2009 1 commit
    • barraclough@apple.com's avatar
      2009-01-15 Gavin Barraclough <barraclough@apple.com> · 2c253ced
      barraclough@apple.com authored
              Reviewed by Geoff Garen.
      
              On x86-64 allow JSImmediate to encode 64-bit double precision values.
              This patch only affects builds that set USE(ALTERNATE_JSIMMEDIATE).
              Updates the implementation of JSValuePtr:: and JSImmediate:: methods
              that operate on neumeric values to be be aware of the new representation.
              When this representation is in use, the class JSNumberCell is redundant
              and is compiled out.
      
              The format of the new immediate representation is documented in JSImmediate.h.
      
              * JavaScriptCore.exp:
              * assembler/MacroAssembler.h:
              (JSC::MacroAssembler::subPtr):
              * assembler/X86Assembler.h:
              (JSC::X86Assembler::):
              (JSC::X86Assembler::subq_rr):
              (JSC::X86Assembler::movq_rr):
              (JSC::X86Assembler::ucomisd_rr):
              (JSC::X86Assembler::X86InstructionFormatter::twoByteOp64):
              * interpreter/Interpreter.cpp:
              (JSC::Interpreter::cti_op_stricteq):
              (JSC::Interpreter::cti_op_nstricteq):
              * jit/JIT.cpp:
              (JSC::JIT::compileOpStrictEq):
              (JSC::JIT::privateCompileMainPass):
              (JSC::JIT::privateCompileSlowCases):
              * jit/JIT.h:
              * jit/JITArithmetic.cpp:
              (JSC::JIT::compileFastArith_op_lshift):
              (JSC::JIT::compileFastArith_op_rshift):
              (JSC::JIT::compileFastArith_op_bitand):
              (JSC::JIT::compileFastArith_op_mod):
              (JSC::JIT::compileFastArith_op_add):
              (JSC::JIT::compileFastArith_op_mul):
              (JSC::JIT::compileFastArith_op_post_inc):
              (JSC::JIT::compileFastArith_op_post_dec):
              (JSC::JIT::compileFastArith_op_pre_inc):
              (JSC::JIT::compileFastArith_op_pre_dec):
              (JSC::JIT::putDoubleResultToJSNumberCellOrJSImmediate):
              (JSC::JIT::compileBinaryArithOp):
              * jit/JITInlineMethods.h:
              (JSC::JIT::emitJumpIfBothJSCells):
              (JSC::JIT::emitJumpIfEitherNumber):
              (JSC::JIT::emitJumpIfNotEitherNumber):
              (JSC::JIT::emitJumpIfImmediateIntegerNumber):
              (JSC::JIT::emitJumpIfNotImmediateIntegerNumber):
              (JSC::JIT::emitJumpIfNotImmediateIntegerNumbers):
              (JSC::JIT::emitJumpSlowCaseIfNotImmediateIntegerNumber):
              (JSC::JIT::emitJumpSlowCaseIfNotImmediateIntegerNumbers):
              (JSC::JIT::emitFastArithDeTagImmediate):
              (JSC::JIT::emitFastArithDeTagImmediateJumpIfZero):
              (JSC::JIT::emitFastArithReTagImmediate):
              (JSC::JIT::emitFastArithIntToImmNoCheck):
              * runtime/JSCell.h:
              * runtime/JSGlobalData.cpp:
              (JSC::JSGlobalData::JSGlobalData):
              * runtime/JSImmediate.cpp:
              (JSC::JSImmediate::toThisObject):
              (JSC::JSImmediate::toObject):
              (JSC::JSImmediate::toString):
              * runtime/JSImmediate.h:
              (JSC::wtf_reinterpret_cast):
              (JSC::JSImmediate::isNumber):
              (JSC::JSImmediate::isIntegerNumber):
              (JSC::JSImmediate::isDoubleNumber):
              (JSC::JSImmediate::isPositiveIntegerNumber):
              (JSC::JSImmediate::areBothImmediateIntegerNumbers):
              (JSC::JSImmediate::makeInt):
              (JSC::JSImmediate::makeDouble):
              (JSC::JSImmediate::doubleValue):
              (JSC::doubleToBoolean):
              (JSC::JSImmediate::toBoolean):
              (JSC::JSImmediate::getTruncatedUInt32):
              (JSC::JSImmediate::makeOutOfIntegerRange):
              (JSC::JSImmediate::from):
              (JSC::JSImmediate::getTruncatedInt32):
              (JSC::JSImmediate::toDouble):
              (JSC::JSImmediate::getUInt32):
              (JSC::JSValuePtr::isInt32Fast):
              (JSC::JSValuePtr::isUInt32Fast):
              (JSC::JSValuePtr::areBothInt32Fast):
              (JSC::JSFastMath::canDoFastBitwiseOperations):
              (JSC::JSFastMath::xorImmediateNumbers):
              (JSC::JSFastMath::canDoFastRshift):
              (JSC::JSFastMath::canDoFastUrshift):
              (JSC::JSFastMath::rightShiftImmediateNumbers):
              (JSC::JSFastMath::canDoFastAdditiveOperations):
              (JSC::JSFastMath::addImmediateNumbers):
              (JSC::JSFastMath::subImmediateNumbers):
              * runtime/JSNumberCell.cpp:
              (JSC::jsNumberCell):
              * runtime/JSNumberCell.h:
              (JSC::createNumberStructure):
              (JSC::isNumberCell):
              (JSC::asNumberCell):
              (JSC::jsNumber):
              (JSC::JSValuePtr::isDoubleNumber):
              (JSC::JSValuePtr::getDoubleNumber):
              (JSC::JSValuePtr::isNumber):
              (JSC::JSValuePtr::uncheckedGetNumber):
              (JSC::jsNaN):
              (JSC::JSValuePtr::getNumber):
              (JSC::JSValuePtr::numberToInt32):
              (JSC::JSValuePtr::numberToUInt32):
              * runtime/JSValue.h:
              * runtime/NumberConstructor.cpp:
              (JSC::numberConstructorNegInfinity):
              (JSC::numberConstructorPosInfinity):
              (JSC::numberConstructorMaxValue):
              (JSC::numberConstructorMinValue):
              * runtime/NumberObject.cpp:
              (JSC::constructNumber):
              * runtime/NumberObject.h:
              * runtime/Operations.h:
              (JSC::JSValuePtr::equal):
              (JSC::JSValuePtr::equalSlowCaseInline):
              (JSC::JSValuePtr::strictEqual):
              (JSC::JSValuePtr::strictEqualSlowCaseInline):
              * wtf/Platform.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39958 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2c253ced
  30. 13 Jan, 2009 1 commit