1. 06 Oct, 2008 2 commits
    • mjs@apple.com's avatar
      JavaScriptCore: · 6c3268ce
      mjs@apple.com authored
      2008-10-06  Maciej Stachowiak  <mjs@apple.com>
      
              Not reviewed. Build fix.
              
              - revert toBoolean changes (r37333 and r37335); need to make WebCore work with these
      
              * API/JSValueRef.cpp:
              (JSValueToBoolean):
              * ChangeLog:
              * JavaScriptCore.exp:
              * VM/CodeBlock.cpp:
              (JSC::CodeBlock::dump):
              * VM/Machine.cpp:
              (JSC::Machine::privateExecute):
              (JSC::Machine::cti_op_loop_if_true):
              (JSC::Machine::cti_op_not):
              (JSC::Machine::cti_op_jtrue):
              * kjs/ArrayPrototype.cpp:
              (JSC::arrayProtoFuncFilter):
              (JSC::arrayProtoFuncEvery):
              (JSC::arrayProtoFuncSome):
              * kjs/BooleanConstructor.cpp:
              (JSC::constructBoolean):
              (JSC::callBooleanConstructor):
              * kjs/GetterSetter.h:
              * kjs/JSCell.h:
              (JSC::JSValue::toBoolean):
              * kjs/JSNumberCell.cpp:
              (JSC::JSNumberCell::toBoolean):
              * kjs/JSNumberCell.h:
              * kjs/JSObject.cpp:
              (JSC::JSObject::toBoolean):
              * kjs/JSObject.h:
              * kjs/JSString.cpp:
              (JSC::JSString::toBoolean):
              * kjs/JSString.h:
              * kjs/JSValue.h:
              * kjs/RegExpConstructor.cpp:
              (JSC::setRegExpConstructorMultiline):
              * kjs/RegExpObject.cpp:
              (JSC::RegExpObject::match):
              * kjs/RegExpPrototype.cpp:
              (JSC::regExpProtoFuncToString):
      
      JavaScriptGlue:
      
      2008-10-06  Maciej Stachowiak  <mjs@apple.com>
      
              Not reviewed. Build fix.
      
              - revert toBoolean changes (r37333 and r37335); need to make WebCore work with these
      
              * JSUtils.cpp:
              (KJSValueToCFTypeInternal):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37337 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6c3268ce
    • mjs@apple.com's avatar
      2008-10-06 Maciej Stachowiak <mjs@apple.com> · d2c36fec
      mjs@apple.com authored
              Reviewed by Sam Weinig.
              
              - optimize op_jtrue, op_loop_if_true and op_not in various ways
              https://bugs.webkit.org/show_bug.cgi?id=21404
              
              1) Make JSValue::toBoolean nonvirtual and completely inline by
              making use of the StructureID type field.
              
              2) Make JSValue::toBoolean not take an ExecState; doesn't need it.
              
              3) Make op_not, op_loop_if_true and op_jtrue not read the
              ExecState (toBoolean doesn't need it any more) and not check
              exceptions (toBoolean can't throw).
      
              * API/JSValueRef.cpp:
              (JSValueToBoolean):
              * JavaScriptCore.exp:
              * VM/CodeBlock.cpp:
              (JSC::CodeBlock::dump):
              * VM/Machine.cpp:
              (JSC::Machine::privateExecute):
              (JSC::Machine::cti_op_loop_if_true):
              (JSC::Machine::cti_op_not):
              (JSC::Machine::cti_op_jtrue):
              * kjs/ArrayPrototype.cpp:
              (JSC::arrayProtoFuncFilter):
              (JSC::arrayProtoFuncEvery):
              (JSC::arrayProtoFuncSome):
              * kjs/BooleanConstructor.cpp:
              (JSC::constructBoolean):
              (JSC::callBooleanConstructor):
              * kjs/GetterSetter.h:
              * kjs/JSCell.h:
              (JSC::JSValue::toBoolean):
              * kjs/JSNumberCell.cpp:
              * kjs/JSNumberCell.h:
              (JSC::JSNumberCell::toBoolean):
              * kjs/JSObject.cpp:
              * kjs/JSObject.h:
              (JSC::JSObject::toBoolean):
              (JSC::JSCell::toBoolean):
              * kjs/JSString.cpp:
              * kjs/JSString.h:
              (JSC::JSString::toBoolean):
              * kjs/JSValue.h:
              * kjs/RegExpConstructor.cpp:
              (JSC::setRegExpConstructorMultiline):
              * kjs/RegExpObject.cpp:
              (JSC::RegExpObject::match):
              * kjs/RegExpPrototype.cpp:
              (JSC::regExpProtoFuncToString):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37333 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d2c36fec
  2. 04 Oct, 2008 1 commit
    • darin@apple.com's avatar
      JavaScriptCore: · d3f46409
      darin@apple.com authored
      2008-10-04  Darin Adler  <darin@apple.com>
      
              Reviewed by Cameron Zwarich.
      
              - https://bugs.webkit.org/show_bug.cgi?id=21295
                Bug 21295: Replace ExecState with a call frame Register pointer
      
              10% faster on Richards; other v8 benchmarks faster too.
              A wash on SunSpider.
      
              This does the minimum necessary to get the speedup. Next step in
              cleaning this up is to replace ExecState with a CallFrame class,
              and be more judicious about when to pass a call frame and when
              to pass a global data pointer, global object pointer, or perhaps
              something else entirely.
      
              * VM/CTI.cpp: Remove the debug-only check of the exception in
              ctiVMThrowTrampoline -- already checked in the code the trampoline
              jumps to, so not all that useful. Removed the exec argument from
              ctiTrampoline. Removed emitDebugExceptionCheck -- no longer needed.
              (JSC::CTI::emitCall): Removed code to set ExecState::m_callFrame.
              (JSC::CTI::privateCompileMainPass): Removed code in catch to extract
              the exception from ExecState::m_exception; instead, the code that
              jumps into catch will make sure the exception is already in eax.
              * VM/CTI.h: Removed exec from the ctiTrampoline. Also removed the
              non-helpful "volatile". Temporarily left ARG_exec in as a synonym
              for ARG_r; I'll change that on a future cleanup pass when introducing
              more use of the CallFrame type.
              (JSC::CTI::execute): Removed the ExecState* argument.
      
              * VM/ExceptionHelpers.cpp:
              (JSC::InterruptedExecutionError::InterruptedExecutionError): Take
              JSGlobalData* instead of ExecState*.
              (JSC::createInterruptedExecutionException): Ditto.
              * VM/ExceptionHelpers.h: Ditto. Also removed an unneeded include.
      
              * VM/Machine.cpp:
              (JSC::slideRegisterWindowForCall): Removed the exec and
              exceptionValue arguments. Changed to return 0 when there's a stack
              overflow rather than using a separate exception argument to cut
              down on memory accesses in the calling convention.
              (JSC::Machine::unwindCallFrame): Removed the exec argument when
              constructing a DebuggerCallFrame. Also removed code to set
              ExecState::m_callFrame.
              (JSC::Machine::throwException): Removed the exec argument when
              construction a DebuggerCallFrame.
              (JSC::Machine::execute): Updated to use the register instead of
              ExecState and also removed various uses of ExecState.
              (JSC::Machine::debug):
              (JSC::Machine::privateExecute): Put globalData into a local
              variable so it can be used throughout the interpreter. Changed
              the VM_CHECK_EXCEPTION to get the exception in globalData instead
              of through ExecState.
              (JSC::Machine::retrieveLastCaller): Turn exec into a registers
              pointer by calling registers() instead of by getting m_callFrame.
              (JSC::Machine::callFrame): Ditto.
              Tweaked exception macros. Made new versions for when you know
              you have an exception. Get at global exception with ARG_globalData.
              Got rid of the need to pass in the return value type.
              (JSC::Machine::cti_op_add): Update to use new version of exception
              macros.
              (JSC::Machine::cti_op_pre_inc): Ditto.
              (JSC::Machine::cti_timeout_check): Ditto.
              (JSC::Machine::cti_op_instanceof): Ditto.
              (JSC::Machine::cti_op_new_func): Ditto.
              (JSC::Machine::cti_op_call_JSFunction): Optimized by using the
              ARG values directly instead of through local variables -- this gets
              rid of code that just shuffles things around in the stack frame.
              Also get rid of ExecState and update for the new way exceptions are
              handled in slideRegisterWindowForCall.
              (JSC::Machine::cti_vm_compile): Update to make exec out of r since
              they are both the same thing now.
              (JSC::Machine::cti_op_call_NotJSFunction): Ditto.
              (JSC::Machine::cti_op_init_arguments): Ditto.
              (JSC::Machine::cti_op_resolve): Ditto.
              (JSC::Machine::cti_op_construct_JSConstruct): Ditto.
              (JSC::Machine::cti_op_construct_NotJSConstruct): Ditto.
              (JSC::Machine::cti_op_resolve_func): Ditto.
              (JSC::Machine::cti_op_put_by_val): Ditto.
              (JSC::Machine::cti_op_put_by_val_array): Ditto.
              (JSC::Machine::cti_op_resolve_skip): Ditto.
              (JSC::Machine::cti_op_resolve_global): Ditto.
              (JSC::Machine::cti_op_post_inc): Ditto.
              (JSC::Machine::cti_op_resolve_with_base): Ditto.
              (JSC::Machine::cti_op_post_dec): Ditto.
              (JSC::Machine::cti_op_call_eval): Ditto.
              (JSC::Machine::cti_op_throw): Ditto. Also rearranged to return
              the exception value as the return value so it can be used by
              op_catch.
              (JSC::Machine::cti_op_push_scope): Ditto.
              (JSC::Machine::cti_op_in): Ditto.
              (JSC::Machine::cti_op_del_by_val): Ditto.
              (JSC::Machine::cti_vm_throw): Ditto. Also rearranged to return
              the exception value as the return value so it can be used by
              op_catch.
      
              * kjs/DebuggerCallFrame.cpp:
              (JSC::DebuggerCallFrame::functionName): Pass globalData.
              (JSC::DebuggerCallFrame::evaluate): Eliminated code to make a
              new ExecState.
              * kjs/DebuggerCallFrame.h: Removed ExecState argument from
              constructor.
      
              * kjs/ExecState.h: Eliminated all data members and made ExecState
              inherit privately from Register instead. Also added a typedef to
              the future name for this class, which is CallFrame. It's just a
              Register* that knows it's a pointer at a call frame. The new class
              can't be constructed or copied. Changed all functions to use
              the this pointer instead of m_callFrame. Changed exception-related
              functions to access an exception in JSGlobalData. Removed functions
              used by CTI to pass the return address to the throw machinery --
              this is now done directly with a global in the global data.
      
              * kjs/FunctionPrototype.cpp:
              (JSC::functionProtoFuncToString): Pass globalData instead of exec.
      
              * kjs/InternalFunction.cpp:
              (JSC::InternalFunction::name): Take globalData instead of exec.
              * kjs/InternalFunction.h: Ditto.
      
              * kjs/JSGlobalData.cpp: Initialize the new exception global to 0.
              * kjs/JSGlobalData.h: Declare two new globals. One for the current
              exception and another for the return address used by CTI to
              implement the throw operation.
      
              * kjs/JSGlobalObject.cpp:
              (JSC::JSGlobalObject::init): Removed code to set up globalExec,
              which is now the same thing as globalCallFrame.
              (JSC::JSGlobalObject::reset): Get globalExec from our globalExec
              function so we don't have to repeat the logic twice.
              (JSC::JSGlobalObject::mark): Removed code to mark the exception;
              the exception is now stored in JSGlobalData and marked there.
              (JSC::JSGlobalObject::globalExec): Return a pointer to the end
              of the global call frame.
              * kjs/JSGlobalObject.h: Removed the globalExec data member.
      
              * kjs/JSObject.cpp:
              (JSC::JSObject::putDirectFunction): Pass globalData instead of exec.
      
              * kjs/collector.cpp:
              (JSC::Heap::collect): Mark the global exception.
      
              * profiler/ProfileGenerator.cpp:
              (JSC::ProfileGenerator::addParentForConsoleStart): Pass globalData
              instead of exec to createCallIdentifier.
      
              * profiler/Profiler.cpp:
              (JSC::Profiler::willExecute): Pass globalData instead of exec to
              createCallIdentifier.
              (JSC::Profiler::didExecute): Ditto.
              (JSC::Profiler::createCallIdentifier): Take globalData instead of
              exec.
              (JSC::createCallIdentifierFromFunctionImp): Ditto.
              * profiler/Profiler.h: Change interface to take a JSGlobalData
              instead of an ExecState.
      
      WebKit/mac:
      
      2008-10-04  Darin Adler  <darin@apple.com>
      
              Reviewed by Cameron Zwarich.
      
              - https://bugs.webkit.org/show_bug.cgi?id=21295
                Bug 21295: Replace ExecState with a call frame Register pointer
      
              * WebView/WebScriptDebugger.mm:
              (WebScriptDebugger::WebScriptDebugger): Remove 0 passed for ExecState.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37297 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d3f46409
  3. 26 Sep, 2008 1 commit
    • weinig@apple.com's avatar
      JavaScriptCore: · caf5e3ba
      weinig@apple.com authored
      2008-09-26  Sam Weinig  <sam@webkit.org>
      
              Reviewed by Darin Adler.
      
              Patch for https://bugs.webkit.org/show_bug.cgi?id=21152
              Speedup static property get/put
      
              Convert getting/setting static property values to use static functions
              instead of storing an integer and switching in getValueProperty/putValueProperty.
      
              * kjs/JSObject.cpp:
              (JSC::JSObject::deleteProperty):
              (JSC::JSObject::getPropertyAttributes):
              * kjs/MathObject.cpp:
              (JSC::MathObject::getOwnPropertySlot):
              * kjs/NumberConstructor.cpp:
              (JSC::numberConstructorNaNValue):
              (JSC::numberConstructorNegInfinity):
              (JSC::numberConstructorPosInfinity):
              (JSC::numberConstructorMaxValue):
              (JSC::numberConstructorMinValue):
              * kjs/PropertySlot.h:
              (JSC::PropertySlot::):
              * kjs/RegExpConstructor.cpp:
              (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::setRegExpConstructorInput):
              (JSC::setRegExpConstructorMultiline):
              (JSC::RegExpConstructor::setInput):
              (JSC::RegExpConstructor::setMultiline):
              (JSC::RegExpConstructor::multiline):
              * kjs/RegExpConstructor.h:
              * kjs/RegExpObject.cpp:
              (JSC::regExpObjectGlobal):
              (JSC::regExpObjectIgnoreCase):
              (JSC::regExpObjectMultiline):
              (JSC::regExpObjectSource):
              (JSC::regExpObjectLastIndex):
              (JSC::setRegExpObjectLastIndex):
              * kjs/RegExpObject.h:
              (JSC::RegExpObject::setLastIndex):
              (JSC::RegExpObject::lastIndex):
              (JSC::RegExpObject::RegExpObjectData::RegExpObjectData):
              * kjs/StructureID.cpp:
              (JSC::StructureID::getEnumerablePropertyNames):
              * kjs/create_hash_table:
              * kjs/lexer.cpp:
              (JSC::Lexer::lex):
              * kjs/lookup.cpp:
              (JSC::HashTable::createTable):
              (JSC::HashTable::deleteTable):
              (JSC::setUpStaticFunctionSlot):
              * kjs/lookup.h:
              (JSC::HashEntry::initialize):
              (JSC::HashEntry::setKey):
              (JSC::HashEntry::key):
              (JSC::HashEntry::attributes):
              (JSC::HashEntry::function):
              (JSC::HashEntry::functionLength):
              (JSC::HashEntry::propertyGetter):
              (JSC::HashEntry::propertyPutter):
              (JSC::HashEntry::lexerValue):
              (JSC::HashEntry::):
              (JSC::HashTable::entry):
              (JSC::getStaticPropertySlot):
              (JSC::getStaticValueSlot):
              (JSC::lookupPut):
      
      WebCore:
      
      2008-09-26  Sam Weinig  <sam@webkit.org>
      
              Reviewed by Darin Adler.
      
              Patch for https://bugs.webkit.org/show_bug.cgi?id=21152
              Speedup static property get/put
      
              * DerivedSources.make:
              * GNUmakefile.am:
              * WebCore.pro:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.xcodeproj/project.pbxproj:
              * bindings/js/JSDOMBinding.cpp:
              * bindings/js/JSDOMBinding.h:
              * bindings/js/JSDOMWindowBase.cpp:
              (WebCore::getDOMConstructor):
              (WebCore::jsDOMWindowBaseCrypto):
              (WebCore::jsDOMWindowBaseEvent):
              (WebCore::jsDOMWindowBaseImage):
              (WebCore::jsDOMWindowBaseMessageChannel):
              (WebCore::jsDOMWindowBaseOption):
              (WebCore::jsDOMWindowBaseXMLHttpRequest):
              (WebCore::jsDOMWindowBaseAudio):
              (WebCore::jsDOMWindowBaseXSLTProcessor):
              (WebCore::jsDOMWindowBaseOnabort):
              (WebCore::jsDOMWindowBaseOnblur):
              (WebCore::jsDOMWindowBaseOnchange):
              (WebCore::jsDOMWindowBaseOnclick):
              (WebCore::jsDOMWindowBaseOndblclick):
              (WebCore::jsDOMWindowBaseOnerror):
              (WebCore::jsDOMWindowBaseOnfocus):
              (WebCore::jsDOMWindowBaseOnkeydown):
              (WebCore::jsDOMWindowBaseOnkeypress):
              (WebCore::jsDOMWindowBaseOnkeyup):
              (WebCore::jsDOMWindowBaseOnload):
              (WebCore::jsDOMWindowBaseOnmousedown):
              (WebCore::jsDOMWindowBaseOnmousemove):
              (WebCore::jsDOMWindowBaseOnmouseout):
              (WebCore::jsDOMWindowBaseOnmouseover):
              (WebCore::jsDOMWindowBaseOnmouseup):
              (WebCore::jsDOMWindowBaseOnMouseWheel):
              (WebCore::jsDOMWindowBaseOnreset):
              (WebCore::jsDOMWindowBaseOnresize):
              (WebCore::jsDOMWindowBaseOnscroll):
              (WebCore::jsDOMWindowBaseOnsearch):
              (WebCore::jsDOMWindowBaseOnselect):
              (WebCore::jsDOMWindowBaseOnsubmit):
              (WebCore::jsDOMWindowBaseOnbeforeunload):
              (WebCore::jsDOMWindowBaseOnunload):
              (WebCore::jsDOMWindowBaseOnWebKitAnimationStart):
              (WebCore::jsDOMWindowBaseOnWebKitAnimationIteration):
              (WebCore::jsDOMWindowBaseOnWebKitAnimationEnd):
              (WebCore::jsDOMWindowBaseOnWebKitTransitionEnd):
              (WebCore::JSDOMWindowBase::getOwnPropertySlot):
              (WebCore::JSDOMWindowBase::put):
              (WebCore::setJSDOMWindowBaseOnabort):
              (WebCore::setJSDOMWindowBaseOnblur):
              (WebCore::setJSDOMWindowBaseOnchange):
              (WebCore::setJSDOMWindowBaseOnclick):
              (WebCore::setJSDOMWindowBaseOndblclick):
              (WebCore::setJSDOMWindowBaseOnerror):
              (WebCore::setJSDOMWindowBaseOnfocus):
              (WebCore::setJSDOMWindowBaseOnkeydown):
              (WebCore::setJSDOMWindowBaseOnkeypress):
              (WebCore::setJSDOMWindowBaseOnkeyup):
              (WebCore::setJSDOMWindowBaseOnload):
              (WebCore::setJSDOMWindowBaseOnmousedown):
              (WebCore::setJSDOMWindowBaseOnmousemove):
              (WebCore::setJSDOMWindowBaseOnmouseout):
              (WebCore::setJSDOMWindowBaseOnmouseover):
              (WebCore::setJSDOMWindowBaseOnmouseup):
              (WebCore::setJSDOMWindowBaseOnMouseWheel):
              (WebCore::setJSDOMWindowBaseOnreset):
              (WebCore::setJSDOMWindowBaseOnresize):
              (WebCore::setJSDOMWindowBaseOnscroll):
              (WebCore::setJSDOMWindowBaseOnsearch):
              (WebCore::setJSDOMWindowBaseOnselect):
              (WebCore::setJSDOMWindowBaseOnsubmit):
              (WebCore::setJSDOMWindowBaseOnbeforeunload):
              (WebCore::setJSDOMWindowBaseOnunload):
              (WebCore::setJSDOMWindowBaseOnWebKitAnimationStart):
              (WebCore::setJSDOMWindowBaseOnWebKitAnimationIteration):
              (WebCore::setJSDOMWindowBaseOnWebKitAnimationEnd):
              (WebCore::setJSDOMWindowBaseOnWebKitTransitionEnd):
              (WebCore::setJSDOMWindowBaseEvent):
              (WebCore::setJSDOMWindowBaseAudio):
              (WebCore::setJSDOMWindowBaseImage):
              (WebCore::setJSDOMWindowBaseMessageChannel):
              (WebCore::setJSDOMWindowBaseOption):
              (WebCore::setJSDOMWindowBaseXMLHttpRequest):
              (WebCore::setJSDOMWindowBaseXSLTProcessor):
              * bindings/js/JSDOMWindowBase.h:
              * bindings/js/JSDOMWindowCustom.cpp:
              (WebCore::nonCachingStaticCloseFunctionGetter):
              (WebCore::nonCachingStaticBlurFunctionGetter):
              (WebCore::nonCachingStaticFocusFunctionGetter):
              (WebCore::nonCachingStaticPostMessageFunctionGetter):
              * bindings/js/JSDOMWindowCustom.h:
              (WebCore::JSDOMWindow::customGetOwnPropertySlot):
              * bindings/js/JSEventTargetBase.cpp:
              * bindings/js/JSEventTargetBase.h:
              (WebCore::JSEventTargetBasePrototype::getOwnPropertySlot):
              (WebCore::JSEventTargetBasePrototype::classInfo):
              * bindings/js/JSEventTargetNode.cpp:
              (WebCore::):
              (WebCore::JSEventTargetNode::getOwnPropertySlot):
              (WebCore::JSEventTargetNode::put):
              * bindings/js/JSEventTargetNode.h:
              (WebCore::JSEventTargetNode::classInfo):
              (WebCore::JSEventTargetNode::prototypeClassName):
              * bindings/js/JSEventTargetSVGElementInstance.cpp:
              (WebCore::):
              (WebCore::JSEventTargetSVGElementInstance::getOwnPropertySlot):
              (WebCore::JSEventTargetSVGElementInstance::put):
              * bindings/js/JSEventTargetSVGElementInstance.h:
              (WebCore::JSEventTargetSVGElementInstance::classInfo):
              (WebCore::JSEventTargetSVGElementInstance::prototypeClassName):
              * bindings/js/JSHTMLInputElementCustom.cpp:
              (WebCore::JSHTMLInputElement::customGetOwnPropertySlot):
              * bindings/js/JSHistoryCustom.cpp:
              (WebCore::nonCachingStaticBackFunctionGetter):
              (WebCore::nonCachingStaticForwardFunctionGetter):
              (WebCore::nonCachingStaticGoFunctionGetter):
              (WebCore::JSHistory::customGetOwnPropertySlot):
              * bindings/js/JSLocationCustom.cpp:
              (WebCore::nonCachingStaticReplaceFunctionGetter):
              (WebCore::nonCachingStaticReloadFunctionGetter):
              (WebCore::nonCachingStaticAssignFunctionGetter):
              (WebCore::JSLocation::customGetOwnPropertySlot):
              (WebCore::JSLocation::customPut):
              * bindings/scripts/CodeGeneratorJS.pm:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36977 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      caf5e3ba
  4. 22 Sep, 2008 1 commit
    • mjs@apple.com's avatar
      JavaScriptCore: · 221b4757
      mjs@apple.com authored
      2008-09-22  Maciej Stachowiak  <mjs@apple.com>
      
              Reviewed by Cameron Zwarich.
              
              - speed up instanceof operator by replacing implementsHasInstance method with a TypeInfo flag
      
              Partial work towards <https://bugs.webkit.org/show_bug.cgi?id=20818>
              
              2.2% speedup on EarleyBoyer benchmark.
      
              * API/JSCallbackConstructor.cpp:
              * API/JSCallbackConstructor.h:
              (JSC::JSCallbackConstructor::createStructureID):
              * API/JSCallbackFunction.cpp:
              * API/JSCallbackFunction.h:
              (JSC::JSCallbackFunction::createStructureID):
              * API/JSCallbackObject.h:
              (JSC::JSCallbackObject::createStructureID):
              * API/JSCallbackObjectFunctions.h:
              (JSC::::hasInstance):
              * API/JSValueRef.cpp:
              (JSValueIsInstanceOfConstructor):
              * JavaScriptCore.exp:
              * VM/Machine.cpp:
              (JSC::Machine::privateExecute):
              (JSC::Machine::cti_op_instanceof):
              * kjs/InternalFunction.cpp:
              * kjs/InternalFunction.h:
              (JSC::InternalFunction::createStructureID):
              * kjs/JSObject.cpp:
              * kjs/JSObject.h:
              * kjs/TypeInfo.h:
              (JSC::TypeInfo::implementsHasInstance):
      
      WebCore:
      
      2008-09-22  Maciej Stachowiak  <mjs@apple.com>
      
              Reviewed by Cameron Zwarich.
      
              - speed up instanceof operator by replacing implementsHasInstance method with a TypeInfo flag
      
              Partial work towards <https://bugs.webkit.org/show_bug.cgi?id=20818>
              
              2.2% speedup on EarleyBoyer benchmark.
      
              * bindings/js/JSQuarantinedObjectWrapper.cpp:
              * bindings/js/JSQuarantinedObjectWrapper.h:
              (WebCore::JSQuarantinedObjectWrapper::createStructureID):
              * bindings/scripts/CodeGeneratorJS.pm:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36766 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      221b4757
  5. 21 Sep, 2008 1 commit
    • mjs@apple.com's avatar
      JavaScriptCore: · 52b6760c
      mjs@apple.com authored
      2008-09-21  Maciej Stachowiak  <mjs@apple.com>
      
              Reviewed by Darin.
              
              - introduce a TypeInfo class, for holding per-type (in the C++ class sense) date in StructureID
              https://bugs.webkit.org/show_bug.cgi?id=20981
      
              * JavaScriptCore.exp:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * VM/CTI.cpp:
              (JSC::CTI::privateCompileMainPass):
              (JSC::CTI::privateCompilePutByIdTransition):
              * VM/Machine.cpp:
              (JSC::jsIsObjectType):
              (JSC::Machine::Machine):
              * kjs/AllInOneFile.cpp:
              * kjs/JSCell.h:
              (JSC::JSCell::isObject):
              (JSC::JSCell::isString):
              * kjs/JSGlobalData.cpp:
              (JSC::JSGlobalData::JSGlobalData):
              * kjs/JSGlobalObject.cpp:
              (JSC::JSGlobalObject::reset):
              * kjs/JSGlobalObject.h:
              (JSC::StructureID::prototypeForLookup):
              * kjs/JSNumberCell.h:
              (JSC::JSNumberCell::createStructureID):
              * kjs/JSObject.cpp:
              (JSC::JSObject::createInheritorID):
              * kjs/JSObject.h:
              (JSC::JSObject::createStructureID):
              * kjs/JSString.h:
              (JSC::JSString::createStructureID):
              * kjs/NativeErrorConstructor.cpp:
              (JSC::NativeErrorConstructor::NativeErrorConstructor):
              * kjs/RegExpConstructor.cpp:
              * kjs/RegExpMatchesArray.h: Added.
              (JSC::RegExpMatchesArray::getOwnPropertySlot):
              (JSC::RegExpMatchesArray::put):
              (JSC::RegExpMatchesArray::deleteProperty):
              (JSC::RegExpMatchesArray::getPropertyNames):
              * kjs/StructureID.cpp:
              (JSC::StructureID::StructureID):
              (JSC::StructureID::addPropertyTransition):
              (JSC::StructureID::toDictionaryTransition):
              (JSC::StructureID::changePrototypeTransition):
              (JSC::StructureID::getterSetterTransition):
              * kjs/StructureID.h:
              (JSC::StructureID::create):
              (JSC::StructureID::typeInfo):
              * kjs/TypeInfo.h: Added.
              (JSC::TypeInfo::TypeInfo):
              (JSC::TypeInfo::type):
      
      WebCore:
      
      2008-09-21  Maciej Stachowiak  <mjs@apple.com>
      
              Reviewed by Darin.
      
              - introduce a TypeInfo class, for holding per-type (in the C++ class sense) date in StructureID
              https://bugs.webkit.org/show_bug.cgi?id=20981
              
              * bindings/js/JSAudioConstructor.cpp:
              (WebCore::JSAudioConstructor::JSAudioConstructor):
              * bindings/js/JSCSSStyleDeclarationCustom.cpp:
              (WebCore::JSCSSStyleDeclaration::nameGetter):
              * bindings/js/JSDOMBinding.cpp:
              (WebCore::createDOMStructure):
              * bindings/js/JSDOMBinding.h:
              (WebCore::getDOMStructure):
              * bindings/js/JSDOMWindowShell.cpp:
              (WebCore::JSDOMWindowShell::JSDOMWindowShell):
              (WebCore::JSDOMWindowShell::setWindow):
              * bindings/js/JSEventTargetNode.cpp:
              (WebCore::JSEventTargetNode::createPrototype):
              * bindings/js/JSHTMLOptionElementConstructor.cpp:
              (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
              * bindings/js/JSImageConstructor.cpp:
              (WebCore::JSImageConstructor::JSImageConstructor):
              * bindings/js/JSXMLHttpRequestConstructor.cpp:
              (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
              * bindings/js/JSXSLTProcessorConstructor.cpp:
              (WebCore::JSXSLTProcessorConstructor::JSXSLTProcessorConstructor):
              * bindings/scripts/CodeGeneratorJS.pm:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36755 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      52b6760c
  6. 20 Sep, 2008 1 commit
    • darin@apple.com's avatar
      JavaScriptCore: · 8281d838
      darin@apple.com authored
      2008-09-20  Darin Adler  <darin@apple.com>
      
              Reviewed by Maciej Stachowiak.
      
              - finish https://bugs.webkit.org/show_bug.cgi?id=20858
                make each distinct C++ class get a distinct JSC::Structure
      
              This also includes some optimizations that make the change an overall
              small speedup. Without those it was a bit of a slowdown.
      
              * API/JSCallbackConstructor.cpp:
              (JSC::JSCallbackConstructor::JSCallbackConstructor): Take a structure.
              * API/JSCallbackConstructor.h: Ditto.
              * API/JSCallbackFunction.cpp:
              (JSC::JSCallbackFunction::JSCallbackFunction): Pass a structure.
              * API/JSCallbackObject.h: Take a structure.
              * API/JSCallbackObjectFunctions.h:
              (JSC::JSCallbackObject::JSCallbackObject): Ditto.
      
              * API/JSClassRef.cpp:
              (OpaqueJSClass::prototype): Pass in a structure. Call setPrototype
              if there's a custom prototype involved.
              * API/JSObjectRef.cpp:
              (JSObjectMake): Ditto.
              (JSObjectMakeConstructor): Pass in a structure.
      
              * JavaScriptCore.exp: Updated.
      
              * VM/Machine.cpp:
              (JSC::jsLess): Added a special case for when both arguments are strings.
              This avoids converting both strings to with UString::toDouble.
              (JSC::jsLessEq): Ditto.
              (JSC::Machine::privateExecute): Pass in a structure.
              (JSC::Machine::cti_op_construct_JSConstruct): Ditto.
              (JSC::Machine::cti_op_new_regexp): Ditto.
              (JSC::Machine::cti_op_is_string): Ditto.
              * VM/Machine.h: Made isJSString public so it can be used in the CTI.
      
              * kjs/Arguments.cpp:
              (JSC::Arguments::Arguments): Pass in a structure.
      
              * kjs/JSCell.h: Mark constructor explicit.
      
              * kjs/JSGlobalObject.cpp:
              (JSC::markIfNeeded): Added an overload for marking structures.
              (JSC::JSGlobalObject::reset): Eliminate code to set data members to
              zero. We now do that in the constructor, and we no longer use this
              anywhere except in the constructor. Added code to create structures.
              Pass structures rather than prototypes when creating objects.
              (JSC::JSGlobalObject::mark): Mark the structures.
      
              * kjs/JSGlobalObject.h: Removed unneeded class declarations.
              Added initializers for raw pointers in JSGlobalObjectData so
              everything starts with a 0. Added structure data and accessor
              functions.
      
              * kjs/JSImmediate.cpp:
              (JSC::JSImmediate::nonInlineNaN): Added.
              * kjs/JSImmediate.h:
              (JSC::JSImmediate::toDouble): Rewrote to avoid PIC branches.
      
              * kjs/JSNumberCell.cpp:
              (JSC::jsNumberCell): Made non-inline to avoid PIC branches
              in functions that call this one.
              (JSC::jsNaN): Ditto.
              * kjs/JSNumberCell.h: Ditto.
      
              * kjs/JSObject.h: Removed constructor that takes a prototype.
              All callers now pass structures.
      
              * kjs/ArrayConstructor.cpp:
              (JSC::ArrayConstructor::ArrayConstructor):
              (JSC::constructArrayWithSizeQuirk):
              * kjs/ArrayConstructor.h:
              * kjs/ArrayPrototype.cpp:
              (JSC::ArrayPrototype::ArrayPrototype):
              * kjs/ArrayPrototype.h:
              * kjs/BooleanConstructor.cpp:
              (JSC::BooleanConstructor::BooleanConstructor):
              (JSC::constructBoolean):
              (JSC::constructBooleanFromImmediateBoolean):
              * kjs/BooleanConstructor.h:
              * kjs/BooleanObject.cpp:
              (JSC::BooleanObject::BooleanObject):
              * kjs/BooleanObject.h:
              * kjs/BooleanPrototype.cpp:
              (JSC::BooleanPrototype::BooleanPrototype):
              * kjs/BooleanPrototype.h:
              * kjs/DateConstructor.cpp:
              (JSC::DateConstructor::DateConstructor):
              (JSC::constructDate):
              * kjs/DateConstructor.h:
              * kjs/DateInstance.cpp:
              (JSC::DateInstance::DateInstance):
              * kjs/DateInstance.h:
              * kjs/DatePrototype.cpp:
              (JSC::DatePrototype::DatePrototype):
              * kjs/DatePrototype.h:
              * kjs/ErrorConstructor.cpp:
              (JSC::ErrorConstructor::ErrorConstructor):
              (JSC::constructError):
              * kjs/ErrorConstructor.h:
              * kjs/ErrorInstance.cpp:
              (JSC::ErrorInstance::ErrorInstance):
              * kjs/ErrorInstance.h:
              * kjs/ErrorPrototype.cpp:
              (JSC::ErrorPrototype::ErrorPrototype):
              * kjs/ErrorPrototype.h:
              * kjs/FunctionConstructor.cpp:
              (JSC::FunctionConstructor::FunctionConstructor):
              * kjs/FunctionConstructor.h:
              * kjs/FunctionPrototype.cpp:
              (JSC::FunctionPrototype::FunctionPrototype):
              (JSC::FunctionPrototype::addFunctionProperties):
              * kjs/FunctionPrototype.h:
              * kjs/GlobalEvalFunction.cpp:
              (JSC::GlobalEvalFunction::GlobalEvalFunction):
              * kjs/GlobalEvalFunction.h:
              * kjs/InternalFunction.cpp:
              (JSC::InternalFunction::InternalFunction):
              * kjs/InternalFunction.h:
              (JSC::InternalFunction::InternalFunction):
              * kjs/JSArray.cpp:
              (JSC::JSArray::JSArray):
              (JSC::constructEmptyArray):
              (JSC::constructArray):
              * kjs/JSArray.h:
              * kjs/JSFunction.cpp:
              (JSC::JSFunction::JSFunction):
              (JSC::JSFunction::construct):
              * kjs/JSObject.cpp:
              (JSC::constructEmptyObject):
              * kjs/JSString.cpp:
              (JSC::StringObject::create):
              * kjs/JSWrapperObject.h:
              * kjs/MathObject.cpp:
              (JSC::MathObject::MathObject):
              * kjs/MathObject.h:
              * kjs/NativeErrorConstructor.cpp:
              (JSC::NativeErrorConstructor::NativeErrorConstructor):
              (JSC::NativeErrorConstructor::construct):
              * kjs/NativeErrorConstructor.h:
              * kjs/NativeErrorPrototype.cpp:
              (JSC::NativeErrorPrototype::NativeErrorPrototype):
              * kjs/NativeErrorPrototype.h:
              * kjs/NumberConstructor.cpp:
              (JSC::NumberConstructor::NumberConstructor):
              (JSC::constructWithNumberConstructor):
              * kjs/NumberConstructor.h:
              * kjs/NumberObject.cpp:
              (JSC::NumberObject::NumberObject):
              (JSC::constructNumber):
              (JSC::constructNumberFromImmediateNumber):
              * kjs/NumberObject.h:
              * kjs/NumberPrototype.cpp:
              (JSC::NumberPrototype::NumberPrototype):
              * kjs/NumberPrototype.h:
              * kjs/ObjectConstructor.cpp:
              (JSC::ObjectConstructor::ObjectConstructor):
              (JSC::constructObject):
              * kjs/ObjectConstructor.h:
              * kjs/ObjectPrototype.cpp:
              (JSC::ObjectPrototype::ObjectPrototype):
              * kjs/ObjectPrototype.h:
              * kjs/PrototypeFunction.cpp:
              (JSC::PrototypeFunction::PrototypeFunction):
              * kjs/PrototypeFunction.h:
              * kjs/RegExpConstructor.cpp:
              (JSC::RegExpConstructor::RegExpConstructor):
              (JSC::RegExpMatchesArray::RegExpMatchesArray):
              (JSC::constructRegExp):
              * kjs/RegExpConstructor.h:
              * kjs/RegExpObject.cpp:
              (JSC::RegExpObject::RegExpObject):
              * kjs/RegExpObject.h:
              * kjs/RegExpPrototype.cpp:
              (JSC::RegExpPrototype::RegExpPrototype):
              * kjs/RegExpPrototype.h:
              * kjs/Shell.cpp:
              (GlobalObject::GlobalObject):
              * kjs/StringConstructor.cpp:
              (JSC::StringConstructor::StringConstructor):
              (JSC::constructWithStringConstructor):
              * kjs/StringConstructor.h:
              * kjs/StringObject.cpp:
              (JSC::StringObject::StringObject):
              * kjs/StringObject.h:
              * kjs/StringObjectThatMasqueradesAsUndefined.h:
              (JSC::StringObjectThatMasqueradesAsUndefined::StringObjectThatMasqueradesAsUndefined):
              * kjs/StringPrototype.cpp:
              (JSC::StringPrototype::StringPrototype):
              * kjs/StringPrototype.h:
              Take and pass structures.
      
      WebCore:
      
      2008-09-20  Darin Adler  <darin@apple.com>
      
              Reviewed by Maciej Stachowiak.
      
              - finish https://bugs.webkit.org/show_bug.cgi?id=20858
                make each distinct C++ class get a distinct JSC::Structure
      
              * bindings/js/JSCSSStyleDeclarationCustom.cpp:
              (WebCore::JSCSSStyleDeclaration::nameGetter): Pass in a structure
              ID. Note that this makes a new structure every time -- we could
              optimize this slightly be caching and reusing a single one.
      
              * bridge/runtime_method.cpp:
              (JSC::RuntimeMethod::RuntimeMethod): Create a unique structure using
              getDOMStructure.
              * bridge/runtime_method.h:
              (JSC::RuntimeMethod::createPrototype): Added createPrototype so
              getDOMStructure will work.
      
              * bindings/js/JSDOMWindowShell.cpp:
              (WebCore::JSDOMWindowShell::JSDOMWindowShell): Initialize m_window to
              0; needed in case garbage collection happens while creating the
              JSDOMWindow.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36726 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8281d838
  7. 19 Sep, 2008 4 commits
    • weinig@apple.com's avatar
      2008-09-19 Sam Weinig <sam@webkit.org> · 18b17a64
      weinig@apple.com authored
              Roll r36694 back in.  It did not cause the crash.
      
              * JavaScriptCore.exp:
              * VM/JSPropertyNameIterator.cpp:
              (JSC::JSPropertyNameIterator::~JSPropertyNameIterator):
              (JSC::JSPropertyNameIterator::invalidate):
              * VM/JSPropertyNameIterator.h:
              (JSC::JSPropertyNameIterator::JSPropertyNameIterator):
              (JSC::JSPropertyNameIterator::create):
              * kjs/JSObject.cpp:
              (JSC::JSObject::getPropertyNames):
              * kjs/PropertyMap.cpp:
              (JSC::PropertyMap::getEnumerablePropertyNames):
              * kjs/PropertyMap.h:
              * kjs/PropertyNameArray.cpp:
              (JSC::PropertyNameArray::add):
              * kjs/PropertyNameArray.h:
              (JSC::PropertyNameArrayData::create):
              (JSC::PropertyNameArrayData::propertyNameVector):
              (JSC::PropertyNameArrayData::setCachedPrototypeChain):
              (JSC::PropertyNameArrayData::cachedPrototypeChain):
              (JSC::PropertyNameArrayData::begin):
              (JSC::PropertyNameArrayData::end):
              (JSC::PropertyNameArrayData::PropertyNameArrayData):
              (JSC::PropertyNameArray::PropertyNameArray):
              (JSC::PropertyNameArray::addKnownUnique):
              (JSC::PropertyNameArray::size):
              (JSC::PropertyNameArray::operator[]):
              (JSC::PropertyNameArray::begin):
              (JSC::PropertyNameArray::end):
              (JSC::PropertyNameArray::setData):
              (JSC::PropertyNameArray::data):
              (JSC::PropertyNameArray::releaseData):
              * kjs/StructureID.cpp:
              (JSC::structureIDChainsAreEqual):
              (JSC::StructureID::getEnumerablePropertyNames):
              (JSC::StructureID::clearEnumerationCache):
              (JSC::StructureID::createCachedPrototypeChain):
              * kjs/StructureID.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36701 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      18b17a64
    • weinig@apple.com's avatar
      2008-09-19 Sam Weinig <sam@webkit.org> · da05197a
      weinig@apple.com authored
              Roll out r36694.
      
              * JavaScriptCore.exp:
              * VM/JSPropertyNameIterator.cpp:
              (JSC::JSPropertyNameIterator::~JSPropertyNameIterator):
              (JSC::JSPropertyNameIterator::invalidate):
              * VM/JSPropertyNameIterator.h:
              (JSC::JSPropertyNameIterator::JSPropertyNameIterator):
              (JSC::JSPropertyNameIterator::create):
              * kjs/JSObject.cpp:
              (JSC::JSObject::getPropertyNames):
              * kjs/PropertyMap.cpp:
              (JSC::PropertyMap::getEnumerablePropertyNames):
              * kjs/PropertyMap.h:
              * kjs/PropertyNameArray.cpp:
              (JSC::PropertyNameArray::add):
              * kjs/PropertyNameArray.h:
              (JSC::PropertyNameArray::PropertyNameArray):
              (JSC::PropertyNameArray::addKnownUnique):
              (JSC::PropertyNameArray::begin):
              (JSC::PropertyNameArray::end):
              (JSC::PropertyNameArray::size):
              (JSC::PropertyNameArray::operator[]):
              (JSC::PropertyNameArray::releaseIdentifiers):
              * kjs/StructureID.cpp:
              (JSC::StructureID::getEnumerablePropertyNames):
              * kjs/StructureID.h:
              (JSC::StructureID::clearEnumerationCache):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36696 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      da05197a
    • weinig@apple.com's avatar
      2008-09-19 Sam Weinig <sam@webkit.org> · ba6fae8a
      weinig@apple.com authored
              Reviewed by Darin Adler.
      
              Patch for https://bugs.webkit.org/show_bug.cgi?id=20928
              Speed up JS property enumeration by caching entire PropertyNameArray
      
              1.3% speedup on Sunspider, 30% on string-fasta.
      
              * JavaScriptCore.exp:
              * VM/JSPropertyNameIterator.cpp:
              (JSC::JSPropertyNameIterator::~JSPropertyNameIterator):
              (JSC::JSPropertyNameIterator::invalidate):
              * VM/JSPropertyNameIterator.h:
              (JSC::JSPropertyNameIterator::JSPropertyNameIterator):
              (JSC::JSPropertyNameIterator::create):
              * kjs/JSObject.cpp:
              (JSC::JSObject::getPropertyNames):
              * kjs/PropertyMap.cpp:
              (JSC::PropertyMap::getEnumerablePropertyNames):
              * kjs/PropertyMap.h:
              * kjs/PropertyNameArray.cpp:
              (JSC::PropertyNameArray::add):
              * kjs/PropertyNameArray.h:
              (JSC::PropertyNameArrayData::create):
              (JSC::PropertyNameArrayData::propertyNameVector):
              (JSC::PropertyNameArrayData::setCachedPrototypeChain):
              (JSC::PropertyNameArrayData::cachedPrototypeChain):
              (JSC::PropertyNameArrayData::begin):
              (JSC::PropertyNameArrayData::end):
              (JSC::PropertyNameArrayData::PropertyNameArrayData):
              (JSC::PropertyNameArray::PropertyNameArray):
              (JSC::PropertyNameArray::addKnownUnique):
              (JSC::PropertyNameArray::size):
              (JSC::PropertyNameArray::operator[]):
              (JSC::PropertyNameArray::begin):
              (JSC::PropertyNameArray::end):
              (JSC::PropertyNameArray::setData):
              (JSC::PropertyNameArray::data):
              (JSC::PropertyNameArray::releaseData):
              * kjs/ScopeChain.cpp:
              (JSC::ScopeChainNode::print):
              * kjs/StructureID.cpp:
              (JSC::structureIDChainsAreEqual):
              (JSC::StructureID::getEnumerablePropertyNames):
              (JSC::StructureID::clearEnumerationCache):
              (JSC::StructureID::createCachedPrototypeChain):
              * kjs/StructureID.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36694 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ba6fae8a
    • zecke@webkit.org's avatar
      7d899efd
  8. 15 Sep, 2008 2 commits
    • mjs@apple.com's avatar
      2008-09-15 Maciej Stachowiak <mjs@apple.com> · 06773eb7
      mjs@apple.com authored
              Reviewed by Cameron Zwarich.
              
              - fix layout test failure introduced by fix for 20849
              
              (The failing test was fast/js/delete-then-put.html)
      
              * kjs/JSObject.cpp:
              (JSC::JSObject::removeDirect): Clear enumeration cache
              in the dictionary case.
              * kjs/JSObject.h:
              (JSC::JSObject::putDirect): Ditto.
              * kjs/StructureID.h:
              (JSC::StructureID::clearEnumerationCache): Inline to handle the
              clear.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36436 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      06773eb7
    • weinig@apple.com's avatar
      2008-09-15 Sam Weinig <sam@webkit.org> · 503d9991
      weinig@apple.com authored
              Reviewed by Maciej Stachowiak.
      
              Patch for https://bugs.webkit.org/show_bug.cgi?id=20849
              Cache property names for getEnumerablePropertyNames in the StructureID.
      
              ~0.5% speedup on Sunspider overall (9.7% speedup on string-fasta).  ~1% speedup
              on the v8 test suite.
      
              * kjs/JSObject.cpp:
              (JSC::JSObject::getPropertyNames):
              * kjs/PropertyMap.cpp:
              (JSC::PropertyMap::getEnumerablePropertyNames):
              * kjs/PropertyMap.h:
              * kjs/StructureID.cpp:
              (JSC::StructureID::StructureID):
              (JSC::StructureID::getEnumerablePropertyNames):
              * kjs/StructureID.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36429 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      503d9991
  9. 14 Sep, 2008 1 commit
    • mjs@apple.com's avatar
      2008-09-14 Maciej Stachowiak <mjs@apple.com> · 988df6c1
      mjs@apple.com authored
              Reviewed by Cameron Zwarich.
              
              - split the "prototype" lookup for hasInstance into opcode stream so it can be cached
              
              ~5% speedup on v8 earley-boyer test
      
              * API/JSCallbackObject.h: Add a parameter for the pre-looked-up prototype.
              * API/JSCallbackObjectFunctions.h:
              (JSC::::hasInstance): Ditto.
              * API/JSValueRef.cpp:
              (JSValueIsInstanceOfConstructor): Look up and pass in prototype.
              * JavaScriptCore.exp:
              * VM/CTI.cpp:
              (JSC::CTI::privateCompileMainPass): Pass along prototype.
              * VM/CodeBlock.cpp:
              (JSC::CodeBlock::dump): Print third arg.
              * VM/CodeGenerator.cpp:
              (JSC::CodeGenerator::emitInstanceOf): Implement this, now that there
              is a third argument.
              * VM/CodeGenerator.h:
              * VM/Machine.cpp:
              (JSC::Machine::privateExecute): Pass along the prototype.
              (JSC::Machine::cti_op_instanceof): ditto
              * kjs/JSObject.cpp:
              (JSC::JSObject::hasInstance): Expect to get a pre-looked-up prototype.
              * kjs/JSObject.h:
              * kjs/nodes.cpp:
              (JSC::InstanceOfNode::emitCode): Emit a get_by_id of the prototype
              property and pass that register to instanceof.
              * kjs/nodes.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36417 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      988df6c1
  10. 12 Sep, 2008 1 commit
  11. 10 Sep, 2008 1 commit
    • weinig@apple.com's avatar
      2008-09-10 Sam Weinig <sam@webkit.org> · 529e3d55
      weinig@apple.com authored
              Reviewed by Geoff Garen.
      
              Add inline property storage for JSObject.
      
              1.2% progression on Sunspider. .5% progression on the v8 test suite.
      
              * JavaScriptCore.exp:
              * VM/CTI.cpp:
              (JSC::CTI::privateCompileGetByIdProto):
              (JSC::CTI::privateCompileGetByIdChain):
              * kjs/JSObject.cpp:
              (JSC::JSObject::mark): There is no reason to check storageSize now that
              we start from 0.
              (JSC::JSObject::allocatePropertyStorage): Allocates/reallocates heap storage.
              * kjs/JSObject.h:
              (JSC::JSObject::offsetForLocation): m_propertyStorage is not an OwnArrayPtr
              now so there is no reason to .get()
              (JSC::JSObject::usingInlineStorage):
              (JSC::JSObject::JSObject): Start with m_propertyStorage pointing to the
              inline storage.
              (JSC::JSObject::~JSObject): Free the heap storage if not using the inline
              storage.
              (JSC::JSObject::putDirect): Switch to the heap storage only when we know
              we know that we are about to add a property that will overflow the inline
              storage.
              * kjs/PropertyMap.cpp:
              (JSC::PropertyMap::createTable): Don't allocate the propertyStorage, that is
              now handled by JSObject.
              (JSC::PropertyMap::rehash): PropertyStorage is not a OwnArrayPtr anymore.
              * kjs/PropertyMap.h:
              (JSC::PropertyMap::storageSize): Rename from markingCount.
              * kjs/StructureID.cpp:
              (JSC::StructureID::addPropertyTransition): Don't resize the property storage
              if we are using inline storage.
              * kjs/StructureID.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36325 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      529e3d55
  12. 09 Sep, 2008 3 commits
    • weinig@apple.com's avatar
      2008-09-09 Sam Weinig <sam@webkit.org> · 196352dd
      weinig@apple.com authored
              Reviewed by Cameron Zwarich.
      
              Don't waste the first item in the PropertyStorage.
      
              - Fix typo (makingCount -> markingCount)
              - Remove undefined method declaration.
      
              No change on Sunspider.
      
              * kjs/JSObject.cpp:
              (JSC::JSObject::mark):
              * kjs/PropertyMap.cpp:
              (JSC::PropertyMap::put):
              (JSC::PropertyMap::remove):
              (JSC::PropertyMap::getOffset):
              (JSC::PropertyMap::insert):
              (JSC::PropertyMap::rehash):
              (JSC::PropertyMap::resizePropertyStorage):
              (JSC::PropertyMap::checkConsistency):
              * kjs/PropertyMap.h:
              (JSC::PropertyMap::markingCount): Fix typo.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36310 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      196352dd
    • weinig@apple.com's avatar
      2008-09-09 Sam Weinig <sam@webkit.org> · 0d878bff
      weinig@apple.com authored
              Reviewed by Geoffrey Garen.
      
              Replace uses of PropertyMap::get and PropertyMap::getLocation with
              PropertyMap::getOffset.
      
              Sunspider reports this as a .6% improvement.
      
              * JavaScriptCore.exp:
              * kjs/JSObject.cpp:
              (JSC::JSObject::put):
              (JSC::JSObject::deleteProperty):
              (JSC::JSObject::getPropertyAttributes):
              * kjs/JSObject.h:
              (JSC::JSObject::getDirect):
              (JSC::JSObject::getDirectLocation):
              (JSC::JSObject::locationForOffset):
              * kjs/PropertyMap.cpp:
              (JSC::PropertyMap::remove):
              (JSC::PropertyMap::getOffset):
              * kjs/PropertyMap.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36304 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0d878bff
    • weinig@apple.com's avatar
      JavaScriptCore: · 22294303
      weinig@apple.com authored
      2008-09-08  Sam Weinig  <sam@webkit.org>
      
              Reviewed by Maciej Stachowiak and Oliver Hunt.
      
              Split storage of properties out of the PropertyMap and into the JSObject
              to allow sharing PropertyMap on the StructureID.  In order to get this
              function correctly, the StructureID's transition mappings were changed to
              transition based on property name and attribute pairs, instead of just
              property name.
      
              - Removes the single property optimization now that the PropertyMap is shared.
                This will be replaced by in-lining some values on the JSObject.
      
              This is a wash on Sunspider and a 6.7% win on the v8 test suite.
      
              * JavaScriptCore.base.exp:
              * VM/CTI.cpp:
              (JSC::CTI::privateCompileGetByIdSelf): Get the storage directly off the JSObject.
              (JSC::CTI::privateCompileGetByIdProto): Ditto.
              (JSC::CTI::privateCompileGetByIdChain): Ditto.
              (JSC::CTI::privateCompilePutByIdReplace): Ditto.
              * kjs/JSObject.cpp:
              (JSC::JSObject::mark): Mark the PropertyStorage.
              (JSC::JSObject::put): Update to get the propertyMap of the StructureID.
              (JSC::JSObject::deleteProperty): Ditto.
              (JSC::JSObject::defineGetter): Return early if the property is already a getter/setter.
              (JSC::JSObject::defineSetter): Ditto.
              (JSC::JSObject::getPropertyAttributes): Update to get the propertyMap of the StructureID
              (JSC::JSObject::getPropertyNames): Ditto.
              (JSC::JSObject::removeDirect): Ditto.
              * kjs/JSObject.h: Remove PropertyMap and add PropertyStorage.
              (JSC::JSObject::propertyStorage): return the PropertyStorage.
              (JSC::JSObject::getDirect): Update to get the propertyMap of the StructureID.
              (JSC::JSObject::getDirectLocation): Ditto.
              (JSC::JSObject::offsetForLocation): Compute location directly.
              (JSC::JSObject::hasCustomProperties): Update to get the propertyMap of the StructureID.
              (JSC::JSObject::hasGetterSetterProperties): Ditto.
              (JSC::JSObject::getDirectOffset): Get by indexing into PropertyStorage.
              (JSC::JSObject::putDirectOffset): Put by indexing into PropertyStorage.
              (JSC::JSObject::getOwnPropertySlotForWrite): Update to get the propertyMap of the StructureID.
              (JSC::JSObject::getOwnPropertySlot): Ditto.
              (JSC::JSObject::putDirect): Move putting into the StructureID unless the property already exists.
              * kjs/PropertyMap.cpp: Use the propertyStorage as the storage for the JSValues.
              (JSC::PropertyMap::checkConsistency): 
              (JSC::PropertyMap::operator=):
              (JSC::PropertyMap::~PropertyMap):
              (JSC::PropertyMap::get):
              (JSC::PropertyMap::getLocation):
              (JSC::PropertyMap::put):
              (JSC::PropertyMap::getOffset):
              (JSC::PropertyMap::insert):
              (JSC::PropertyMap::expand):
              (JSC::PropertyMap::rehash):
              (JSC::PropertyMap::createTable):
              (JSC::PropertyMap::resizePropertyStorage): Resize the storage to match the size of the map
              (JSC::PropertyMap::remove):
              (JSC::PropertyMap::getEnumerablePropertyNames):
              * kjs/PropertyMap.h: 
              (JSC::PropertyMapEntry::PropertyMapEntry):
              (JSC::PropertyMap::isEmpty):
              (JSC::PropertyMap::size):
              (JSC::PropertyMap::makingCount):
              (JSC::PropertyMap::PropertyMap):
      
              * kjs/StructureID.cpp: 
              (JSC::StructureID::addPropertyTransition): Transitions now are based off the property name
              and attributes. 
              (JSC::StructureID::toDictionaryTransition): Copy the map.
              (JSC::StructureID::changePrototypeTransition): Copy the map.
              (JSC::StructureID::getterSetterTransition): Copy the map.
              (JSC::StructureID::~StructureID): 
              * kjs/StructureID.h:
              (JSC::TransitionTableHash::hash): Custom hash for transition map.
              (JSC::TransitionTableHash::equal): Ditto.
              (JSC::TransitionTableHashTraits::emptyValue): Custom traits for transition map
              (JSC::TransitionTableHashTraits::constructDeletedValue): Ditto.
              (JSC::TransitionTableHashTraits::isDeletedValue): Ditto.
              (JSC::StructureID::propertyMap): Added.
      
      JavaScriptGlue:
      
      2008-09-08  Sam Weinig  <sam@webkit.org>
      
              Reviewed by Maciej Stachowiak and Oliver Hunt.
      
              Add forwarding headers.
      
              * ForwardingHeaders/wtf/HashFunctions.h: Added.
              * ForwardingHeaders/wtf/HashTraits.h: Added.
      
      WebCore:
      
      2008-09-08  Sam Weinig  <sam@webkit.org>
      
              Reviewed by Maciej Stachowiak and Oliver Hunt.
      
              Add forwarding headers.
      
              * ForwardingHeaders/wtf/HashFunctions.h: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36285 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      22294303
  13. 07 Sep, 2008 1 commit
    • cwzwarich@webkit.org's avatar
      2008-09-07 Cameron Zwarich <cwzwarich@uwaterloo.ca> · 3f782f6a
      cwzwarich@webkit.org authored
              Reviewed by Maciej Stachowiak.
      
              Bug 20704: Replace the KJS namespace
              <https://bugs.webkit.org/show_bug.cgi?id=20704>
      
              Rename the KJS namespace to JSC. There are still some uses of KJS in
              preprocessor macros and comments, but these will also be changed some
              time in the near future. There are also some uses in the names of JNI
              functions, but I will check if these are safe to change as well.
      
              JavaScriptCore:
      
              * API/APICast.h:
              (toJS):
              (toRef):
              (toGlobalRef):
              * API/JSBase.cpp:
              * API/JSCallbackConstructor.cpp:
              * API/JSCallbackConstructor.h:
              * API/JSCallbackFunction.cpp:
              * API/JSCallbackFunction.h:
              * API/JSCallbackObject.cpp:
              * API/JSCallbackObject.h:
              * API/JSCallbackObjectFunctions.h:
              * API/JSClassRef.cpp:
              (OpaqueJSClass::staticValues):
              (OpaqueJSClass::staticFunctions):
              * API/JSClassRef.h:
              * API/JSContextRef.cpp:
              * API/JSObjectRef.cpp:
              * API/JSProfilerPrivate.cpp:
              * API/JSStringRef.cpp:
              * API/JSValueRef.cpp:
              (JSValueGetType):
              * API/OpaqueJSString.cpp:
              * API/OpaqueJSString.h:
              * JavaScriptCore.Debug.exp:
              * JavaScriptCore.base.exp:
              * VM/CTI.cpp:
              (JSC::):
              * VM/CTI.h:
              * VM/CodeBlock.cpp:
              * VM/CodeBlock.h:
              * VM/CodeGenerator.cpp:
              * VM/CodeGenerator.h:
              * VM/ExceptionHelpers.cpp:
              * VM/ExceptionHelpers.h:
              * VM/Instruction.h:
              * VM/JSPropertyNameIterator.cpp:
              * VM/JSPropertyNameIterator.h:
              * VM/LabelID.h:
              * VM/Machine.cpp:
              * VM/Machine.h:
              * VM/Opcode.cpp:
              * VM/Opcode.h:
              * VM/Register.h:
              (WTF::):
              * VM/RegisterFile.cpp:
              * VM/RegisterFile.h:
              * VM/RegisterID.h:
              (WTF::):
              * VM/SamplingTool.cpp:
              * VM/SamplingTool.h:
              * VM/SegmentedVector.h:
              * kjs/ArgList.cpp:
              * kjs/ArgList.h:
              * kjs/Arguments.cpp:
              * kjs/Arguments.h:
              * kjs/ArrayConstructor.cpp:
              * kjs/ArrayConstructor.h:
              * kjs/ArrayPrototype.cpp:
              * kjs/ArrayPrototype.h:
              * kjs/BatchedTransitionOptimizer.h:
              * kjs/BooleanConstructor.cpp:
              * kjs/BooleanConstructor.h:
              * kjs/BooleanObject.cpp:
              * kjs/BooleanObject.h:
              * kjs/BooleanPrototype.cpp:
              * kjs/BooleanPrototype.h:
              * kjs/CallData.cpp:
              * kjs/CallData.h:
              * kjs/ClassInfo.h:
              * kjs/CommonIdentifiers.cpp:
              * kjs/CommonIdentifiers.h:
              * kjs/ConstructData.cpp:
              * kjs/ConstructData.h:
              * kjs/DateConstructor.cpp:
              * kjs/DateConstructor.h:
              * kjs/DateInstance.cpp:
              (JSC::DateInstance::msToGregorianDateTime):
              * kjs/DateInstance.h:
              * kjs/DateMath.cpp:
              * kjs/DateMath.h:
              * kjs/DatePrototype.cpp:
              * kjs/DatePrototype.h:
              * kjs/DebuggerCallFrame.cpp:
              * kjs/DebuggerCallFrame.h:
              * kjs/Error.cpp:
              * kjs/Error.h:
              * kjs/ErrorConstructor.cpp:
              * kjs/ErrorConstructor.h:
              * kjs/ErrorInstance.cpp:
              * kjs/ErrorInstance.h:
              * kjs/ErrorPrototype.cpp:
              * kjs/ErrorPrototype.h:
              * kjs/ExecState.cpp:
              * kjs/ExecState.h:
              * kjs/FunctionConstructor.cpp:
              * kjs/FunctionConstructor.h:
              * kjs/FunctionPrototype.cpp:
              * kjs/FunctionPrototype.h:
              * kjs/GetterSetter.cpp:
              * kjs/GetterSetter.h:
              * kjs/GlobalEvalFunction.cpp:
              * kjs/GlobalEvalFunction.h:
              * kjs/IndexToNameMap.cpp:
              * kjs/IndexToNameMap.h:
              * kjs/InitializeThreading.cpp:
              * kjs/InitializeThreading.h:
              * kjs/InternalFunction.cpp:
              * kjs/InternalFunction.h:
              (JSC::InternalFunction::InternalFunction):
              * kjs/JSActivation.cpp:
              * kjs/JSActivation.h:
              * kjs/JSArray.cpp:
              * kjs/JSArray.h:
              * kjs/JSCell.cpp:
              * kjs/JSCell.h:
              * kjs/JSFunction.cpp:
              * kjs/JSFunction.h:
              (JSC::JSFunction::JSFunction):
              * kjs/JSGlobalData.cpp:
              (JSC::JSGlobalData::JSGlobalData):
              * kjs/JSGlobalData.h:
              * kjs/JSGlobalObject.cpp:
              * kjs/JSGlobalObject.h:
              * kjs/JSGlobalObjectFunctions.cpp:
              * kjs/JSGlobalObjectFunctions.h:
              * kjs/JSImmediate.cpp:
              * kjs/JSImmediate.h:
              * kjs/JSLock.cpp:
              * kjs/JSLock.h:
              * kjs/JSNotAnObject.cpp:
              * kjs/JSNotAnObject.h:
              * kjs/JSNumberCell.cpp:
              * kjs/JSNumberCell.h:
              * kjs/JSObject.cpp:
              * kjs/JSObject.h:
              * kjs/JSStaticScopeObject.cpp:
              * kjs/JSStaticScopeObject.h:
              * kjs/JSString.cpp:
              * kjs/JSString.h:
              * kjs/JSType.h:
              * kjs/JSValue.cpp:
              * kjs/JSValue.h:
              * kjs/JSVariableObject.cpp:
              * kjs/JSVariableObject.h:
              * kjs/JSWrapperObject.cpp:
              * kjs/JSWrapperObject.h:
              * kjs/LabelStack.cpp:
              * kjs/LabelStack.h:
              * kjs/MathObject.cpp:
              * kjs/MathObject.h:
              * kjs/NativeErrorConstructor.cpp:
              * kjs/NativeErrorConstructor.h:
              * kjs/NativeErrorPrototype.cpp:
              * kjs/NativeErrorPrototype.h:
              * kjs/NodeInfo.h:
              * kjs/NumberConstructor.cpp:
              * kjs/NumberConstructor.h:
              * kjs/NumberObject.cpp:
              * kjs/NumberObject.h:
              * kjs/NumberPrototype.cpp:
              * kjs/NumberPrototype.h:
              * kjs/ObjectConstructor.cpp:
              * kjs/ObjectConstructor.h:
              * kjs/ObjectPrototype.cpp:
              * kjs/ObjectPrototype.h:
              * kjs/Parser.cpp:
              * kjs/Parser.h:
              * kjs/PropertyMap.cpp:
              (JSC::PropertyMapStatisticsExitLogger::~PropertyMapStatisticsExitLogger):
              * kjs/PropertyMap.h:
              * kjs/PropertyNameArray.cpp:
              * kjs/PropertyNameArray.h:
              * kjs/PropertySlot.cpp:
              * kjs/PropertySlot.h:
              * kjs/PrototypeFunction.cpp:
              * kjs/PrototypeFunction.h:
              * kjs/PutPropertySlot.h:
              * kjs/RegExpConstructor.cpp:
              * kjs/RegExpConstructor.h:
              * kjs/RegExpObject.cpp:
              * kjs/RegExpObject.h:
              * kjs/RegExpPrototype.cpp:
              * kjs/RegExpPrototype.h:
              * kjs/ScopeChain.cpp:
              * kjs/ScopeChain.h:
              * kjs/ScopeChainMark.h:
              * kjs/Shell.cpp:
              (jscmain):
              * kjs/SmallStrings.cpp:
              * kjs/SmallStrings.h:
              * kjs/SourceProvider.h:
              * kjs/SourceRange.h:
              * kjs/StringConstructor.cpp:
              * kjs/StringConstructor.h:
              * kjs/StringObject.cpp:
              * kjs/StringObject.h:
              * kjs/StringObjectThatMasqueradesAsUndefined.h:
              * kjs/StringPrototype.cpp:
              * kjs/StringPrototype.h:
              * kjs/StructureID.cpp:
              * kjs/StructureID.h:
              * kjs/SymbolTable.h:
              * kjs/collector.cpp:
              * kjs/collector.h:
              * kjs/completion.h:
              * kjs/create_hash_table:
              * kjs/debugger.cpp:
              * kjs/debugger.h:
              * kjs/dtoa.cpp:
              * kjs/dtoa.h:
              * kjs/grammar.y:
              * kjs/identifier.cpp:
              * kjs/identifier.h:
              (JSC::Identifier::equal):
              * kjs/interpreter.cpp:
              * kjs/interpreter.h:
              * kjs/lexer.cpp:
              (JSC::Lexer::Lexer):
              (JSC::Lexer::clear):
              (JSC::Lexer::makeIdentifier):
              * kjs/lexer.h:
              * kjs/lookup.cpp:
              * kjs/lookup.h:
              * kjs/nodes.cpp:
              * kjs/nodes.h:
              * kjs/nodes2string.cpp:
              * kjs/operations.cpp:
              * kjs/operations.h:
              * kjs/protect.h:
              * kjs/regexp.cpp:
              * kjs/regexp.h:
              * kjs/ustring.cpp:
              * kjs/ustring.h:
              (JSC::operator!=):
              (JSC::IdentifierRepHash::hash):
              (WTF::):
              * masm/MacroAssembler.h:
              * masm/MacroAssemblerWin.cpp:
              * masm/X86Assembler.h:
              * pcre/pcre_exec.cpp:
              * profiler/CallIdentifier.h:
              (WTF::):
              * profiler/HeavyProfile.cpp:
              * profiler/HeavyProfile.h:
              * profiler/Profile.cpp:
              * profiler/Profile.h:
              * profiler/ProfileGenerator.cpp:
              * profiler/ProfileGenerator.h:
              * profiler/ProfileNode.cpp:
              * profiler/ProfileNode.h:
              * profiler/Profiler.cpp:
              * profiler/Profiler.h:
              * profiler/TreeProfile.cpp:
              * profiler/TreeProfile.h:
              * wrec/WREC.cpp:
              * wrec/WREC.h:
              * wtf/AVLTree.h:
      
              WebCore:
      
              * WebCore.base.exp:
              * bindings/js/GCController.cpp:
              * bindings/js/JSAttrCustom.cpp:
              * bindings/js/JSAudioConstructor.cpp:
              * bindings/js/JSAudioConstructor.h:
              (WebCore::JSAudioConstructor::classInfo):
              * bindings/js/JSCSSRuleCustom.cpp:
              * bindings/js/JSCSSStyleDeclarationCustom.cpp:
              * bindings/js/JSCSSValueCustom.cpp:
              * bindings/js/JSCanvasPixelArrayCustom.cpp:
              * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
              * bindings/js/JSClipboardCustom.cpp:
              * bindings/js/JSConsoleCustom.cpp:
              * bindings/js/JSCustomSQLStatementCallback.cpp:
              (WebCore::JSCustomSQLStatementCallback::handleEvent):
              * bindings/js/JSCustomSQLStatementCallback.h:
              (WebCore::JSCustomSQLStatementCallback::create):
              * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
              (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
              * bindings/js/JSCustomSQLStatementErrorCallback.h:
              (WebCore::JSCustomSQLStatementErrorCallback::create):
              * bindings/js/JSCustomSQLTransactionCallback.cpp:
              (WebCore::JSCustomSQLTransactionCallback::handleEvent):
              * bindings/js/JSCustomSQLTransactionCallback.h:
              (WebCore::JSCustomSQLTransactionCallback::create):
              * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
              (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
              * bindings/js/JSCustomSQLTransactionErrorCallback.h:
              (WebCore::JSCustomSQLTransactionErrorCallback::create):
              * bindings/js/JSCustomVoidCallback.cpp:
              (WebCore::JSCustomVoidCallback::handleEvent):
              * bindings/js/JSCustomVoidCallback.h:
              (WebCore::JSCustomVoidCallback::create):
              * bindings/js/JSCustomXPathNSResolver.cpp:
              (WebCore::JSCustomXPathNSResolver::create):
              * bindings/js/JSCustomXPathNSResolver.h:
              * bindings/js/JSDOMApplicationCacheCustom.cpp:
              (WebCore::JSDOMApplicationCache::dispatchEvent):
              * bindings/js/JSDOMBinding.cpp:
              (WebCore::jsOwnedStringOrNull):
              * bindings/js/JSDOMBinding.h:
              (WebCore::DOMObject::DOMObject):
              (WebCore::cacheDOMObject):
              (WebCore::cacheSVGDOMObject):
              (WebCore::DOMExceptionTranslator::DOMExceptionTranslator):
              (WebCore::toJS):
              * bindings/js/JSDOMWindowBase.cpp:
              * bindings/js/JSDOMWindowBase.h:
              (WebCore::JSDOMWindowBase::classInfo):
              (WebCore::JSDOMWindowBase::d):
              * bindings/js/JSDOMWindowCustom.cpp:
              (WebCore::JSDOMWindow::getPropertyAttributes):
              * bindings/js/JSDOMWindowCustom.h:
              (WebCore::asJSDOMWindow):
              (WebCore::JSDOMWindow::customGetOwnPropertySlot):
              (WebCore::JSDOMWindow::customPut):
              (WebCore::JSDOMWindowBase::allowsAccessFrom):
              (WebCore::JSDOMWindowBase::allowsAccessFromNoErrorMessage):
              * bindings/js/JSDOMWindowShell.cpp:
              (WebCore::JSDOMWindowShell::getPropertyAttributes):
              * bindings/js/JSDOMWindowShell.h:
              (WebCore::JSDOMWindowShell::classInfo):
              * bindings/js/JSDatabaseCustom.cpp:
              * bindings/js/JSDocumentCustom.cpp:
              * bindings/js/JSDocumentFragmentCustom.cpp:
              * bindings/js/JSElementCustom.cpp:
              * bindings/js/JSEventCustom.cpp:
              * bindings/js/JSEventListener.cpp:
              * bindings/js/JSEventListener.h:
              (WebCore::JSUnprotectedEventListener::create):
              (WebCore::JSEventListener::create):
              * bindings/js/JSEventTargetBase.cpp:
              * bindings/js/JSEventTargetBase.h:
              (WebCore::JSEventTargetBase::getValueProperty):
              (WebCore::JSEventTargetBase::putValueProperty):
              (WebCore::JSEventTargetBase::getOwnPropertySlot):
              (WebCore::JSEventTargetBase::put):
              (WebCore::JSEventTargetPrototype::JSEventTargetPrototype):
              (WebCore::JSEventTargetPrototype::self):
              (WebCore::JSEventTargetPrototype::getOwnPropertySlot):
              (WebCore::JSEventTargetPrototype::classInfo):
              * bindings/js/JSEventTargetNode.cpp:
              * bindings/js/JSEventTargetNode.h:
              (WebCore::JSEventTargetNode::getOwnPropertySlot):
              (WebCore::JSEventTargetNode::getValueProperty):
              (WebCore::JSEventTargetNode::put):
              (WebCore::JSEventTargetNode::putValueProperty):
              * bindings/js/JSHTMLAllCollection.h:
              (WebCore::JSHTMLAllCollection::JSHTMLAllCollection):
              (WebCore::JSHTMLAllCollection::toBoolean):
              * bindings/js/JSHTMLAppletElementCustom.cpp:
              * bindings/js/JSHTMLCollectionCustom.cpp:
              * bindings/js/JSHTMLDocumentCustom.cpp:
              * bindings/js/JSHTMLElementCustom.cpp:
              * bindings/js/JSHTMLEmbedElementCustom.cpp:
              * bindings/js/JSHTMLFormElementCustom.cpp:
              * bindings/js/JSHTMLFrameElementCustom.cpp:
              * bindings/js/JSHTMLFrameSetElementCustom.cpp:
              * bindings/js/JSHTMLIFrameElementCustom.cpp:
              * bindings/js/JSHTMLInputElementBase.cpp:
              (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase):
              (WebCore::JSHTMLInputElementBase::getOwnPropertySlot):
              * bindings/js/JSHTMLInputElementBase.h:
              (WebCore::JSHTMLInputElementBase::classInfo):
              * bindings/js/JSHTMLObjectElementCustom.cpp:
              * bindings/js/JSHTMLOptionElementConstructor.cpp:
              * bindings/js/JSHTMLOptionElementConstructor.h:
              (WebCore::JSHTMLOptionElementConstructor::classInfo):
              * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
              * bindings/js/JSHTMLSelectElementCustom.cpp:
              (WebCore::selectIndexSetter):
              (WebCore::JSHTMLSelectElement::indexSetter):
              * bindings/js/JSHTMLSelectElementCustom.h:
              * bindings/js/JSHistoryCustom.cpp:
              * bindings/js/JSImageConstructor.cpp:
              * bindings/js/JSImageConstructor.h:
              (WebCore::JSImageConstructor::classInfo):
              * bindings/js/JSInspectedObjectWrapper.cpp:
              * bindings/js/JSInspectedObjectWrapper.h:
              (WebCore::JSInspectedObjectWrapper::wrapOutgoingValue):
              (WebCore::JSInspectedObjectWrapper::classInfo):
              * bindings/js/JSInspectorCallbackWrapper.cpp:
              * bindings/js/JSInspectorCallbackWrapper.h:
              (WebCore::JSInspectorCallbackWrapper::classInfo):
              (WebCore::JSInspectorCallbackWrapper::wrapOutgoingValue):
              * bindings/js/JSJavaScriptCallFrameCustom.cpp:
              * bindings/js/JSLocationCustom.cpp:
              * bindings/js/JSMimeTypeArrayCustom.cpp:
              * bindings/js/JSNSResolver.cpp:
              * bindings/js/JSNSResolver.h:
              (WebCore::JSNSResolver::create):
              * bindings/js/JSNamedNodeMapCustom.cpp:
              * bindings/js/JSNamedNodesCollection.cpp:
              (WebCore::JSNamedNodesCollection::JSNamedNodesCollection):
              * bindings/js/JSNamedNodesCollection.h:
              (WebCore::JSNamedNodesCollection::classInfo):
              * bindings/js/JSNavigatorCustom.cpp:
              * bindings/js/JSNodeCustom.cpp:
              * bindings/js/JSNodeFilterCondition.cpp:
              (WebCore::JSNodeFilterCondition::acceptNode):
              * bindings/js/JSNodeFilterCondition.h:
              (WebCore::JSNodeFilterCondition::create):
              * bindings/js/JSNodeFilterCustom.cpp:
              * bindings/js/JSNodeIteratorCustom.cpp:
              * bindings/js/JSNodeListCustom.cpp:
              * bindings/js/JSPluginArrayCustom.cpp:
              * bindings/js/JSPluginCustom.cpp:
              * bindings/js/JSPluginElementFunctions.cpp:
              (WebCore::getRuntimeObject):
              * bindings/js/JSPluginElementFunctions.h:
              * bindings/js/JSQuarantinedObjectWrapper.cpp:
              (WebCore::JSQuarantinedObjectWrapper::construct):
              (WebCore::JSQuarantinedObjectWrapper::call):
              * bindings/js/JSQuarantinedObjectWrapper.h:
              (WebCore::JSQuarantinedObjectWrapper::unwrappedObject):
              (WebCore::JSQuarantinedObjectWrapper::unwrappedGlobalObject):
              (WebCore::JSQuarantinedObjectWrapper::className):
              * bindings/js/JSRGBColor.cpp:
              * bindings/js/JSRGBColor.h:
              (WebCore::JSRGBColor::classInfo):
              * bindings/js/JSSQLResultSetRowListCustom.cpp:
              * bindings/js/JSSQLTransactionCustom.cpp:
              * bindings/js/JSSVGLazyEventListener.cpp:
              * bindings/js/JSSVGLazyEventListener.h:
              * bindings/js/JSSVGLengthCustom.cpp:
              * bindings/js/JSSVGMatrixCustom.cpp:
              (WebCore::JSSVGMatrix::inverse):
              (WebCore::JSSVGMatrix::rotateFromVector):
              * bindings/js/JSSVGPathSegCustom.cpp:
              * 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:
              * bindings/js/JSSVGTransformListCustom.cpp:
              * bindings/js/JSStorageCustom.cpp:
              * bindings/js/JSStyleSheetCustom.cpp:
              * bindings/js/JSStyleSheetListCustom.cpp:
              * bindings/js/JSTextCustom.cpp:
              * bindings/js/JSTreeWalkerCustom.cpp:
              * bindings/js/JSXMLHttpRequestConstructor.cpp:
              * bindings/js/JSXMLHttpRequestConstructor.h:
              (WebCore::JSXMLHttpRequestConstructor::classInfo):
              * bindings/js/JSXMLHttpRequestCustom.cpp:
              * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
              * bindings/js/JSXSLTProcessorConstructor.cpp:
              * bindings/js/JSXSLTProcessorConstructor.h:
              (WebCore::JSXSLTProcessorConstructor::classInfo):
              * bindings/js/JSXSLTProcessorCustom.cpp:
              * bindings/js/ScheduledAction.cpp:
              * bindings/js/ScheduledAction.h:
              * bindings/js/ScriptController.cpp:
              (WebCore::ScriptController::attachDebugger):
              (WebCore::ScriptController::windowScriptNPObject):
              * bindings/js/ScriptController.h:
              * bindings/js/ScriptControllerGtk.cpp:
              (WebCore::ScriptController::createScriptInstanceForWidget):
              * bindings/js/ScriptControllerMac.mm:
              (WebCore::ScriptController::createScriptInstanceForWidget):
              (WebCore::ScriptController::windowScriptObject):
              (WebCore::ScriptController::clearPlatformScriptObjects):
              (WebCore::updateRenderingForBindings):
              (WebCore::ScriptController::initJavaJSBindings):
              * bindings/js/ScriptControllerQt.cpp:
              (WebCore::ScriptController::createScriptInstanceForWidget):
              * bindings/js/ScriptControllerWin.cpp:
              (WebCore::ScriptController::createScriptInstanceForWidget):
              * bindings/js/ScriptControllerWx.cpp:
              (WebCore::ScriptController::createScriptInstanceForWidget):
              * bindings/js/StringSourceProvider.h:
              (WebCore::StringSourceProvider::getRange):
              * bindings/objc/DOM.mm:
              (-[DOMNode JSC::Bindings::]):
              * bindings/objc/DOMInternal.h:
              * bindings/objc/DOMInternal.mm:
              (-[WebScriptObject _initializeScriptDOMNodeImp]):
              * bindings/objc/DOMUtility.mm:
              (JSC::createDOMWrapper):
              (WebCore::createDOMWrapper):
              * bindings/objc/WebScriptObject.mm:
              (WebCore::createJSWrapper):
              (-[WebScriptObject _initWithJSObject:JSC::originRootObject:JSC::Bindings::rootObject:JSC::Bindings::]):
              * bindings/objc/WebScriptObjectPrivate.h:
              * bindings/scripts/CodeGeneratorJS.pm:
              * bridge/NP_jsobject.cpp:
              * bridge/NP_jsobject.h:
              * bridge/c/c_class.cpp:
              * bridge/c/c_class.h:
              * bridge/c/c_instance.cpp:
              * bridge/c/c_instance.h:
              * bridge/c/c_runtime.cpp:
              * bridge/c/c_runtime.h:
              * bridge/c/c_utility.cpp:
              * bridge/c/c_utility.h:
              * bridge/jni/jni_class.cpp:
              * bridge/jni/jni_class.h:
              * bridge/jni/jni_instance.cpp:
              * bridge/jni/jni_instance.h:
              * bridge/jni/jni_jsobject.h:
              * bridge/jni/jni_jsobject.mm:
              (JavaJSObject::call):
              (JavaJSObject::convertJObjectToValue):
              * bridge/jni/jni_objc.mm:
              (JSC::Bindings::dispatchJNICall):
              * bridge/jni/jni_runtime.cpp:
              * bridge/jni/jni_runtime.h:
              * bridge/jni/jni_utility.cpp:
              * bridge/jni/jni_utility.h:
              * bridge/npruntime.cpp:
              (_NPN_GetStringIdentifier):
              * bridge/objc/WebScriptObject.h:
              * bridge/objc/objc_class.h:
              * bridge/objc/objc_class.mm:
              * bridge/objc/objc_instance.h:
              * bridge/objc/objc_instance.mm:
              * bridge/objc/objc_runtime.h:
              * bridge/objc/objc_runtime.mm:
              * bridge/objc/objc_utility.h:
              * bridge/objc/objc_utility.mm:
              * bridge/qt/qt_class.cpp:
              * bridge/qt/qt_class.h:
              * bridge/qt/qt_instance.cpp:
              * bridge/qt/qt_instance.h:
              * bridge/qt/qt_runtime.cpp:
              (JSC::Bindings::convertQVariantToValue):
              (JSC::Bindings::):
              * bridge/qt/qt_runtime.h:
              * bridge/runtime.cpp:
              * bridge/runtime.h:
              * bridge/runtime_array.cpp:
              * bridge/runtime_array.h:
              * bridge/runtime_method.cpp:
              * bridge/runtime_method.h:
              * bridge/runtime_object.cpp:
              * bridge/runtime_object.h:
              * bridge/runtime_root.cpp:
              (JSC::Bindings::RootObject::invalidate):
              (JSC::Bindings::RootObject::gcProtect):
              (JSC::Bindings::RootObject::gcUnprotect):
              * bridge/runtime_root.h:
              * bridge/testbindings.cpp:
              * bridge/testbindings.mm:
              * bridge/testqtbindings.cpp:
              * dom/Document.cpp:
              (WebCore::Document::~Document):
              * dom/NSResolver.h:
              * dom/Node.cpp:
              (WebCore::Node::setDocument):
              (WebCore::ResolveNamespaceFunctor::ResolveNamespaceFunctor):
              (WebCore::resolveNamespacesForSelector):
              (WebCore::Node::querySelector):
              (WebCore::Node::querySelectorAll):
              * dom/Node.h:
              * dom/NodeFilter.cpp:
              * dom/NodeFilter.h:
              * dom/NodeFilterCondition.cpp:
              * dom/NodeFilterCondition.h:
              * dom/NodeIterator.cpp:
              * dom/NodeIterator.h:
              * dom/Traversal.cpp:
              * dom/Traversal.h:
              * dom/TreeWalker.cpp:
              * dom/TreeWalker.h:
              * dom/make_names.pl:
              * history/CachedPage.cpp:
              * history/CachedPage.h:
              * html/HTMLPlugInElement.cpp:
              (WebCore::HTMLPlugInElement::getInstance):
              * html/HTMLPlugInElement.h:
              * loader/FrameLoader.cpp:
              * loader/FrameLoader.h:
              * loader/icon/IconDatabase.cpp:
              (WebCore::iconDatabase):
              * page/Console.cpp:
              * page/Console.h:
              * page/InspectorController.cpp:
              (WebCore::XMLHttpRequestResource::XMLHttpRequestResource):
              (WebCore::XMLHttpRequestResource::~XMLHttpRequestResource):
              (WebCore::InspectorResource::setXMLHttpRequestProperties):
              (WebCore::InspectorResource::sourceString):
              (WebCore::getResourceDocumentNode):
              (WebCore::search):
              (WebCore::InspectorController::focusNode):
              (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
              (WebCore::InspectorController::addDatabaseScriptResource):
              (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
              * page/InspectorController.h:
              (WebCore::InspectorController::profiles):
              * page/JavaScriptCallFrame.cpp:
              (WebCore::JavaScriptCallFrame::scopeChain):
              * page/JavaScriptCallFrame.h:
              (WebCore::JavaScriptCallFrame::create):
              (WebCore::JavaScriptCallFrame::update):
              * page/JavaScriptDebugListener.h:
              * page/JavaScriptDebugServer.cpp:
              (WebCore::dispatchDidParseSource):
              * page/JavaScriptDebugServer.h:
              * page/JavaScriptProfile.cpp:
              * page/JavaScriptProfile.h:
              * page/JavaScriptProfileNode.cpp:
              (WebCore::getTotalTime):
              (WebCore::getSelfTime):
              (WebCore::getTotalPercent):
              (WebCore::getSelfPercent):
              (WebCore::getNumberOfCalls):
              (WebCore::getChildren):
              (WebCore::getVisible):
              * page/JavaScriptProfileNode.h:
              * page/Page.cpp:
              (WebCore::Page::setDebuggerForAllPages):
              (WebCore::Page::setDebugger):
              * page/Page.h:
              (WebCore::Page::debugger):
              * page/mac/FrameMac.mm:
              * platform/KURL.h:
              (WebCore::KURL::operator JSC::UString):
              * platform/text/AtomicString.cpp:
              (WebCore::AtomicString::add):
              (WebCore::AtomicString::find):
              * platform/text/AtomicString.h:
              (WebCore::AtomicString::AtomicString):
              * platform/text/PlatformString.h:
              * platform/text/String.cpp:
              (WebCore::charactersToDouble):
              * platform/win/BString.cpp:
              * platform/win/BString.h:
              * plugins/MimeTypeArray.h:
              * plugins/Plugin.h:
              * plugins/PluginArray.h:
              * plugins/PluginView.cpp:
              (WebCore::PluginView::start):
              (WebCore::PluginView::performRequest):
              (WebCore::PluginView::bindingInstance):
              * plugins/PluginView.h:
              * plugins/gtk/PluginViewGtk.cpp:
              (WebCore::PluginView::paint):
              (WebCore::PluginView::handleKeyboardEvent):
              (WebCore::PluginView::handleMouseEvent):
              (WebCore::PluginView::setNPWindowRect):
              (WebCore::PluginView::stop):
              (WebCore::PluginView::init):
              * plugins/qt/PluginViewQt.cpp:
              (WebCore::PluginView::setNPWindowRect):
              (WebCore::PluginView::stop):
              (WebCore::PluginView::init):
              * plugins/win/PluginViewWin.cpp:
              (WebCore::PluginView::dispatchNPEvent):
              (WebCore::PluginView::handleKeyboardEvent):
              (WebCore::PluginView::handleMouseEvent):
              (WebCore::PluginView::setNPWindowRect):
              (WebCore::PluginView::stop):
              * storage/Database.cpp:
              (WebCore::Database::Database):
              * xml/XMLHttpRequest.cpp:
              (WebCore::XMLHttpRequest::responseText):
              (WebCore::XMLHttpRequest::loadRequestAsynchronously):
              (WebCore::XMLHttpRequest::clearResponse):
              (WebCore::XMLHttpRequest::dropProtection):
              (WebCore::XMLHttpRequest::didFinishLoading):
              (WebCore::XMLHttpRequest::didReceiveData):
              * xml/XMLHttpRequest.h:
      
              WebKit/gtk:
      
              * webkit/webkitprivate.cpp:
              (webkit_init):
      
              WebKit/mac:
      
              * Misc/WebCoreStatistics.mm:
              * Plugins/WebBaseNetscapePluginStream.mm:
              (-[WebBaseNetscapePluginStream wantsAllStreams]):
              * Plugins/WebBaseNetscapePluginView.mm:
              (-[WebBaseNetscapePluginView sendEvent:isDrawRect:]):
              (-[WebBaseNetscapePluginView setWindowIfNecessary]):
              (-[WebBaseNetscapePluginView start]):
              (-[WebBaseNetscapePluginView createPluginScriptableObject]):
              (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]):
              (-[WebBaseNetscapePluginView webFrame:didFinishLoadWithReason:]):
              (-[WebBaseNetscapePluginView loadPluginRequest:]):
              (-[WebBaseNetscapePluginView _printedPluginBitmap]):
              * Plugins/WebPluginController.mm:
              (+[WebPluginController plugInViewWithArguments:fromPluginPackage:]):
              (-[WebPluginController startAllPlugins]):
              (-[WebPluginController stopAllPlugins]):
              (-[WebPluginController addPlugin:]):
              (-[WebPluginController destroyPlugin:]):
              (-[WebPluginController destroyAllPlugins]):
              * WebView/WebFrame.mm:
              * WebView/WebScriptDebugDelegate.mm:
              * WebView/WebScriptDebugger.h:
              * WebView/WebScriptDebugger.mm:
              * WebView/WebView.mm:
              (-[WebViewPrivate init]):
      
              WebKit/qt:
              
              * Api/qwebframe.cpp:
              (QWebFrame::addToJavaScriptWindowObject):
              (QWebFrame::evaluateJavaScript):
      
              WebKit/win:
      
              * WebCoreStatistics.cpp:
              * WebJavaScriptCollector.cpp:
              * WebScriptCallFrame.cpp:
              (WebScriptCallFrame::jsValueToString):
              * WebScriptCallFrame.h:
              (WebScriptCallFrame::state):
              * WebView.cpp:
              (WebView::WebView):
              (WebView::stringByEvaluatingJavaScriptFromString):
      
              WebKit/wx:
      
              * WebFrame.cpp:
              (wxWebFrame::RunScript):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36263 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3f782f6a
  14. 02 Sep, 2008 1 commit
    • ggaren@apple.com's avatar
      JavaScriptCore: · 8d8ff6a5
      ggaren@apple.com authored
      2008-09-02  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Sam Weinig.
              
              Implemented the rest of Darin's review comments for the 09-01 inline
              caching patch.
              
              SunSpider says 0.5% faster, but that seems like noise.
      
              * JavaScriptCore.xcodeproj/project.pbxproj: Put PutPropertySlot into
              its own file, and added BatchedTransitionOptimizer.
      
              * VM/CodeBlock.cpp:
              (KJS::CodeBlock::~CodeBlock): Use array indexing instead of a pointer
              iterator.
      
              * VM/CodeGenerator.cpp:
              (KJS::CodeGenerator::CodeGenerator): Used BatchedTransitionOptimizer to
              make batched put and remove for declared variables fast, without forever
              pessimizing the global object. Removed the old getDirect/removeDirect hack
              that tried to do the same in a more limited way.
      
              * VM/CodeGenerator.h: Moved IdentifierRepHash to the KJS namespace since
              it doesn't specialize anything in WTF.
      
              * VM/Machine.cpp:
              (KJS::Machine::Machine): Nixed the DummyConstruct tag because it was
              confusingly named.
      
              (KJS::Machine::execute):  Used BatchedTransitionOptimizer, as above. Fixed
              up some comments.
      
              (KJS::cachePrototypeChain): Cast to JSObject*, since it's more specific.
      
              (KJS::Machine::tryCachePutByID): Use isNull() instead of comparing to
              jsNull(), since isNull() leaves more options open for the future.
              (KJS::Machine::tryCacheGetByID): ditto
              (KJS::Machine::privateExecute): ditto
      
              * VM/SamplingTool.cpp:
              (KJS::SamplingTool::dump): Use C++-style cast, to match our style
              guidelines.
      
              * kjs/BatchedTransitionOptimizer.h: Added. New class that allows host
              code to add a batch of properties to an object in an efficient way.
      
              * kjs/JSActivation.cpp: Use isNull(), as above.
      
              * kjs/JSArray.cpp: Get rid of DummyConstruct tag, as above.
              * kjs/JSArray.h:
      
              * kjs/JSGlobalData.cpp: Nixed two unused StructureIDs.
              * kjs/JSGlobalData.h:
      
              * kjs/JSImmediate.cpp: Use isNull(), as above.
      
              * kjs/JSObject.cpp:
              (KJS::JSObject::mark): Moved mark tracing code elsewhere, to make this
              function more readable.
      
              (KJS::JSObject::put): Use isNull(), as above.
      
              (KJS::JSObject::createInheritorID): Return a raw pointer, since the
              object is owned by a data member, not necessarily the caller.
              * kjs/JSObject.h:
      
              * kjs/JSString.cpp: Use isNull(), as above.
      
              * kjs/PropertyMap.h: Updated to use PropertySlot::invalidOffset.
      
              * kjs/PropertySlot.h: Changed KJS_INVALID_OFFSET to WTF::notFound
              because C macros are so 80's.
      
              * kjs/PutPropertySlot.h: Added. Split out of PropertySlot.h. Also renamed
              PutPropertySlot::SlotType to PutPropertySlot::Type, and slotBase to base,
              since "slot" was redundant.
      
              * kjs/StructureID.cpp: Added a new transition *away* from dictionary
              status, to support BatchedTransitionOptimizer.
      
              (KJS::StructureIDChain::StructureIDChain): No need to store m_size as
              a data member, so keep it in a local, which might be faster.
              * kjs/StructureID.h:
      
              * kjs/SymbolTable.h: Moved IdentifierRepHash to KJS namespace, as above.
              * kjs/ustring.h:
      
      JavaScriptGlue:
      
      2008-09-02  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Sam Weinig.
              
              Implemented the rest of Darin's review comments for the 09-01 inline
              caching patch.
              
              * ForwardingHeaders/kjs/PutPropertySlot.h: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36032 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8d8ff6a5
  15. 01 Sep, 2008 1 commit
    • weinig@apple.com's avatar
      JavaScriptCore: · 3412bb43
      weinig@apple.com authored
      2008-09-01  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Darin Adler.
      
              First cut at inline caching for access to vanilla JavaScript properties.
              
              SunSpider says 4% faster. Tests heavy on dictionary-like access have
              regressed a bit -- we have a lot of room to improve in this area,
              but this patch is over-ripe as-is.
              
              JSCells now have a StructureID that uniquely identifies their layout,
              and holds their prototype.
              
              JSValue::put takes a PropertySlot& argument, so it can fill in details
              about where it put a value, for the sake of caching.
      
              * VM/CodeGenerator.cpp:
              (KJS::CodeGenerator::CodeGenerator): Avoid calling removeDirect if we
              can, since it disables inline caching in the global object. This can
              probably improve in the future.
      
              * kjs/JSGlobalObject.cpp: Nixed reset(), since it complicates caching, and
              wasn't really necessary.
      
              * kjs/JSObject.cpp: Tweaked getter / setter behavior not to rely on the
              IsGetterSetter flag, since the flag was buggy. This is necessary in order
              to avoid accidentally accessing a getter / setter as a normal property.
              
              Also changed getter / setter creation to honor ReadOnly, matching Mozilla.
              
              * kjs/PropertyMap.cpp: Nixed clear(), since it complicates caching and
              isn't necessary.
      
              * kjs/Shell.cpp: Moved SamplingTool dumping outside the loop. This allows
              you to aggregate sampling of multiple files (or the same file repeatedly),
              which helped me track down regressions.
      
              * kjs/ustring.h: Moved IdentifierRepHash here to share it.
      
      WebCore:
      
      2008-09-01  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Darin Adler.
      
              First cut at inline caching for access to vanilla JavaScript properties.
      
              Updated for JavaScriptCore changes. Mostly mechanical addition of StructureIDs
              to WebCore classes, and PutPropertySlot& arguments to put functions.
      
              (WebCore::JSCSSStyleDeclaration::customPut): Be sure to play nice with
              inline caching for global properties, so global assignment can be optimized.
      
              * ForwardingHeaders/kjs/StructureID.h: Added.
              * bindings/js/JSDOMBinding.h:
              (WebCore::DOMObject::DOMObject):
              * bindings/js/JSDOMWindowBase.cpp:
              (WebCore::JSDOMWindowBase::put):
              * bindings/js/JSDOMWindowBase.h:
              * bindings/js/JSDOMWindowCustom.h:
              (WebCore::JSDOMWindow::customPut):
              * bindings/js/JSDOMWindowShell.cpp:
              (WebCore::JSDOMWindowShell::JSDOMWindowShell):
              (WebCore::JSDOMWindowShell::put):
              * bindings/js/JSDOMWindowShell.h:
              * bindings/js/JSEventTargetBase.h:
              (WebCore::JSEventTargetBase::put):
              * bindings/js/JSEventTargetNode.h:
              (WebCore::JSEventTargetNode::put):
              * bindings/js/JSHTMLAppletElementCustom.cpp:
              (WebCore::JSHTMLAppletElement::customPut):
              * bindings/js/JSHTMLEmbedElementCustom.cpp:
              (WebCore::JSHTMLEmbedElement::customPut):
              * bindings/js/JSHTMLInputElementBase.cpp:
              (WebCore::JSHTMLInputElementBase::put):
              * bindings/js/JSHTMLInputElementBase.h:
              * bindings/js/JSHTMLObjectElementCustom.cpp:
              (WebCore::JSHTMLObjectElement::customPut):
              * bindings/js/JSHistoryCustom.cpp:
              (WebCore::JSHistory::customPut):
              * bindings/js/JSInspectedObjectWrapper.cpp:
              (WebCore::JSInspectedObjectWrapper::wrap):
              (WebCore::JSInspectedObjectWrapper::JSInspectedObjectWrapper):
              * bindings/js/JSInspectedObjectWrapper.h:
              * bindings/js/JSInspectorCallbackWrapper.cpp:
              (WebCore::JSInspectorCallbackWrapper::wrap):
              (WebCore::JSInspectorCallbackWrapper::JSInspectorCallbackWrapper):
              * bindings/js/JSInspectorCallbackWrapper.h:
              * bindings/js/JSLocationCustom.cpp:
              (WebCore::JSLocation::customPut):
              * bindings/js/JSPluginElementFunctions.cpp:
              (WebCore::runtimeObjectCustomPut):
              * bindings/js/JSPluginElementFunctions.h:
              * bindings/js/JSQuarantinedObjectWrapper.cpp:
              (WebCore::JSQuarantinedObjectWrapper::JSQuarantinedObjectWrapper):
              (WebCore::JSQuarantinedObjectWrapper::put):
              * bindings/js/JSQuarantinedObjectWrapper.h:
              * bindings/js/JSStorageCustom.cpp:
              (WebCore::JSStorage::customPut):
              * bindings/objc/WebScriptObject.mm:
              (-[WebScriptObject setValue:forKey:]):
              * bindings/scripts/CodeGeneratorJS.pm:
              * bridge/NP_jsobject.cpp:
              (_NPN_SetProperty):
              * bridge/jni/jni_jsobject.mm:
              (JavaJSObject::setMember):
              * bridge/objc/objc_class.mm:
              (KJS::Bindings::ObjcClass::fallbackObject):
              * bridge/objc/objc_runtime.h:
              * bridge/objc/objc_runtime.mm:
              (ObjcFallbackObjectImp::ObjcFallbackObjectImp):
              (ObjcFallbackObjectImp::put):
              * bridge/runtime.cpp:
              (KJS::Bindings::Instance::createRuntimeObject):
              * bridge/runtime_array.cpp:
              (RuntimeArray::put):
              * bridge/runtime_array.h:
              * bridge/runtime_object.cpp:
              (RuntimeObjectImp::RuntimeObjectImp):
              (RuntimeObjectImp::put):
              * bridge/runtime_object.h:
      
      LayoutTests:
      
      2008-09-01  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Darin Adler.
      
              First cut at inline caching for access to vanilla JavaScript properties.
              
              Tests for things I broke along the way.
              
              * fast/dom/getter-on-window-object2-expected.txt:
              * fast/js/pic: Added.
              * fast/js/pic/cached-deleted-properties-expected.txt: Added.
              * fast/js/pic/cached-deleted-properties.html: Added.
              * fast/js/pic/cached-getter-dictionary-and-proto-expected.txt: Added.
              * fast/js/pic/cached-getter-dictionary-and-proto.html: Added.
              * fast/js/pic/cached-getter-setter-expected.txt: Added.
              * fast/js/pic/cached-getter-setter.html: Added.
              * fast/js/pic/cached-prototype-setter-expected.txt: Added.
              * fast/js/pic/cached-prototype-setter.html: Added.
              * fast/js/pic/cached-single-entry-transition-expected.txt: Added.
              * fast/js/pic/cached-single-entry-transition.html: Added.
              * fast/js/pic/get-empty-string-expected.txt: Added.
              * fast/js/pic/get-empty-string.html: Added.
              * fast/js/pic/get-set-proxy-object-expected.txt: Added.
              * fast/js/pic/get-set-proxy-object.html: Added.
              * fast/js/pic/rehash-poisons-structure-expected.txt: Added.
              * fast/js/pic/rehash-poisons-structure.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36016 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3412bb43
  16. 18 Aug, 2008 1 commit
    • darin@apple.com's avatar
      JavaScriptCore: · 349e1eb0
      darin@apple.com authored
      2008-08-12  Darin Adler  <darin@apple.com>
      
              Reviewed by Geoff.
      
              - eliminate JSValue::type()
      
              This will make it slightly easier to change the JSImmediate design without
              having to touch so many call sites.
      
              SunSpider says this change is a wash (looked like a slight speedup, but not
              statistically significant).
      
              * API/JSStringRef.cpp: Removed include of JSType.h.
              * API/JSValueRef.cpp: Removed include of JSType.h.
              (JSValueGetType): Replaced use of JSValue::type() with
              JSValue::is functions.
      
              * JavaScriptCore.exp: Updated.
      
              * VM/JSPropertyNameIterator.cpp: Removed type() implementation.
              (KJS::JSPropertyNameIterator::toPrimitive): Changed to take
              PreferredPrimitiveType argument instead of JSType.
              * VM/JSPropertyNameIterator.h: Ditto.
      
              * VM/Machine.cpp:
              (KJS::fastIsNumber): Updated for name change.
              (KJS::fastToInt32): Ditto.
              (KJS::fastToUInt32): Ditto.
              (KJS::jsAddSlowCase): Updated toPrimitive caller for change from
              JSType to PreferredPrimitiveType.
              (KJS::jsAdd): Replaced calls to JSValue::type() with calls to
              JSValue::isString().
              (KJS::jsTypeStringForValue): Replaced calls to JSValue::type()
              with multiple calls to JSValue::is -- we could make this a
              virtual function instead if we want to have faster performance.
              (KJS::Machine::privateExecute): Renamed JSImmediate::toTruncatedUInt32
              to JSImmediate::getTruncatedUInt32 for consistency with other functions.
              Changed two calls of JSValue::type() to JSValue::isString().
      
              * kjs/GetterSetter.cpp:
              (KJS::GetterSetter::toPrimitive): Changed to take
              PreferredPrimitiveType argument instead of JSType.
              (KJS::GetterSetter::isGetterSetter): Added.
              * kjs/GetterSetter.h:
      
              * kjs/JSCell.cpp:
              (KJS::JSCell::isString): Added.
              (KJS::JSCell::isGetterSetter): Added.
              (KJS::JSCell::isObject): Added.
      
              * kjs/JSCell.h: Eliminated type function. Added isGetterSetter.
              Made isString and isObject virtual. Changed toPrimitive to take
              PreferredPrimitiveType argument instead of JSType.
              (KJS::JSCell::isNumber): Use Heap::isNumber for faster performance.
              (KJS::JSValue::isGetterSetter): Added.
              (KJS::JSValue::toPrimitive): Changed to take
              PreferredPrimitiveType argument instead of JSType.
      
              * kjs/JSImmediate.h: Removed JSValue::type() and replaced
              JSValue::toTruncatedUInt32 with JSValue::getTruncatedUInt32.
              (KJS::JSImmediate::isEitherImmediate): Added.
      
              * kjs/JSNotAnObject.cpp:
              (KJS::JSNotAnObject::toPrimitive): Changed to take
              PreferredPrimitiveType argument instead of JSType.
              * kjs/JSNotAnObject.h: Ditto.
              * kjs/JSNumberCell.cpp:
              (KJS::JSNumberCell::toPrimitive): Ditto.
              * kjs/JSNumberCell.h:
              (KJS::JSNumberCell::toInt32): Renamed from fastToInt32. There's no
              other "slow" version of this once you have a JSNumberCell, so there's
              no need for "fast" in the name. It's a feature that this hides the
              base class toInt32, which does the same job less efficiently (and has
              an additional ExecState argument).
              (KJS::JSNumberCell::toUInt32): Ditto.
      
              * kjs/JSObject.cpp:
              (KJS::callDefaultValueFunction): Use isGetterSetter instead of type.
              (KJS::JSObject::getPrimitiveNumber): Use PreferredPrimitiveType.
              (KJS::JSObject::defaultValue): Ditto.
              (KJS::JSObject::defineGetter): Use isGetterSetter.
              (KJS::JSObject::defineSetter): Ditto.
              (KJS::JSObject::lookupGetter): Ditto.
              (KJS::JSObject::lookupSetter): Ditto.
              (KJS::JSObject::toNumber): Use PreferredPrimitiveType.
              (KJS::JSObject::toString): Ditto.
              (KJS::JSObject::isObject): Added.
      
              * kjs/JSObject.h:
              (KJS::JSObject::inherits): Call the isObject from JSCell; it's now
              hidden by our override of isObject.
              (KJS::JSObject::getOwnPropertySlotForWrite): Use isGetterSetter
              instead of type.
              (KJS::JSObject::getOwnPropertySlot): Ditto.
              (KJS::JSObject::toPrimitive): Use PreferredPrimitiveType.
      
              * kjs/JSString.cpp:
              (KJS::JSString::toPrimitive): Use PreferredPrimitiveType.
              (KJS::JSString::isString): Added.
              * kjs/JSString.h: Ditto.
      
              * kjs/JSValue.h: Removed type(), added isGetterSetter(). Added
              PreferredPrimitiveType enum and used it as the argument for the
              toPrimitive function.
              (KJS::JSValue::getBoolean): Simplified a bit an removed a branch.
      
              * kjs/collector.cpp:
              (KJS::typeName): Changed to use JSCell::is functions instead of
              calling JSCell::type.
      
              * kjs/collector.h:
              (KJS::Heap::isNumber): Renamed from fastIsNumber.
      
              * kjs/nodes.h: Added now-needed include of JSType, since the type
              is used here to record types of values in the tree.
      
              * kjs/operations.cpp:
              (KJS::equal): Rewrote to no longer depend on type().
              (KJS::strictEqual): Ditto.
      
      JavaScriptGlue:
      
      2008-08-12  Darin Adler  <darin@apple.com>
      
              Reviewed by Geoff.
      
              - eliminate JSValue::type()
      
              * JSUtils.cpp:
              (KJSValueToCFTypeInternal): Replaced uses of JSValue::type() with
              JSValue::is functions.
              * UserObjectImp.cpp:
              (UserObjectImp::getOwnPropertySlot): Ditto.
              (UserObjectImp::toPrimitive): Take PreferredPrimitiveType argument
              instead of JSType argument.
              * UserObjectImp.h: Ditto.
      
      WebCore:
      
      2008-08-12  Darin Adler  <darin@apple.com>
      
              Reviewed by Geoff.
      
              - eliminate JSValue::type()
      
              * bridge/c/c_instance.cpp:
              (KJS::Bindings::CInstance::defaultValue): Take PreferredPrimitiveType
              argument instead of JSType argument. Removed unneeded code to handle
              boolean, since that's never passed.
              * bridge/c/c_instance.h: Ditto.
      
              * bridge/c/c_utility.cpp:
              (KJS::Bindings::convertValueToNPVariant): Use JSValue::is functions
              instead of JSValue::type(). Removed unneeded code to handle
              "unspecified".
      
              * bridge/jni/jni_instance.cpp:
              (JavaInstance::defaultValue): Take PreferredPrimitiveType argument
              instead of JSType argument. Removed unneeded code to handle boolean.
              * bridge/jni/jni_instance.h: Ditto.
      
              * bridge/jni/jni_jsobject.mm:
              (JavaJSObject::convertValueToJObject): Use JSValue::is functions
              instead of JSValue::type().
      
              * bridge/objc/objc_instance.h: Take PreferredPrimitiveType argument
              instead of JSType argument. Removed unused argument.
              * bridge/objc/objc_instance.mm:
              (ObjcInstance::getValueOfUndefinedField): Removed unused argument.
              (ObjcInstance::defaultValue): Take PreferredPrimitiveType argument
              instead of JSType argument. Removed unneeded code to handle boolean
              and another dead code path for unknown types.
      
              * bridge/objc/objc_runtime.h: Take PreferredPrimitiveType argument
              instead of JSType argument. Removed override of type() that caused
              the fallback object to return "UndefinedType" when there is no
              invokeUndefinedMethodFromWebScript:withArguments: method defined.
              That didn't accomplish much, since most checks for undefined don't
              ever call type().
              * bridge/objc/objc_runtime.mm:
              (ObjcFallbackObjectImp::defaultValue): Ditto.
      
              * bridge/qt/qt_instance.cpp:
              (KJS::Bindings::QtInstance::defaultValue): Take PreferredPrimitiveType
              argument instead of JSType argument. Removed unneeded code to handle
              boolean.
              * bridge/qt/qt_instance.h: Ditto.
      
              * bridge/runtime.h:
              (KJS::Bindings::Instance::getValueOfUndefinedField): Removed
              unsed argument.
              * bridge/runtime_object.cpp:
              (RuntimeObjectImp::defaultValue): Take PreferredPrimitiveType
              argument instead of JSType argument.
              * bridge/runtime_object.h: Ditto.
      
      WebKit/mac:
      
      2008-08-12  Darin Adler  <darin@apple.com>
      
              Reviewed by Geoff.
      
              - eliminate JSValue::type()
      
              * WebView/WebView.mm:
              (aeDescFromJSValue): Rewrite to use the JSValue::is functions instead
              of a switch on JSValue::type().
      
      LayoutTests:
      
      2008-08-12  Darin Adler  <darin@apple.com>
      
              Reviewed by Geoff.
      
              - added a test since I had to rewrite the == and === operators
      
              * fast/js/equality-expected.txt: Added.
              * fast/js/equality.html: Added.
              * fast/js/resources/equality.js: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@35830 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      349e1eb0
  17. 17 Aug, 2008 1 commit
    • ggaren@apple.com's avatar
      JavaScriptCore: · fea4353b
      ggaren@apple.com authored
      2008-08-17  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Cameron Zwarich.
      
              Made room for a free word in JSCell.
              
              SunSpider says no change.
              
              I changed JSCallbackObjectData, Arguments, JSArray, and RegExpObject to
              store auxiliary data in a secondary structure.
      
              I changed InternalFunction to store the function's name in the property
              map.
              
              I changed JSGlobalObjectData to use a virtual destructor, so WebCore's
              JSDOMWindowBaseData could inherit from it safely. (It's a strange design
              for JSDOMWindowBase to allocate an object that JSGlobalObject deletes,
              but that's really our only option, given the size constraint.)
              
              I also added a bunch of compile-time ASSERTs, and removed lots of comments
              in JSObject.h because they were often out of date, and they got in the
              way of reading what was actually going on.
              
              Also renamed JSArray::getLength to JSArray::length, to match our style
              guidelines.
      
      WebCore:
      
      2008-08-17  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Cameron Zwarich.
      
              Made room for a free word in JSCell.
              
              Changed JSDOMWindowBase to store its auxiliary data in a subclass of
              JSGlobalData, so the two could share a pointer.
              
              Added a bunch of ASSERTs, to help catch over-sized objects.
      
      WebKit/mac:
      
      2008-08-17  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Cameron Zwarich.
      
              Made room for a free word in JSCell.
              
              (Updated for JavaScriptCore changes.)
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@35807 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fea4353b
  18. 13 Aug, 2008 1 commit
    • ggaren@apple.com's avatar
      2007-08-13 Geoffrey Garen <ggaren@apple.com> · 6c45a3ee
      ggaren@apple.com authored
              Reviewed by Oliver Hunt.
              
              Nixed a PIC branch from JSObject::getOwnPropertySlot, by forcing
              fillGetterProperty, which references a global function pointer,
              out-of-line.
              
              .2% SunSpider speedup, 4.3% access-nbody speedup, 8.7% speedup on a
              custom property access benchmark for objects with one property.
      
              * kjs/JSObject.cpp:
              (KJS::JSObject::fillGetterPropertySlot):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@35750 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6c45a3ee
  19. 06 Jul, 2008 1 commit
    • weinig@apple.com's avatar
      JavaScriptCore: · 2947a916
      weinig@apple.com authored
      2008-07-06  Sam Weinig  <sam@webkit.org>
      
              Reviewed by Cameron Zwarich.
      
              Second step in broad cleanup effort.
      
              [ File list elided ]
      
      WebCore:
      
      2008-07-06  Sam Weinig  <sam@webkit.org>
      
              Reviewed by Cameron Zwarich.
      
              Add #include for kjs/protect.h.
      
              * xml/XMLHttpRequest.cpp:
              (WebCore::XMLHttpRequest::loadRequestAsynchronously):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@35027 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2947a916
  20. 04 Jul, 2008 1 commit
    • weinig@apple.com's avatar
      JavaScriptCore: · f157abf5
      weinig@apple.com authored
      2008-07-04  Sam Weinig  <sam@webkit.org>
      
              Rubber-stamped by Dan Bernstein.
      
              Split Error and GetterSetter out of JSObject.h.
      
              * API/JSCallbackObjectFunctions.h:
              * GNUmakefile.am:
              * JavaScriptCore.pri:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * JavaScriptCoreSources.bkl:
              * kjs/AllInOneFile.cpp:
              * kjs/ClassInfo.h: Copied from JavaScriptCore/kjs/JSObject.h.
              * kjs/Error.cpp: Copied from JavaScriptCore/kjs/JSObject.cpp.
              * kjs/Error.h: Copied from JavaScriptCore/kjs/JSObject.h.
              * kjs/GetterSetter.cpp:
              * kjs/GetterSetter.h: Copied from JavaScriptCore/kjs/JSObject.h.
              * kjs/JSObject.cpp:
              * kjs/JSObject.h:
              * kjs/nodes.h:
      
      JavaScriptGlue:
      
      2008-07-04  Sam Weinig  <sam@webkit.org>
      
              Rubber-stamped by Dan Bernstein.
      
              * JSObject.h: Rename the header guard as it now conflicts with the
              JSObject in JavaScriptCore.
      
      WebCore:
      
      2008-07-04  Sam Weinig  <sam@webkit.org>
      
              Rubber-stamped by Dan Bernstein.
      
              Split Error and GetterSetter out of JSObject.h.
      
              * ForwardingHeaders/kjs/Error.h: Added.
              * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
              * bindings/js/JSClipboardCustom.cpp:
              * bindings/js/JSDOMWindowBase.cpp:
              * bindings/js/JSEventTargetBase.cpp:
              * bindings/js/JSHTMLDocumentCustom.cpp:
              * bindings/js/JSXMLHttpRequestCustom.cpp:
              * bindings/scripts/CodeGeneratorJS.pm:
              * bridge/NP_jsobject.cpp:
              * bridge/jni/jni_instance.cpp:
              * bridge/jni/jni_runtime.cpp:
              * bridge/objc/objc_instance.mm:
              * bridge/objc/objc_runtime.mm:
              * bridge/objc/objc_utility.h:
              * bridge/runtime_array.cpp:
              * bridge/runtime_method.cpp:
              * bridge/runtime_object.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@35007 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f157abf5
  21. 01 Jul, 2008 1 commit
    • ggaren@apple.com's avatar
      2008-07-01 Geoffrey Garen <ggaren@apple.com> · 7c11a048
      ggaren@apple.com authored
              Reviewed by Oliver Hunt.
              
              Removed and/or reordered exception checks in array-style a[n] access.
              
              SunSpider says 1.4% faster.
      
              * VM/Machine.cpp:
              (KJS::Machine::privateExecute): No need to check for exceptions before
              calling toString, toNumber and/or get. If the call ends up being observable
              through toString, valueOf, or a getter, we short-circuit it there, instead.
              In the op_del_by_val case, I removed the incorrect comment without actually
              removing the code, since I didn't want to tempt the GCC fates!
      
              * kjs/JSObject.cpp:
              (KJS::callDefaultValueFunction): Added exception check to prevent
              toString and valueOf functions from observing execution after an exception
              has been thrown. This removes some of the burden of exception checking
              from the machine.
      
              (KJS::JSObject::defaultValue): Removed redundant exception check here.
      
              * kjs/PropertySlot.cpp:
              (KJS::PropertySlot::functionGetter): Added exception check to prevent
              getter functions from observing execution after an exception has been
              thrown. This removes some of the burden of exception checking from the
              machine.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34945 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7c11a048
  22. 29 Jun, 2008 4 commits
    • weinig@apple.com's avatar
      2008-06-29 Sam Weinig <sam@webkit.org> · 860df8c6
      weinig@apple.com authored
              Fix non-AllInOne builds.
      
              * kjs/JSObject.cpp:
              * kjs/JSValue.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34878 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      860df8c6
    • weinig@apple.com's avatar
      2008-06-29 Sam Weinig <sam@webkit.org> · fee62a72
      weinig@apple.com authored
              Rubber-stamped by Cameron Zwarich.
      
              Splits ErrorConstructor, ErrorPrototype,  NativeErrorConstructor and
              NativeErrorPrototype out of error_object.h/cpp and renames it ErrorInstance.
      
              * GNUmakefile.am:
              * JavaScriptCore.pri:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * JavaScriptCoreSources.bkl:
              * kjs/AllInOneFile.cpp:
              * kjs/ArrayConstructor.cpp:
              * kjs/ArrayPrototype.cpp:
              * kjs/BooleanPrototype.cpp:
              * kjs/DatePrototype.cpp:
              * kjs/ErrorConstructor.cpp: Copied from kjs/error_object.cpp.
              * kjs/ErrorConstructor.h: Copied from kjs/error_object.h.
              * kjs/ErrorInstance.cpp: Copied from kjs/error_object.cpp.
              * kjs/ErrorInstance.h: Copied from kjs/error_object.h.
              * kjs/ErrorPrototype.cpp: Copied from kjs/error_object.cpp.
              * kjs/ErrorPrototype.h: Copied from kjs/error_object.h.
              * kjs/JSGlobalObject.cpp:
              * kjs/JSObject.cpp:
              * kjs/JSValue.cpp:
              * kjs/NativeErrorConstructor.cpp: Copied from kjs/error_object.cpp.
              * kjs/NativeErrorConstructor.h: Copied from kjs/error_object.h.
              * kjs/NativeErrorPrototype.cpp: Copied from kjs/error_object.cpp.
              * kjs/NativeErrorPrototype.h: Copied from kjs/error_object.h.
              * kjs/NumberPrototype.cpp:
              * kjs/RegExpConstructor.cpp:
              * kjs/RegExpObject.cpp:
              * kjs/RegExpPrototype.cpp:
              * kjs/StringPrototype.cpp:
              * kjs/error_object.cpp: Removed.
              * kjs/error_object.h: Removed.
              * kjs/internal.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34876 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fee62a72
    • weinig@apple.com's avatar
      2008-06-29 Sam Weinig <sam@webkit.org> · 603e4d12
      weinig@apple.com authored
              Fix non-AllInOne build.
      
              * kjs/DateConstructor.cpp:
              * kjs/DateMath.cpp:
              * kjs/JSObject.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34873 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      603e4d12
    • weinig@apple.com's avatar
      2008-06-29 Sam Weinig <sam@webkit.org> · b54ef442
      weinig@apple.com authored
              Rubber-stamped by Oliver Hunt.
      
              Splits DateConstructor and DatePrototype out of date_object.h/cpp
              Moves shared Date code into DateMath.
      
              * DerivedSources.make:
              * GNUmakefile.am:
              * JavaScriptCore.pri:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * JavaScriptCoreSources.bkl:
              * kjs/AllInOneFile.cpp:
              * kjs/DateConstructor.cpp: Copied from kjs/date_object.cpp.
              * kjs/DateConstructor.h: Copied from kjs/date_object.h.
              * kjs/DateMath.cpp:
              (KJS::ymdhmsToSeconds):
              (KJS::):
              (KJS::skipSpacesAndComments):
              (KJS::findMonth):
              (KJS::parseDate):
              (KJS::timeClip):
              (KJS::formatDate):
              (KJS::formatDateUTCVariant):
              (KJS::formatTime):
              * kjs/DateMath.h:
              (KJS::gmtoffset):
              * kjs/DatePrototype.cpp: Copied from kjs/date_object.cpp.
              * kjs/DatePrototype.h: Copied from kjs/date_object.h.
              * kjs/JSGlobalObject.cpp:
              * kjs/JSObject.cpp:
              * kjs/date_object.cpp:
              * kjs/date_object.h:
              * kjs/internal.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34872 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b54ef442
  23. 28 Jun, 2008 1 commit
    • weinig@apple.com's avatar
      2008-06-28 Sam Weinig <sam@webkit.org> · ee8c780b
      weinig@apple.com authored
              Fix windows build.
      
              * kjs/ArrayPrototype.cpp:
              * kjs/BooleanPrototype.cpp:
              * kjs/BooleanPrototype.h:
              * kjs/FunctionPrototype.cpp:
              * kjs/JSImmediate.cpp:
              * kjs/JSObject.cpp:
              * kjs/MathObject.cpp:
              * kjs/NumberPrototype.cpp:
              * kjs/NumberPrototype.h:
              * kjs/ObjectConstructor.cpp:
              * kjs/RegExpObject.h:
              * kjs/error_object.h:
              * kjs/string_object.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34855 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ee8c780b
  24. 26 Jun, 2008 1 commit
    • darin@apple.com's avatar
      2008-06-26 Darin Adler <darin@apple.com> · 59c4d4eb
      darin@apple.com authored
              Reviewed by Geoff.
      
              - https://bugs.webkit.org/show_bug.cgi?id=19721
                speed up JavaScriptCore by not wrapping strings in objects just
                to call functions on them
      
              - optimize UString append and the replace function a bit
      
              SunSpider says 1.8% faster.
      
              * JavaScriptCore.exp: Updated.
      
              * VM/JSPropertyNameIterator.cpp: Added include of JSString.h, now needed
              because jsString returns a JSString*.
      
              * VM/Machine.cpp:
              (KJS::Machine::privateExecute): Removed the toObject call from native
              function calls. Also removed code to put the this value into a register.
      
              * kjs/BooleanObject.cpp:
              (KJS::booleanProtoFuncToString): Rewrite to handle false and true
              separately.
      
              * kjs/FunctionPrototype.cpp:
              (KJS::constructFunction): Use single-character append rather than building
              a string for each character.
              * kjs/JSFunction.cpp:
              (KJS::globalFuncUnescape): Ditto.
      
              * kjs/JSImmediate.cpp:
              (KJS::JSImmediate::prototype): Added. Gets the appropriate prototype for
              use with an immediate value. To be used instead of toObject when doing a
              get on an immediate value.
              * kjs/JSImmediate.h: Added prototype.
      
              * kjs/JSObject.cpp:
              (KJS::JSObject::toString): Tweaked formatting.
      
              * kjs/JSObject.h:
              (KJS::JSValue::get): Use prototype instead of toObject to avoid creating
              an object wrapper just to search for properties. This also saves an
              unnecessary hash table lookup since the object wrappers themselves don't
              have any properties.
      
              * kjs/JSString.h: Added toThisString and toThisJSString.
      
              * kjs/JSValue.cpp:
              (KJS::JSCell::toThisString): Added.
              (KJS::JSCell::toThisJSString): Added.
              (KJS::JSCell::getJSNumber): Added.
              (KJS::jsString): Changed return type to JSString*.
              (KJS::jsOwnedString): Ditto.
      
              * kjs/JSValue.h:
              (KJS::JSValue::toThisString): Added.
              (KJS::JSValue::toThisJSString): Added.
              (KJS::JSValue::getJSNumber): Added.
      
              * kjs/NumberObject.cpp:
              (KJS::NumberObject::getJSNumber): Added.
              (KJS::integer_part_noexp): Append C string directly rather than first
              turning it into a UString.
              (KJS::numberProtoFuncToString): Use getJSNumber to check if the value
              is a number rather than isObject(&NumberObject::info). This works for
              immediate numbers, number cells, and NumberObject instances.
              (KJS::numberProtoFuncToLocaleString): Ditto.
              (KJS::numberProtoFuncValueOf): Ditto.
              (KJS::numberProtoFuncToFixed): Ditto.
              (KJS::numberProtoFuncToExponential): Ditto.
              (KJS::numberProtoFuncToPrecision): Ditto.
              * kjs/NumberObject.h: Added getJSNumber.
      
              * kjs/PropertySlot.cpp: Tweaked comment.
      
              * kjs/internal.cpp:
              (KJS::JSString::toThisString): Added.
              (KJS::JSString::toThisJSString): Added.
              (KJS::JSString::getOwnPropertySlot): Changed code that searches the
              prototype chain to start with the string prototype and not create a
              string object.
              (KJS::JSNumberCell::toThisString): Added.
              (KJS::JSNumberCell::getJSNumber): Added.
      
              * kjs/lookup.cpp:
              (KJS::staticFunctionGetter): Moved here, because there's no point in
              having a function that's only used for a function pointer be inline.
              (KJS::setUpStaticFunctionSlot): New function for getStaticFunctionSlot.
      
              * kjs/lookup.h:
              (KJS::staticValueGetter): Don't mark this inline. It doesn't make sense
              to have a function that's only used for a function pointer be inline.
              (KJS::getStaticFunctionSlot): Changed to get properties from the parent
              first before doing any handling of functions. This is the fastest way
              to return the function once the initial setup is done.
      
              * kjs/string_object.cpp:
              (KJS::StringObject::getPropertyNames): Call value() instead of getString(),
              avoiding an unnecessary virtual function call (the call to the type()
              function in the implementation of the isString() function).
              (KJS::StringObject::toString): Added.
              (KJS::StringObject::toThisString): Added.
              (KJS::StringObject::toThisJSString): Added.
              (KJS::substituteBackreferences): Rewrote to use a appending algorithm
              instead of a the old one that tried to replace in place.
              (KJS::stringProtoFuncReplace): Merged this function and the replace function.
              Replaced the hand-rolled dynamic arrays for source ranges and replacements
              with Vector.
              (KJS::stringProtoFuncToString): Handle JSString as well as StringObject.
              Removed the separate valueOf implementation, since it can just share this.
              (KJS::stringProtoFuncCharAt): Use toThisString, which handles JSString as
              well as StringObject, and is slightly more efficient than the old code too.
              (KJS::stringProtoFuncCharCodeAt): Ditto.
              (KJS::stringProtoFuncConcat): Ditto.
              (KJS::stringProtoFuncIndexOf): Ditto.
              (KJS::stringProtoFuncLastIndexOf): Ditto.
              (KJS::stringProtoFuncMatch): Ditto.
              (KJS::stringProtoFuncSearch): Ditto.
              (KJS::stringProtoFuncSlice): Ditto.
              (KJS::stringProtoFuncSplit): Ditto.
              (KJS::stringProtoFuncSubstr): Ditto.
              (KJS::stringProtoFuncSubstring): Ditto.
              (KJS::stringProtoFuncToLowerCase): Use toThisJSString.
              (KJS::stringProtoFuncToUpperCase): Ditto.
              (KJS::stringProtoFuncToLocaleLowerCase): Ditto.
              (KJS::stringProtoFuncToLocaleUpperCase): Ditto.
              (KJS::stringProtoFuncLocaleCompare): Ditto.
              (KJS::stringProtoFuncBig): Use toThisString.
              (KJS::stringProtoFuncSmall): Ditto.
              (KJS::stringProtoFuncBlink): Ditto.
              (KJS::stringProtoFuncBold): Ditto.
              (KJS::stringProtoFuncFixed): Ditto.
              (KJS::stringProtoFuncItalics): Ditto.
              (KJS::stringProtoFuncStrike): Ditto.
              (KJS::stringProtoFuncSub): Ditto.
              (KJS::stringProtoFuncSup): Ditto.
              (KJS::stringProtoFuncFontcolor): Ditto.
              (KJS::stringProtoFuncFontsize): Ditto.
              (KJS::stringProtoFuncAnchor): Ditto.
              (KJS::stringProtoFuncLink): Ditto.
      
              * kjs/string_object.h: Added toString, toThisString, and toThisJSString.
      
              * kjs/ustring.cpp:
              (KJS::UString::append): Added a version that takes a character pointer and
              size, so we don't have to create a UString just to append to another UString.
              * kjs/ustring.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34821 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      59c4d4eb
  25. 24 Jun, 2008 1 commit
  26. 23 Jun, 2008 1 commit
    • darin@apple.com's avatar
      JavaScriptCore: · 1edff436
      darin@apple.com authored
      2008-06-23  Darin Adler  <darin@apple.com>
      
              Reviewed by Geoff.
      
              - work toward https://bugs.webkit.org/show_bug.cgi?id=19721
      
              More preparation toward making functions work on primitive types without
              creating wrapper objects. No speedup this time, but prepares for a future
              speedup without slowing things down.
      
              SunSpider reports no change.
      
              - Eliminated the implementsCall, callAsFunction and construct virtual
                functions from JSObject. Instead, the CallData and ConstructData for
                a native function includes a function pointer that the caller can use
                directly. Changed all call sites to use CallData and ConstructData.
      
              - Changed the "this" argument to native functions to be a JSValue rather
                than a JSObject. This prepares us for passing primitives into these
                functions. The conversion to an object now must be done inside the
                function. Critically, if it's a function that can be called on a DOM
                window object, then we have to be sure to call toThisObject on the
                argument before we use it for anything even if it's already an object.
      
              - Eliminated the practice of using constructor objects in the global
                object to make objects of the various basic types. Since these
                constructors can't be replaced by script, there's no reason to involve
                a constructor object at all. Added functions to do the construction
                directly.
      
              - Made some more class members private and protected, including virtual
                function overrides. This can catch code using unnecessarily slow virtual
                function code paths when the type of an object is known statically. If we
                later find a new reason use the members outside the class it's easy to
                make them public again.
      
              - Moved the declarations of the native implementations for functions out
                of header files. These can have internal linkage and be declared inside
                the source file.
      
              - Changed PrototypeFunction to take function pointers with the right
                arguments to be put directly into CallData. This eliminates the
                need to have a separate PrototypeReflexiveFunction, and reveals that the
                real purpose of that class included something else specific to eval --
                storage of a cached global object. So renamed PrototypeReflexiveFunction
                to GlobalEvalFunction.
      
              * API/JSCallbackConstructor.cpp:
              (KJS::constructJSCallback):
              (KJS::JSCallbackConstructor::getConstructData):
              * API/JSCallbackConstructor.h:
              * API/JSCallbackFunction.cpp:
              (KJS::JSCallbackFunction::implementsHasInstance):
              (KJS::JSCallbackFunction::call):
              (KJS::JSCallbackFunction::getCallData):
              * API/JSCallbackFunction.h:
              (KJS::JSCallbackFunction::classInfo):
              * API/JSCallbackObject.h:
              (KJS::JSCallbackObject::classRef):
              (KJS::JSCallbackObject::classInfo):
              * API/JSCallbackObjectFunctions.h:
              (KJS::::getConstructData):
              (KJS::::construct):
              (KJS::::getCallData):
              (KJS::::call):
              * API/JSObjectRef.cpp:
              (JSObjectMakeFunction):
              (JSObjectIsFunction):
              (JSObjectCallAsFunction):
              (JSObjectCallAsConstructor):
              * JavaScriptCore.exp:
              * VM/Machine.cpp:
              (KJS::jsTypeStringForValue):
              (KJS::Machine::privateExecute):
              * kjs/ArrayPrototype.cpp:
              (KJS::arrayProtoFuncToString):
              (KJS::arrayProtoFuncToLocaleString):
              (KJS::arrayProtoFuncJoin):
              (KJS::arrayProtoFuncConcat):
              (KJS::arrayProtoFuncPop):
              (KJS::arrayProtoFuncPush):
              (KJS::arrayProtoFuncReverse):
              (KJS::arrayProtoFuncShift):
              (KJS::arrayProtoFuncSlice):
              (KJS::arrayProtoFuncSort):
              (KJS::arrayProtoFuncSplice):
              (KJS::arrayProtoFuncUnShift):
              (KJS::arrayProtoFuncFilter):
              (KJS::arrayProtoFuncMap):
              (KJS::arrayProtoFuncEvery):
              (KJS::arrayProtoFuncForEach):
              (KJS::arrayProtoFuncSome):
              (KJS::arrayProtoFuncIndexOf):
              (KJS::arrayProtoFuncLastIndexOf):
              (KJS::ArrayConstructor::ArrayConstructor):
              (KJS::constructArrayWithSizeQuirk):
              (KJS::constructWithArrayConstructor):
              (KJS::ArrayConstructor::getConstructData):
              (KJS::callArrayConstructor):
              (KJS::ArrayConstructor::getCallData):
              * kjs/ArrayPrototype.h:
              * kjs/BooleanObject.cpp:
              (KJS::booleanProtoFuncToString):
              (KJS::booleanProtoFuncValueOf):
              (KJS::constructBoolean):
              (KJS::constructWithBooleanConstructor):
              (KJS::BooleanConstructor::getConstructData):
              (KJS::callBooleanConstructor):
              (KJS::BooleanConstructor::getCallData):
              (KJS::constructBooleanFromImmediateBoolean):
              * kjs/BooleanObject.h:
              * kjs/CallData.h:
              (KJS::):
              * kjs/ConstructData.h:
              (KJS::):
              * kjs/FunctionPrototype.cpp:
              (KJS::callFunctionPrototype):
              (KJS::FunctionPrototype::getCallData):
              (KJS::functionProtoFuncToString):
              (KJS::functionProtoFuncApply):
              (KJS::functionProtoFuncCall):
              (KJS::constructWithFunctionConstructor):
              (KJS::FunctionConstructor::getConstructData):
              (KJS::callFunctionConstructor):
              (KJS::FunctionConstructor::getCallData):
              (KJS::constructFunction):
              * kjs/FunctionPrototype.h:
              * kjs/JSArray.cpp:
              (KJS::AVLTreeAbstractorForArrayCompare::compare_key_key):
              (KJS::JSArray::sort):
              (KJS::constructEmptyArray):
              (KJS::constructArray):
              * kjs/JSArray.h:
              (KJS::JSArray::classInfo):
              * kjs/JSFunction.cpp:
              (KJS::JSFunction::call):
              (KJS::globalFuncEval):
              (KJS::globalFuncParseInt):
              (KJS::globalFuncParseFloat):
              (KJS::globalFuncIsNaN):
              (KJS::globalFuncIsFinite):
              (KJS::globalFuncDecodeURI):
              (KJS::globalFuncDecodeURIComponent):
              (KJS::globalFuncEncodeURI):
              (KJS::globalFuncEncodeURIComponent):
              (KJS::globalFuncEscape):
              (KJS::globalFuncUnescape):
              (KJS::globalFuncKJSPrint):
              (KJS::PrototypeFunction::PrototypeFunction):
              (KJS::PrototypeFunction::getCallData):
              (KJS::GlobalEvalFunction::GlobalEvalFunction):
              (KJS::GlobalEvalFunction::mark):
              * kjs/JSFunction.h:
              (KJS::InternalFunction::classInfo):
              (KJS::InternalFunction::functionName):
              (KJS::JSFunction::classInfo):
              (KJS::GlobalEvalFunction::cachedGlobalObject):
              * kjs/JSGlobalObject.cpp:
              (KJS::JSGlobalObject::reset):
              (KJS::JSGlobalObject::mark):
              * kjs/JSGlobalObject.h:
              (KJS::JSGlobalObject::JSGlobalObject):
              (KJS::JSGlobalObject::evalFunction):
              * kjs/JSImmediate.cpp:
              (KJS::JSImmediate::toObject):
              * kjs/JSNotAnObject.cpp:
              * kjs/JSNotAnObject.h:
              * kjs/JSObject.cpp:
              (KJS::JSObject::put):
              (KJS::callDefaultValueFunction):
              (KJS::JSObject::defaultValue):
              (KJS::JSObject::lookupGetter):
              (KJS::JSObject::lookupSetter):
              (KJS::JSObject::hasInstance):
              (KJS::JSObject::fillGetterPropertySlot):
              (KJS::Error::create):
              (KJS::constructEmptyObject):
              * kjs/JSObject.h:
              (KJS::GetterSetter::GetterSetter):
              (KJS::GetterSetter::getter):
              (KJS::GetterSetter::setGetter):
              (KJS::GetterSetter::setter):
              (KJS::GetterSetter::setSetter):
              * kjs/JSValue.cpp:
              (KJS::JSCell::deleteProperty):
              (KJS::call):
              (KJS::construct):
              * kjs/JSValue.h:
              * kjs/MathObject.cpp:
              (KJS::mathProtoFuncAbs):
              (KJS::mathProtoFuncACos):
              (KJS::mathProtoFuncASin):
              (KJS::mathProtoFuncATan):
              (KJS::mathProtoFuncATan2):
              (KJS::mathProtoFuncCeil):
              (KJS::mathProtoFuncCos):
              (KJS::mathProtoFuncExp):
              (KJS::mathProtoFuncFloor):
              (KJS::mathProtoFuncLog):
              (KJS::mathProtoFuncMax):
              (KJS::mathProtoFuncMin):
              (KJS::mathProtoFuncPow):
              (KJS::mathProtoFuncRandom):
              (KJS::mathProtoFuncRound):
              (KJS::mathProtoFuncSin):
              (KJS::mathProtoFuncSqrt):
              (KJS::mathProtoFuncTan):
              * kjs/MathObject.h:
              * kjs/NumberObject.cpp:
              (KJS::numberProtoFuncToString):
              (KJS::numberProtoFuncToLocaleString):
              (KJS::numberProtoFuncValueOf):
              (KJS::numberProtoFuncToFixed):
              (KJS::numberProtoFuncToExponential):
              (KJS::numberProtoFuncToPrecision):
              (KJS::NumberConstructor::NumberConstructor):
              (KJS::constructWithNumberConstructor):
              (KJS::NumberConstructor::getConstructData):
              (KJS::callNumberConstructor):
              (KJS::NumberConstructor::getCallData):
              (KJS::constructNumber):
              (KJS::constructNumberFromImmediateNumber):
              * kjs/NumberObject.h:
              (KJS::NumberObject::classInfo):
              (KJS::NumberConstructor::classInfo):
              * kjs/PropertySlot.cpp:
              (KJS::PropertySlot::functionGetter):
              * kjs/RegExpObject.cpp:
              (KJS::regExpProtoFuncTest):
              (KJS::regExpProtoFuncExec):
              (KJS::regExpProtoFuncCompile):
              (KJS::regExpProtoFuncToString):
              (KJS::callRegExpObject):
              (KJS::RegExpObject::getCallData):
              (KJS::constructRegExp):
              (KJS::constructWithRegExpConstructor):
              (KJS::RegExpConstructor::getConstructData):
              (KJS::callRegExpConstructor):
              (KJS::RegExpConstructor::getCallData):
              * kjs/RegExpObject.h:
              (KJS::RegExpConstructor::classInfo):
              * kjs/Shell.cpp:
              (GlobalObject::GlobalObject):
              (functionPrint):
              (functionDebug):
              (functionGC):
              (functionVersion):
              (functionRun):
              (functionLoad):
              (functionReadline):
              (functionQuit):
              * kjs/date_object.cpp:
              (KJS::gmtoffset):
              (KJS::formatLocaleDate):
              (KJS::fillStructuresUsingDateArgs):
              (KJS::DateInstance::getTime):
              (KJS::DateInstance::getUTCTime):
              (KJS::DateConstructor::DateConstructor):
              (KJS::constructDate):
              (KJS::DateConstructor::getConstructData):
              (KJS::callDate):
              (KJS::DateConstructor::getCallData):
              (KJS::dateParse):
              (KJS::dateNow):
              (KJS::dateUTC):
              (KJS::dateProtoFuncToString):
              (KJS::dateProtoFuncToUTCString):
              (KJS::dateProtoFuncToDateString):
              (KJS::dateProtoFuncToTimeString):
              (KJS::dateProtoFuncToLocaleString):
              (KJS::dateProtoFuncToLocaleDateString):
              (KJS::dateProtoFuncToLocaleTimeString):
              (KJS::dateProtoFuncValueOf):
              (KJS::dateProtoFuncGetTime):
              (KJS::dateProtoFuncGetFullYear):
              (KJS::dateProtoFuncGetUTCFullYear):
              (KJS::dateProtoFuncToGMTString):
              (KJS::dateProtoFuncGetMonth):
              (KJS::dateProtoFuncGetUTCMonth):
              (KJS::dateProtoFuncGetDate):
              (KJS::dateProtoFuncGetUTCDate):
              (KJS::dateProtoFuncGetDay):
              (KJS::dateProtoFuncGetUTCDay):
              (KJS::dateProtoFuncGetHours):
              (KJS::dateProtoFuncGetUTCHours):
              (KJS::dateProtoFuncGetMinutes):
              (KJS::dateProtoFuncGetUTCMinutes):
              (KJS::dateProtoFuncGetSeconds):
              (KJS::dateProtoFuncGetUTCSeconds):
              (KJS::dateProtoFuncGetMilliSeconds):
              (KJS::dateProtoFuncGetUTCMilliseconds):
              (KJS::dateProtoFuncGetTimezoneOffset):
              (KJS::dateProtoFuncSetTime):
              (KJS::setNewValueFromTimeArgs):
              (KJS::setNewValueFromDateArgs):
              (KJS::dateProtoFuncSetMilliSeconds):
              (KJS::dateProtoFuncSetUTCMilliseconds):
              (KJS::dateProtoFuncSetSeconds):
              (KJS::dateProtoFuncSetUTCSeconds):
              (KJS::dateProtoFuncSetMinutes):
              (KJS::dateProtoFuncSetUTCMinutes):
              (KJS::dateProtoFuncSetHours):
              (KJS::dateProtoFuncSetUTCHours):
              (KJS::dateProtoFuncSetDate):
              (KJS::dateProtoFuncSetUTCDate):
              (KJS::dateProtoFuncSetMonth):
              (KJS::dateProtoFuncSetUTCMonth):
              (KJS::dateProtoFuncSetFullYear):
              (KJS::dateProtoFuncSetUTCFullYear):
              (KJS::dateProtoFuncSetYear):
              (KJS::dateProtoFuncGetYear):
              * kjs/date_object.h:
              (KJS::DateInstance::internalNumber):
              (KJS::DateInstance::classInfo):
              * kjs/error_object.cpp:
              (KJS::errorProtoFuncToString):
              (KJS::constructError):
              (KJS::constructWithErrorConstructor):
              (KJS::ErrorConstructor::getConstructData):
              (KJS::callErrorConstructor):
              (KJS::ErrorConstructor::getCallData):
              (KJS::NativeErrorConstructor::construct):
              (KJS::constructWithNativeErrorConstructor):
              (KJS::NativeErrorConstructor::getConstructData):
              (KJS::callNativeErrorConstructor):
              (KJS::NativeErrorConstructor::getCallData):
              * kjs/error_object.h:
              (KJS::NativeErrorConstructor::classInfo):
              * kjs/internal.cpp:
              (KJS::JSNumberCell::toObject):
              (KJS::JSNumberCell::toThisObject):
              (KJS::GetterSetter::mark):
              (KJS::GetterSetter::toPrimitive):
              (KJS::GetterSetter::toBoolean):
              (KJS::GetterSetter::toNumber):
              (KJS::GetterSetter::toString):
              (KJS::GetterSetter::toObject):
              (KJS::InternalFunction::InternalFunction):
              (KJS::InternalFunction::implementsHasInstance):
              * kjs/lookup.h:
              (KJS::HashEntry::):
              * kjs/nodes.cpp:
              (KJS::FuncDeclNode::makeFunction):
              (KJS::FuncExprNode::makeFunction):
              * kjs/object_object.cpp:
              (KJS::objectProtoFuncValueOf):
              (KJS::objectProtoFuncHasOwnProperty):
              (KJS::objectProtoFuncIsPrototypeOf):
              (KJS::objectProtoFuncDefineGetter):
              (KJS::objectProtoFuncDefineSetter):
              (KJS::objectProtoFuncLookupGetter):
              (KJS::objectProtoFuncLookupSetter):
              (KJS::objectProtoFuncPropertyIsEnumerable):
              (KJS::objectProtoFuncToLocaleString):
              (KJS::objectProtoFuncToString):
              (KJS::ObjectConstructor::ObjectConstructor):
              (KJS::constructObject):
              (KJS::constructWithObjectConstructor):
              (KJS::ObjectConstructor::getConstructData):
              (KJS::callObjectConstructor):
              (KJS::ObjectConstructor::getCallData):
              * kjs/object_object.h:
              * kjs/string_object.cpp:
              (KJS::replace):
              (KJS::stringProtoFuncToString):
              (KJS::stringProtoFuncValueOf):
              (KJS::stringProtoFuncCharAt):
              (KJS::stringProtoFuncCharCodeAt):
              (KJS::stringProtoFuncConcat):
              (KJS::stringProtoFuncIndexOf):
              (KJS::stringProtoFuncLastIndexOf):
              (KJS::stringProtoFuncMatch):
              (KJS::stringProtoFuncSearch):
              (KJS::stringProtoFuncReplace):
              (KJS::stringProtoFuncSlice):
              (KJS::stringProtoFuncSplit):
              (KJS::stringProtoFuncSubstr):
              (KJS::stringProtoFuncSubstring):
              (KJS::stringProtoFuncToLowerCase):
              (KJS::stringProtoFuncToUpperCase):
              (KJS::stringProtoFuncToLocaleLowerCase):
              (KJS::stringProtoFuncToLocaleUpperCase):
              (KJS::stringProtoFuncLocaleCompare):
              (KJS::stringProtoFuncBig):
              (KJS::stringProtoFuncSmall):
              (KJS::stringProtoFuncBlink):
              (KJS::stringProtoFuncBold):
              (KJS::stringProtoFuncFixed):
              (KJS::stringProtoFuncItalics):
              (KJS::stringProtoFuncStrike):
              (KJS::stringProtoFuncSub):
              (KJS::stringProtoFuncSup):
              (KJS::stringProtoFuncFontcolor):
              (KJS::stringProtoFuncFontsize):
              (KJS::stringProtoFuncAnchor):
              (KJS::stringProtoFuncLink):
              (KJS::stringFromCharCode):
              (KJS::StringConstructor::StringConstructor):
              (KJS::constructWithStringConstructor):
              (KJS::StringConstructor::getConstructData):
              (KJS::callStringConstructor):
              (KJS::StringConstructor::getCallData):
              * kjs/string_object.h:
      
      JavaScriptGlue:
      
      2008-06-23  Darin Adler  <darin@apple.com>
      
              Reviewed by Geoff.
      
              * JSValueWrapper.cpp:
              (JSValueWrapper::JSObjectCallFunction): Updated to use getCallData and call instead
              of the old callAsFunction.
      
      WebCore:
      
      2008-06-23  Darin Adler  <darin@apple.com>
      
              Reviewed by Geoff.
      
              Update for JavaScript changes.
      
              - Use CallData and ConstructData instead of the obsolete implementsCall,
                callAsFunction, and construct functions.
      
              - Updated native function arguments, specifically to allow a JSValue
                rather than a JSObject for the this argument, and to call toThisObject
                as needed when treating it as an object.
      
              - Made some more class members private and protected, including virtual
                function overrides.
      
              - Eliminated the use of getCallData in the JavaScript bridging code as
                a way to check if an instance supports invokeDefaultMethod.
      
              - Eliminated unnecessary polymorphism in the NodeIterator and TreeWalker
                classes. They were using virtual functions simply to share an instance
                of the RefCounted template, which was not helpful.
      
              * bindings/js/JSAudioConstructor.cpp:
              (WebCore::constructAudio):
              (WebCore::JSAudioConstructor::getConstructData):
              * bindings/js/JSAudioConstructor.h:
              (WebCore::JSAudioConstructor::document):
              (WebCore::JSAudioConstructor::classInfo):
              * bindings/js/JSClipboardCustom.cpp:
              (WebCore::JSClipboard::types):
              * 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/JSDOMBinding.h:
              (WebCore::DOMObject::DOMObject):
              * bindings/js/JSDOMWindowBase.cpp:
              (WebCore::windowProtoFuncAToB):
              (WebCore::windowProtoFuncBToA):
              (WebCore::windowProtoFuncOpen):
              (WebCore::windowProtoFuncSetTimeout):
              (WebCore::windowProtoFuncClearTimeout):
              (WebCore::windowProtoFuncSetInterval):
              (WebCore::windowProtoFuncAddEventListener):
              (WebCore::windowProtoFuncRemoveEventListener):
              (WebCore::windowProtoFuncShowModalDialog):
              (WebCore::windowProtoFuncNotImplemented):
              (WebCore::toJSDOMWindow):
              * bindings/js/JSDOMWindowBase.h:
              * bindings/js/JSDOMWindowShell.h:
              (WebCore::JSDOMWindowShell::classInfo):
              * bindings/js/JSEventListener.cpp:
              (WebCore::JSAbstractEventListener::handleEvent):
              (WebCore::JSLazyEventListener::parseCode):
              * bindings/js/JSEventTargetBase.cpp:
              (WebCore::retrieveEventTargetAndCorrespondingNode):
              (WebCore::jsEventTargetAddEventListener):
              (WebCore::jsEventTargetRemoveEventListener):
              (WebCore::jsEventTargetDispatchEvent):
              * bindings/js/JSEventTargetBase.h:
              * bindings/js/JSHTMLAppletElementCustom.cpp:
              (WebCore::JSHTMLAppletElement::customGetOwnPropertySlot):
              (WebCore::JSHTMLAppletElement::customPut):
              (WebCore::JSHTMLAppletElement::getCallData):
              * bindings/js/JSHTMLCollectionCustom.cpp:
              (WebCore::callHTMLCollection):
              (WebCore::JSHTMLCollection::getCallData):
              * bindings/js/JSHTMLDocumentCustom.cpp:
              (WebCore::JSHTMLDocument::open):
              * bindings/js/JSHTMLEmbedElementCustom.cpp:
              (WebCore::JSHTMLEmbedElement::customGetOwnPropertySlot):
              (WebCore::JSHTMLEmbedElement::customPut):
              (WebCore::JSHTMLEmbedElement::getCallData):
              * bindings/js/JSHTMLInputElementBase.cpp:
              (WebCore::jsHTMLInputElementBaseFunctionSetSelectionRange):
              * bindings/js/JSHTMLInputElementBase.h:
              * bindings/js/JSHTMLObjectElementCustom.cpp:
              (WebCore::JSHTMLObjectElement::customGetOwnPropertySlot):
              (WebCore::JSHTMLObjectElement::customPut):
              (WebCore::JSHTMLObjectElement::getCallData):
              * bindings/js/JSHTMLOptionElementConstructor.cpp:
              (WebCore::constructHTMLOptionElement):
              (WebCore::JSHTMLOptionElementConstructor::getConstructData):
              * bindings/js/JSHTMLOptionElementConstructor.h:
              (WebCore::JSHTMLOptionElementConstructor::document):
              (WebCore::JSHTMLOptionElementConstructor::classInfo):
              * bindings/js/JSImageConstructor.cpp:
              (WebCore::constructImage):
              (WebCore::JSImageConstructor::getConstructData):
              * bindings/js/JSImageConstructor.h:
              (WebCore::JSImageConstructor::document):
              (WebCore::JSImageConstructor::classInfo):
              * bindings/js/JSInspectedObjectWrapper.h:
              (WebCore::JSInspectedObjectWrapper::classInfo):
              * bindings/js/JSInspectorCallbackWrapper.cpp:
              (WebCore::JSInspectorCallbackWrapper::prepareIncomingValue):
              * bindings/js/JSJavaScriptCallFrameCustom.cpp:
              (WebCore::JSJavaScriptCallFrame::scopeChain):
              * bindings/js/JSNodeFilterCondition.cpp:
              (WebCore::JSNodeFilterCondition::JSNodeFilterCondition):
              (WebCore::JSNodeFilterCondition::mark):
              (WebCore::JSNodeFilterCondition::acceptNode):
              * bindings/js/JSNodeFilterCondition.h:
              (WebCore::JSNodeFilterCondition::create):
              * bindings/js/JSNodeFilterCustom.cpp:
              (WebCore::toNodeFilter):
              * bindings/js/JSNodeListCustom.cpp:
              (WebCore::callNodeList):
              (WebCore::JSNodeList::getCallData):
              (WebCore::JSNodeList::canGetItemsForName):
              (WebCore::JSNodeList::nameGetter):
              * bindings/js/JSPluginElementFunctions.cpp:
              (WebCore::runtimeObjectGetter):
              (WebCore::runtimeObjectPropertyGetter):
              (WebCore::runtimeObjectCustomGetOwnPropertySlot):
              (WebCore::runtimeObjectCustomPut):
              (WebCore::runtimeObjectGetCallData):
              (WebCore::pluginInstance):
              (WebCore::getRuntimeObject):
              (WebCore::callPlugin):
              * bindings/js/JSPluginElementFunctions.h:
              * bindings/js/JSQuarantinedObjectWrapper.cpp:
              (WebCore::JSQuarantinedObjectWrapper::put):
              (WebCore::JSQuarantinedObjectWrapper::construct):
              (WebCore::JSQuarantinedObjectWrapper::getConstructData):
              (WebCore::JSQuarantinedObjectWrapper::hasInstance):
              (WebCore::JSQuarantinedObjectWrapper::call):
              (WebCore::JSQuarantinedObjectWrapper::getCallData):
              * bindings/js/JSQuarantinedObjectWrapper.h:
              (WebCore::JSQuarantinedObjectWrapper::className):
              * bindings/js/JSRGBColor.cpp:
              * bindings/js/JSXMLHttpRequestConstructor.cpp:
              (WebCore::constructXMLHttpRequest):
              (WebCore::JSXMLHttpRequestConstructor::getConstructData):
              * bindings/js/JSXMLHttpRequestConstructor.h:
              (WebCore::JSXMLHttpRequestConstructor::document):
              (WebCore::JSXMLHttpRequestConstructor::classInfo):
              * bindings/js/JSXSLTProcessorConstructor.cpp:
              (WebCore::constructXSLTProcessor):
              (WebCore::JSXSLTProcessorConstructor::getConstructData):
              * bindings/js/JSXSLTProcessorConstructor.h:
              (WebCore::JSXSLTProcessorConstructor::classInfo):
              * bindings/js/ScheduledAction.cpp:
              (WebCore::ScheduledAction::ScheduledAction):
              (WebCore::ScheduledAction::execute):
              * bindings/js/ScheduledAction.h:
              * bindings/objc/WebScriptObject.mm:
              (-[WebScriptObject callWebScriptMethod:withArguments:]):
              * bindings/scripts/CodeGeneratorJS.pm:
              * bridge/NP_jsobject.cpp:
              (_NPN_InvokeDefault):
              (_NPN_Invoke):
              * bridge/c/c_instance.cpp:
              (KJS::Bindings::CInstance::supportsInvokeDefaultMethod):
              * bridge/c/c_instance.h:
              * bridge/jni/jni_jsobject.mm:
              (JavaJSObject::call):
              * bridge/objc/objc_instance.h:
              * bridge/objc/objc_instance.mm:
              (ObjcInstance::supportsInvokeDefaultMethod):
              * bridge/objc/objc_runtime.h:
              (KJS::Bindings::ObjcFallbackObjectImp::propertyName):
              (KJS::Bindings::ObjcFallbackObjectImp::classInfo):
              * bridge/objc/objc_runtime.mm:
              (Bindings::webScriptObjectClass):
              (Bindings::webUndefinedClass):
              (ObjcFallbackObjectImp::ObjcFallbackObjectImp):
              (callObjCFallbackObject):
              (ObjcFallbackObjectImp::getCallData):
              * bridge/qt/qt_instance.h:
              * bridge/runtime.cpp:
              (KJS::Bindings::Instance::createRuntimeObject):
              (KJS::Bindings::Instance::getInstance):
              * bridge/runtime.h:
              (KJS::Bindings::Field::~Field):
              (KJS::Bindings::Method::~Method):
              (KJS::Bindings::Class::~Class):
              (KJS::Bindings::Instance::supportsInvokeDefaultMethod):
              * bridge/runtime_method.cpp:
              (KJS::callRuntimeMethod):
              (KJS::RuntimeMethod::getCallData):
              * bridge/runtime_method.h:
              (KJS::RuntimeMethod::methods):
              * bridge/runtime_object.cpp:
              (RuntimeObjectImp::defaultValue):
              (callRuntimeObject):
              (RuntimeObjectImp::getCallData):
              * bridge/runtime_object.h:
              (KJS::RuntimeObjectImp::getInternalInstance):
              (KJS::RuntimeObjectImp::classInfo):
              * dom/NodeIterator.h:
              * dom/Traversal.cpp:
              * dom/Traversal.h:
              * dom/TreeWalker.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34754 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1edff436
  27. 19 Jun, 2008 1 commit
  28. 16 Jun, 2008 1 commit
  29. 15 Jun, 2008 2 commits
    • darin@apple.com's avatar
      JavaScriptCore: · 80d38f97
      darin@apple.com authored
      2008-06-15  Darin Adler  <darin@apple.com>
      
              - rename KJS::List to KJS::ArgList
      
              * API/JSCallbackConstructor.cpp:
              (KJS::JSCallbackConstructor::construct):
              * API/JSCallbackConstructor.h:
              * API/JSCallbackFunction.cpp:
              (KJS::JSCallbackFunction::callAsFunction):
              * API/JSCallbackFunction.h:
              * API/JSCallbackObject.h:
              * API/JSCallbackObjectFunctions.h:
              (KJS::::construct):
              (KJS::::callAsFunction):
              * API/JSObjectRef.cpp:
              (JSObjectMakeFunction):
              (JSObjectCallAsFunction):
              (JSObjectCallAsConstructor):
              * JavaScriptCore.exp:
              * VM/Machine.cpp:
              (KJS::Machine::execute):
              (KJS::Machine::privateExecute):
              * VM/Machine.h:
              * kjs/ArrayPrototype.cpp:
              (KJS::arrayProtoFuncToString):
              (KJS::arrayProtoFuncToLocaleString):
              (KJS::arrayProtoFuncJoin):
              (KJS::arrayProtoFuncConcat):
              (KJS::arrayProtoFuncPop):
              (KJS::arrayProtoFuncPush):
              (KJS::arrayProtoFuncReverse):
              (KJS::arrayProtoFuncShift):
              (KJS::arrayProtoFuncSlice):
              (KJS::arrayProtoFuncSort):
              (KJS::arrayProtoFuncSplice):
              (KJS::arrayProtoFuncUnShift):
              (KJS::arrayProtoFuncFilter):
              (KJS::arrayProtoFuncMap):
              (KJS::arrayProtoFuncEvery):
              (KJS::arrayProtoFuncForEach):
              (KJS::arrayProtoFuncSome):
              (KJS::arrayProtoFuncIndexOf):
              (KJS::arrayProtoFuncLastIndexOf):
              (KJS::ArrayConstructor::construct):
              (KJS::ArrayConstructor::callAsFunction):
              * kjs/ArrayPrototype.h:
              * kjs/BooleanObject.cpp:
              (KJS::booleanProtoFuncToString):
              (KJS::booleanProtoFuncValueOf):
              (KJS::BooleanConstructor::construct):
              (KJS::BooleanConstructor::callAsFunction):
              * kjs/BooleanObject.h:
              * kjs/CommonIdentifiers.h:
              * kjs/ExecState.h:
              (KJS::ExecState::emptyList):
              * kjs/FunctionPrototype.cpp:
              (KJS::FunctionPrototype::callAsFunction):
              (KJS::functionProtoFuncToString):
              (KJS::functionProtoFuncApply):
              (KJS::functionProtoFuncCall):
              (KJS::FunctionConstructor::construct):
              (KJS::FunctionConstructor::callAsFunction):
              * kjs/FunctionPrototype.h:
              * kjs/JSActivation.cpp:
              (KJS::JSActivation::createArgumentsObject):
              * kjs/JSArray.cpp:
              (KJS::JSArray::JSArray):
              (KJS::AVLTreeAbstractorForArrayCompare::compare_key_key):
              * kjs/JSArray.h:
              * kjs/JSFunction.cpp:
              (KJS::JSFunction::callAsFunction):
              (KJS::JSFunction::construct):
              (KJS::IndexToNameMap::IndexToNameMap):
              (KJS::Arguments::Arguments):
              (KJS::encode):
              (KJS::decode):
              (KJS::globalFuncEval):
              (KJS::globalFuncParseInt):
              (KJS::globalFuncParseFloat):
              (KJS::globalFuncIsNaN):
              (KJS::globalFuncIsFinite):
              (KJS::globalFuncDecodeURI):
              (KJS::globalFuncDecodeURIComponent):
              (KJS::globalFuncEncodeURI):
              (KJS::globalFuncEncodeURIComponent):
              (KJS::globalFuncEscape):
              (KJS::globalFuncUnescape):
              (KJS::globalFuncKJSPrint):
              (KJS::PrototypeFunction::callAsFunction):
              (KJS::PrototypeReflexiveFunction::callAsFunction):
              * kjs/JSFunction.h:
              * kjs/JSGlobalData.h:
              * kjs/JSImmediate.cpp:
              (KJS::JSImmediate::toObject):
              * kjs/JSNotAnObject.cpp:
              (KJS::JSNotAnObject::construct):
              (KJS::JSNotAnObject::callAsFunction):
              * kjs/JSNotAnObject.h:
              * kjs/JSObject.cpp:
              (KJS::JSObject::put):
              (KJS::JSObject::construct):
              (KJS::JSObject::callAsFunction):
              (KJS::Error::create):
              * kjs/JSObject.h:
              * kjs/MathObject.cpp:
              (KJS::mathProtoFuncAbs):
              (KJS::mathProtoFuncACos):
              (KJS::mathProtoFuncASin):
              (KJS::mathProtoFuncATan):
              (KJS::mathProtoFuncATan2):
              (KJS::mathProtoFuncCeil):
              (KJS::mathProtoFuncCos):
              (KJS::mathProtoFuncExp):
              (KJS::mathProtoFuncFloor):
              (KJS::mathProtoFuncLog):
              (KJS::mathProtoFuncMax):
              (KJS::mathProtoFuncMin):
              (KJS::mathProtoFuncPow):
              (KJS::mathProtoFuncRandom):
              (KJS::mathProtoFuncRound):
              (KJS::mathProtoFuncSin):
              (KJS::mathProtoFuncSqrt):
              (KJS::mathProtoFuncTan):
              * kjs/MathObject.h:
              * kjs/NumberObject.cpp:
              (KJS::numberProtoFuncToString):
              (KJS::numberProtoFuncToLocaleString):
              (KJS::numberProtoFuncValueOf):
              (KJS::numberProtoFuncToFixed):
              (KJS::numberProtoFuncToExponential):
              (KJS::numberProtoFuncToPrecision):
              (KJS::NumberConstructor::construct):
              (KJS::NumberConstructor::callAsFunction):
              * kjs/NumberObject.h:
              * kjs/RegExpObject.cpp:
              (KJS::regExpProtoFuncTest):
              (KJS::regExpProtoFuncExec):
              (KJS::regExpProtoFuncCompile):
              (KJS::regExpProtoFuncToString):
              (KJS::RegExpObject::match):
              (KJS::RegExpObject::test):
              (KJS::RegExpObject::exec):
              (KJS::RegExpObject::callAsFunction):
              (KJS::RegExpConstructor::construct):
              (KJS::RegExpConstructor::callAsFunction):
              * kjs/RegExpObject.h:
              * kjs/Shell.cpp:
              (functionPrint):
              (functionDebug):
              (functionGC):
              (functionVersion):
              (functionRun):
              (functionLoad):
              (functionReadline):
              (functionQuit):
              * kjs/collector.cpp:
              (KJS::Collector::collect):
              * kjs/collector.h:
              (KJS::Collector::markListSet):
              * kjs/date_object.cpp:
              (KJS::formatLocaleDate):
              (KJS::fillStructuresUsingTimeArgs):
              (KJS::fillStructuresUsingDateArgs):
              (KJS::DateConstructor::construct):
              (KJS::DateConstructor::callAsFunction):
              (KJS::DateFunction::callAsFunction):
              (KJS::dateProtoFuncToString):
              (KJS::dateProtoFuncToUTCString):
              (KJS::dateProtoFuncToDateString):
              (KJS::dateProtoFuncToTimeString):
              (KJS::dateProtoFuncToLocaleString):
              (KJS::dateProtoFuncToLocaleDateString):
              (KJS::dateProtoFuncToLocaleTimeString):
              (KJS::dateProtoFuncValueOf):
              (KJS::dateProtoFuncGetTime):
              (KJS::dateProtoFuncGetFullYear):
              (KJS::dateProtoFuncGetUTCFullYear):
              (KJS::dateProtoFuncToGMTString):
              (KJS::dateProtoFuncGetMonth):
              (KJS::dateProtoFuncGetUTCMonth):
              (KJS::dateProtoFuncGetDate):
              (KJS::dateProtoFuncGetUTCDate):
              (KJS::dateProtoFuncGetDay):
              (KJS::dateProtoFuncGetUTCDay):
              (KJS::dateProtoFuncGetHours):
              (KJS::dateProtoFuncGetUTCHours):
              (KJS::dateProtoFuncGetMinutes):
              (KJS::dateProtoFuncGetUTCMinutes):
              (KJS::dateProtoFuncGetSeconds):
              (KJS::dateProtoFuncGetUTCSeconds):
              (KJS::dateProtoFuncGetMilliSeconds):
              (KJS::dateProtoFuncGetUTCMilliseconds):
              (KJS::dateProtoFuncGetTimezoneOffset):
              (KJS::dateProtoFuncSetTime):
              (KJS::setNewValueFromTimeArgs):
              (KJS::setNewValueFromDateArgs):
              (KJS::dateProtoFuncSetMilliSeconds):
              (KJS::dateProtoFuncSetUTCMilliseconds):
              (KJS::dateProtoFuncSetSeconds):
              (KJS::dateProtoFuncSetUTCSeconds):
              (KJS::dateProtoFuncSetMinutes):
              (KJS::dateProtoFuncSetUTCMinutes):
              (KJS::dateProtoFuncSetHours):
              (KJS::dateProtoFuncSetUTCHours):
              (KJS::dateProtoFuncSetDate):
              (KJS::dateProtoFuncSetUTCDate):
              (KJS::dateProtoFuncSetMonth):
              (KJS::dateProtoFuncSetUTCMonth):
              (KJS::dateProtoFuncSetFullYear):
              (KJS::dateProtoFuncSetUTCFullYear):
              (KJS::dateProtoFuncSetYear):
              (KJS::dateProtoFuncGetYear):
              * kjs/date_object.h:
              * kjs/debugger.h:
              * kjs/error_object.cpp:
              (KJS::errorProtoFuncToString):
              (KJS::ErrorConstructor::construct):
              (KJS::ErrorConstructor::callAsFunction):
              (KJS::NativeErrorConstructor::construct):
              (KJS::NativeErrorConstructor::callAsFunction):
              * kjs/error_object.h:
              * kjs/internal.cpp:
              (KJS::JSNumberCell::toObject):
              (KJS::JSNumberCell::toThisObject):
              * kjs/list.cpp:
              (KJS::ArgList::getSlice):
              (KJS::ArgList::markLists):
              (KJS::ArgList::slowAppend):
              * kjs/list.h:
              (KJS::ArgList::ArgList):
              (KJS::ArgList::~ArgList):
              * kjs/object_object.cpp:
              (KJS::objectProtoFuncValueOf):
              (KJS::objectProtoFuncHasOwnProperty):
              (KJS::objectProtoFuncIsPrototypeOf):
              (KJS::objectProtoFuncDefineGetter):
              (KJS::objectProtoFuncDefineSetter):
              (KJS::objectProtoFuncLookupGetter):
              (KJS::objectProtoFuncLookupSetter):
              (KJS::objectProtoFuncPropertyIsEnumerable):
              (KJS::objectProtoFuncToLocaleString):
              (KJS::objectProtoFuncToString):
              (KJS::ObjectConstructor::construct):
              (KJS::ObjectConstructor::callAsFunction):
              * kjs/object_object.h:
              * kjs/string_object.cpp:
              (KJS::replace):
              (KJS::stringProtoFuncToString):
              (KJS::stringProtoFuncValueOf):
              (KJS::stringProtoFuncCharAt):
              (KJS::stringProtoFuncCharCodeAt):
              (KJS::stringProtoFuncConcat):
              (KJS::stringProtoFuncIndexOf):
              (KJS::stringProtoFuncLastIndexOf):
              (KJS::stringProtoFuncMatch):
              (KJS::stringProtoFuncSearch):
              (KJS::stringProtoFuncReplace):
              (KJS::stringProtoFuncSlice):
              (KJS::stringProtoFuncSplit):
              (KJS::stringProtoFuncSubstr):
              (KJS::stringProtoFuncSubstring):
              (KJS::stringProtoFuncToLowerCase):
              (KJS::stringProtoFuncToUpperCase):
              (KJS::stringProtoFuncToLocaleLowerCase):
              (KJS::stringProtoFuncToLocaleUpperCase):
              (KJS::stringProtoFuncLocaleCompare):
              (KJS::stringProtoFuncBig):
              (KJS::stringProtoFuncSmall):
              (KJS::stringProtoFuncBlink):
              (KJS::stringProtoFuncBold):
              (KJS::stringProtoFuncFixed):
              (KJS::stringProtoFuncItalics):
              (KJS::stringProtoFuncStrike):
              (KJS::stringProtoFuncSub):
              (KJS::stringProtoFuncSup):
              (KJS::stringProtoFuncFontcolor):
              (KJS::stringProtoFuncFontsize):
              (KJS::stringProtoFuncAnchor):
              (KJS::stringProtoFuncLink):
              (KJS::StringConstructor::construct):
              (KJS::StringConstructor::callAsFunction):
              (KJS::StringConstructorFunction::callAsFunction):
              * kjs/string_object.h:
      
      JavaScriptGlue:
      
      2008-06-15  Darin Adler  <darin@apple.com>
      
              - rename KJS::List to KJS::ArgList
      
              * JSValueWrapper.cpp:
              (JSValueWrapper::JSObjectCallFunction):
              * UserObjectImp.cpp:
              (UserObjectImp::callAsFunction):
              * UserObjectImp.h:
      
      WebCore:
      
      2008-06-15  Darin Adler  <darin@apple.com>
      
              - try to fix Qt build
      
              * dom/XMLTokenizer.cpp: Use create instead of new.
      
              - rename KJS::List to KJS::ArgList
      
              * bindings/js/JSAudioConstructor.cpp:
              (WebCore::JSAudioConstructor::construct):
              * bindings/js/JSAudioConstructor.h:
              * 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):
              * 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::debug):
              (WebCore::JSConsole::error):
              (WebCore::JSConsole::info):
              (WebCore::JSConsole::log):
              (WebCore::JSConsole::warn):
              (WebCore::JSConsole::assertCondition):
              (WebCore::JSConsole::profile):
              (WebCore::JSConsole::profileEnd):
              * 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/JSDOMApplicationCacheCustom.cpp:
              (WebCore::JSDOMApplicationCache::add):
              (WebCore::JSDOMApplicationCache::remove):
              (WebCore::JSDOMApplicationCache::addEventListener):
              (WebCore::JSDOMApplicationCache::removeEventListener):
              (WebCore::JSDOMApplicationCache::dispatchEvent):
              * bindings/js/JSDOMWindowBase.cpp:
              (WebCore::windowProtoFuncAToB):
              (WebCore::windowProtoFuncBToA):
              (WebCore::windowProtoFuncOpen):
              (WebCore::windowProtoFuncSetTimeout):
              (WebCore::windowProtoFuncClearTimeout):
              (WebCore::windowProtoFuncSetInterval):
              (WebCore::windowProtoFuncAddEventListener):
              (WebCore::windowProtoFuncRemoveEventListener):
              (WebCore::windowProtoFuncShowModalDialog):
              (WebCore::windowProtoFuncNotImplemented):
              (WebCore::JSDOMWindowBase::installTimeout):
              * bindings/js/JSDOMWindowBase.h:
              * bindings/js/JSDOMWindowCustom.cpp:
              (WebCore::JSDOMWindow::postMessage):
              * 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/JSEventTargetBase.cpp:
              (WebCore::jsEventTargetAddEventListener):
              (WebCore::jsEventTargetRemoveEventListener):
              (WebCore::jsEventTargetDispatchEvent):
              * bindings/js/JSEventTargetBase.h:
              * bindings/js/JSHTMLAppletElementCustom.cpp:
              (WebCore::JSHTMLAppletElement::callAsFunction):
              * bindings/js/JSHTMLCollectionCustom.cpp:
              (WebCore::JSHTMLCollection::callAsFunction):
              (WebCore::JSHTMLCollection::item):
              (WebCore::JSHTMLCollection::namedItem):
              * bindings/js/JSHTMLDocumentCustom.cpp:
              (WebCore::JSHTMLDocument::open):
              (WebCore::writeHelper):
              (WebCore::JSHTMLDocument::write):
              (WebCore::JSHTMLDocument::writeln):
              * bindings/js/JSHTMLEmbedElementCustom.cpp:
              (WebCore::JSHTMLEmbedElement::callAsFunction):
              * bindings/js/JSHTMLInputElementBase.cpp:
              (WebCore::jsHTMLInputElementBaseFunctionSetSelectionRange):
              * bindings/js/JSHTMLInputElementBase.h:
              * bindings/js/JSHTMLObjectElementCustom.cpp:
              (WebCore::JSHTMLObjectElement::callAsFunction):
              * bindings/js/JSHTMLOptionElementConstructor.cpp:
              (WebCore::JSHTMLOptionElementConstructor::construct):
              * bindings/js/JSHTMLOptionElementConstructor.h:
              * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
              (WebCore::JSHTMLOptionsCollection::add):
              (WebCore::JSHTMLOptionsCollection::remove):
              * bindings/js/JSHTMLSelectElementCustom.cpp:
              (WebCore::JSHTMLSelectElement::remove):
              * bindings/js/JSImageConstructor.cpp:
              (WebCore::JSImageConstructor::construct):
              * bindings/js/JSImageConstructor.h:
              * bindings/js/JSJavaScriptCallFrameCustom.cpp:
              (WebCore::JSJavaScriptCallFrame::evaluate):
              (WebCore::JSJavaScriptCallFrame::scopeChain):
              * bindings/js/JSLocationCustom.cpp:
              (WebCore::JSLocation::replace):
              (WebCore::JSLocation::reload):
              (WebCore::JSLocation::assign):
              (WebCore::JSLocation::toString):
              * bindings/js/JSNodeCustom.cpp:
              (WebCore::JSNode::insertBefore):
              (WebCore::JSNode::replaceChild):
              (WebCore::JSNode::removeChild):
              (WebCore::JSNode::appendChild):
              * bindings/js/JSNodeFilterCondition.cpp:
              (WebCore::JSNodeFilterCondition::acceptNode):
              * bindings/js/JSNodeFilterCustom.cpp:
              (WebCore::JSNodeFilter::acceptNode):
              * bindings/js/JSNodeIteratorCustom.cpp:
              (WebCore::JSNodeIterator::nextNode):
              (WebCore::JSNodeIterator::previousNode):
              * bindings/js/JSNodeListCustom.cpp:
              (WebCore::JSNodeList::callAsFunction):
              * bindings/js/JSQuarantinedObjectWrapper.cpp:
              (WebCore::JSQuarantinedObjectWrapper::construct):
              (WebCore::JSQuarantinedObjectWrapper::callAsFunction):
              * bindings/js/JSQuarantinedObjectWrapper.h:
              * bindings/js/JSSQLResultSetRowListCustom.cpp:
              (WebCore::JSSQLResultSetRowList::item):
              * bindings/js/JSSQLTransactionCustom.cpp:
              (WebCore::JSSQLTransaction::executeSql):
              * bindings/js/JSSVGMatrixCustom.cpp:
              (WebCore::JSSVGMatrix::multiply):
              (WebCore::JSSVGMatrix::inverse):
              (WebCore::JSSVGMatrix::translate):
              (WebCore::JSSVGMatrix::scale):
              (WebCore::JSSVGMatrix::scaleNonUniform):
              (WebCore::JSSVGMatrix::rotate):
              (WebCore::JSSVGMatrix::rotateFromVector):
              (WebCore::JSSVGMatrix::flipX):
              (WebCore::JSSVGMatrix::flipY):
              (WebCore::JSSVGMatrix::skewX):
              (WebCore::JSSVGMatrix::skewY):
              * 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::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::JSSVGTransformList::clear):
              (WebCore::JSSVGTransformList::initialize):
              (WebCore::JSSVGTransformList::getItem):
              (WebCore::JSSVGTransformList::insertItemBefore):
              (WebCore::JSSVGTransformList::replaceItem):
              (WebCore::JSSVGTransformList::removeItem):
              (WebCore::JSSVGTransformList::appendItem):
              * 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/JSXMLHttpRequestConstructor.cpp:
              (WebCore::JSXMLHttpRequestConstructor::construct):
              * bindings/js/JSXMLHttpRequestConstructor.h:
              * 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::dispatchEvent):
              * bindings/js/JSXSLTProcessorConstructor.cpp:
              (WebCore::JSXSLTProcessorConstructor::construct):
              * bindings/js/JSXSLTProcessorConstructor.h:
              * 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::ScheduledAction):
              (WebCore::ScheduledAction::execute):
              * bindings/js/ScheduledAction.h:
              * bindings/js/kjs_events.cpp:
              (WebCore::JSAbstractEventListener::handleEvent):
              (WebCore::JSLazyEventListener::parseCode):
              * bindings/js/kjs_html.cpp:
              (WebCore::runtimeObjectCallAsFunction):
              * bindings/js/kjs_html.h:
              * bindings/objc/WebScriptObject.mm:
              (getListFromNSArray):
              (-[WebScriptObject callWebScriptMethod:withArguments:]):
              * bindings/scripts/CodeGeneratorJS.pm:
              * bridge/NP_jsobject.cpp:
              (getListFromVariantArgs):
              (_NPN_InvokeDefault):
              (_NPN_Invoke):
              * bridge/c/c_instance.cpp:
              (KJS::Bindings::CInstance::invokeMethod):
              (KJS::Bindings::CInstance::invokeDefaultMethod):
              * bridge/c/c_instance.h:
              * bridge/jni/jni_instance.cpp:
              (JavaInstance::invokeMethod):
              * bridge/jni/jni_instance.h:
              * bridge/jni/jni_jsobject.h:
              * bridge/jni/jni_jsobject.mm:
              (JavaJSObject::call):
              (JavaJSObject::getListFromJArray):
              * bridge/objc/objc_instance.h:
              * bridge/objc/objc_instance.mm:
              (ObjcInstance::invokeMethod):
              (ObjcInstance::invokeDefaultMethod):
              * bridge/objc/objc_runtime.h:
              * bridge/objc/objc_runtime.mm:
              (ObjcFallbackObjectImp::callAsFunction):
              * bridge/qt/qt_instance.cpp:
              (KJS::Bindings::QtRuntimeObjectImp::construct):
              (KJS::Bindings::QtInstance::invokeMethod):
              (KJS::Bindings::QtInstance::invokeDefaultMethod):
              * bridge/qt/qt_instance.h:
              * bridge/qt/qt_runtime.cpp:
              (KJS::Bindings::convertQVariantToValue):
              (KJS::Bindings::findMethodIndex):
              (KJS::Bindings::QtRuntimeMetaMethod::callAsFunction):
              (KJS::Bindings::QtRuntimeConnectionMethod::callAsFunction):
              (KJS::Bindings::QtConnectionObject::execute):
              * bridge/qt/qt_runtime.h:
              * bridge/runtime.h:
              (KJS::Bindings::Instance::invokeDefaultMethod):
              * bridge/runtime_method.cpp:
              (RuntimeMethod::callAsFunction):
              * bridge/runtime_method.h:
              * bridge/runtime_object.cpp:
              (RuntimeObjectImp::callAsFunction):
              * bridge/runtime_object.h:
              * page/Console.cpp:
              (WebCore::printToStandardOut):
              (WebCore::Console::debug):
              (WebCore::Console::error):
              (WebCore::Console::info):
              (WebCore::Console::log):
              (WebCore::Console::assertCondition):
              (WebCore::Console::profile):
              (WebCore::Console::profileEnd):
              (WebCore::Console::warn):
              * page/Console.h:
              * page/InspectorController.cpp:
              (WebCore::ConsoleMessage::ConsoleMessage):
              (WebCore::InspectorController::addMessageToConsole):
              * page/InspectorController.h:
      
      WebKit/mac:
      
      2008-06-15  Darin Adler  <darin@apple.com>
      
              - rename KJS::List to KJS::ArgList
      
              * WebView/WebScriptDebugger.h:
      
      WebKit/win:
      
      2008-06-15  Darin Adler  <darin@apple.com>
      
              - rename KJS::List to KJS::ArgList
      
              * WebScriptCallFrame.cpp:
              (WebScriptCallFrame::valueByEvaluatingJavaScriptFromString):
      
      WebKitTools:
      
      2008-06-15  Darin Adler  <darin@apple.com>
      
              * Scripts/do-webcore-rename: Updated for the latest round of renaming.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34587 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      80d38f97
    • darin@apple.com's avatar
      JavaScriptCore: · 3dcb636f
      darin@apple.com authored
      2008-06-15  Darin Adler  <darin@apple.com>
      
              - new names for a few key JavaScriptCore files
      
              * API/JSBase.cpp:
              * API/JSCallbackConstructor.h:
              * API/JSCallbackFunction.cpp:
              * API/JSCallbackFunction.h:
              * API/JSCallbackObject.h:
              * API/JSCallbackObjectFunctions.h:
              * API/JSClassRef.h:
              * API/JSContextRef.cpp:
              * API/JSObjectRef.cpp:
              * API/JSStringRef.cpp:
              * API/JSStringRefCF.cpp:
              * API/JSValueRef.cpp:
              * GNUmakefile.am:
              * JavaScriptCore.pri:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * JavaScriptCoreSources.bkl:
              * VM/CodeBlock.cpp:
              * VM/CodeGenerator.cpp:
              * VM/ExceptionHelpers.cpp:
              * VM/ExceptionHelpers.h:
              * VM/JSPropertyNameIterator.cpp:
              * VM/JSPropertyNameIterator.h:
              * VM/Machine.cpp:
              * kjs/AllInOneFile.cpp:
              * kjs/DateMath.cpp:
              * kjs/DebuggerCallFrame.cpp:
              * kjs/ExecState.cpp:
              * kjs/JSActivation.cpp:
              * kjs/JSFunction.cpp: Copied from JavaScriptCore/kjs/function.cpp.
              * kjs/JSFunction.h: Copied from JavaScriptCore/kjs/function.h.
              * kjs/JSImmediate.cpp:
              * kjs/JSNotAnObject.h:
              * kjs/JSObject.cpp: Copied from JavaScriptCore/kjs/object.cpp.
              * kjs/JSObject.h: Copied from JavaScriptCore/kjs/object.h.
              * kjs/JSString.h: Copied from JavaScriptCore/kjs/internal.h.
              * kjs/JSValue.cpp: Copied from JavaScriptCore/kjs/value.cpp.
              * kjs/JSValue.h: Copied from JavaScriptCore/kjs/value.h.
              * kjs/JSVariableObject.h:
              * kjs/JSWrapperObject.h:
              * kjs/Shell.cpp:
              * kjs/SymbolTable.h:
              * kjs/array_instance.h:
              * kjs/collector.cpp:
              * kjs/date_object.cpp:
              * kjs/date_object.h:
              * kjs/error_object.cpp:
              * kjs/function.cpp: Removed.
              * kjs/function.h: Removed.
              * kjs/function_object.cpp:
              * kjs/function_object.h:
              * kjs/grammar.y:
              * kjs/internal.cpp:
              * kjs/internal.h: Removed.
              * kjs/lexer.cpp:
              * kjs/list.h:
              * kjs/lookup.h:
              * kjs/nodes.h:
              * kjs/object.cpp: Removed.
              * kjs/object.h: Removed.
              * kjs/object_object.h:
              * kjs/operations.cpp:
              * kjs/property_map.cpp:
              * kjs/property_slot.cpp:
              * kjs/property_slot.h:
              * kjs/protect.h:
              * kjs/regexp_object.cpp:
              * kjs/scope_chain.cpp:
              * kjs/string_object.h:
              * kjs/ustring.cpp:
              * kjs/value.cpp: Removed.
              * kjs/value.h: Removed.
              * profiler/Profile.cpp:
              * profiler/Profiler.cpp:
      
      JavaScriptGlue:
      
      2008-06-15  Darin Adler  <darin@apple.com>
      
              - new names for a few key JavaScriptCore files
      
              * ForwardingHeaders/kjs/JSValue.h: Copied from JavaScriptGlue/ForwardingHeaders/kjs/value.h.
              * ForwardingHeaders/kjs/value.h: Removed.
              * JSUtils.h:
      
      WebCore:
      
      2008-06-15  Darin Adler  <darin@apple.com>
      
              - new names for a few key JavaScriptCore files
      
              * ForwardingHeaders/kjs/JSFunction.h: Copied from WebCore/ForwardingHeaders/kjs/function.h.
              * ForwardingHeaders/kjs/JSObject.h: Copied from WebCore/ForwardingHeaders/kjs/object.h.
              * ForwardingHeaders/kjs/JSString.h: Copied from WebCore/ForwardingHeaders/kjs/internal.h.
              * ForwardingHeaders/kjs/JSValue.h: Copied from WebCore/ForwardingHeaders/kjs/value.h.
              * ForwardingHeaders/kjs/function.h: Removed.
              * ForwardingHeaders/kjs/internal.h: Removed.
              * ForwardingHeaders/kjs/object.h: Removed.
              * ForwardingHeaders/kjs/value.h: Removed.
              * WebCore.vcproj/WebCore.vcproj:
              * bindings/js/JSCustomSQLStatementCallback.h:
              * bindings/js/JSCustomSQLStatementErrorCallback.h:
              * bindings/js/JSCustomSQLTransactionErrorCallback.h:
              * bindings/js/JSCustomVoidCallback.h:
              * bindings/js/JSDOMBinding.h:
              * bindings/js/JSDOMWindowCustom.cpp:
              * bindings/js/JSDOMWindowShell.cpp:
              * bindings/js/JSQuarantinedObjectWrapper.h:
              * bridge/objc/objc_runtime.h:
              * bridge/objc/objc_utility.h:
              * bridge/qt/qt_runtime.cpp:
              * bridge/runtime.h:
              * bridge/runtime_array.h:
              * bridge/runtime_method.h:
              * bridge/runtime_object.h:
              * bridge/testbindings.cpp:
              * bridge/testbindings.mm:
              * bridge/testqtbindings.cpp:
              * loader/FrameLoader.cpp:
              * page/JavaScriptCallFrame.cpp:
              * page/JavaScriptProfile.cpp:
              * page/JavaScriptProfileNode.cpp:
              * platform/graphics/gtk/VideoSinkGStreamer.h:
              * plugins/PluginView.cpp:
              * plugins/gtk/PluginViewGtk.cpp:
              * plugins/qt/PluginViewQt.cpp:
              * plugins/win/PluginViewWin.cpp:
      
      WebKit/gtk:
      
      2008-06-15  Darin Adler  <darin@apple.com>
      
              - new names for a few key JavaScriptCore files
      
              * WebCoreSupport/ContextMenuClientGtk.cpp:
              * webkit/webkitnetworkrequest.h:
              * webkit/webkitwebbackforwardlist.h:
              * webkit/webkitwebframe.h:
              * webkit/webkitwebhistoryitem.h:
              * webkit/webkitwebsettings.h:
      
      WebKit/mac:
      
      2008-06-15  Darin Adler  <darin@apple.com>
      
              - new names for a few key JavaScriptCore files
      
              * ForwardingHeaders/kjs/JSFunction.h: Copied from WebKit/mac/ForwardingHeaders/kjs/function.h.
              * ForwardingHeaders/kjs/JSObject.h: Copied from WebKit/mac/ForwardingHeaders/kjs/object.h.
              * ForwardingHeaders/kjs/JSString.h: Copied from WebKit/mac/ForwardingHeaders/kjs/internal.h.
              * ForwardingHeaders/kjs/JSValue.h: Copied from WebKit/mac/ForwardingHeaders/kjs/value.h.
              * ForwardingHeaders/kjs/function.h: Removed.
              * ForwardingHeaders/kjs/internal.h: Removed.
              * ForwardingHeaders/kjs/object.h: Removed.
              * ForwardingHeaders/kjs/value.h: Removed.
              * WebView/WebScriptDebugDelegate.mm:
      
      WebKit/qt:
      
      2008-06-15  Darin Adler  <darin@apple.com>
      
              - new names for a few key JavaScriptCore files
      
              * Api/qwebframe.cpp:
      
      WebKit/win:
      
      2008-06-15  Darin Adler  <darin@apple.com>
      
              - new names for a few key JavaScriptCore files
      
              * WebView.cpp:
      
      WebKit/wx:
      
      2008-06-15  Darin Adler  <darin@apple.com>
      
              - new names for a few key JavaScriptCore files
      
              * WebView.cpp:
      
      WebKitTools:
      
      2008-06-15  Darin Adler  <darin@apple.com>
      
              * Scripts/do-file-rename: Updated for the latest round of renaming.
              * Scripts/do-webcore-rename: Tweaked and reorganized a bit.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34581 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3dcb636f