1. 05 Nov, 2012 1 commit
    • fpizlo@apple.com's avatar
      Reduce the verbosity of referring to QNaN in JavaScriptCore · 3494d02f
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=101174
      
      Reviewed by Geoffrey Garen.
      
      Introduces a #define QNaN in JSValue.h, and replaces all previous uses of
      std::numeric_limits<double>::quiet_NaN() with QNaN.
      
      * API/JSValueRef.cpp:
      (JSValueMakeNumber):
      (JSValueToNumber):
      * dfg/DFGSpeculativeJIT.cpp:
      (JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):
      * jit/JITPropertyAccess.cpp:
      (JSC::JIT::emitFloatTypedArrayGetByVal):
      * runtime/CachedTranscendentalFunction.h:
      (JSC::CachedTranscendentalFunction::initialize):
      * runtime/DateConstructor.cpp:
      (JSC::constructDate):
      * runtime/DateInstanceCache.h:
      (JSC::DateInstanceData::DateInstanceData):
      (JSC::DateInstanceCache::reset):
      * runtime/ExceptionHelpers.cpp:
      (JSC::InterruptedExecutionError::defaultValue):
      (JSC::TerminatedExecutionError::defaultValue):
      * runtime/JSCell.h:
      (JSC::JSValue::getPrimitiveNumber):
      * runtime/JSDateMath.cpp:
      (JSC::parseDateFromNullTerminatedCharacters):
      * runtime/JSGlobalData.cpp:
      (JSC::JSGlobalData::JSGlobalData):
      (JSC::JSGlobalData::resetDateCache):
      * runtime/JSGlobalObjectFunctions.cpp:
      (JSC::parseInt):
      (JSC::jsStrDecimalLiteral):
      (JSC::toDouble):
      (JSC::jsToNumber):
      (JSC::parseFloat):
      * runtime/JSValue.cpp:
      (JSC::JSValue::toNumberSlowCase):
      * runtime/JSValue.h:
      (JSC):
      * runtime/JSValueInlineMethods.h:
      (JSC::jsNaN):
      * runtime/MathObject.cpp:
      (JSC::mathProtoFuncMax):
      (JSC::mathProtoFuncMin):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@133493 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3494d02f
  2. 14 Nov, 2011 1 commit
    • abarth@webkit.org's avatar
      DateMath.cpp should not depend on JavaScriptCore · 2e4652ac
      abarth@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=71747
      
      Reviewed by Darin Adler.
      
      This patch moves the JSC-specific parts of DateMath into JSDateMath in
      JavaScriptCore.  There shouldn't be any behavior change.
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * JavaScriptCore.gypi:
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * Target.pri:
      * runtime/DateConstructor.cpp:
      * runtime/DateConversion.cpp:
      * runtime/DateInstance.cpp:
      * runtime/DateInstanceCache.h:
      * runtime/DatePrototype.cpp:
      * runtime/InitializeThreading.cpp:
      * runtime/JSDateMath.cpp: Copied from Source/JavaScriptCore/wtf/DateMath.cpp.
      (JSC::timeToMS):
      (JSC::msToSeconds):
      * runtime/JSDateMath.h: Copied from Source/JavaScriptCore/wtf/DateMath.h.
      * wtf/DateMath.cpp:
      (WTF::isLeapYear):
      (WTF::msToDays):
      (WTF::msToMinutes):
      (WTF::msToHours):
      (WTF::parseDateFromNullTerminatedCharacters):
      (WTF::makeRFC2822DateString):
      * wtf/DateMath.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@100205 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2e4652ac
  3. 16 Sep, 2011 1 commit
    • fpizlo@apple.com's avatar
      DFG JIT should inline Math.abs · 3c3e9651
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=68227
      
      Source/JavaScriptCore: 
      
      Reviewed by Oliver Hunt.
              
      This adds the ability to track intrinsic functions throughout the
      host function infrastructure, so that the DFG can easily query
      whether or not a call's target is intrinsic, and if so, which
      intrinsic it is.
              
      On top of this, it adds Math.abs intrinsics to DFG. Call(Math.abs)
      is transformed into ValueToNumber<-ArithAbs nodes. These nodes
      then get optimized using the usual tricks.
              
      Also had to make a completely unrelated change to
      DateInstanceCache.h in order to fix a preexisting alphabetical
      sorting problem in JSGlobalData.h
              
      This results in a big win in imaging-gaussian-blur: 61% faster
      than before. The net win on Kraken is around 13%.
      
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * create_hash_table:
      * dfg/DFGByteCodeParser.cpp:
      (JSC::DFG::ByteCodeParser::parseBlock):
      * dfg/DFGGraph.h:
      (JSC::DFG::Graph::isFunctionConstant):
      (JSC::DFG::Graph::valueOfFunctionConstant):
      * dfg/DFGIntrinsic.h: Added.
      * dfg/DFGJITCodeGenerator.h:
      (JSC::DFG::JITCodeGenerator::isFunctionConstant):
      (JSC::DFG::JITCodeGenerator::valueOfFunctionConstant):
      * dfg/DFGJITCompiler.h:
      (JSC::DFG::JITCompiler::isFunctionConstant):
      (JSC::DFG::JITCompiler::valueOfFunctionConstant):
      * dfg/DFGNode.h:
      * dfg/DFGPropagator.cpp:
      (JSC::DFG::Propagator::propagateNode):
      * dfg/DFGSpeculativeJIT.cpp:
      (JSC::DFG::SpeculativeJIT::compile):
      * jit/JITStubs.cpp:
      (JSC::JITThunks::hostFunctionStub):
      * jit/JITStubs.h:
      * runtime/DateInstanceCache.h:
      * runtime/Executable.cpp:
      (JSC::ExecutableBase::intrinsic):
      (JSC::NativeExecutable::intrinsic):
      * runtime/Executable.h:
      (JSC::NativeExecutable::create):
      (JSC::NativeExecutable::finishCreation):
      * runtime/JSGlobalData.cpp:
      (JSC::JSGlobalData::getHostFunction):
      * runtime/JSGlobalData.h:
      * runtime/Lookup.cpp:
      (JSC::HashTable::createTable):
      (JSC::setUpStaticFunctionSlot):
      * runtime/Lookup.h:
      (JSC::HashEntry::initialize):
      (JSC::HashEntry::intrinsic):
      
      Source/WebCore: 
      
      Reviewed by Oliver Hunt.
      
      Added JavaScriptCore/dfg to include path path. Changed the bindings
      scripts to handle the presence of intrinsics.
      
      * CMakeLists.txt:
      * bindings/scripts/CodeGeneratorJS.pm:
      (GenerateHashTable):
      
      Source/WebKit: 
      
      Reviewed by Oliver Hunt.
      
      Added JavaScriptCore/dfg to include path path.
      
      * CMakeLists.txt:
      
      Source/WebKit2: 
      
      Reviewed by Oliver Hunt.
      
      Added JavaScriptCore/dfg to include path path.
      
      * CMakeLists.txt:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@95310 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3c3e9651
  4. 10 Jun, 2011 1 commit
    • barraclough@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=16777 · f1fa579d
      barraclough@apple.com authored
      Eliminate JSC::NaN and JSC::Inf
      
      Reviewed by Sam Weinig.
      
      There's no good reason for -K-J-S- JSC to have its own NAN and infinity constants.
      The ones in std::numeric_limits are perfectly good.
      Remove JSC::Inf, JSC::NaN, switch some cases of (isnan || isinf) to !isfinite.
      
      Source/JavaScriptCore: 
      
      * API/JSCallbackObjectFunctions.h:
      (JSC::::toNumber):
      * API/JSValueRef.cpp:
      (JSValueMakeNumber):
      (JSValueToNumber):
      * JavaScriptCore.exp:
      * runtime/CachedTranscendentalFunction.h:
      (JSC::CachedTranscendentalFunction::initialize):
      * runtime/DateConstructor.cpp:
      (JSC::constructDate):
      * runtime/DateInstanceCache.h:
      (JSC::DateInstanceData::DateInstanceData):
      (JSC::DateInstanceCache::reset):
      * runtime/JSCell.cpp:
      * runtime/JSCell.h:
      (JSC::JSCell::JSValue::getPrimitiveNumber):
      (JSC::JSCell::JSValue::toNumber):
      * runtime/JSGlobalData.cpp:
      (JSC::JSGlobalData::JSGlobalData):
      (JSC::JSGlobalData::resetDateCache):
      * runtime/JSGlobalObject.cpp:
      (JSC::JSGlobalObject::reset):
      * runtime/JSGlobalObjectFunctions.cpp:
      (JSC::globalFuncParseInt):
      (JSC::globalFuncIsFinite):
      * runtime/JSNotAnObject.cpp:
      (JSC::JSNotAnObject::toNumber):
      * runtime/JSValue.cpp:
      * runtime/JSValue.h:
      * runtime/JSValueInlineMethods.h:
      (JSC::jsNaN):
      * runtime/MathObject.cpp:
      (JSC::mathProtoFuncMax):
      (JSC::mathProtoFuncMin):
      * runtime/NumberConstructor.cpp:
      (JSC::numberConstructorNegInfinity):
      (JSC::numberConstructorPosInfinity):
      * runtime/NumberPrototype.cpp:
      (JSC::numberProtoFuncToExponential):
      (JSC::numberProtoFuncToFixed):
      (JSC::numberProtoFuncToPrecision):
      (JSC::numberProtoFuncToString):
      * runtime/UString.cpp:
      * wtf/DecimalNumber.h:
      (WTF::DecimalNumber::DecimalNumber):
      * wtf/dtoa.cpp:
      (WTF::dtoa):
      
      Source/WebCore: 
      
      * bindings/js/JSDataViewCustom.cpp:
      (WebCore::getDataViewMember):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@88587 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f1fa579d
  5. 01 Jan, 2011 1 commit
    • abarth@webkit.org's avatar
      Move JavaScriptCore to Source · 76da8fc1
      abarth@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=51604
      
      Reviewed by Eric Seidel.
      
      Update references to JavaScriptCore to point to the new location.
      
      * Android.mk:
      * CMakeLists.txt:
      * DerivedSources.pro:
      * GNUmakefile.am:
      * Makefile:
      * WebKit.pri:
      * WebKit.pro:
      * wscript:
      
      Tools: 
      
      Update references to JavaScriptCore to point to the new location.
      
      * BuildSlaveSupport/build.webkit.org-config/master.cfg:
      * DumpRenderTree/qt/DumpRenderTree.pro:
      * DumpRenderTree/qt/ImageDiff.pro:
      * DumpRenderTree/qt/TestNetscapePlugin/TestNetscapePlugin.pro:
      * DumpRenderTree/wscript:
      * Scripts/build-jsc:
      * Scripts/build-webkit:
      * Scripts/do-file-rename:
      * Scripts/do-webcore-rename:
      * Scripts/run-javascriptcore-tests:
      * Scripts/update-javascriptcore-test-results:
      * Scripts/webkitdirs.pm:
      * Scripts/webkitpy/common/config/build_unittest.py:
      * Scripts/webkitpy/style/checker.py:
      * Scripts/webkitpy/style/checker_unittest.py:
      * Scripts/webkitpy/style/checkers/cpp_unittest.py:
      * WebKitTestRunner/InjectedBundle/qt/InjectedBundle.pro:
      * WebKitTestRunner/qt/WebKitTestRunner.pro:
      * wx/build/settings.py:
      
      WebCore: 
      
      Update references to JavaScriptCore.
      
      * Android.derived.jscbindings.mk:
      * Android.v8bindings.mk:
      * CMakeLists.txt:
      * WebCore.gyp/WebCore.gyp:
      * WebCore.pro:
        - These changes are subtle and might not be 100% correct.
      * move-js-headers.sh:
      
      WebKit/chromium: 
      
      * WebKit.gyp:
        - Point to JavaScriptCore in its new location.
      
      WebKit/gtk: 
      
      * GNUmakefile.am:
      * docs/GNUmakefile.am:
        - Point to JavaScriptCore in its new location.
      
      WebKit/qt: 
      
      * WebKit_pch.h:
      * docs/qtwebkit.qdocconf:
        - Point to JavaScriptCore in its new location.
      
      WebKit/win: 
      
      * WebKit.vcproj/WebKit.sln:
        - Point to JavaScriptCore in its new location.
      
      WebKit/wx: 
      
      * bindings/python/wscript:
      * wscript:
        - Point to JavaScriptCore in its new location.
      
      WebKit2: 
      
      * WebKit2.pro:
        - Point to JavaScriptCore in its new location.
      
      Websites/bugs.webkit.org: 
      
      * PrettyPatch/PrettyPatch.rb:
        - Remove reference to JavaScriptCore as a source directory.
      
      Websites/webkit.org: 
      
      * coding/assertion-guidelines.html:
        - Update documentation to point to the new location of
          JavaScriptCore.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@74855 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      76da8fc1
  6. 02 Jul, 2010 1 commit
    • oliver@apple.com's avatar
      2010-07-01 Oliver Hunt <oliver@apple.com> · 6d90ce1b
      oliver@apple.com authored
              Reviewed by Maciej Stachowiak.
      
              Add a FixedArray template to encapsulate fixed length arrays
              https://bugs.webkit.org/show_bug.cgi?id=41506
      
              This new type is used in place of fixed length C arrays so
              that debug builds can guard against attempts to go beyond
              the end of the array.
      
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * bytecode/Opcode.cpp:
              (JSC::OpcodeStats::~OpcodeStats):
              * pcre/pcre_compile.cpp:
              (calculateCompiledPatternLength):
              * runtime/Collector.cpp:
              (JSC::Heap::allocateBlock):
              (JSC::Heap::allocate):
              * runtime/Collector.h:
              (JSC::CollectorBitmap::clearAll):
              * runtime/CollectorHeapIterator.h:
              (JSC::CollectorHeapIterator::operator*):
              * runtime/DateInstanceCache.h:
              * runtime/JSString.cpp:
              (JSC::JSString::replaceCharacter):
              * runtime/JSString.h:
              (JSC::RopeBuilder::JSStringFinalizerStruct::):
              * runtime/NumericStrings.h:
              * runtime/RegExpCache.h:
              * runtime/SmallStrings.h:
              (JSC::SmallStrings::singleCharacterStrings):
              * wtf/AVLTree.h:
              * wtf/FixedArray.h: Added.
              (WTF::FixedArray::operator[]):
              (WTF::FixedArray::data):
      2010-07-01  Oliver Hunt  <oliver@apple.com>
      
              Reviewed by Maciej Stachowiak.
      
              Add a FixedArray template to encapsulate fixed length arrays
              https://bugs.webkit.org/show_bug.cgi?id=41506
      
              Add forwarding header.
      
              * ForwardingHeaders/wtf/FixedArray.h: Added.
      2010-07-01  Oliver Hunt  <oliver@apple.com>
      
              Reviewed by Maciej Stachowiak.
      
              Add a FixedArray template to encapsulate fixed length arrays
              https://bugs.webkit.org/show_bug.cgi?id=41506
      
              Add forwarding header, and replace a few fixed length arrays
              with the new FixedArray type.
      
              * ForwardingHeaders/wtf/FixedArray.h: Added.
              * dom/Document.h:
              * platform/graphics/GlyphMetricsMap.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@62367 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6d90ce1b
  7. 09 Nov, 2009 1 commit
    • ggaren@apple.com's avatar
      Fixed an edge case that could cause the engine not to notice a timezone · 56443775
      ggaren@apple.com authored
      change.
              
      Reviewed by Oliver Hunt.
      
      No test because this case would require manual intervention to change
      the timezone during the test.
              
      SunSpider reports no change.
      
      * runtime/DateInstanceCache.h:
      (JSC::DateInstanceCache::DateInstanceCache):
      (JSC::DateInstanceCache::reset): Added a helper function for resetting
      this cache. Also, shrank the cache, since we'll be resetting it often.
      
      * runtime/JSGlobalData.cpp:
      (JSC::JSGlobalData::resetDateCache): Include resetting the DateInstanceCache
      in resetting Date data. (Otherwise, a cache hit could bypass a necessary
      timezone update check.)
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@50709 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      56443775
  8. 06 Nov, 2009 1 commit
  9. 05 Nov, 2009 2 commits
    • ggaren@apple.com's avatar
      Rolled out r50590 because it doesn't build on Windows. · 40c23f4e
      ggaren@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@50591 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      40c23f4e
    • ggaren@apple.com's avatar
      JavaScriptCore: https://bugs.webkit.org/show_bug.cgi?id=31197 · 8d226d7e
      ggaren@apple.com authored
      Implemented a timezone cache not based on Mac OS X's notify_check API.
              
      Patch by Geoffrey Garen <ggaren@apple.com> on 2009-11-05
      Reviewed by Oliver Hunt.
      
      If the VM calculates the local timezone offset from UTC, it caches the
      result until the end of the current VM invocation. (We don't want to cache
      forever, because the user's timezone may change over time.)
              
      This removes notify_* overhead on Mac, and, more significantly, removes
      OS time and date call overhead on non-Mac platforms.
      
      ~8% speedup on Date microbenchmark on Mac. SunSpider reports maybe a tiny
      speedup on Mac. (Speedup on non-Mac platforms should be even more noticeable.)
      
      * JavaScriptCore.exp:
      
      * interpreter/CachedCall.h:
      (JSC::CachedCall::CachedCall):
      * interpreter/Interpreter.cpp:
      (JSC::Interpreter::execute):
      * runtime/JSGlobalObject.h:
      (JSC::DynamicGlobalObjectScope::DynamicGlobalObjectScope): Made the 
      DynamicGlobalObjectScope constructor responsible for checking whether a
      dynamicGlobalObject has already been set. This eliminated some duplicate
      client code, and allowed me to avoid adding even more duplicate client
      code. Made DynamicGlobalObjectScope responsible for resetting the
      local timezone cache upon first entry to the VM.
      
      * runtime/DateConstructor.cpp:
      (JSC::constructDate):
      (JSC::callDate):
      (JSC::dateParse):
      (JSC::dateUTC):
      * runtime/DateConversion.cpp:
      (JSC::parseDate):
      * runtime/DateConversion.h:
      * runtime/DateInstance.cpp:
      (JSC::DateInstance::gregorianDateTime):
      * runtime/DateInstance.h:
      * runtime/DateInstanceCache.h:
      * runtime/DatePrototype.cpp:
      (JSC::setNewValueFromTimeArgs):
      (JSC::setNewValueFromDateArgs):
      (JSC::dateProtoFuncSetYear):
      * runtime/InitializeThreading.cpp:
      (JSC::initializeThreadingOnce):
      * runtime/JSGlobalData.cpp:
      (JSC::JSGlobalData::JSGlobalData):
      * runtime/JSGlobalData.h:
      * wtf/DateMath.cpp:
      (WTF::getCurrentUTCTime):
      (WTF::getCurrentUTCTimeWithMicroseconds):
      (WTF::getLocalTime):
      (JSC::getUTCOffset): Use the new cache. Also, see below.
      (JSC::gregorianDateTimeToMS):
      (JSC::msToGregorianDateTime):
      (JSC::initializeDates):
      (JSC::parseDateFromNullTerminatedCharacters): Simplified the way this function
      accounts for the local timezone offset, to accomodate our new caching API,
      and a (possibly misguided) caller in WebCore. Also, see below.
      * wtf/DateMath.h:
      (JSC::GregorianDateTime::GregorianDateTime): Moved most of the code in
      DateMath.* into the JSC namespace. The code needed to move so it could
      naturally interact with ExecState and JSGlobalData to support caching.
      Logically, it seemed right to move it, too, since this code is not really
      as low-level as the WTF namespace might imply -- it implements a set of
      date parsing and conversion quirks that are finely tuned to the JavaScript
      language. Also removed the Mac OS X notify_* infrastructure.
      
      WebCore: https://bugs.webkit.org/show_bug.cgi?id=31197
      Implemented a timezone cache not based on Mac OS X's notify_check API.
      
      Patch by Geoffrey Garen <ggaren@apple.com> on 2009-11-05
      Updated for JavaScriptCore internal API change.
      
      * platform/network/HTTPParsers.cpp:
      (WebCore::parseDate): Pass 0 for ExecState, since we don't have one.
      (This function probably shouldn't be using a JavaScript date parser
      to begin with, but oh well.)
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@50590 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8d226d7e
  10. 27 Oct, 2009 1 commit
  11. 20 Aug, 2009 1 commit
    • ggaren@apple.com's avatar
      Added a number => string cache. · a60d51b4
      ggaren@apple.com authored
              
      Patch by Geoffrey Garen <ggaren@apple.com> on 2009-08-20
      Reviewed by Maciej Stachowiak.
      
      1.07x faster on v8 (1.7x faster on v8-splay).
      1.004x faster on SunSpider.
      
      * runtime/JSCell.h: Moved JSValue::toString to JSString.h.
      * runtime/JSGlobalData.h: Holds the cache.
      * runtime/JSNumberCell.cpp:
      (JSC::JSNumberCell::toString):
      (JSC::JSNumberCell::toThisString): Removed -0 special case.
      UString handles this now, since too many clients were
      special-casing it.
      
      * runtime/JSString.h:
      (JSC::JSValue::toString): Use the cache when converting
      an int or double to string.
      
      * runtime/Operations.h:
      (JSC::concatenateStrings): Call toString to take advantage
      of the cache.
      
      * runtime/SmallStrings.h:
      (JSC::NumericStrings::add):
      (JSC::NumericStrings::lookup): The cache.
      
      * runtime/UString.cpp:
      (JSC::UString::from): Added -0 special case mentioned above.
      Removed appendNumeric because it's mutually exclusive with the
      cache.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@47622 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a60d51b4
  12. 14 Jul, 2009 1 commit
    • bfulgham@webkit.org's avatar
      JavaScriptCore: · 8a8a2f45
      bfulgham@webkit.org authored
      2009-07-14  Zoltan Horvath  <hzoltan@inf.u-szeged.hu>
      
              Reviewed by Darin Adler.
      
              Change all Noncopyable inheriting visibility to public.
              https://bugs.webkit.org/show_bug.cgi?id=27225
      
              Change all Noncopyable inheriting visibility to public because
              it is needed to the custom allocation framework (bug #20422).
      
              * bytecode/SamplingTool.h:
              * bytecompiler/RegisterID.h:
              * interpreter/CachedCall.h:
              * interpreter/RegisterFile.h:
              * parser/Lexer.h:
              * parser/Parser.h:
              * runtime/ArgList.h:
              * runtime/BatchedTransitionOptimizer.h:
              * runtime/Collector.h:
              * runtime/CommonIdentifiers.h:
              * runtime/JSCell.h:
              * runtime/JSGlobalObject.h:
              * runtime/JSLock.h:
              * runtime/JSONObject.cpp:
              * runtime/SmallStrings.cpp:
              * runtime/SmallStrings.h:
              * wtf/CrossThreadRefCounted.h:
              * wtf/GOwnPtr.h:
              * wtf/Locker.h:
              * wtf/MessageQueue.h:
              * wtf/OwnArrayPtr.h:
              * wtf/OwnFastMallocPtr.h:
              * wtf/OwnPtr.h:
              * wtf/RefCounted.h:
              * wtf/ThreadSpecific.h:
              * wtf/Threading.h:
              * wtf/Vector.h:
              * wtf/unicode/Collator.h:
      
      WebCore:
      
      2009-07-14  Zoltan Horvath  <hzoltan@inf.u-szeged.hu>
      
              Reviewed by Darin Adler.
      
              Change all Noncopyable inheriting visibility to public.
              https://bugs.webkit.org/show_bug.cgi?id=27225
      
              Change all Noncopyable inheriting visibility to public because
              it is needed to the custom allocation framework (bug #20422).
      
              * bindings/js/GCController.h:
              * bindings/js/WorkerScriptController.h:
              * bindings/v8/V8DOMMap.cpp:
              (WebCore::):
              * bridge/runtime.h:
              * css/CSSSelector.h:
              * css/CSSSelectorList.h:
              * css/CSSStyleSelector.h:
              * dom/ClassNames.h:
              * dom/MessagePortChannel.h:
              * dom/XMLTokenizerLibxml2.cpp:
              * dom/XMLTokenizerScope.h:
              * editing/ReplaceSelectionCommand.cpp:
              * editing/SelectionController.h:
              * editing/TextIterator.cpp:
              * history/PageCache.h:
              * html/CanvasRenderingContext2D.h:
              * html/HTMLParser.h:
              * html/HTMLParserQuirks.h:
              * html/PreloadScanner.h:
              * loader/Cache.h:
              * loader/CrossOriginPreflightResultCache.h:
              * loader/FrameLoader.h:
              * loader/ProgressTracker.h:
              * loader/ThreadableLoader.h:
              * loader/appcache/ApplicationCacheGroup.h:
              * loader/archive/ArchiveResourceCollection.h:
              * loader/icon/IconDatabase.h:
              * loader/icon/IconLoader.h:
              * loader/icon/PageURLRecord.h:
              * loader/loader.h:
              * page/ContextMenuController.h:
              * page/EventHandler.h:
              * page/FrameTree.h:
              * page/Page.h:
              * page/PageGroup.h:
              * page/PageGroupLoadDeferrer.h:
              * page/mac/EventHandlerMac.mm:
              * platform/AutodrainedPool.h:
              * platform/ContextMenu.h:
              * platform/EventLoop.h:
              * platform/HostWindow.h:
              * platform/Pasteboard.h:
              * platform/PurgeableBuffer.h:
              * platform/RunLoopTimer.h:
              * platform/ThreadGlobalData.h:
              * platform/ThreadTimers.h:
              * platform/Timer.h:
              * platform/TreeShared.h:
              * platform/graphics/FontData.h:
              * platform/graphics/GlyphWidthMap.h:
              * platform/graphics/GraphicsContext.h:
              * platform/graphics/ImageBuffer.h:
              * platform/graphics/ImageSource.h:
              * platform/graphics/MediaPlayer.h:
              * platform/graphics/skia/GraphicsContextPlatformPrivate.h:
              * platform/graphics/skia/PlatformContextSkia.h:
              * platform/graphics/win/QTMovieWin.cpp:
              * platform/mac/LocalCurrentGraphicsContext.h:
              * platform/network/FormDataBuilder.h:
              * platform/network/ResourceHandleInternal.h:
              * platform/network/soup/ResourceHandleSoup.cpp:
              * platform/text/StringBuffer.h:
              * platform/text/TextCodec.h:
              * platform/win/WindowMessageBroadcaster.h:
              * rendering/CounterNode.h:
              * rendering/LayoutState.h:
              * rendering/RenderFrameSet.h:
              * rendering/RenderView.h:
              * rendering/TransformState.h:
              * svg/SVGAnimatedProperty.h:
              * svg/SynchronizableTypeWrapper.h:
              * workers/WorkerMessagingProxy.h:
              * workers/WorkerRunLoop.cpp:
              * xml/XPathExpressionNode.h:
              * xml/XPathParser.h:
              * xml/XPathPredicate.h:
              * xml/XPathStep.h:
      
      WebKit/gtk:
      
      2009-07-14  Zoltan Horvath  <hzoltan@inf.u-szeged.hu>
      
              Reviewed by Darin Adler.
      
              Change all Noncopyable inheriting visibility to public.
              https://bugs.webkit.org/show_bug.cgi?id=27225
      
              Change all Noncopyable inheriting visibility to public because
              it is needed to the custom allocation framework (bug #20422).
      
              * webkit/webkitdownload.cpp:
      
      WebKit/win:
      
      2009-07-14  Zoltan Horvath  <hzoltan@inf.u-szeged.hu>
      
              Reviewed by Darin Adler.
      
              Change all Noncopyable inheriting visibility to public.
              https://bugs.webkit.org/show_bug.cgi?id=27225
      
              Change all Noncopyable inheriting visibility to public because
              it is needed to the custom allocation framework (bug #20422).
      
              * COMEnumVariant.h:
              * WebDatabaseManager.cpp:
              * WebInspector.h:
              * WebLocalizableStrings.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@45891 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8a8a2f45
  13. 15 Jan, 2009 1 commit
  14. 11 Jan, 2009 1 commit
    • darin@apple.com's avatar
      2009-01-11 David Levin <levin@chromium.org> · 3e2f9798
      darin@apple.com authored
              Reviewed by Darin Adler.
      
              https://bugs.webkit.org/show_bug.cgi?id=23175
      
              Separate out BaseString information from UString::Rep and make all baseString access go through
              a member function, so that it may be used for something else (in the future) in the BaseString
              case.
      
              * runtime/SmallStrings.cpp:
              (JSC::SmallStringsStorage::rep):
              (JSC::SmallStringsStorage::SmallStringsStorage):
              (JSC::SmallStrings::SmallStrings):
              (JSC::SmallStrings::mark):
              Adjust to account for the changes in UString and put the UString in place in
              SmallStringsStorage to aid in locality of reference among the UChar[] and UString::Rep's.
      
              * runtime/SmallStrings.h:
              * runtime/UString.cpp:
              (JSC::initializeStaticBaseString):
              (JSC::initializeUString):
              (JSC::UString::Rep::create):
              (JSC::UString::Rep::destroy):
              (JSC::UString::Rep::checkConsistency):
              (JSC::expandCapacity):
              (JSC::UString::expandPreCapacity):
              (JSC::concatenate):
              (JSC::UString::append):
              (JSC::UString::operator=):
              * runtime/UString.h:
              (JSC::UString::Rep::baseIsSelf):
              (JSC::UString::Rep::setBaseString):
              (JSC::UString::Rep::baseString):
              (JSC::UString::Rep::):
              (JSC::UString::Rep::null):
              (JSC::UString::Rep::empty):
              (JSC::UString::Rep::data):
              (JSC::UString::cost):
              Separate out the items out used by base strings from those used in Rep's that only
              point to base strings.  (This potentially saves 24 bytes per Rep.)
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39815 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3e2f9798
  15. 05 Nov, 2008 1 commit
    • cwzwarich@webkit.org's avatar
      2008-11-05 Cameron Zwarich <zwarich@apple.com> · 0b51a73b
      cwzwarich@webkit.org authored
              Rubber-stamped by Sam Weinig.
      
              Move more files to the runtime subdirectory of JavaScriptCore.
      
              JavaScriptCore:
      
              * API/APICast.h:
              * API/JSBase.cpp:
              * API/JSCallbackObject.cpp:
              * API/JSClassRef.cpp:
              * API/JSClassRef.h:
              * API/JSStringRefCF.cpp:
              * API/JSValueRef.cpp:
              * API/OpaqueJSString.cpp:
              * API/OpaqueJSString.h:
              * AllInOneFile.cpp:
              * GNUmakefile.am:
              * JavaScriptCore.pri:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * JavaScriptCoreSources.bkl:
              * VM/CodeBlock.h:
              * VM/CodeGenerator.cpp:
              * VM/Machine.cpp:
              * VM/RegisterFile.h:
              * debugger/Debugger.h:
              * kjs/SourceProvider.h:
              * kjs/TypeInfo.h: Removed.
              * kjs/collector.cpp: Removed.
              * kjs/collector.h: Removed.
              * kjs/completion.h: Removed.
              * kjs/create_hash_table:
              * kjs/identifier.cpp: Removed.
              * kjs/identifier.h: Removed.
              * kjs/interpreter.cpp: Removed.
              * kjs/interpreter.h: Removed.
              * kjs/lexer.cpp:
              * kjs/lexer.h:
              * kjs/lookup.cpp: Removed.
              * kjs/lookup.h: Removed.
              * kjs/nodes.cpp:
              * kjs/nodes.h:
              * kjs/operations.cpp: Removed.
              * kjs/operations.h: Removed.
              * kjs/protect.h: Removed.
              * kjs/regexp.cpp: Removed.
              * kjs/regexp.h: Removed.
              * kjs/ustring.cpp: Removed.
              * kjs/ustring.h: Removed.
              * pcre/pcre_exec.cpp:
              * profiler/CallIdentifier.h:
              * profiler/Profile.h:
              * runtime/ArrayConstructor.cpp:
              * runtime/ArrayPrototype.cpp:
              * runtime/ArrayPrototype.h:
              * runtime/Collector.cpp: Copied from kjs/collector.cpp.
              * runtime/Collector.h: Copied from kjs/collector.h.
              * runtime/CollectorHeapIterator.h:
              * runtime/Completion.h: Copied from kjs/completion.h.
              * runtime/ErrorPrototype.cpp:
              * runtime/Identifier.cpp: Copied from kjs/identifier.cpp.
              * runtime/Identifier.h: Copied from kjs/identifier.h.
              * runtime/InitializeThreading.cpp:
              * runtime/Interpreter.cpp: Copied from kjs/interpreter.cpp.
              * runtime/Interpreter.h: Copied from kjs/interpreter.h.
              * runtime/JSCell.h:
              * runtime/JSGlobalData.cpp:
              * runtime/JSGlobalData.h:
              * runtime/JSLock.cpp:
              * runtime/JSNumberCell.cpp:
              * runtime/JSNumberCell.h:
              * runtime/JSObject.cpp:
              * runtime/JSValue.h:
              * runtime/Lookup.cpp: Copied from kjs/lookup.cpp.
              * runtime/Lookup.h: Copied from kjs/lookup.h.
              * runtime/MathObject.cpp:
              * runtime/NativeErrorPrototype.cpp:
              * runtime/NumberPrototype.cpp:
              * runtime/Operations.cpp: Copied from kjs/operations.cpp.
              * runtime/Operations.h: Copied from kjs/operations.h.
              * runtime/PropertyMapHashTable.h:
              * runtime/Protect.h: Copied from kjs/protect.h.
              * runtime/RegExp.cpp: Copied from kjs/regexp.cpp.
              * runtime/RegExp.h: Copied from kjs/regexp.h.
              * runtime/RegExpConstructor.cpp:
              * runtime/RegExpObject.h:
              * runtime/RegExpPrototype.cpp:
              * runtime/SmallStrings.h:
              * runtime/StringObjectThatMasqueradesAsUndefined.h:
              * runtime/StructureID.cpp:
              * runtime/StructureID.h:
              * runtime/StructureIDTransitionTable.h:
              * runtime/SymbolTable.h:
              * runtime/TypeInfo.h: Copied from kjs/TypeInfo.h.
              * runtime/UString.cpp: Copied from kjs/ustring.cpp.
              * runtime/UString.h: Copied from kjs/ustring.h.
              * wrec/CharacterClassConstructor.h:
              * wrec/WREC.h:
      
              WebCore:
      
              * ForwardingHeaders/kjs/collector.h: Removed.
              * ForwardingHeaders/kjs/completion.h: Removed.
              * ForwardingHeaders/kjs/identifier.h: Removed.
              * ForwardingHeaders/kjs/interpreter.h: Removed.
              * ForwardingHeaders/kjs/lookup.h: Removed.
              * ForwardingHeaders/kjs/operations.h: Removed.
              * ForwardingHeaders/kjs/protect.h: Removed.
              * ForwardingHeaders/kjs/ustring.h: Removed.
              * ForwardingHeaders/runtime/Collector.h: Copied from ForwardingHeaders/kjs/collector.h.
              * ForwardingHeaders/runtime/Completion.h: Copied from ForwardingHeaders/kjs/completion.h.
              * ForwardingHeaders/runtime/Identifier.h: Copied from ForwardingHeaders/kjs/identifier.h.
              * ForwardingHeaders/runtime/Interpreter.h: Copied from ForwardingHeaders/kjs/interpreter.h.
              * ForwardingHeaders/runtime/Lookup.h: Copied from ForwardingHeaders/kjs/lookup.h.
              * ForwardingHeaders/runtime/Operations.h: Copied from ForwardingHeaders/kjs/operations.h.
              * ForwardingHeaders/runtime/Protect.h: Copied from ForwardingHeaders/kjs/protect.h.
              * ForwardingHeaders/runtime/UString.h: Copied from ForwardingHeaders/kjs/ustring.h.
              * bindings/js/GCController.cpp:
              * bindings/js/JSCustomPositionCallback.h:
              * bindings/js/JSCustomPositionErrorCallback.h:
              * bindings/js/JSCustomSQLStatementCallback.h:
              * bindings/js/JSCustomSQLStatementErrorCallback.h:
              * bindings/js/JSCustomSQLTransactionErrorCallback.h:
              * bindings/js/JSCustomVoidCallback.h:
              * bindings/js/JSDOMBinding.h:
              * bindings/js/JSDOMWindowBase.h:
              * bindings/js/JSEventListener.h:
              * bindings/js/ScheduledAction.h:
              * bindings/js/ScriptController.cpp:
              * bindings/js/ScriptController.h:
              * bindings/objc/WebScriptObject.mm:
              * bindings/scripts/CodeGeneratorJS.pm:
              * bridge/NP_jsobject.cpp:
              * bridge/c/c_class.cpp:
              * bridge/jni/jni_class.cpp:
              * bridge/jni/jni_jsobject.mm:
              * bridge/npruntime.cpp:
              * bridge/runtime_root.h:
              * history/CachedPage.h:
              * html/CanvasRenderingContext2D.cpp:
              * html/HTMLCanvasElement.cpp:
              * inspector/InspectorController.cpp:
              * inspector/JavaScriptCallFrame.cpp:
              * page/Console.cpp:
              * page/Page.cpp:
              * platform/text/AtomicString.cpp:
              * platform/text/PlatformString.h:
      
              WebKit/mac:
      
              * ForwardingHeaders/kjs/collector.h: Removed.
              * ForwardingHeaders/kjs/identifier.h: Removed.
              * ForwardingHeaders/kjs/interpreter.h: Removed.
              * ForwardingHeaders/kjs/lookup.h: Removed.
              * ForwardingHeaders/kjs/operations.h: Removed.
              * ForwardingHeaders/kjs/protect.h: Removed.
              * ForwardingHeaders/runtime/Interpreter.h: Copied from ForwardingHeaders/kjs/interpreter.h.
              * WebView/WebScriptDebugDelegate.mm:
      
              WebKit/wx:
      
              * WebFrame.cpp:
              * WebView.cpp:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38137 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0b51a73b
  16. 28 Oct, 2008 1 commit
    • cwzwarich@webkit.org's avatar
      2008-10-28 Cameron Zwarich <zwarich@apple.com> · 53173f3b
      cwzwarich@webkit.org authored
              Rubber-stamped by Sam Weinig.
      
              Create a runtime directory in JavaScriptCore and begin moving files to
              it. This is the first step towards removing the kjs directory and
              placing files in more meaningful subdirectories of JavaScriptCore.
      
              * API/JSBase.cpp:
              * API/JSCallbackConstructor.cpp:
              * API/JSCallbackConstructor.h:
              * API/JSCallbackFunction.cpp:
              * API/JSClassRef.cpp:
              * API/JSClassRef.h:
              * API/JSStringRefCF.cpp:
              * API/JSValueRef.cpp:
              * API/OpaqueJSString.cpp:
              * DerivedSources.make:
              * GNUmakefile.am:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * kjs/AllInOneFile.cpp:
              * kjs/ArrayConstructor.cpp: Removed.
              * kjs/ArrayConstructor.h: Removed.
              * kjs/ArrayPrototype.cpp: Removed.
              * kjs/ArrayPrototype.h: Removed.
              * kjs/BooleanConstructor.cpp: Removed.
              * kjs/BooleanConstructor.h: Removed.
              * kjs/BooleanObject.cpp: Removed.
              * kjs/BooleanObject.h: Removed.
              * kjs/BooleanPrototype.cpp: Removed.
              * kjs/BooleanPrototype.h: Removed.
              * kjs/CallData.cpp: Removed.
              * kjs/CallData.h: Removed.
              * kjs/ClassInfo.h: Removed.
              * kjs/ConstructData.cpp: Removed.
              * kjs/ConstructData.h: Removed.
              * kjs/DateConstructor.cpp: Removed.
              * kjs/DateConstructor.h: Removed.
              * kjs/DateInstance.cpp: Removed.
              * kjs/DateInstance.h: Removed.
              * kjs/DateMath.cpp: Removed.
              * kjs/DateMath.h: Removed.
              * kjs/DatePrototype.cpp: Removed.
              * kjs/DatePrototype.h: Removed.
              * kjs/Error.cpp: Removed.
              * kjs/Error.h: Removed.
              * kjs/ErrorConstructor.cpp: Removed.
              * kjs/ErrorConstructor.h: Removed.
              * kjs/ErrorInstance.cpp: Removed.
              * kjs/ErrorInstance.h: Removed.
              * kjs/ErrorPrototype.cpp: Removed.
              * kjs/ErrorPrototype.h: Removed.
              * kjs/FunctionConstructor.cpp: Removed.
              * kjs/FunctionConstructor.h: Removed.
              * kjs/FunctionPrototype.cpp: Removed.
              * kjs/FunctionPrototype.h: Removed.
              * kjs/GlobalEvalFunction.cpp: Removed.
              * kjs/GlobalEvalFunction.h: Removed.
              * kjs/InternalFunction.cpp: Removed.
              * kjs/InternalFunction.h: Removed.
              * kjs/JSArray.cpp: Removed.
              * kjs/JSArray.h: Removed.
              * kjs/JSCell.cpp: Removed.
              * kjs/JSCell.h: Removed.
              * kjs/JSFunction.cpp: Removed.
              * kjs/JSFunction.h: Removed.
              * kjs/JSGlobalObject.cpp: Removed.
              * kjs/JSGlobalObject.h: Removed.
              * kjs/JSGlobalObjectFunctions.cpp: Removed.
              * kjs/JSGlobalObjectFunctions.h: Removed.
              * kjs/JSImmediate.cpp: Removed.
              * kjs/JSImmediate.h: Removed.
              * kjs/JSNotAnObject.cpp: Removed.
              * kjs/JSNotAnObject.h: Removed.
              * kjs/JSNumberCell.cpp: Removed.
              * kjs/JSNumberCell.h: Removed.
              * kjs/JSObject.cpp: Removed.
              * kjs/JSObject.h: Removed.
              * kjs/JSString.cpp: Removed.
              * kjs/JSString.h: Removed.
              * kjs/JSValue.cpp: Removed.
              * kjs/JSValue.h: Removed.
              * kjs/JSVariableObject.cpp: Removed.
              * kjs/JSVariableObject.h: Removed.
              * kjs/JSWrapperObject.cpp: Removed.
              * kjs/JSWrapperObject.h: Removed.
              * kjs/MathObject.cpp: Removed.
              * kjs/MathObject.h: Removed.
              * kjs/NativeErrorConstructor.cpp: Removed.
              * kjs/NativeErrorConstructor.h: Removed.
              * kjs/NativeErrorPrototype.cpp: Removed.
              * kjs/NativeErrorPrototype.h: Removed.
              * kjs/NumberConstructor.cpp: Removed.
              * kjs/NumberConstructor.h: Removed.
              * kjs/NumberObject.cpp: Removed.
              * kjs/NumberObject.h: Removed.
              * kjs/NumberPrototype.cpp: Removed.
              * kjs/NumberPrototype.h: Removed.
              * kjs/ObjectConstructor.cpp: Removed.
              * kjs/ObjectConstructor.h: Removed.
              * kjs/ObjectPrototype.cpp: Removed.
              * kjs/ObjectPrototype.h: Removed.
              * kjs/PropertyMap.cpp: Removed.
              * kjs/PropertyMap.h: Removed.
              * kjs/PropertySlot.cpp: Removed.
              * kjs/PropertySlot.h: Removed.
              * kjs/PrototypeFunction.cpp: Removed.
              * kjs/PrototypeFunction.h: Removed.
              * kjs/PutPropertySlot.h: Removed.
              * kjs/SmallStrings.cpp: Removed.
              * kjs/SmallStrings.h: Removed.
              * kjs/StringConstructor.cpp: Removed.
              * kjs/StringConstructor.h: Removed.
              * kjs/StringObject.cpp: Removed.
              * kjs/StringObject.h: Removed.
              * kjs/StringObjectThatMasqueradesAsUndefined.h: Removed.
              * kjs/StringPrototype.cpp: Removed.
              * kjs/StringPrototype.h: Removed.
              * kjs/StructureID.cpp: Removed.
              * kjs/StructureID.h: Removed.
              * kjs/completion.h:
              * kjs/interpreter.h:
              * runtime: Added.
              * runtime/ArrayConstructor.cpp: Copied from kjs/ArrayConstructor.cpp.
              * runtime/ArrayConstructor.h: Copied from kjs/ArrayConstructor.h.
              * runtime/ArrayPrototype.cpp: Copied from kjs/ArrayPrototype.cpp.
              * runtime/ArrayPrototype.h: Copied from kjs/ArrayPrototype.h.
              * runtime/BooleanConstructor.cpp: Copied from kjs/BooleanConstructor.cpp.
              * runtime/BooleanConstructor.h: Copied from kjs/BooleanConstructor.h.
              * runtime/BooleanObject.cpp: Copied from kjs/BooleanObject.cpp.
              * runtime/BooleanObject.h: Copied from kjs/BooleanObject.h.
              * runtime/BooleanPrototype.cpp: Copied from kjs/BooleanPrototype.cpp.
              * runtime/BooleanPrototype.h: Copied from kjs/BooleanPrototype.h.
              * runtime/CallData.cpp: Copied from kjs/CallData.cpp.
              * runtime/CallData.h: Copied from kjs/CallData.h.
              * runtime/ClassInfo.h: Copied from kjs/ClassInfo.h.
              * runtime/ConstructData.cpp: Copied from kjs/ConstructData.cpp.
              * runtime/ConstructData.h: Copied from kjs/ConstructData.h.
              * runtime/DateConstructor.cpp: Copied from kjs/DateConstructor.cpp.
              * runtime/DateConstructor.h: Copied from kjs/DateConstructor.h.
              * runtime/DateInstance.cpp: Copied from kjs/DateInstance.cpp.
              * runtime/DateInstance.h: Copied from kjs/DateInstance.h.
              * runtime/DateMath.cpp: Copied from kjs/DateMath.cpp.
              * runtime/DateMath.h: Copied from kjs/DateMath.h.
              * runtime/DatePrototype.cpp: Copied from kjs/DatePrototype.cpp.
              * runtime/DatePrototype.h: Copied from kjs/DatePrototype.h.
              * runtime/Error.cpp: Copied from kjs/Error.cpp.
              * runtime/Error.h: Copied from kjs/Error.h.
              * runtime/ErrorConstructor.cpp: Copied from kjs/ErrorConstructor.cpp.
              * runtime/ErrorConstructor.h: Copied from kjs/ErrorConstructor.h.
              * runtime/ErrorInstance.cpp: Copied from kjs/ErrorInstance.cpp.
              * runtime/ErrorInstance.h: Copied from kjs/ErrorInstance.h.
              * runtime/ErrorPrototype.cpp: Copied from kjs/ErrorPrototype.cpp.
              * runtime/ErrorPrototype.h: Copied from kjs/ErrorPrototype.h.
              * runtime/FunctionConstructor.cpp: Copied from kjs/FunctionConstructor.cpp.
              * runtime/FunctionConstructor.h: Copied from kjs/FunctionConstructor.h.
              * runtime/FunctionPrototype.cpp: Copied from kjs/FunctionPrototype.cpp.
              * runtime/FunctionPrototype.h: Copied from kjs/FunctionPrototype.h.
              * runtime/GlobalEvalFunction.cpp: Copied from kjs/GlobalEvalFunction.cpp.
              * runtime/GlobalEvalFunction.h: Copied from kjs/GlobalEvalFunction.h.
              * runtime/InternalFunction.cpp: Copied from kjs/InternalFunction.cpp.
              * runtime/InternalFunction.h: Copied from kjs/InternalFunction.h.
              * runtime/JSArray.cpp: Copied from kjs/JSArray.cpp.
              * runtime/JSArray.h: Copied from kjs/JSArray.h.
              * runtime/JSCell.cpp: Copied from kjs/JSCell.cpp.
              * runtime/JSCell.h: Copied from kjs/JSCell.h.
              * runtime/JSFunction.cpp: Copied from kjs/JSFunction.cpp.
              * runtime/JSFunction.h: Copied from kjs/JSFunction.h.
              * runtime/JSGlobalObject.cpp: Copied from kjs/JSGlobalObject.cpp.
              * runtime/JSGlobalObject.h: Copied from kjs/JSGlobalObject.h.
              * runtime/JSGlobalObjectFunctions.cpp: Copied from kjs/JSGlobalObjectFunctions.cpp.
              * runtime/JSGlobalObjectFunctions.h: Copied from kjs/JSGlobalObjectFunctions.h.
              * runtime/JSImmediate.cpp: Copied from kjs/JSImmediate.cpp.
              * runtime/JSImmediate.h: Copied from kjs/JSImmediate.h.
              * runtime/JSNotAnObject.cpp: Copied from kjs/JSNotAnObject.cpp.
              * runtime/JSNotAnObject.h: Copied from kjs/JSNotAnObject.h.
              * runtime/JSNumberCell.cpp: Copied from kjs/JSNumberCell.cpp.
              * runtime/JSNumberCell.h: Copied from kjs/JSNumberCell.h.
              * runtime/JSObject.cpp: Copied from kjs/JSObject.cpp.
              * runtime/JSObject.h: Copied from kjs/JSObject.h.
              * runtime/JSString.cpp: Copied from kjs/JSString.cpp.
              * runtime/JSString.h: Copied from kjs/JSString.h.
              * runtime/JSValue.cpp: Copied from kjs/JSValue.cpp.
              * runtime/JSValue.h: Copied from kjs/JSValue.h.
              * runtime/JSVariableObject.cpp: Copied from kjs/JSVariableObject.cpp.
              * runtime/JSVariableObject.h: Copied from kjs/JSVariableObject.h.
              * runtime/JSWrapperObject.cpp: Copied from kjs/JSWrapperObject.cpp.
              * runtime/JSWrapperObject.h: Copied from kjs/JSWrapperObject.h.
              * runtime/MathObject.cpp: Copied from kjs/MathObject.cpp.
              * runtime/MathObject.h: Copied from kjs/MathObject.h.
              * runtime/NativeErrorConstructor.cpp: Copied from kjs/NativeErrorConstructor.cpp.
              * runtime/NativeErrorConstructor.h: Copied from kjs/NativeErrorConstructor.h.
              * runtime/NativeErrorPrototype.cpp: Copied from kjs/NativeErrorPrototype.cpp.
              * runtime/NativeErrorPrototype.h: Copied from kjs/NativeErrorPrototype.h.
              * runtime/NumberConstructor.cpp: Copied from kjs/NumberConstructor.cpp.
              * runtime/NumberConstructor.h: Copied from kjs/NumberConstructor.h.
              * runtime/NumberObject.cpp: Copied from kjs/NumberObject.cpp.
              * runtime/NumberObject.h: Copied from kjs/NumberObject.h.
              * runtime/NumberPrototype.cpp: Copied from kjs/NumberPrototype.cpp.
              * runtime/NumberPrototype.h: Copied from kjs/NumberPrototype.h.
              * runtime/ObjectConstructor.cpp: Copied from kjs/ObjectConstructor.cpp.
              * runtime/ObjectConstructor.h: Copied from kjs/ObjectConstructor.h.
              * runtime/ObjectPrototype.cpp: Copied from kjs/ObjectPrototype.cpp.
              * runtime/ObjectPrototype.h: Copied from kjs/ObjectPrototype.h.
              * runtime/PropertyMap.cpp: Copied from kjs/PropertyMap.cpp.
              * runtime/PropertyMap.h: Copied from kjs/PropertyMap.h.
              * runtime/PropertySlot.cpp: Copied from kjs/PropertySlot.cpp.
              * runtime/PropertySlot.h: Copied from kjs/PropertySlot.h.
              * runtime/PrototypeFunction.cpp: Copied from kjs/PrototypeFunction.cpp.
              * runtime/PrototypeFunction.h: Copied from kjs/PrototypeFunction.h.
              * runtime/PutPropertySlot.h: Copied from kjs/PutPropertySlot.h.
              * runtime/SmallStrings.cpp: Copied from kjs/SmallStrings.cpp.
              * runtime/SmallStrings.h: Copied from kjs/SmallStrings.h.
              * runtime/StringConstructor.cpp: Copied from kjs/StringConstructor.cpp.
              * runtime/StringConstructor.h: Copied from kjs/StringConstructor.h.
              * runtime/StringObject.cpp: Copied from kjs/StringObject.cpp.
              * runtime/StringObject.h: Copied from kjs/StringObject.h.
              * runtime/StringObjectThatMasqueradesAsUndefined.h: Copied from kjs/StringObjectThatMasqueradesAsUndefined.h.
              * runtime/StringPrototype.cpp: Copied from kjs/StringPrototype.cpp.
              * runtime/StringPrototype.h: Copied from kjs/StringPrototype.h.
              * runtime/StructureID.cpp: Copied from kjs/StructureID.cpp.
              * runtime/StructureID.h: Copied from kjs/StructureID.h.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37938 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      53173f3b
  17. 03 Oct, 2008 1 commit
    • darin@apple.com's avatar
      JavaScriptCore: · 3d73fee8
      darin@apple.com authored
      2008-10-03  Darin Adler  <darin@apple.com>
      
              Reviewed by Geoff Garen.
      
              - next step of https://bugs.webkit.org/show_bug.cgi?id=21295
                Turn ExecState into a call frame pointer.
      
              Remove m_globalObject and m_globalData from ExecState.
      
              SunSpider says this is a wash (slightly faster but not statistically
              significant); which is good enough since it's a preparation step and
              not supposed to be a spedup.
      
              * API/JSCallbackFunction.cpp:
              (JSC::JSCallbackFunction::JSCallbackFunction):
              * kjs/ArrayConstructor.cpp:
              (JSC::ArrayConstructor::ArrayConstructor):
              * kjs/BooleanConstructor.cpp:
              (JSC::BooleanConstructor::BooleanConstructor):
              * kjs/DateConstructor.cpp:
              (JSC::DateConstructor::DateConstructor):
              * kjs/ErrorConstructor.cpp:
              (JSC::ErrorConstructor::ErrorConstructor):
              * kjs/FunctionPrototype.cpp:
              (JSC::FunctionPrototype::FunctionPrototype):
              * kjs/JSFunction.cpp:
              (JSC::JSFunction::JSFunction):
              * kjs/NativeErrorConstructor.cpp:
              (JSC::NativeErrorConstructor::NativeErrorConstructor):
              * kjs/NumberConstructor.cpp:
              (JSC::NumberConstructor::NumberConstructor):
              * kjs/ObjectConstructor.cpp:
              (JSC::ObjectConstructor::ObjectConstructor):
              * kjs/PrototypeFunction.cpp:
              (JSC::PrototypeFunction::PrototypeFunction):
              * kjs/RegExpConstructor.cpp:
              (JSC::RegExpConstructor::RegExpConstructor):
              * kjs/StringConstructor.cpp:
              (JSC::StringConstructor::StringConstructor):
              Pass JSGlobalData* instead of ExecState* to the InternalFunction
              constructor.
      
              * API/OpaqueJSString.cpp: Added now-needed include.
      
              * JavaScriptCore.exp: Updated.
      
              * VM/CTI.cpp:
              (JSC::CTI::emitSlowScriptCheck): Changed to use ARGS_globalData
              instead of ARGS_exec.
      
              * VM/CTI.h: Added a new argument to the CTI, the global data pointer.
              While it's possible to get to the global data pointer using the
              ExecState pointer, it's slow enough that it's better to just keep
              it around in the CTI arguments.
      
              * VM/CodeBlock.h: Moved the CodeType enum here from ExecState.h.
      
              * VM/Machine.cpp:
              (JSC::Machine::execute): Pass fewer arguments when constructing
              ExecState, and pass the global data pointer when invoking CTI.
              (JSC::Machine::firstCallFrame): Added. Used to get the dynamic global
              object, which is in the scope chain of the first call frame.
              (JSC::Machine::cti_op_add): Use globalData instead of exec when
              possible, to keep fast cases fast, since it's now more expensive to
              get to it through the exec pointer.
              (JSC::Machine::cti_timeout_check): Ditto.
              (JSC::Machine::cti_op_put_by_id_second): Ditto.
              (JSC::Machine::cti_op_get_by_id_second): Ditto.
              (JSC::Machine::cti_op_mul): Ditto.
              (JSC::Machine::cti_vm_compile): Ditto.
              (JSC::Machine::cti_op_get_by_val): Ditto.
              (JSC::Machine::cti_op_sub): Ditto.
              (JSC::Machine::cti_op_put_by_val): Ditto.
              (JSC::Machine::cti_op_put_by_val_array): Ditto.
              (JSC::Machine::cti_op_negate): Ditto.
              (JSC::Machine::cti_op_div): Ditto.
              (JSC::Machine::cti_op_pre_dec): Ditto.
              (JSC::Machine::cti_op_post_inc): Ditto.
              (JSC::Machine::cti_op_lshift): Ditto.
              (JSC::Machine::cti_op_bitand): Ditto.
              (JSC::Machine::cti_op_rshift): Ditto.
              (JSC::Machine::cti_op_bitnot): Ditto.
              (JSC::Machine::cti_op_mod): Ditto.
              (JSC::Machine::cti_op_post_dec): Ditto.
              (JSC::Machine::cti_op_urshift): Ditto.
              (JSC::Machine::cti_op_bitxor): Ditto.
              (JSC::Machine::cti_op_bitor): Ditto.
              (JSC::Machine::cti_op_call_eval): Ditto.
              (JSC::Machine::cti_op_throw): Ditto.
              (JSC::Machine::cti_op_is_string): Ditto.
              (JSC::Machine::cti_op_debug): Ditto.
              (JSC::Machine::cti_vm_throw): Ditto.
      
              * VM/Machine.h: Added firstCallFrame.
      
              * kjs/DebuggerCallFrame.cpp:
              (JSC::DebuggerCallFrame::evaluate): Pass fewer arguments when
              constructing ExecState.
      
              * kjs/ExecState.cpp: Deleted contents. Later we'll remove the
              file altogether.
      
              * kjs/ExecState.h: Removed m_globalObject and m_globalData.
              Moved CodeType into another header.
              (JSC::ExecState::ExecState): Take only a single argument, a
              call frame pointer.
              (JSC::ExecState::dynamicGlobalObject): Get the object from
              the first call frame since it's no longer stored.
              (JSC::ExecState::globalData): Get the global data from the
              scope chain, since we no longer store a pointer to it here.
              (JSC::ExecState::identifierTable): Ditto.
              (JSC::ExecState::propertyNames): Ditto.
              (JSC::ExecState::emptyList): Ditto.
              (JSC::ExecState::lexer): Ditto.
              (JSC::ExecState::parser): Ditto.
              (JSC::ExecState::machine): Ditto.
              (JSC::ExecState::arrayTable): Ditto.
              (JSC::ExecState::dateTable): Ditto.
              (JSC::ExecState::mathTable): Ditto.
              (JSC::ExecState::numberTable): Ditto.
              (JSC::ExecState::regExpTable): Ditto.
              (JSC::ExecState::regExpConstructorTable): Ditto.
              (JSC::ExecState::stringTable): Ditto.
              (JSC::ExecState::heap): Ditto.
      
              * kjs/FunctionConstructor.cpp:
              (JSC::FunctionConstructor::FunctionConstructor): Pass
              JSGlobalData* instead of ExecState* to the InternalFunction
              constructor.
              (JSC::constructFunction): Pass the global data pointer when
              constructing a new scope chain.
      
              * kjs/InternalFunction.cpp:
              (JSC::InternalFunction::InternalFunction): Take a JSGlobalData*
              instead of an ExecState*. Later we can change more places to
              work this way -- it's more efficient to take the type you need
              since the caller might already have it.
              * kjs/InternalFunction.h: Ditto.
      
              * kjs/JSCell.h:
              (JSC::JSCell::operator new): Added an overload that takes a
              JSGlobalData* so you can construct without an ExecState*.
      
              * kjs/JSGlobalObject.cpp:
              (JSC::JSGlobalObject::init): Moved creation of the global scope
              chain in here, since it now requires a pointer to the global data.
              Moved the initialization of the call frame in here since it requires
              the global scope chain node. Removed the extra argument to ExecState
              when creating the global ExecState*.
              * kjs/JSGlobalObject.h: Removed initialization of globalScopeChain
              and the call frame from the JSGlobalObjectData constructor. Added
              a thisValue argument to the init function.
      
              * kjs/JSNumberCell.cpp: Added versions of jsNumberCell that take
              JSGlobalData* rather than ExecState*.
              * kjs/JSNumberCell.h:
              (JSC::JSNumberCell::operator new): Added a version that takes
              JSGlobalData*.
              (JSC::JSNumberCell::JSNumberCell): Ditto.
              (JSC::jsNumber): Ditto.
              * kjs/JSString.cpp:
              (JSC::jsString): Ditto.
              (JSC::jsSubstring): Ditto.
              (JSC::jsOwnedString): Ditto.
              * kjs/JSString.h:
              (JSC::JSString::JSString): Changed to take JSGlobalData*.
              (JSC::jsEmptyString): Added a version that takes JSGlobalData*.
              (JSC::jsSingleCharacterString): Ditto.
              (JSC::jsSingleCharacterSubstring): Ditto.
              (JSC::jsNontrivialString): Ditto.
              (JSC::JSString::getIndex): Ditto.
              (JSC::jsString): Ditto.
              (JSC::jsSubstring): Ditto.
              (JSC::jsOwnedString): Ditto.
      
              * kjs/ScopeChain.h: Added a globalData pointer to each node.
              (JSC::ScopeChainNode::ScopeChainNode): Initialize the globalData
              pointer.
              (JSC::ScopeChainNode::push): Set the global data pointer in the
              new node.
              (JSC::ScopeChain::ScopeChain): Take a globalData argument.
      
              * kjs/SmallStrings.cpp:
              (JSC::SmallStrings::createEmptyString): Take JSGlobalData* instead of
              ExecState*.
              (JSC::SmallStrings::createSingleCharacterString): Ditto.
              * kjs/SmallStrings.h:
              (JSC::SmallStrings::emptyString): Ditto.
              (JSC::SmallStrings::singleCharacterString): Ditto.
      
      WebCore:
      
      2008-10-03  Darin Adler  <darin@apple.com>
      
              Reviewed by Geoff Garen.
      
              - next step of https://bugs.webkit.org/show_bug.cgi?id=21295
                Turn ExecState into a call frame pointer.
      
              Remove m_globalObject and m_globalData from ExecState.
      
              * bindings/js/JSDOMWindowBase.cpp:
              (WebCore::JSDOMWindowBase::JSDOMWindowBaseData::JSDOMWindowBaseData):
              Removed an argument now that JSGlobalObject doesn't need it any more.
              (WebCore::JSDOMWindowBase::JSDOMWindowBase): Removed the argument from
              the JSDOMWindowBaseData constructor, and added the this argument to the
              JSGlobalObject constructor. This is because a couple key bits of
              initialization moved from the data constructor to the JSGlobalObject
              constructor.
              * bindings/js/JSDOMWindowBase.h: Ditto.
      
              * bridge/qt/qt_runtime.cpp:
              (JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod):
              * bridge/runtime_method.cpp:
              (JSC::RuntimeMethod::RuntimeMethod):
              Pass JSGlobalData* instead of ExecState* to the InternalFunction
              constructor.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37257 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3d73fee8
  18. 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
  19. 05 Sep, 2008 1 commit
    • darin@apple.com's avatar
      2008-09-05 Darin Adler <darin@apple.com> · 8339ff2b
      darin@apple.com authored
              Reviewed by Geoff Garen.
      
              - fix https://bugs.webkit.org/show_bug.cgi?id=20673
                single-character strings are churning in the Identifier table
      
              1.007x as fast on SunSpider overall
              1.167x as fast on SunSpider string/fasta
      
              * JavaScriptCore.exp: Updated.
              * kjs/SmallStrings.cpp:
              (KJS::SmallStrings::singleCharacterStringRep): Added.
              * kjs/SmallStrings.h: Added singleCharacterStringRep for clients that
              need just a UString, not a JSString.
              * kjs/identifier.cpp:
              (KJS::Identifier::add): Added special cases for single character strings
              so that the UString::Rep that ends up in the identifier table is the one
              from the single-character string optimization; otherwise we end up having
              to look it up in the identifier table over and over again.
              (KJS::Identifier::addSlowCase): Ditto.
              (KJS::Identifier::checkSameIdentifierTable): Made this function an empty
              inline in release builds so that callers don't have to put #ifndef NDEBUG
              at each call site.
              * kjs/identifier.h:
              (KJS::Identifier::add): Removed #ifndef NDEBUG around the calls to
              checkSameIdentifierTable.
              (KJS::Identifier::checkSameIdentifierTable): Added. Empty inline version
              for NDEBUG builds.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36124 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8339ff2b
  20. 31 Aug, 2008 1 commit
    • darin@apple.com's avatar
      JavaScriptCore: · e794585e
      darin@apple.com authored
      2008-08-30  Darin Adler  <darin@apple.com>
      
              Reviewed by Maciej.
      
              - https://bugs.webkit.org/show_bug.cgi?id=20333
                improve JavaScript speed when handling single-character strings
      
              1.035x as fast on SunSpider overall.
              1.127x as fast on SunSpider string tests.
              1.910x as fast on SunSpider string-base64 test.
      
              * API/JSObjectRef.cpp:
              (JSObjectMakeFunction): Removed unneeded explicit construction of UString.
      
              * GNUmakefile.am: Added SmallStrings.h and SmallStrings.cpp.
              * JavaScriptCore.pri: Ditto.
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              Ditto.
              * JavaScriptCore.xcodeproj/project.pbxproj: Ditto.
              * JavaScriptCoreSources.bkl: Ditto.
      
              * JavaScriptCore.exp: Updated.
      
              * VM/Machine.cpp:
              (KJS::jsAddSlowCase): Changed to use a code path that doesn't involve
              a UString constructor. This avoids an extra jump caused by the "in charge"
              vs. "not in charge" constructors.
              (KJS::jsAdd): Ditto.
              (KJS::jsTypeStringForValue): Adopted jsNontrivialString.
      
              * kjs/ArrayPrototype.cpp:
              (KJS::arrayProtoFuncToString): Adopted jsEmptyString.
              (KJS::arrayProtoFuncToLocaleString): Ditto.
              (KJS::arrayProtoFuncJoin): Ditto.
              * kjs/BooleanPrototype.cpp:
              (KJS::booleanProtoFuncToString): Adopted jsNontrivialString.
              * kjs/DateConstructor.cpp:
              (KJS::callDate): Ditto.
              * kjs/DatePrototype.cpp:
              (KJS::formatLocaleDate): Adopted jsEmptyString and jsNontrivialString.
              (KJS::dateProtoFuncToString): Ditto.
              (KJS::dateProtoFuncToUTCString): Ditto.
              (KJS::dateProtoFuncToDateString): Ditto.
              (KJS::dateProtoFuncToTimeString): Ditto.
              (KJS::dateProtoFuncToLocaleString): Ditto.
              (KJS::dateProtoFuncToLocaleDateString): Ditto.
              (KJS::dateProtoFuncToLocaleTimeString): Ditto.
              (KJS::dateProtoFuncToGMTString): Ditto.
      
              * kjs/ErrorPrototype.cpp:
              (KJS::ErrorPrototype::ErrorPrototype): Ditto.
              (KJS::errorProtoFuncToString): Ditto.
      
              * kjs/JSGlobalData.h: Added SmallStrings.
      
              * kjs/JSString.cpp:
              (KJS::jsString): Eliminated the overload that takes a const char*.
              Added code to use SmallStrings to get strings of small sizes rather
              than creating a new JSString every time.
              (KJS::jsSubstring): Added. Used when creating a string from a substring
              to avoid creating a JSString in cases where the substring will end up
              empty or as one character.
              (KJS::jsOwnedString): Added the same code as in jsString.
      
              * kjs/JSString.h: Added new functions jsEmptyString, jsSingleCharacterString,
              jsSingleCharacterSubstring, jsSubstring, and jsNontrivialString for various
              cases where we want to create JSString, and want special handling for small
              strings.
              (KJS::JSString::JSString): Added an overload that takes a PassRefPtr of
              a UString::Rep so you don't have to construct a UString; PassRefPtr can be
              more efficient.
              (KJS::jsEmptyString): Added.
              (KJS::jsSingleCharacterString): Added.
              (KJS::jsSingleCharacterSubstring): Added.
              (KJS::jsNontrivialString): Added.
              (KJS::JSString::getIndex): Adopted jsSingleCharacterSubstring.
              (KJS::JSString::getStringPropertySlot): Ditto.
      
              * kjs/NumberPrototype.cpp:
              (KJS::numberProtoFuncToFixed): Adopted jsNontrivialString.
              (KJS::numberProtoFuncToExponential): Ditto.
              (KJS::numberProtoFuncToPrecision): Ditto.
      
              * kjs/ObjectPrototype.cpp:
              (KJS::objectProtoFuncToLocaleString): Adopted toThisJSString.
              (KJS::objectProtoFuncToString): Adopted jsNontrivialString.
      
              * kjs/RegExpConstructor.cpp: Separated the lastInput value that's used
              with the lastOvector to return matches from the input value that can be
              changed via JavaScript. They will be equal in many cases, but not all.
              (KJS::RegExpConstructor::performMatch): Set input.
              (KJS::RegExpMatchesArray::RegExpMatchesArray): Ditto.
              (KJS::RegExpMatchesArray::fillArrayInstance): Adopted jsSubstring. Also,
              use input rather than lastInput in the appropriate place.
              (KJS::RegExpConstructor::getBackref): Adopted jsSubstring and jsEmptyString.
              Added code to handle the case where there is no backref -- before this
              depended on range checking in UString::substr which is not present in
              jsSubstring.
              (KJS::RegExpConstructor::getLastParen): Ditto.
              (KJS::RegExpConstructor::getLeftContext): Ditto.
              (KJS::RegExpConstructor::getRightContext): Ditto.
              (KJS::RegExpConstructor::getValueProperty): Use input rather than lastInput.
              Also adopt jsEmptyString.
              (KJS::RegExpConstructor::putValueProperty): Ditto.
              (KJS::RegExpConstructor::input): Ditto.
      
              * kjs/RegExpPrototype.cpp:
              (KJS::regExpProtoFuncToString): Adopt jsNonTrivialString. Also changed to
              use UString::append to append single characters rather than using += and
              a C-style string.
      
              * kjs/SmallStrings.cpp: Added.
              (KJS::SmallStringsStorage::SmallStringsStorage): Construct the
              buffer and UString::Rep for all 256 single-character strings for
              the U+0000 through U+00FF. This covers all the values used in
              the base64 test as well as most values seen elsewhere on the web
              as well. It's possible that later we might fix this to only work
              for U+0000 through U+007F but the others are used quite a bit in
              the current version of the base64 test.
              (KJS::SmallStringsStorage::~SmallStringsStorage): Free memory.
              (KJS::SmallStrings::SmallStrings): Create a set of small strings,
              initially not created; created later when they are used.
              (KJS::SmallStrings::~SmallStrings): Deallocate. Not left compiler
              generated because the SmallStringsStorage class's destructor needs
              to be visible.
              (KJS::SmallStrings::mark): Mark all the strings.
              (KJS::SmallStrings::createEmptyString): Create a cell for the
              empty string. Called only the first time.
              (KJS::SmallStrings::createSingleCharacterString): Create a cell
              for one of the single-character strings. Called only the first time.
              * kjs/SmallStrings.h: Added.
      
              * kjs/StringConstructor.cpp:
              (KJS::stringFromCharCodeSlowCase): Factored out of strinFromCharCode.
              Only used for cases where the caller does not pass exactly one argument.
              (KJS::stringFromCharCode): Adopted jsSingleCharacterString.
              (KJS::callStringConstructor): Adopted jsEmptyString.
      
              * kjs/StringObject.cpp:
              (KJS::StringObject::StringObject): Adopted jsEmptyString.
      
              * kjs/StringPrototype.cpp:
              (KJS::stringProtoFuncReplace): Adopted jsSubstring.
              (KJS::stringProtoFuncCharAt): Adopted jsEmptyString and
              jsSingleCharacterSubstring and also added a special case when the
              index is an immediate number to avoid conversion to and from floating
              point, since that's the common case.
              (KJS::stringProtoFuncCharCodeAt): Ditto.
              (KJS::stringProtoFuncMatch): Adopted jsSubstring and jsEmptyString.
              (KJS::stringProtoFuncSlice): Adopted jsSubstring and
              jsSingleCharacterSubstring. Also got rid of some unneeded locals and
              removed unneeded code to set the length property of the array, since it
              is automatically updated as values are added to the array.
              (KJS::stringProtoFuncSplit): Adopted jsEmptyString.
              (KJS::stringProtoFuncSubstr): Adopted jsSubstring.
              (KJS::stringProtoFuncSubstring): Ditto.
      
              * kjs/collector.cpp:
              (KJS::Heap::collect): Added a call to mark SmallStrings.
      
              * kjs/ustring.cpp:
              (KJS::UString::expandedSize): Made this a static member function since
              it doesn't need to look at any data members.
              (KJS::UString::expandCapacity): Use a non-inline function, makeNull, to
              set the rep to null in failure cases. This avoids adding a PIC branch for
              the normal case when there is no failure.
              (KJS::UString::expandPreCapacity): Ditto.
              (KJS::UString::UString): Ditto.
              (KJS::concatenate): Refactored the concatenation constructor into this
              separate function. Calling the concatenation constructor was leading to
              an extra branch because of the in-charge vs. not-in-charge versions not
              both being inlined, and this was showing up as nearly 1% on Shark. Also
              added a special case for when the second string is a single character,
              since it's a common idiom to build up a string that way and we can do
              things much more quickly, without involving memcpy for example. Also
              adopted the non-inline function, nullRep, for the same reason given for
              makeNull above.
              (KJS::UString::append): Adopted makeNull for failure cases.
              (KJS::UString::operator=): Ditto.
              (KJS::UString::toDouble): Added a special case for converting single
              character strings to numbers. We're doing this a ton of times while
              running the base64 test.
              (KJS::operator==): Added special cases so we can compare single-character
              strings without calling memcmp. Later we might want to special case other
              short lengths similarly.
              (KJS::UString::makeNull): Added.
              (KJS::UString::nullRep): Added.
              * kjs/ustring.h: Added declarations for the nullRep and makeNull. Changed
              expandedSize to be a static member function. Added a declaration of the
              concatenate function. Removed the concatenation constructor. Rewrote
              operator+ to use the concatenate function.
      
      WebCore:
      
      2008-08-30  Darin Adler  <darin@apple.com>
      
              Reviewed by Maciej.
      
              - adopt some new JavaScriptCore functions where appropriate
      
              * bindings/js/JSDOMWindowBase.cpp:
              (WebCore::windowProtoFuncAToB): Adopted jsEmptyString.
              (WebCore::windowProtoFuncBToA): Ditto.
              * bindings/js/JSEventListener.cpp:
              (WebCore::JSLazyEventListener::eventParameterName): Adopted
              jsNontrivialString.
              * bindings/js/JSSVGLazyEventListener.cpp:
              (WebCore::JSSVGLazyEventListener::eventParameterName): Ditto.
      
      LayoutTests:
      
      2008-08-30  Darin Adler  <darin@apple.com>
      
              Reviewed by Maciej.
      
              - updated incorrect results that reflected a bug in the RegExp object
      
              * fast/js/regexp-caching-expected.txt: Updated results to
              correctly show that $1 through $9, lastMatch, lastParen,
              leftContext, and rightContext are left alone both when
              a program changes the value of RegExp.input and when it
              performs an unsuccessful match. The new results match
              Gecko behavior (I tested both Firefox 2 and 3).
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36006 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e794585e
  21. 09 Jul, 2008 1 commit
    • kmccullough@apple.com's avatar
      2008-07-09 Kevin McCullough <kmccullough@apple.com> · a400816a
      kmccullough@apple.com authored
              Reviewed by Geoff and Adam.
      
              <rdar://problem/5951532> JSProfiler: Implement Bottom-Up view (19228)
              - This is the plumbing for bottom-up, but does not include calculating
              time, mostly because I'm still undclear about what the end result should
              look like.
              - This, obviously, does not include the UI to expose this in the
              inspector yet.
      
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * profiler/CallIdentifier.h:
              (KJS::CallIdentifier::CallIdentifier):
              (WTF::): Added HashTraits for CallIdentifiers to be used by a HashMap.
              * profiler/HeavyProfile.cpp: Added.
              (KJS::HeavyProfile::HeavyProfile):
              (KJS::HeavyProfile::generateHeavyStructure):
              (KJS::HeavyProfile::addNode):
              (KJS::HeavyProfile::mergeProfiles):
              (KJS::HeavyProfile::addAncestorsAsChildren):
              * profiler/HeavyProfile.h: Added.
              (KJS::HeavyProfile::create):
              (KJS::HeavyProfile::heavyProfile):
              (KJS::HeavyProfile::treeProfile):
              * profiler/Profile.cpp: Removed old commented out includes.
              * profiler/Profile.h: The m_head is needed by the HeavyProfile so it
              is now protected as opposed to private.
              * profiler/ProfileNode.cpp:
              (KJS::ProfileNode::ProfileNode): Created a constructor to copy
              ProfileNodes.
              (KJS::ProfileNode::findChild): Added a null check to make HeavyProfile
              children finding easier and avoid a potential crasher.
              * profiler/ProfileNode.h: Mostly moved things around but also added some
              functionality needed by HeavyProfile.
              (KJS::ProfileNode::create):
              (KJS::ProfileNode::functionName):
              (KJS::ProfileNode::url):
              (KJS::ProfileNode::lineNumber):
              (KJS::ProfileNode::head):
              (KJS::ProfileNode::setHead):
              (KJS::ProfileNode::setNextSibling):
              (KJS::ProfileNode::actualTotalTime):
              (KJS::ProfileNode::actualSelfTime):
              * profiler/TreeProfile.cpp: Implemented the ability to get a
              HeavyProfile.
              (KJS::TreeProfile::heavyProfile):
              * profiler/TreeProfile.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@35077 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a400816a
  22. 07 Jul, 2008 1 commit
    • kmccullough@apple.com's avatar
      JavaScriptCore: · 1e1baa1f
      kmccullough@apple.com authored
      2008-07-07  Kevin McCullough  <kmccullough@apple.com>
      
              Reviewed by Darin.
      
              When the profiler is running it gathers information and creates a
              Profile.  After it finishes the Profile can be sorted and have other
              data refinements run over it.  Both of these were done in the same class
              before.  Now I split the gathering operations into a new class called
              ProfileGenerator.
      
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * profiler/Profile.cpp: Removed code related to the gather stage of a
              Profile's creation.  
              (KJS::Profile::create):
              (KJS::Profile::Profile):
              * profiler/Profile.h: Ditto.
              (KJS::Profile::title):
              (KJS::Profile::callTree):
              (KJS::Profile::setHead):
              * profiler/ProfileGenerator.cpp: Added. This is the class that will
              handle the stage of creating a Profile.  Once the Profile is finished
              being created, this class goes away.
              (KJS::ProfileGenerator::create):
              (KJS::ProfileGenerator::ProfileGenerator):
              (KJS::ProfileGenerator::title):
              (KJS::ProfileGenerator::willExecute):
              (KJS::ProfileGenerator::didExecute):
              (KJS::ProfileGenerator::stopProfiling):
              (KJS::ProfileGenerator::didFinishAllExecution):
              (KJS::ProfileGenerator::removeProfileStart):
              (KJS::ProfileGenerator::removeProfileEnd):
              * profiler/ProfileGenerator.h: Added.
              (KJS::ProfileGenerator::profile):
              (KJS::ProfileGenerator::originatingGlobalExec):
              (KJS::ProfileGenerator::pageGroupIdentifier):
              (KJS::ProfileGenerator::client):
              (KJS::ProfileGenerator::stoppedProfiling):
              * profiler/Profiler.cpp: Now operates with the ProfileGenerator instead
              of the Profile.
              (KJS::Profiler::startProfiling):
              (KJS::Profiler::stopProfiling):
              (KJS::Profiler::didFinishAllExecution): It is here that the Profile is
              handed off to its client and the Profile Generator is no longer needed.
              (KJS::dispatchFunctionToProfiles):
              (KJS::Profiler::willExecute):
              (KJS::Profiler::didExecute):
              * profiler/Profiler.h: Cleaned up the includes and subsequently the
              forward declarations.  Also use the new ProfileGenerator.
              (KJS::ProfilerClient::~ProfilerClient):
              (KJS::Profiler::currentProfiles):
              * profiler/TreeProfile.cpp: Use Profile's new interface.
              (KJS::TreeProfile::create):
              (KJS::TreeProfile::TreeProfile):
              * profiler/TreeProfile.h:
      
      WebCore:
      
      2008-07-07  Kevin McCullough  <kmccullough@apple.com>
      
              Reviewed by Darin.
      
              Because profiler.h no longer #includes profile.h we need to explicitly
              include it in console.cpp.
      
              * page/Console.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@35039 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1e1baa1f
  23. 02 Jul, 2008 1 commit
    • kmccullough@apple.com's avatar
      2008-07-02 Kevin McCullough <kmccullough@apple.com> · 51cc7679
      kmccullough@apple.com authored
              Reviewed by Darin.
      
              <rdar://problem/5951532> JSProfiler: Implement Bottom-Up view (19228)
              - Subclass TreeProfile as I prepare for a HeavyProfile to be comming
              later.
      
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * profiler/Profile.cpp: By default we create a TreeProfile.
              (KJS::Profile::create):
              * profiler/Profile.h: Changes to the Profile class to make it amenable
              to be inherited from.
              (KJS::Profile::~Profile):
              * profiler/TreeProfile.cpp: Added.
              (KJS::TreeProfile::create):
              (KJS::TreeProfile::TreeProfile):
              (KJS::TreeProfile::heavyProfile):
              * profiler/TreeProfile.h: Added.
              (KJS::TreeProfile::treeProfile):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34960 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      51cc7679
  24. 14 May, 2008 1 commit
    • kmccullough@apple.com's avatar
      2008-05-14 Kevin McCullough <kmccullough@apple.com> · 7c0ba747
      kmccullough@apple.com authored
              Reviewed by Adam.
      
              <rdar://problem/5770054> JavaScript profiler (10928)
              - Add support for interacting with the JavaScriptCore profiler.
      
              * ForwardingHeaders/profiler/FunctionCallProfile.h: Added.
              * ForwardingHeaders/profiler/Profile.h: Added.
              * GNUmakefile.am: Add the new files to all the projects.
              * WebCore.pro:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.xcodeproj/project.pbxproj:
              * WebCoreSources.bkl:
              * page/InspectorController.cpp: Add the ability to retrieve all of the
              profiles in JavaScript from the InspectorController.
              (WebCore::allProfiles):
              (WebCore::InspectorController::windowScriptObjectAvailable):
              * page/JavaScriptFunctionCallProfile.cpp: Added. Wrapper around the JSC
              FunctionCallProfile.
              (WebCore::functionCallProfileCache): This cache makes sure we don't
              needlessly create duplicate wrappers around the same
              FunctionCallProfile*.
              (WebCore::getFunctionName): Callback to return the name of the function.
              (WebCore::getTotalTime): Callback to return the total time spent in the
              function.
              (WebCore::getSelfTime): Callback to return the time spent in self (total
              - time in children) in the function.
              (WebCore::getNumberOfCalls): Callback to return the number of times this
              function was called.
              (WebCore::getChildren): Callback to return the children of this function
              where the children are the functions this function called.
              (WebCore::finalize): Cleanup.
              (WebCore::functionCallProfileClass): Define the JSClassRef for this
              object.
              (WebCore::toJS): Create a conversion function to make a usable JSValue
              to wrap the FunctionCallProfile in JSC.
              * page/JavaScriptFunctionCallProfile.h: Added.
              * page/JavaScriptProfile.cpp: Added. Wrapper around the JSC Profile.
              (WebCore::profileCache): This cache makes sure we don't needlessly
              create duplicate wrappers aroudn the same Profile*.
              (WebCore::getHeadCallback): Callback to return the head of the graph of
              the functions profiled durring this profile's run.
              (WebCore::finalize):
              (WebCore::profileClass): Define the JSClassRef for this object.
              (WebCore::toJS): Create a conversion function to make a usable JSValue
              to wrap the Profile from JSC.
              * page/JavaScriptProfile.h: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33460 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7c0ba747
  25. 13 May, 2008 1 commit
    • timothy@apple.com's avatar
      Adds an event loop abstraction to platform. This abstraction will be · a9922b67
      timothy@apple.com authored
      used by the JavaScriptDebugServer to implement pausing.
      
      Reviewed by Kevin McCullough.
      
      * platform/EventLoop.h: Added.
      (WebCore::EventLoop::EventLoop):
      (WebCore::EventLoop::ended): Return m_ended.
      * platform/mac/EventLoopMac.mm: Added.
      (WebCore::EventLoop::cycle): Call nextEventMatchingMask and then sendEvent.
      * platform/win/EventLoopWin.cpp: Added.
      (WebCore::EventLoop::cycle): Call GetMessage, TranslateMessage and DispatchMessage.
      * WebCore.xcodeproj/project.pbxproj: Add new files.
      * WebCore.vcproj/WebCore.vcproj: Ditto.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@33400 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a9922b67
  26. 21 Apr, 2008 1 commit
    • timothy@apple.com's avatar
      Adds the UI portions of the Scripts panel to the Web Inspector. · fd501dfc
      timothy@apple.com authored
      The Scripts panel has not been added to the toolbar yet.
      
      https://bugs.webkit.org/show_bug.cgi?id=18601
      
      Reviewed by Adam Roben.
      
      * English.lproj/InspectorLocalizedStrings.js: Changed "Show inherited properties"
      to "Show inherited". Adds new strings for the Scripts' panel tooltips.
      * page/inspector/BreakpointsSidebarPane.js: Added.
      * page/inspector/CallStackSidebarPane.js: Added.
      * page/inspector/Images/back.png: Added.
      * page/inspector/Images/debuggerContinue.png: Added.
      * page/inspector/Images/debuggerPause.png: Added.
      * page/inspector/Images/debuggerStepInto.png: Added.
      * page/inspector/Images/debuggerStepOut.png: Added.
      * page/inspector/Images/debuggerStepOver.png: Added.
      * page/inspector/Images/forward.png: Added.
      * page/inspector/Images/statusbarResizerHorizontal.png: Added.
      * page/inspector/PropertiesSection.js:
      (WebInspector.PropertiesSection): Flip the order the subtile is appended
      so it can float right in the CSS.
      * page/inspector/ScriptsPanel.js: Added.
      * page/inspector/StylesSidebarPane.js:
      (WebInspector.StylePropertiesSection): Changed "Show inherited properties"
      to "Show inherited".
      * page/inspector/inspector.css: Added new CSS rules for the Scripts panel.
      Also changes the look of the section to match the mockup, this affects
      Styles and Properties in Elements.
      * page/inspector/inspector.html: Import new files.
      * page/inspector/inspector.js:
      (Preferences.minScriptsSidebarWidth): Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@32343 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fd501dfc
  27. 18 Apr, 2008 1 commit
    • jhoneycutt@apple.com's avatar
      2008-04-17 Jon Honeycutt <jhoneycutt@apple.com> · 2904f97b
      jhoneycutt@apple.com authored
              Reviewed by Darin.
      
              Return an AccessibleDocument when our root accessible object is queried
              for.
      
              * AccessibleDocument.cpp: Added; represents an AccessibilityObject that
              itself represents a Document.
              (AccessibleDocument::AccessibleDocument): Initialize AccessibleBase with
              the AccessibilityObject for this Document.
              * AccessibleDocument.h: Added.
              * WebFrame.cpp:
              (WebFrame::accessible): If m_accessible is 0, or if Document in this
              frame does not match the Document in the cached m_accessible object,
              create a new AccessibleDocument for this frame's Document.
              * WebFrame.h: Swap AccessibleBase.h for AccessibleDocument.h
              * WebKit.vcproj/WebKit.vcproj: Add AccessibleDocument.{h,cpp}
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@32250 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2904f97b
  28. 16 Apr, 2008 1 commit
    • andersca@apple.com's avatar
      2008-04-16 Anders Carlsson <andersca@apple.com> · c6839d1c
      andersca@apple.com authored
              Reviewed by Adam.
      
              Generate the DOMApplicationCache JS wrapper, add JSDOMApplicationCacheCustom.cpp and 
              fix typos in the #if line.
              
              * DerivedSources.make:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.xcodeproj/project.pbxproj:
              * bindings/js/JSDOMApplicationCacheCustom.cpp: Added.
              * loader/appcache/ApplicationCache.cpp:
              * loader/appcache/ApplicationCache.h:
              * loader/appcache/ApplicationCacheGroup.cpp:
              * loader/appcache/ApplicationCacheGroup.h:
              * loader/appcache/ApplicationCacheResource.cpp:
              * loader/appcache/ApplicationCacheResource.h:
              * loader/appcache/DOMApplicationCache.cpp:
              * loader/appcache/DOMApplicationCache.h:
              * loader/appcache/DOMApplicationCache.idl:
              * loader/appcache/ManifestParser.cpp:
              * loader/appcache/ManifestParser.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31963 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c6839d1c
  29. 15 Apr, 2008 1 commit
    • andersca@apple.com's avatar
      JavaScriptCore: · b8666938
      andersca@apple.com authored
      2008-04-15  Anders Carlsson  <andersca@apple.com>
      
              Reviewed by Adam.
      
              Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.
              
              * Configurations/JavaScriptCore.xcconfig:
      
      WebCore:
      
      2008-04-15  Anders Carlsson  <andersca@apple.com>
      
              Reviewed by Adam.
      
              Add empty files for the application cache.
              
              * Configurations/WebCore.xcconfig:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.vcproj/build-generated-files.sh:
              Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.
              
              * WebCore.xcodeproj/project.pbxproj:
              * loader/appcache: Added.
              * loader/appcache/ApplicationCache.cpp: Added.
              * loader/appcache/ApplicationCache.h: Added.
              * loader/appcache/ApplicationCacheGroup.cpp: Added.
              * loader/appcache/ApplicationCacheGroup.h: Added.
              * loader/appcache/ApplicationCacheResource.cpp: Added.
              * loader/appcache/ApplicationCacheResource.h: Added.
              * loader/appcache/DOMApplicationCache.cpp: Added.
              * loader/appcache/DOMApplicationCache.h: Added.
              * loader/appcache/DOMApplicationCache.idl: Added.
              * loader/appcache/ManifestParser.cpp: Added.
              * loader/appcache/ManifestParser.h: Added.
      
      WebKit/mac:
      
      2008-04-15  Anders Carlsson  <andersca@apple.com>
      
              Reviewed by Adam.
      
              Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.
      
              * Configurations/WebKit.xcconfig:
      
      WebKit/win:
      
      2008-04-15  Anders Carlsson  <andersca@apple.com>
      
              Reviewed by Adam.
      
              Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.
      
              * WebKit.vcproj/WebKit.vcproj:
      
      WebKitTools:
      
      2008-04-15  Anders Carlsson  <andersca@apple.com>
      
              Reviewed by Adam.
      
              Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.
      
              * Scripts/build-webkit:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31923 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b8666938
  30. 23 Feb, 2008 1 commit
    • ddkilzer@apple.com's avatar
      WebCore: · 267da135
      ddkilzer@apple.com authored
              Please clarify licensing for some files
              <http://bugs.webkit.org/show_bug.cgi?id=14970>
      
              Reviewed by Darin.
      
              * bindings/objc/WebScriptObject.h: Added Apple BSD-style license.
              * bindings/objc/WebScriptObjectPrivate.h: Ditto.
              * platform/text/mac/ShapeArabic.c: Added ICU license from WebCore/icu/LICENSE.
      
      WebKit/mac:
      
              Please clarify licensing for some files
              <http://bugs.webkit.org/show_bug.cgi?id=14970>
      
              Reviewed by Darin.
      
              * Plugins/WebNetscapeDeprecatedFunctions.c: Updated copyright statement
              and added Apple BSD-style license.
              * Plugins/WebNetscapeDeprecatedFunctions.h: Ditto.
      
      WebKitTools:
      
              Please clarify licensing for some files
              <http://bugs.webkit.org/show_bug.cgi?id=14970>
      
              Reviewed by Darin.
      
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.cpp: Added
              copyright statement.  Replaced license with newer Apple BSD-style license.
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.h: Ditto.
              * DumpRenderTree/TestNetscapePlugIn.subproj/TestObject.cpp: Ditto.
              * DumpRenderTree/TestNetscapePlugIn.subproj/TestObject.h: Ditto.
              * DumpRenderTree/TestNetscapePlugIn.subproj/main.cpp: Ditto.
              * DumpRenderTree/win/TestNetscapePlugin/main.c: Ditto.
              * mangleme/LICENSE: Added (LGPL).
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@30520 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      267da135
  31. 30 Mar, 2007 2 commits
    • andersca's avatar
      Reviewed by Geoff. · b5e193f8
      andersca authored
              * DumpRenderTree/TestNetscapePlugIn.subproj/TestObject.c:
              (testAllocate):
              (testEnumerate):
              Add casts.
              
              * DumpRenderTree/TestNetscapePlugIn.subproj/TestObject.h:
              Don't use #import, use #include.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20619 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b5e193f8
    • andersca's avatar
      JavaScriptCore: · 77d5e0d0
      andersca authored
              Reviewed by Geoff.
      
              Implement _NPN_Enumerate support.
              
              * JavaScriptCore.exp:
              * bindings/NP_jsobject.cpp:
              (_NPN_Enumerate):
              * bindings/c/c_instance.cpp:
              (KJS::Bindings::CInstance::getPropertyNames):
              * bindings/c/c_instance.h:
              * bindings/npapi.h:
              * bindings/npruntime.h:
              * bindings/npruntime_impl.h:
              * bindings/runtime.h:
              (KJS::Bindings::Instance::getPropertyNames):
              * bindings/runtime_object.cpp:
              (RuntimeObjectImp::getPropertyNames):
              * bindings/runtime_object.h:
              (KJS::RuntimeObjectImp::getInternalInstance):
      
      LayoutTests:
      
              Reviewed by Geoff.
      
              Add enumeration test.
              
              * plugins/netscape-enumerate-expected.txt: Added.
              * plugins/netscape-enumerate.html: Added.
      
      WebKit:
      
              Reviewed by Geoff.
      
              * Plugins/WebNetscapePluginPackage.m:
              (-[WebNetscapePluginPackage load]):
              Initialize pushpopupsenabledstate, poppopupsenabledstate and enumerate.
              
              * Plugins/npapi.m:
              (NPN_PushPopupsEnabledState):
              (NPN_PopPopupsEnabledState):
              Add stubs for these functions.
              
              * Plugins/npfunctions.h:
              Add new methods to NPNetscapeFuncs.
      
      WebKitTools:
      
              Reviewed by Geoff.
      
              * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
              Add TestObject.c and TestObject.h
              
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.c:
              (pluginGetProperty):
              Implement the testObject property.
              
              (pluginInvoke):
              Implement testEnumerate which takes an object and an array and enumerates
              the properties of the object and adds them to the array.
              
              (pluginAllocate):
              Allocate the test object.
              
              (pluginDeallocate):
              Free the test object.
              
              * DumpRenderTree/TestNetscapePlugIn.subproj/TestObject.c: Added.
              * DumpRenderTree/TestNetscapePlugIn.subproj/TestObject.h: Added.
              Add a test object with two enumerable properties.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20613 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      77d5e0d0
  32. 29 Mar, 2007 1 commit
    • ggaren's avatar
      LayoutTests: · 2663f9a7
      ggaren authored
              Reviewed by Beth Dakin.
              
              Layout test for <rdar://problem/5091330> REGRESSION: Repro crash in 
              -[WebBaseNetscapePluginView(WebNPPCallbacks) destroyStream:reason:] 
              navigating away from page with DivX movie plug-in (13203)
      
              * plugins/destroy-stream-twice-expected.txt: Added.
              * plugins/destroy-stream-twice.html: Added.
      
      WebKit:
      
              Reviewed by Beth Dakin, reviewed by Maciej Stachowiak.
              
              Layout test for <rdar://problem/5091330> REGRESSION: Repro crash in 
              -[WebBaseNetscapePluginView(WebNPPCallbacks) destroyStream:reason:] 
              navigating away from page with DivX movie plug-in (13203)
              
              Changed LOG_ERROR to LOG so the layout test doesn't produce console spew
              every time you run it.
      
              * Plugins/WebBaseNetscapePluginView.mm:
              (-[WebBaseNetscapePluginView destroyStream:reason:]):
      
      WebKitTools:
      
              Reviewed by Beth Dakin.
              
              Layout test for <rdar://problem/5091330> REGRESSION: Repro crash in 
              -[WebBaseNetscapePluginView(WebNPPCallbacks) destroyStream:reason:] 
              navigating away from page with DivX movie plug-in (13203)
              
              Added hasStream property and destroyStream function, used by layout test.
      
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.c:
              (pluginGetProperty):
              (pluginInvoke):
              (pluginAllocate):
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.h:
              * DumpRenderTree/TestNetscapePlugIn.subproj/main.c:
              (NPP_NewStream):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20597 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2663f9a7
  33. 05 Mar, 2007 1 commit
    • andersca's avatar
      LayoutTests: · 526c36f0
      andersca authored
              Reviewed by Adam, Darin.
      
              <rdar://problem/5025212>
              In Mail, a crash occurs at WebCore::Frame::tree() when clicking on embedded flash object
      
              * plugins/get-url-with-blank-target-expected.txt: Added.
              * plugins/get-url-with-blank-target.html: Added.
      
      WebKit:
      
              Reviewed by Adam, Darin.
       
              <rdar://problem/5025212>
              In Mail, a crash occurs at WebCore::Frame::tree() when clicking on embedded flash object
      
              * Plugins/WebBaseNetscapePluginView.mm:
              (-[WebBaseNetscapePluginView loadPluginRequest:]):
              Handle the case where the web view returned from the delegate method is null. Also, send out an error notification
              in that case so we can catch it.
      
      WebKitTools:
      
              Reviewed by Adam, Darin.
      
              <rdar://problem/5025212>
              In Mail, a crash occurs at WebCore::Frame::tree() when clicking on embedded flash object
              
              Add a "getURLNotify" method to the plugin object. This lets you pass a URL, a target and a callback function
              to be run when the URL has finished (or failed) loading.
              
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.c:
              (pluginInvoke):
              (handleCallback):
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.h:
              * DumpRenderTree/TestNetscapePlugIn.subproj/main.c:
              (NPP_URLNotify):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19966 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      526c36f0
  34. 06 Nov, 2006 1 commit
    • ap's avatar
      Reviewed by Maciej. · fdfb9d6f
      ap authored
              http://bugs.webkit.org/show_bug.cgi?id=11517
              REGRESSION: Flash clicks/interactivity not working properly
      
      WebCore:
              * bridge/mac/FrameMac.mm:
              (WebCore::FrameMac::handleMouseMoveEvent):
              (WebCore::FrameMac::handleMouseReleaseEvent):
              Restore parts of event dispatching that were removed when fixing
              bug 7323 - just bypass those for subframes.
      
      WebKitTools:
              Teach TestNetscapePlugin to log events passed to it. To enable, set eventLoggingEnabled to true:
      
              <embed name="plg" type="application/x-webkit-test-netscape" width=100 height=100></embed>
              <script>
                  plg.eventLoggingEnabled = true;
                  // use eventSender to simulate events...
              </script>
      
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.c:
              (pluginGetProperty):
              (pluginSetProperty):
              (pluginAllocate):
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.h:
              * DumpRenderTree/TestNetscapePlugIn.subproj/main.c:
              (NPP_HandleEvent):
      
      LayoutTests:
              * plugins/mouse-events-expected.txt: Added.
              * plugins/mouse-events.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@17611 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fdfb9d6f
  35. 09 Mar, 2006 1 commit
    • darin's avatar
      Reviewed by John Sullivan. · 24fbf130
      darin authored
              - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7681
                memory leak in the plug-in tests
      
              * DumpRenderTree/TestNetscapePlugIn.subproj/main.c:
              (NPP_Destroy): Added code to release the plug-in object. This is the leak fix.
              (NPP_SetWindow): Remove unneeded code to store the window pointer.
      
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.c:
              Moved the browser global in here since it's declared in this file's header.
              Changed the code to set up the pluginClass structure to not use function
              pointer casts. Those are dangerous because they can hide many types of mismatch.
              And indeed when I did this I discovered that many functions were missing their
              boolean return values or had parameter declarations with the wrong types.
              (pluginGetProperty): Use STRINGZ_TO_NPVARIANT macro for greater simplicity and
              clarity. Added boolean return value: return true when successful and false when not.
              (pluginSetProperty): Added boolean return value, return false since we have no
              properties we can set.
              (pluginInvoke): Added boolean return value. Return true when successful and false
              when not. Use NPVARIANT macros where appropriate. Added a missing release for the
              return value from calling the browser. Changed code to put the strings in malloc
              buffers instead of relying on GCC's extension that allows variable-sized arrays
              on the stack.
              (pluginInvokeDefault): Added boolean return value, return false since we have no
              default function to call.
              (pluginInvalidate): Added missing parameter. Removed comment.
              (pluginAllocate): Removed unneeded cast. This is C code, not C++, so you don't have
              to cast the result of malloc.
              (pluginDeallocate): Removed uneeded cast.
      
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.h: Removed some unneeded
              includes. Changed our PluginObject to use NPObject instead of re-declaring fields
              that match NPObject's fields. Removed unused NPWindow pointer.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@13233 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      24fbf130
  36. 05 Jan, 2006 1 commit
    • ggaren's avatar
      LayoutTests: · 7dd73f87
      ggaren authored
              Layout test for http://bugzilla.opendarwin.org/show_bug.cgi?id=6318
              REGRESSION: Repro crash in JS called from Flash on bdash.net.nz
      
              * fast/plugins/netscape-back-forward-expected.txt: Added.
              * fast/plugins/netscape-back-forward.html: Added.
              * fast/plugins/resources/go-back.html: Added.
      
      WebKit:
      
              Reviewed by Darin.
      
              - Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=6361
              Add plugin support to DumpRenderTree
      
              * WebKit.exp: export WebPluginDatabase class, which DumpRenderTree
              needs to add plugins to the runtime.
      
      WebKitTools:
      
              Reviewed by darin.
      
              - Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=6361
              Add plugin support to DumpRenderTree
      
              Also wrote first test plugin.
      
              * DumpRenderTree/DumpRenderTree.m:
              (main):
              (1) Put the WebView in an invisible window, because PlugIns are
              optimized not to load if there's no parent window.
              (2) Tell WebKit to load any PlugIns in the directory from which we
              loaded. This means we can build nasty PlugIns alongside DumpRenderTree
              and they'll load automagically during layout testing, but they won't be
              added to the user's system, hosing apps like Safari.
      
              * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Added new
              test PlugIn to project.
      
              PlugIn added to project:
      
              * DumpRenderTree/TestNetscapePlugIn.subproj/Info.plist: Added.
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.c: Added.
              (getPluginClass):
              (initializeIdentifiers):
              (pluginHasProperty):
              (pluginHasMethod):
              (pluginGetProperty):
              (pluginSetProperty):
              (pluginInvoke):
              (pluginInvokeDefault):
              (pluginInvalidate):
              (pluginAllocate):
              (pluginDeallocate):
              * DumpRenderTree/TestNetscapePlugIn.subproj/PluginObject.h: Added.
              * DumpRenderTree/TestNetscapePlugIn.subproj/main.c: Added.
              (NP_Initialize):
              (NP_GetEntryPoints):
              (NP_Shutdown):
              (NPP_New):
              (NPP_Destroy):
              (NPP_SetWindow):
              (NPP_NewStream):
              (NPP_DestroyStream):
              (NPP_WriteReady):
              (NPP_Write):
              (NPP_StreamAsFile):
              (NPP_Print):
              (NPP_HandleEvent):
              (NPP_URLNotify):
              (NPP_GetValue):
              (NPP_SetValue):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@11885 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7dd73f87