1. 17 Feb, 2013 3 commits
    • fpizlo@apple.com's avatar
      Move all Structure out-of-line inline methods to StructureInlines.h · bb8aa756
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=110024
      
      Source/JavaScriptCore: 
      
      Rubber stamped by Mark Hahnenberg and Sam Weinig.
              
      This was supposed to be easy.
              
      But, initially, there was a Structure inline method in CodeBlock.h, and moving that
      into StructureInlines.h meant that Operations.h included CodeBlock.h. This would
      cause WebCore build failures, because CodeBlock.h transitively included the JSC
      parser (via many, many paths), and the JSC parser defines tokens using enumeration
      elements that CSSGrammar.cpp (generated by bison) would #define. For example,
      bison would give CSSGrammar.cpp a #define FUNCTION 123, and would do so before
      including anything interesting. The JSC parser would have an enum that included
      FUNCTION as an element. Hence the JSC parser included into CSSGrammar.cpp would have
      a token element called FUNCTION declared in an enumeration, but FUNCTION was
      #define'd to 123, leading to a parser error.
              
      Wow.
              
      So I removed all transitive include paths from CodeBlock.h to the JSC Parser. I
      believe I was able to do so without out-of-lining anything interesting or performance
      critical. This is probably a purely good thing to have done: it will be nice to be
      able to make changes to the parser without having to compile the universe.
              
      Of course, doing this caused a bunch of other things to not compile, since a bunch of
      headers relied on things being implicitly included for them when they transitively
      included the parser. I fixed a lot of that.
              
      Finally, I ended up removing the method that depended on CodeBlock.h from
      StructureInlines.h, and putting it in Structure.cpp. That might seem like all of this
      was a waste of time, except that I suspect it was a worthwhile forcing function for
      cleaning up a bunch of cruft.
              
      * API/JSCallbackFunction.cpp:
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * Target.pri:
      * bytecode/CodeBlock.h:
      (JSC):
      * bytecode/EvalCodeCache.h:
      * bytecode/SamplingTool.h:
      * bytecode/UnlinkedCodeBlock.cpp:
      (JSC::UnlinkedFunctionExecutable::parameterCount):
      (JSC):
      * bytecode/UnlinkedCodeBlock.h:
      (UnlinkedFunctionExecutable):
      * bytecompiler/BytecodeGenerator.h:
      * bytecompiler/Label.h:
      (JSC):
      * dfg/DFGByteCodeParser.cpp:
      * dfg/DFGByteCodeParser.h:
      * dfg/DFGFPRInfo.h:
      * dfg/DFGRegisterBank.h:
      * heap/HandleStack.cpp:
      * jit/JITWriteBarrier.h:
      * parser/Nodes.h:
      (JSC):
      * parser/Parser.h:
      * parser/ParserError.h: Added.
      (JSC):
      (JSC::ParserError::ParserError):
      (ParserError):
      (JSC::ParserError::toErrorObject):
      * parser/ParserModes.h:
      * parser/SourceProvider.cpp: Added.
      (JSC):
      (JSC::SourceProvider::SourceProvider):
      (JSC::SourceProvider::~SourceProvider):
      * parser/SourceProvider.h:
      (JSC):
      (SourceProvider):
      * runtime/ArrayPrototype.cpp:
      * runtime/DatePrototype.cpp:
      * runtime/Executable.h:
      * runtime/JSGlobalObject.cpp:
      * runtime/JSGlobalObject.h:
      (JSC):
      * runtime/Operations.h:
      * runtime/Structure.cpp:
      (JSC::Structure::prototypeForLookup):
      (JSC):
      * runtime/Structure.h:
      (JSC):
      * runtime/StructureInlines.h: Added.
      (JSC):
      (JSC::Structure::create):
      (JSC::Structure::createStructure):
      (JSC::Structure::get):
      (JSC::Structure::masqueradesAsUndefined):
      (JSC::SlotVisitor::internalAppend):
      (JSC::Structure::transitivelyTransitionedFrom):
      (JSC::Structure::setEnumerationCache):
      (JSC::Structure::enumerationCache):
      (JSC::Structure::prototypeForLookup):
      (JSC::Structure::prototypeChain):
      (JSC::Structure::isValid):
      * runtime/StructureRareData.cpp:
      
      Source/WebCore: 
      
      Rubber stamped by Sam Weinig.
      
      No new tests because no new behavior. Just rewiring includes.
      
      * ForwardingHeaders/parser/SourceProviderCache.h: Added.
      * loader/cache/CachedScript.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143147 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bb8aa756
    • roger_fong@apple.com's avatar
      Unreviewed. Windows build fix. · 58e88799
      roger_fong@apple.com authored
      * runtime/CodeCache.h:
      (CodeCacheMap):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143141 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      58e88799
    • ggaren@apple.com's avatar
      Code cache should be explicit about what it caches · 818f283e
      ggaren@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=110039
      
      Reviewed by Oliver Hunt.
      
      This patch makes the code cache more explicit in two ways:
      
      (1) The cache caches top-level scripts. Any sub-functions executed as a
      part of a script are cached with it and evicted with it.
      
      This simplifies things by eliminating out-of-band sub-function tracking,
      and fixes pathological cases where functions for live scripts would be
      evicted in favor of functions for dead scripts, and/or high probability
      functions executed early in script lifetime would be evicted in favor of
      low probability functions executed late in script lifetime, due to LRU.
      
      Statistical data from general browsing and PLT confirms that caching
      functions independently of scripts is not profitable.
      
      (2) The cache tracks script size, not script count.
      
      This reduces the worst-case cache size by a factor of infinity.
      
      Script size is a reasonable first-order estimate of in-memory footprint 
      for a cached script because there are no syntactic constructs that have
      super-linear memory footprint.
      
      * bytecode/UnlinkedCodeBlock.cpp:
      (JSC::generateFunctionCodeBlock): Moved this function out of the cache
      because it does not consult the cache, and is not managed by it.
      
      (JSC::UnlinkedFunctionExecutable::visitChildren): Visit our code blocks
      because they are strong references now, rather than weak, a la (1).
      
      (JSC::UnlinkedFunctionExecutable::codeBlockFor): Updated for interface changes.
      
      * bytecode/UnlinkedCodeBlock.h:
      (UnlinkedFunctionExecutable):
      (UnlinkedFunctionCodeBlock): Strong now, not weak, a la (1).
      
      * runtime/CodeCache.cpp:
      (JSC::CodeCache::CodeCache):
      * runtime/CodeCache.h:
      (JSC::SourceCodeKey::length):
      (SourceCodeKey):
      (CodeCacheMap):
      (JSC::CodeCacheMap::CodeCacheMap):
      (JSC::CodeCacheMap::find):
      (JSC::CodeCacheMap::set):
      (JSC::CodeCacheMap::clear):
      (CodeCache):
      (JSC::CodeCache::clear): Removed individual function tracking, due to (1).
      Added explicit character counting, for (2).
      
      You might think 16000000 characters is a lot. It is. But this patch
      didn't establish that limit -- it just took the existing limit and
      made it more visible. I intend to reduce the size of the cache in a
      future patch.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143133 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      818f283e
  2. 16 Feb, 2013 4 commits
  3. 15 Feb, 2013 7 commits
    • fpizlo@apple.com's avatar
      Structure should be more methodical about the relationship between m_offset and m_propertyTable · 31be38f6
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=109978
      
      Reviewed by Mark Hahnenberg.
              
      Allegedly, the previous relationship was that either m_propertyTable or m_offset
      would be set, and if m_propertyTable was not set you could rebuild it.  In reality,
      we would sometimes "reset" both: some transitions wouldn't set m_offset, and other
      transitions would clear the previous structure's m_propertyTable.  So, in a
      structure transition chain of A->B->C you could have:
      
      A transitions to B: B doesn't copy m_offset but does copy m_propertyTable, because
          that seemed like a good idea at the time (this was a common idiom in the code).
      B transitions to C: C steals B's m_propertyTable, leaving B with neither a
          m_propertyTable nor a m_offset.
      
      Then we would ask for the size of the property storage of B and get the answer
      "none".  That's not good.
      
      Now, there is a new relationship, which, hopefully, should fix things: m_offset is
      always set and always refers to the maximum offset ever used by the property table.
      From this, you can infer both the inline and out-of-line property size, and
      capacity.  This is accomplished by having PropertyTable::add() take a
      PropertyOffset reference, which must be Structure::m_offset.  It will update this
      offset.  As well, all transitions now copy m_offset.  And we frequently assert
      (using RELEASE_ASSERT) that the m_offset matches what m_propertyTable would tell
      you.  Hence if you ever modify the m_propertyTable, you'll also update the offset.
      If you ever copy the property table, you'll also copy the offset.  Life should be
      good, I think.
      
      * runtime/PropertyMapHashTable.h:
      (JSC::PropertyTable::add):
      * runtime/Structure.cpp:
      (JSC::Structure::materializePropertyMap):
      (JSC::Structure::addPropertyTransition):
      (JSC::Structure::removePropertyTransition):
      (JSC::Structure::changePrototypeTransition):
      (JSC::Structure::despecifyFunctionTransition):
      (JSC::Structure::attributeChangeTransition):
      (JSC::Structure::toDictionaryTransition):
      (JSC::Structure::sealTransition):
      (JSC::Structure::freezeTransition):
      (JSC::Structure::preventExtensionsTransition):
      (JSC::Structure::nonPropertyTransition):
      (JSC::Structure::flattenDictionaryStructure):
      (JSC::Structure::checkConsistency):
      (JSC::Structure::putSpecificValue):
      (JSC::Structure::createPropertyMap):
      (JSC::PropertyTable::checkConsistency):
      * runtime/Structure.h:
      (JSC):
      (JSC::Structure::putWillGrowOutOfLineStorage):
      (JSC::Structure::outOfLineCapacity):
      (JSC::Structure::outOfLineSize):
      (JSC::Structure::isEmpty):
      (JSC::Structure::materializePropertyMapIfNecessary):
      (JSC::Structure::materializePropertyMapIfNecessaryForPinning):
      (Structure):
      (JSC::Structure::checkOffsetConsistency):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143097 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      31be38f6
    • mrobinson@webkit.org's avatar
      [GTK] Spread the gyp build files throughout the tree · f7e20b15
      mrobinson@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=109960
      
      Reviewed by Dirk Pranke.
      
      Source/JavaScriptCore:
      
      * JavaScriptCore.gyp/JavaScriptCoreGTK.gyp: Renamed from Source/WebKit/gtk/gyp/JavaScriptCore.gyp.
      * JavaScriptCore.gyp/generate-derived-sources.sh: Renamed from Source/WebKit/gtk/gyp/generate-derived-sources.sh.
      
      Source/WebKit/gtk:
      
      * gyp/Configuration.gypi.in: Remove the 'Source', since now it cannot be shared.
      * gyp/run-gyp: Update the path to the JavaScriptCore gypfile.
      
      Source/WTF:
      
      * WTF.gyp/WTFGTK.gyp: Renamed from Source/WebKit/gtk/gyp/WTF.gyp.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143093 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f7e20b15
    • fpizlo@apple.com's avatar
      DFG SpeculativeJIT64 should be more precise about when it's dealing with a... · 54413ed4
      fpizlo@apple.com authored
      DFG SpeculativeJIT64 should be more precise about when it's dealing with a cell (even though it probably doesn't matter)
      https://bugs.webkit.org/show_bug.cgi?id=109625
      
      Reviewed by Mark Hahnenberg.
      
      * dfg/DFGSpeculativeJIT64.cpp:
      (JSC::DFG::SpeculativeJIT::compileObjectEquality):
      (JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
      (JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
      (JSC::DFG::SpeculativeJIT::compile):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143057 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      54413ed4
    • ggaren@apple.com's avatar
      Merged the global function cache into the source code cache · e6ab4490
      ggaren@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=108660
      
      Reviewed by Sam Weinig.
      
      Responding to review comments by Darin Adler.
      
      ../JavaScriptCore: 
      
      * runtime/CodeCache.h:
      (JSC::SourceCodeKey::SourceCodeKey): Don't initialize m_name and m_flags
      in the hash table deleted value because they're meaningless.
      
      ../WTF: 
      
      * wtf/HashTraits.h: Added a using directive to simplify client code.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143027 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e6ab4490
    • fpizlo@apple.com's avatar
      DFG AbstractState should filter operands to NewArray more precisely · 7eb4adc2
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=109900
      
      Reviewed by Mark Hahnenberg.
              
      NewArray for primitive indexing types speculates that the inputs are the appropriate
      primitives. Now, the CFA filters the abstract state accordingly, as well.
      
      * dfg/DFGAbstractState.cpp:
      (JSC::DFG::AbstractState::execute):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143024 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7eb4adc2
    • akling@apple.com's avatar
      Yarr: Use OwnPtr to make pattern/disjunction/character-class ownership clearer. · a2c0538c
      akling@apple.com authored
      <http://webkit.org/b/109218>
      
      Reviewed by Benjamin Poulain.
      
      - Let classes that manage lifetime of other objects hold on to them with OwnPtr instead of raw pointers.
      - Placed some strategic Vector::shrinkToFit(), ::reserveInitialCapacity() and ::swap().
      
      668 kB progression on Membuster3.
      
      * yarr/YarrInterpreter.cpp:
      (JSC::Yarr::ByteCompiler::atomParenthesesSubpatternEnd):
      (JSC::Yarr::ByteCompiler::emitDisjunction):
      (ByteCompiler):
      * yarr/YarrInterpreter.h:
      (JSC::Yarr::BytecodePattern::BytecodePattern):
      (BytecodePattern):
      * yarr/YarrJIT.cpp:
      (JSC::Yarr::YarrGenerator::opCompileParenthesesSubpattern):
      (JSC::Yarr::YarrGenerator::opCompileParentheticalAssertion):
      (JSC::Yarr::YarrGenerator::opCompileBody):
      * yarr/YarrPattern.cpp:
      (JSC::Yarr::CharacterClassConstructor::charClass):
      (JSC::Yarr::YarrPatternConstructor::YarrPatternConstructor):
      (JSC::Yarr::YarrPatternConstructor::reset):
      (JSC::Yarr::YarrPatternConstructor::atomPatternCharacter):
      (JSC::Yarr::YarrPatternConstructor::atomCharacterClassEnd):
      (JSC::Yarr::YarrPatternConstructor::copyDisjunction):
      (JSC::Yarr::YarrPatternConstructor::setupDisjunctionOffsets):
      (JSC::Yarr::YarrPatternConstructor::checkForTerminalParentheses):
      (JSC::Yarr::YarrPatternConstructor::optimizeBOL):
      (JSC::Yarr::YarrPatternConstructor::containsCapturingTerms):
      (JSC::Yarr::YarrPatternConstructor::optimizeDotStarWrappedExpressions):
      * yarr/YarrPattern.h:
      (JSC::Yarr::PatternDisjunction::addNewAlternative):
      (PatternDisjunction):
      (YarrPattern):
      (JSC::Yarr::YarrPattern::reset):
      (JSC::Yarr::YarrPattern::newlineCharacterClass):
      (JSC::Yarr::YarrPattern::digitsCharacterClass):
      (JSC::Yarr::YarrPattern::spacesCharacterClass):
      (JSC::Yarr::YarrPattern::wordcharCharacterClass):
      (JSC::Yarr::YarrPattern::nondigitsCharacterClass):
      (JSC::Yarr::YarrPattern::nonspacesCharacterClass):
      (JSC::Yarr::YarrPattern::nonwordcharCharacterClass):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143018 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a2c0538c
    • zherczeg@webkit.org's avatar
  4. 14 Feb, 2013 7 commits
    • ggaren@apple.com's avatar
      Merged the global function cache into the source code cache · 036ef312
      ggaren@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=108660
      
      Reviewed by Sam Weinig.
      
      This has a few benefits:
      
          (*) Saves a few kB by removing a second cache data structure.
      
          (*) Reduces the worst case memory usage of the cache by 1.75X. (Heavy
          use of 'new Function' and other techniques could cause us to fill
          both root caches, and they didn't trade off against each other.)
      
          (*) Paves the way for future improvements based on a non-trivial
          cache key (for example, shrinkable pointer to the key string, and
          more precise cache size accounting).
      
      Also cleaned up the cache implementation and simplified it a bit.
      
      * heap/Handle.h:
      (HandleBase):
      * heap/Strong.h:
      (Strong): Build!
      
      * runtime/CodeCache.cpp:
      (JSC):
      (JSC::CodeCache::getCodeBlock):
      (JSC::CodeCache::generateFunctionCodeBlock):
      (JSC::CodeCache::getFunctionExecutableFromGlobalCode):
      (JSC::CodeCache::usedFunctionCode): Updated for three interface changes:
      
          (*) SourceCodeKey is a class, not a pair.
      
          (*) Table values are abstract pointers, since they can be executables
          or code blocks. (In a future patch, I'd like to change this so we
          always store only code blocks. But that's too much for one patch.)
      
          (*) The cache function is named "set" because it always overwrites
          unconditionally.
      
      * runtime/CodeCache.h:
      (CacheMap):
      (JSC::CacheMap::find):
      (JSC::CacheMap::set):
      (JSC::CacheMap::clear): Added support for specifying hash traits, so we
      can use a SourceCodeKey.
      
      Removed side table and random number generator to save space and reduce
      complexity. Hash tables are already random, so we don't need another source
      of randomness.
      
      (SourceCodeKey):
      (JSC::SourceCodeKey::SourceCodeKey):
      (JSC::SourceCodeKey::isHashTableDeletedValue):
      (JSC::SourceCodeKey::hash):
      (JSC::SourceCodeKey::isNull):
      (JSC::SourceCodeKey::operator==):
      (JSC::SourceCodeKeyHash::hash):
      (JSC::SourceCodeKeyHash::equal):
      (SourceCodeKeyHash):
      (SourceCodeKeyHashTraits):
      (JSC::SourceCodeKeyHashTraits::isEmptyValue): A SourceCodeKey is just a
      fancy triplet: source code string; function name (or null, for non-functions);
      and flags. Flags and function name distinguish between functions and programs
      with identical code, so they can live in the same cache.
      
      I chose to use the source code string as the primary hashing reference
      because it's likely to be unique. We can use profiling to choose another
      technique in future, if collisions between functions and programs prove
      to be hot. I suspect they won't.
      
      (JSC::CodeCache::clear):
      (CodeCache): Removed the second cache.
      
      * heap/Handle.h:
      (HandleBase):
      * heap/Strong.h:
      (Strong):
      * runtime/CodeCache.cpp:
      (JSC):
      (JSC::CodeCache::getCodeBlock):
      (JSC::CodeCache::generateFunctionCodeBlock):
      (JSC::CodeCache::getFunctionExecutableFromGlobalCode):
      (JSC::CodeCache::usedFunctionCode):
      * runtime/CodeCache.h:
      (JSC):
      (CacheMap):
      (JSC::CacheMap::find):
      (JSC::CacheMap::set):
      (JSC::CacheMap::clear):
      (SourceCodeKey):
      (JSC::SourceCodeKey::SourceCodeKey):
      (JSC::SourceCodeKey::isHashTableDeletedValue):
      (JSC::SourceCodeKey::hash):
      (JSC::SourceCodeKey::isNull):
      (JSC::SourceCodeKey::operator==):
      (JSC::SourceCodeKeyHash::hash):
      (JSC::SourceCodeKeyHash::equal):
      (SourceCodeKeyHash):
      (SourceCodeKeyHashTraits):
      (JSC::SourceCodeKeyHashTraits::isEmptyValue):
      (JSC::CodeCache::clear):
      (CodeCache):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142966 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      036ef312
    • roger_fong@apple.com's avatar
      Unreviewed. Some final touch-ups to the VS2010 WebKit solution before nuking the VS2005 solution. · f532be5e
      roger_fong@apple.com authored
      Remove un-needed include directories and force includes. 
      Update exports file.
      
      * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
      * WebKit.vcxproj/common.props:
      * DumpRenderTree/DumpRenderTree.vcxproj/DumpRenderTree/DumpRenderTreeLauncherCommon.props:
      * DumpRenderTree/DumpRenderTree.vcxproj/ImageDiff/ImageDiffLauncherCommon.props:
      * DumpRenderTree/DumpRenderTree.vcxproj/TestNetscapePlugin/TestNetscapePlugin.vcxproj:
      * DumpRenderTree/DumpRenderTree.vcxproj/TestNetscapePlugin/TestNetscapePlugin.vcxproj.filters:
      * TestWebKitAPI/TestWebKitAPI.vcxproj/TestWebKitAPI.vcxproj:
      * TestWebKitAPI/TestWebKitAPI.vcxproj/TestWebKitAPI.vcxproj.filters:
      * WinLauncher/WinLauncher.vcxproj/WinLauncherCommon.props:
      * win/record-memory/record-memoryCommon.props:
      * WebCore.vcxproj/WebCore.vcxproj:
      * WebCore.vcxproj/WebCore.vcxproj.filters:
      * JavaScriptCore.vcxproj/JavaScriptCoreCommon.props:
      * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:
      * JavaScriptCore.vcxproj/jsc/jscCommon.props:
      * JavaScriptCore.vcxproj/testRegExp/testRegExp.vcxproj:
      * JavaScriptCore.vcxproj/testapi/testapi.vcxproj:
      * WTF.vcxproj/WTFCommon.props:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142954 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f532be5e
    • tony@chromium.org's avatar
    • roger_fong@apple.com's avatar
      Move all .props files from WebKitLibraries folder to WebKit Source folder. · ebd600e9
      roger_fong@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=109761
      
      Reviewed by Brent Fulgham.
      
      * win/tools/vsprops/FeatureDefines.props: Removed.
      * win/tools/vsprops/common.props: Removed.
      * win/tools/vsprops/debug.props: Removed.
      * win/tools/vsprops/release.props: Removed.
      * win/tools/vsprops/releaseproduction.props: Removed.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142917 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ebd600e9
    • tony@chromium.org's avatar
      Unreviewed, set svn:eol-style CRLF for .sln files. · bd91b2a2
      tony@chromium.org authored
      Source/JavaScriptCore: 
      
      * JavaScriptCore.vcproj/JavaScriptCore.sln: Modified property svn:eol-style.
      * JavaScriptCore.vcproj/JavaScriptCoreSubmit.sln: Modified property
      * svn:eol-style.
      
      Source/ThirdParty: 
      
      * gtest/msvc/gtest-md.sln: Added property svn:eol-style.
      * gtest/msvc/gtest.sln: Added property svn:eol-style.
      
      Source/WebCore: 
      
      * WebCore.vcproj/WebCore.sln: Modified property svn:eol-style.
      * WebCore.vcproj/WebCore.submit.sln: Modified property svn:eol-style.
      
      Source/WebKit: 
      
      * WebKit.vcxproj/WebKit.sln: Modified property svn:eol-style.
      
      Source/WebKit/win: 
      
      * WebKit.vcproj/WebKit.sln: Modified property svn:eol-style.
      * WebKit.vcproj/WebKit.submit.sln: Modified property svn:eol-style.
      
      Source/WTF: 
      
      * WTF.vcproj/WTF.sln: Added property svn:eol-style.
      
      Tools: 
      
      * CLWrapper/CLWrapper.sln: Modified property svn:eol-style.
      * DumpRenderTree/DumpRenderTree.sln: Modified property svn:eol-style.
      * MIDLWrapper/MIDLWrapper.sln: Modified property svn:eol-style.
      * WebKitTestRunner/WebKitTestRunner.sln: Modified property svn:eol-style.
      
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142915 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bd91b2a2
    • tony@chromium.org's avatar
      Unreviewed, set svn:eol-style CRLF for .sln files. · 01bc5fd2
      tony@chromium.org authored
      Source/JavaScriptCore: 
      
      * JavaScriptCore.vcproj/JavaScriptCore.sln: Modified property svn:eol-style.
      * JavaScriptCore.vcproj/JavaScriptCoreSubmit.sln: Modified property svn:eol-style.
      
      Source/ThirdParty: 
      
      * gtest/msvc/gtest-md.sln: Added property svn:eol-style.
      * gtest/msvc/gtest.sln: Added property svn:eol-style.
      
      Source/WebCore: 
      
      * WebCore.vcproj/WebCore.sln: Modified property svn:eol-style.
      * WebCore.vcproj/WebCore.submit.sln: Modified property svn:eol-style.
      
      Source/WebKit: 
      
      * WebKit.vcxproj/WebKit.sln: Modified property svn:eol-style.
      
      Source/WebKit/win: 
      
      * WebKit.vcproj/WebKit.sln: Modified property svn:eol-style.
      * WebKit.vcproj/WebKit.submit.sln: Modified property svn:eol-style.
      
      Source/WTF: 
      
      * WTF.vcproj/WTF.sln: Added property svn:eol-style.
      
      Tools: 
      
      * CLWrapper/CLWrapper.sln: Modified property svn:eol-style.
      * DumpRenderTree/DumpRenderTree.sln: Modified property svn:eol-style.
      * MIDLWrapper/MIDLWrapper.sln: Modified property svn:eol-style.
      * WebKitTestRunner/WebKitTestRunner.sln: Modified property svn:eol-style.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142914 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      01bc5fd2
    • ddkilzer@apple.com's avatar
      [Mac] Clean up WARNING_CFLAGS · f8d0ba4d
      ddkilzer@apple.com authored
      <http://webkit.org/b/109747>
      <rdar://problem/13208373>
      
      Reviewed by Mark Rowe.
      
      Source/JavaScriptCore:
      
      * Configurations/Base.xcconfig: Use
      GCC_WARN_64_TO_32_BIT_CONVERSION to enable and disable
      -Wshorten-64-to-32 rather than WARNING_CFLAGS.
      
      Source/WebCore:
      
      * Configurations/Base.xcconfig: Use
      GCC_WARN_64_TO_32_BIT_CONVERSION to enable and disable
      -Wshorten-64-to-32 rather than WARNING_CFLAGS.
      
      Source/WebKit/mac:
      
      * Configurations/Base.xcconfig: Use
      GCC_WARN_64_TO_32_BIT_CONVERSION to enable and disable
      -Wshorten-64-to-32 rather than WARNING_CFLAGS.
      
      Source/WebKit2:
      
      * Configurations/Base.xcconfig: Use
      GCC_WARN_64_TO_32_BIT_CONVERSION to enable and disable
      -Wshorten-64-to-32 rather than WARNING_CFLAGS.
      
      Source/WTF:
      
      * Configurations/Base.xcconfig: Use
      GCC_WARN_64_TO_32_BIT_CONVERSION to enable and disable
      -Wshorten-64-to-32 rather than WARNING_CFLAGS.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142903 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f8d0ba4d
  5. 13 Feb, 2013 11 commits
    • andersca@apple.com's avatar
      Better build fix. · e1ddec06
      andersca@apple.com authored
      * API/tests/testapi.c:
      (assertEqualsAsNumber):
      (main):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142838 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e1ddec06
    • roger_fong@apple.com's avatar
      Unreviewed. Build fix. · f16e6adb
      roger_fong@apple.com authored
      * API/tests/testapi.c:
      (assertEqualsAsNumber):
      (main):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142832 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f16e6adb
    • oliver@apple.com's avatar
      Yet another build fix · 3819eb51
      oliver@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142813 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3819eb51
    • zandobersek@gmail.com's avatar
      The 'global isinf/isnan' compiler quirk required when using clang with libstdc++ · 9182d475
      zandobersek@gmail.com authored
      https://bugs.webkit.org/show_bug.cgi?id=109325
      
      Reviewed by Anders Carlsson.
      
      Prefix calls to the isinf and isnan methods with std::, declaring we want to use the
      two methods as they're provided by the C++ standard library being used.
      
      Source/JavaScriptCore: 
      
      * API/JSValueRef.cpp:
      (JSValueMakeNumber):
      * JSCTypedArrayStubs.h:
      (JSC):
      * bytecompiler/BytecodeGenerator.cpp:
      (JSC::BytecodeGenerator::emitLoad):
      * dfg/DFGByteCodeParser.cpp:
      (JSC::DFG::ByteCodeParser::constantNaN):
      * offlineasm/cloop.rb:
      * runtime/DateConstructor.cpp:
      (JSC::dateUTC): Also include an opportunistic style fix.
      * runtime/DateInstance.cpp:
      (JSC::DateInstance::calculateGregorianDateTime):
      (JSC::DateInstance::calculateGregorianDateTimeUTC):
      * runtime/DatePrototype.cpp:
      (JSC::dateProtoFuncGetMilliSeconds):
      (JSC::dateProtoFuncGetUTCMilliseconds):
      (JSC::setNewValueFromTimeArgs):
      (JSC::setNewValueFromDateArgs):
      (JSC::dateProtoFuncSetYear):
      * runtime/JSCJSValue.cpp:
      (JSC::JSValue::toInteger):
      * runtime/JSDateMath.cpp:
      (JSC::getUTCOffset):
      (JSC::parseDateFromNullTerminatedCharacters):
      (JSC::parseDate):
      * runtime/JSGlobalObjectFunctions.cpp:
      (JSC::globalFuncIsNaN):
      * runtime/MathObject.cpp:
      (JSC::mathProtoFuncMax):
      (JSC::mathProtoFuncMin):
      (JSC::mathProtoFuncPow):
      * runtime/PropertyDescriptor.cpp:
      (JSC::sameValue):
      
      Source/WebCore: 
      
      No new tests as there's no change in functionality.
      
      * Modules/mediasource/MediaSource.cpp:
      (WebCore::MediaSource::setDuration):
      * Modules/webaudio/AudioBufferSourceNode.cpp:
      (WebCore::AudioBufferSourceNode::totalPitchRate):
      * Modules/webaudio/AudioParam.cpp:
      (WebCore::AudioParam::setValue):
      * Modules/webaudio/AudioParamTimeline.cpp:
      (WebCore::isValidNumber):
      * Modules/webaudio/PannerNode.cpp:
      (WebCore::fixNANs):
      * bindings/js/IDBBindingUtilities.cpp:
      (WebCore::createIDBKeyFromValue):
      * bindings/js/JSDataViewCustom.cpp:
      (WebCore::getDataViewMember):
      * bindings/js/JSGeolocationCustom.cpp:
      (WebCore::setTimeout):
      (WebCore::setMaximumAge):
      * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
      (WebCore::JSHTMLOptionsCollection::setLength):
      * bindings/js/JSWebKitPointCustom.cpp:
      (WebCore::JSWebKitPointConstructor::constructJSWebKitPoint):
      * bindings/scripts/CodeGeneratorJS.pm:
      (GenerateImplementation):
      (GenerateParametersCheck):
      * bindings/scripts/CodeGeneratorV8.pm:
      (GenerateParametersCheck):
      * bindings/scripts/test/JS/JSFloat64Array.cpp:
      (WebCore::JSFloat64Array::getByIndex):
      * bindings/scripts/test/JS/JSTestObj.cpp:
      (WebCore::jsTestObjPrototypeFunctionClassMethodWithClamp):
      * bindings/scripts/test/V8/V8TestObj.cpp:
      (WebCore::TestObjV8Internal::classMethodWithClampCallback):
      * bindings/v8/IDBBindingUtilities.cpp:
      (WebCore::createIDBKeyFromValue):
      * bindings/v8/V8Binding.cpp:
      (WebCore::toInt32):
      (WebCore::toUInt32):
      * bindings/v8/custom/V8GeolocationCustom.cpp:
      (WebCore::createPositionOptions):
      * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
      (WebCore::V8HTMLOptionsCollection::lengthAccessorSetter):
      * bindings/v8/custom/V8WebKitPointCustom.cpp:
      (WebCore::V8WebKitPoint::constructorCallbackCustom):
      * bridge/qt/qt_runtime.cpp:
      (JSC::Bindings::convertValueToQVariant):
      * css/WebKitCSSMatrix.cpp:
      (WebCore::WebKitCSSMatrix::translate):
      (WebCore::WebKitCSSMatrix::scale):
      (WebCore::WebKitCSSMatrix::rotate):
      (WebCore::WebKitCSSMatrix::rotateAxisAngle):
      (WebCore::WebKitCSSMatrix::skewX):
      (WebCore::WebKitCSSMatrix::skewY):
      * html/HTMLMediaElement.cpp:
      (WebCore::HTMLMediaElement::percentLoaded):
      (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
      (WebCore::HTMLMediaElement::endedPlayback):
      * html/MediaController.cpp:
      (MediaController::duration):
      * html/canvas/WebGLRenderingContext.cpp:
      (WebCore):
      (WebCore::WebGLRenderingContext::clearColor):
      * html/track/TextTrack.cpp:
      (WebCore::TextTrack::addCue):
      * html/track/TextTrackCue.cpp:
      (WebCore::TextTrackCue::setStartTime):
      (WebCore::TextTrackCue::setEndTime):
      * page/DOMWindow.cpp:
      (WebCore::DOMWindow::adjustWindowRect):
      * page/WindowFeatures.cpp:
      (WebCore::WindowFeatures::floatFeature): Also include an opportunistic style fix.
      * platform/CalculationValue.cpp:
      (WebCore::CalculationValue::evaluate):
      * platform/Decimal.cpp:
      (WebCore::Decimal::fromDouble):
      * platform/Length.cpp:
      (WebCore::Length::nonNanCalculatedValue):
      * platform/audio/AudioResampler.cpp:
      (WebCore::AudioResampler::setRate):
      * platform/audio/DynamicsCompressorKernel.cpp:
      (WebCore::DynamicsCompressorKernel::process):
      * platform/audio/Reverb.cpp:
      (WebCore::calculateNormalizationScale):
      * platform/graphics/Font.cpp:
      (WebCore::Font::width):
      * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
      (WebCore::MediaPlayerPrivateAVFoundation::isLiveStream):
      * platform/graphics/gpu/LoopBlinnMathUtils.cpp:
      (LoopBlinnMathUtils):
      * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
      (WebCore::MediaPlayerPrivateGStreamer::buffered):
      (WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable):
      * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
      (WebCore::MediaPlayerPrivateQTKit::maxTimeSeekable):
      * platform/graphics/opentype/OpenTypeVerticalData.cpp:
      (WebCore::OpenTypeVerticalData::getVerticalTranslationsForGlyphs):
      * platform/graphics/transforms/TransformationMatrix.cpp:
      (WebCore::clampEdgeValue):
      (WebCore::TransformationMatrix::clampedBoundsOfProjectedQuad):
      * platform/network/ResourceResponseBase.cpp:
      (WebCore::ResourceResponseBase::parseCacheControlDirectives):
      * rendering/RenderMediaControlsChromium.cpp:
      (WebCore::paintMediaSlider):
      (WebCore::paintMediaVolumeSlider):
      * rendering/RenderThemeMac.mm:
      (WebCore::RenderThemeMac::paintMediaSliderTrack):
      * svg/SVGAnimationElement.cpp:
      (WebCore::SVGAnimationElement::beginElementAt):
      (WebCore::SVGAnimationElement::endElementAt):
      * svg/SVGSVGElement.cpp:
      (WebCore::SVGSVGElement::setCurrentTime):
      * svg/animation/SMILTime.h:
      (WebCore::SMILTime::SMILTime):
      * svg/animation/SVGSMILElement.cpp:
      (WebCore::SVGSMILElement::addBeginTime):
      (WebCore::SVGSMILElement::addEndTime):
      * xml/XPathFunctions.cpp:
      (WebCore::XPath::FunSubstring::evaluate):
      (WebCore::XPath::FunRound::round):
      * xml/XPathValue.cpp:
      (WebCore::XPath::Value::toBoolean): Also include an opportunistic style fix.
      (WebCore::XPath::Value::toString):
      
      Source/WebKit/chromium: 
      
      * tests/DecimalTest.cpp:
      (TEST_F):
      
      Source/WebKit/mac: 
      
      * tests/DecimalTest.cpp:
      (TEST_F):
      
      Source/WTF: 
      
      * wtf/Compiler.h: Remove the global isinf/isnan compiler quirk definitions. They're not required anymore.
      * wtf/DateMath.cpp: Move the workaround for isinf on Solaris into the std namespace. Ditto for isinf and isnan
      when using MSVC. Stop bringing the isinf and isnan methods into the global scope when using other configurations.
      (WTF::parseDateFromNullTerminatedCharacters):
      * wtf/IntegralTypedArrayBase.h:
      (WTF::IntegralTypedArrayBase::set):
      * wtf/MathExtras.h:
      (std):
      (std::isinf):
      (wtf_fmod):
      (wtf_pow):
      (doubleToInteger):
      * wtf/MediaTime.cpp:
      (WTF::MediaTime::createWithFloat):
      (WTF::MediaTime::createWithDouble):
      * wtf/Uint8ClampedArray.h:
      (WTF::Uint8ClampedArray::set):
      
      Tools: 
      
      * DumpRenderTree/TestRunner.cpp:
      (setAppCacheMaximumSizeCallback):
      (setApplicationCacheOriginQuotaCallback):
      (setDatabaseQuotaCallback):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142810 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9182d475
    • fpizlo@apple.com's avatar
      Change another use of (SpecCell & ~SpecString) to SpecObject. · ee2b6c1e
      fpizlo@apple.com authored
      Reviewed by Mark Hahnenberg.
      
      * dfg/DFGAbstractState.cpp:
      (JSC::DFG::AbstractState::execute):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142804 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ee2b6c1e
    • fpizlo@apple.com's avatar
      ForwardInt32ToDouble is not in DFG::MinifiedNode's list of relevant node types · 2132ebae
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=109726
      
      Reviewed by Mark Hahnenberg.
              
      If you add it to the list of relevant node types, you also need to make sure
      it's listed as either hasChild or one of the other kinds. Otherwise you get
      an assertion. This is causing test failures in run-javascriptcore-tests.
      
      * dfg/DFGMinifiedNode.h:
      (JSC::DFG::MinifiedNode::hasChild):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142800 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2132ebae
    • oliver@apple.com's avatar
      Build fix. · e6b155e4
      oliver@apple.com authored
      Rearranged the code somewhat to reduce the number of
      DFG related ifdefs.
      
      * bytecode/CodeBlock.cpp:
      (JSC::CodeBlock::CodeBlock):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142789 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e6b155e4
    • fpizlo@apple.com's avatar
      ForwardInt32ToDouble is not in DFG::MinifiedNode's list of relevant node types · faef5191
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=109726
      
      Reviewed by Gavin Barraclough.
              
      This is asymptomatic because ForwardInt32ToDouble is only used in SetLocals, in
      which case the value is already stored to the stack.  Still, we should fix this.
      
      * dfg/DFGMinifiedNode.h:
      (JSC::DFG::belongsInMinifiedGraph):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142780 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      faef5191
    • fpizlo@apple.com's avatar
      DFG LogicalNot/Branch peephole removal and inversion ignores the possibility of things exiting · 573b9003
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=109489
      
      Source/JavaScriptCore: 
      
      Reviewed by Mark Hahnenberg.
              
      If things can exit between the LogicalNot and the Branch then don't peephole.
      
      * dfg/DFGFixupPhase.cpp:
      (JSC::DFG::FixupPhase::fixupNode):
      
      LayoutTests: 
      
      Reviewed by Mark Hahnenberg.
      
      * fast/js/dfg-branch-logical-not-peephole-around-osr-exit-expected.txt: Added.
      * fast/js/dfg-branch-logical-not-peephole-around-osr-exit.html: Added.
      * fast/js/jsc-test-list:
      * fast/js/script-tests/dfg-branch-logical-not-peephole-around-osr-exit.js: Added.
      (foo):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142779 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      573b9003
    • oliver@apple.com's avatar
      Remove unnecessary indirection to non-local variable access operations · 951c7f58
      oliver@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=109724
      
      Reviewed by Filip Pizlo.
      
      Linked bytecode now stores a direct pointer to the resolve operation
      vectors, so the interpreter no longer needs a bunch of indirection to
      to perform non-local lookup.
      
      * bytecode/CodeBlock.cpp:
      (JSC::CodeBlock::CodeBlock):
      * bytecode/CodeBlock.h:
      (CodeBlock):
      * bytecode/Instruction.h:
      * dfg/DFGByteCodeParser.cpp:
      (ByteCodeParser):
      (InlineStackEntry):
      (JSC::DFG::ByteCodeParser::parseResolveOperations):
      (JSC::DFG::ByteCodeParser::parseBlock):
      (JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
      * dfg/DFGCapabilities.h:
      (JSC::DFG::canInlineOpcode):
      * dfg/DFGGraph.h:
      (ResolveGlobalData):
      (ResolveOperationData):
      (PutToBaseOperationData):
      * dfg/DFGSpeculativeJIT.h:
      * dfg/DFGSpeculativeJIT32_64.cpp:
      (JSC::DFG::SpeculativeJIT::compile):
      * dfg/DFGSpeculativeJIT64.cpp:
      (JSC::DFG::SpeculativeJIT::compile):
      * jit/JITOpcodes.cpp:
      (JSC::JIT::emit_op_put_to_base):
      (JSC::JIT::emit_op_resolve):
      (JSC::JIT::emitSlow_op_resolve):
      (JSC::JIT::emit_op_resolve_base):
      (JSC::JIT::emitSlow_op_resolve_base):
      (JSC::JIT::emit_op_resolve_with_base):
      (JSC::JIT::emitSlow_op_resolve_with_base):
      (JSC::JIT::emit_op_resolve_with_this):
      (JSC::JIT::emitSlow_op_resolve_with_this):
      (JSC::JIT::emitSlow_op_put_to_base):
      * jit/JITOpcodes32_64.cpp:
      (JSC::JIT::emit_op_put_to_base):
      * llint/LLIntSlowPaths.cpp:
      (JSC::LLInt::LLINT_SLOW_PATH_DECL):
      * llint/LowLevelInterpreter.asm:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142769 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      951c7f58
    • zherczeg@webkit.org's avatar
      replaceWithJump should not decrease the offset by 1 on ARM traditional. · b98ba080
      zherczeg@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=109689
      
      Reviewed by Zoltan Herczeg.
      
      * assembler/ARMAssembler.h:
      (JSC::ARMAssembler::replaceWithJump):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142751 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b98ba080
  6. 12 Feb, 2013 8 commits