1. 31 Aug, 2012 11 commits
    • fpizlo@apple.com's avatar
      Unreviewed, attempt to fix Windows. · 72dd7d42
      fpizlo@apple.com authored
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127350 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      72dd7d42
    • fpizlo@apple.com's avatar
      JSArray::putDirectIndex should by default behave like JSObject::putDirect · 3fbbc4f8
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=95630
      
      Reviewed by Gavin Barraclough.
      
      Source/JavaScriptCore: 
      
      * interpreter/Interpreter.cpp:
      (JSC::Interpreter::privateExecute):
      * jit/JITStubs.cpp:
      (JSC::DEFINE_STUB_FUNCTION):
      * jsc.cpp:
      (GlobalObject::finishCreation):
      * llint/LLIntSlowPaths.cpp:
      (JSC::LLInt::LLINT_SLOW_PATH_DECL):
      * runtime/JSArray.cpp:
      (JSC::SparseArrayValueMap::putDirect):
      (JSC::JSArray::defineOwnNumericProperty):
      (JSC::JSArray::putDirectIndexBeyondVectorLength):
      * runtime/JSArray.h:
      (SparseArrayValueMap):
      (JSArray):
      (JSC::JSArray::putDirectIndex):
      * runtime/JSONObject.cpp:
      (JSC::Walker::walk):
      * runtime/RegExpMatchesArray.cpp:
      (JSC::RegExpMatchesArray::reifyAllProperties):
      (JSC::RegExpMatchesArray::reifyMatchProperty):
      * runtime/StringPrototype.cpp:
      (JSC::splitStringByOneCharacterImpl):
      (JSC::stringProtoFuncSplit):
      
      Source/WebCore: 
      
      No new tests because no change in behavior.
      
      * bindings/js/SerializedScriptValue.cpp:
      (WebCore::CloneDeserializer::putProperty):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127349 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3fbbc4f8
    • ggaren@apple.com's avatar
      Rolled back in a piece of <http://trac.webkit.org/changeset/127293>. · a62184de
      ggaren@apple.com authored
          Shrink activation objects by half
          https://bugs.webkit.org/show_bug.cgi?id=95591
      
          Reviewed by Sam Weinig.
      
      * runtime/JSGlobalData.cpp:
      (JSC::JSGlobalData::JSGlobalData):
      * runtime/JSGlobalData.h:
      (JSGlobalData):
      * runtime/JSNameScope.h:
      (JSC::JSNameScope::JSNameScope):
      * runtime/JSWithScope.h:
      (JSC::JSWithScope::JSWithScope):
      * runtime/StrictEvalActivation.cpp:
      (JSC::StrictEvalActivation::StrictEvalActivation):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127348 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a62184de
    • ggaren@apple.com's avatar
      Rolled back in a piece of <http://trac.webkit.org/changeset/127293>. · 70aed69e
      ggaren@apple.com authored
          Shrink activation objects by half
          https://bugs.webkit.org/show_bug.cgi?id=95591
      
          Reviewed by Sam Weinig.
      
      * dfg/DFGAbstractState.cpp:
      (JSC::DFG::AbstractState::execute):
      * jit/JITOpcodes.cpp:
      (JSC::JIT::emit_op_resolve_global_dynamic):
      * llint/LowLevelInterpreter32_64.asm:
      * llint/LowLevelInterpreter64.asm:
      * runtime/JSActivation.cpp:
      (JSC::JSActivation::JSActivation):
      * runtime/JSGlobalData.cpp:
      (JSC::JSGlobalData::JSGlobalData):
      * runtime/JSGlobalData.h:
      (JSGlobalData):
      * runtime/JSGlobalObject.cpp:
      (JSC::JSGlobalObject::reset):
      (JSC::JSGlobalObject::visitChildren):
      * runtime/JSGlobalObject.h:
      (JSGlobalObject):
      (JSC::JSGlobalObject::withScopeStructure):
      (JSC::JSGlobalObject::strictEvalActivationStructure):
      (JSC::JSGlobalObject::activationStructure):
      (JSC::JSGlobalObject::nameScopeStructure):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127345 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      70aed69e
    • mhahnenberg@apple.com's avatar
      Remove use of ClassInfo in SpeculativeJIT::emitBranch · c1925150
      mhahnenberg@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=95623
      
      Reviewed by Filip Pizlo.
      
      * dfg/DFGAbstractState.cpp:
      (JSC::DFG::AbstractState::execute):
      * dfg/DFGSpeculativeJIT.h:
      (SpeculativeJIT):
      * dfg/DFGSpeculativeJIT32_64.cpp:
      (JSC::DFG::SpeculativeJIT::emitNonStringCellOrOtherBranch):
      (JSC::DFG::SpeculativeJIT::emitBranch):
      * dfg/DFGSpeculativeJIT64.cpp:
      (JSC::DFG::SpeculativeJIT::emitNonStringCellOrOtherBranch):
      (JSC::DFG::SpeculativeJIT::emitBranch):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127343 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c1925150
    • ggaren@apple.com's avatar
      Rolled back in a piece of <http://trac.webkit.org/changeset/127293>. · d84288e5
      ggaren@apple.com authored
          Shrink activation objects by half
          https://bugs.webkit.org/show_bug.cgi?id=95591
      
          Reviewed by Sam Weinig.
      
      * heap/MarkedBlock.cpp:
      (JSC::MarkedBlock::MarkedBlock):
      * heap/MarkedBlock.h:
      (MarkedBlock):
      (JSC::MarkedBlock::globalData):
      (JSC):
      * heap/WeakSet.cpp:
      (JSC::WeakSet::addAllocator):
      * heap/WeakSet.h:
      (WeakSet):
      (JSC::WeakSet::WeakSet):
      (JSC::WeakSet::globalData):
      * runtime/JSGlobalData.h:
      (JSC::WeakSet::heap):
      (JSC):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127338 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d84288e5
    • commit-queue@webkit.org's avatar
      Refactor LLInt and supporting code in preparation for the C Loop backend. · eebad5de
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=95531.
      
      Patch by Mark Lam <mark.lam@apple.com> on 2012-08-31
      Reviewed by Filip Pizlo.
      
      * bytecode/GetByIdStatus.cpp:
      (JSC::GetByIdStatus::computeFromLLInt):
      * bytecode/PutByIdStatus.cpp:
      (JSC::PutByIdStatus::computeFromLLInt):
      * jit/JITExceptions.cpp:
      (JSC::genericThrow): Use ExecutableBase::catchRoutineFor() to fetch
          fetch the catch routine for a thrown exception.  This will allow
          us to redefine that for the C loop later, and still keep this
          code readable.
      * llint/LLIntOfflineAsmConfig.h: Moved ASM macros to
          LowLevelInterpreter.cpp which is the only place they are used. This
          will make it more convenient to redefine them for the C loop later.
      * llint/LLIntSlowPaths.cpp:
      (JSC::LLInt::setUpCall): Use ExecutableBase's hostCodeEntry()
          jsCodeEntryFor(), and jsCodeWithArityCheckEntryFor() for computing
          the entry points to functions being called.
      * llint/LLIntSlowPaths.h:
      (SlowPathReturnType):
      (JSC::LLInt::encodeResult):
      (LLInt):
      (JSC::LLInt::decodeResult): Added.  Needed by LLInt C Loop later.
      * llint/LowLevelInterpreter.asm:
      * llint/LowLevelInterpreter.cpp:
      * llint/LowLevelInterpreter32_64.asm:
      * llint/LowLevelInterpreter64.asm:
      * offlineasm/asm.rb: Disambiguate between opcodes and other labels.
      * offlineasm/config.rb:
      * runtime/Executable.h:
      (JSC::ExecutableBase::hostCodeEntryFor): Added.
      (ExecutableBase):
      (JSC::ExecutableBase::jsCodeEntryFor): Added.
      (JSC::ExecutableBase::jsCodeWithArityCheckEntryFor): Added.
      (JSC::ExecutableBase::catchRoutineFor): Added.
      * runtime/JSValueInlineMethods.h:
      (JSC):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127333 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      eebad5de
    • tony@chromium.org's avatar
      Remove ENABLE_CSS3_FLEXBOX compile time flag · b866aaa0
      tony@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=95382
      
      Reviewed by Ojan Vafai.
      
      Everyone is already enabling this by default and the spec has stablized.
      
      .:
      
      * Source/cmake/WebKitFeatures.cmake:
      * Source/cmakeconfig.h.cmake:
      * configure.ac:
      
      Source/JavaScriptCore:
      
      * Configurations/FeatureDefines.xcconfig:
      
      Source/WebCore:
      
      No new tests, shouldn't change anything.
      
      * Configurations/FeatureDefines.xcconfig:
      * GNUmakefile.am:
      * GNUmakefile.features.am:
      * css/CSSComputedStyleDeclaration.cpp:
      (WebCore):
      (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
      * css/CSSParser.cpp:
      (WebCore::isValidKeywordPropertyAndValue): Expand check range to include flex and inline-flex.
      (WebCore::isKeywordPropertyID):
      (WebCore::CSSParser::parseValue):
      * css/CSSPrimitiveValueMappings.h:
      (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
      * css/CSSProperty.cpp:
      (WebCore::CSSProperty::isInheritedProperty):
      * css/CSSPropertyNames.in:
      * css/CSSValueKeywords.in:
      * css/StyleBuilder.cpp:
      (WebCore::StyleBuilder::StyleBuilder):
      * css/StylePropertySet.cpp:
      (WebCore::StylePropertySet::getPropertyValue):
      (WebCore::StylePropertySet::asText):
      * css/StylePropertyShorthand.cpp:
      (WebCore::webkitFlexShorthand):
      (WebCore::shorthandForProperty):
      * css/StylePropertyShorthand.h:
      (WebCore):
      * css/StyleResolver.cpp:
      (WebCore::StyleResolver::collectMatchingRulesForList):
      * page/animation/CSSPropertyAnimation.cpp:
      (WebCore::CSSPropertyAnimation::ensurePropertyMap):
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::createObject):
      * rendering/style/RenderStyle.h:
      * rendering/style/RenderStyleConstants.h:
      
      Source/WebKit/chromium:
      
      * features.gypi:
      
      Source/WebKit/mac:
      
      * Configurations/FeatureDefines.xcconfig:
      
      Source/WebKit2:
      
      * Configurations/FeatureDefines.xcconfig:
      
      Tools:
      
      * Scripts/webkitperl/FeatureList.pm:
      * qmake/mkspecs/features/features.pri:
      
      WebKitLibraries:
      
      * win/tools/vsprops/FeatureDefines.vsprops:
      * win/tools/vsprops/FeatureDefinesCairo.vsprops:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127318 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b866aaa0
    • ggaren@apple.com's avatar
      Not reviewed. · 1929b299
      ggaren@apple.com authored
      Rolled out http://trac.webkit.org/changeset/127293 because it broke
      inspector tests on Windows.
      
          Shrink activation objects by half
          https://bugs.webkit.org/show_bug.cgi?id=95591
      
          Reviewed by Sam Weinig.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127304 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1929b299
    • ggaren@apple.com's avatar
      Shrink activation objects by half · 0b44fca6
      ggaren@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=95591
      
      Reviewed by Sam Weinig.
      
      Removed the global object, global data, and global this pointers from
      JSScope, and changed an int to a bitfield. This gets the JSActivation
      class down to 64 bytes, which in practice cuts it in half by getting it
      out of the 128 byte size class.
      
      Now, it's one extra indirection to get these pointers. These pointers
      aren't accessed by JIT code, so I thought there would be no cost to the
      extra indirection. However, some C++-heavy SunSpider tests regressed a
      bit in an early version of the patch, which added even more indirection.
      This suggests that calls to exec->globalData() and/or exec->lexicalGlobalObject()
      are common and probably duplicated in lots of places, and could stand
      further optimization in C++.
      
      * dfg/DFGAbstractState.cpp:
      (JSC::DFG::AbstractState::execute): Test against the specific activation
      for our global object, since there's no VM-shared activation structure
      anymore. This is guaranteed to have the same success rate as the old test
      because activation scope is fixed at compile time.
      
      * heap/MarkedBlock.cpp:
      (JSC::MarkedBlock::MarkedBlock):
      * heap/MarkedBlock.h:
      (JSC::MarkedBlock::globalData):
      * heap/WeakSet.cpp:
      (JSC::WeakSet::addAllocator):
      * heap/WeakSet.h:
      (WeakSet):
      (JSC::WeakSet::WeakSet):
      (JSC::WeakSet::globalData): Store a JSGlobalData* instead of a Heap*
      because JSGlobalData->Heap is just a constant fold in the addressing
      mode, while Heap->JSGlobalData is an extra pointer dereference. (These
      objects should eventually just merge.)
      
      * jit/JITOpcodes.cpp:
      (JSC::JIT::emit_op_resolve_global_dynamic): See DFGAbstractState.cpp.
      
      * llint/LowLevelInterpreter32_64.asm:
      * llint/LowLevelInterpreter64.asm: Load the activation structure from
      the code block instead of the global data because the structure is not
      VM-shared anymore. (See DFGAbstractState.cpp.)
      
      * runtime/JSActivation.cpp:
      (JSC::JSActivation::JSActivation):
      * runtime/JSActivation.h:
      (JSActivation): This is the point of the patch: Remove the data.
      
      * runtime/JSGlobalData.cpp:
      (JSC::JSGlobalData::JSGlobalData):
      * runtime/JSGlobalData.h:
      (JSGlobalData): No longer VM-shared. (See DFGAbstractState.cpp.)
      
      (JSC::WeakSet::heap): (See WeakSet.h.)
      
      * runtime/JSGlobalObject.cpp:
      (JSC::JSGlobalObject::JSGlobalObject):
      (JSC::JSGlobalObject::setGlobalThis):
      (JSC::JSGlobalObject::reset):
      (JSC::JSGlobalObject::visitChildren):
      * runtime/JSGlobalObject.h:
      (JSGlobalObject):
      (JSC::JSGlobalObject::withScopeStructure):
      (JSC::JSGlobalObject::strictEvalActivationStructure):
      (JSC::JSGlobalObject::activationStructure):
      (JSC::JSGlobalObject::nameScopeStructure):
      (JSC::JSScope::globalThis):
      (JSC::JSGlobalObject::globalThis): Data that used to be in the JSScope
      class goes here now, so it's not duplicated across all activations.
      
      * runtime/JSNameScope.h:
      (JSC::JSNameScope::JSNameScope):
      * runtime/JSScope.cpp:
      (JSC::JSScope::visitChildren): This is the point of the patch: Remove the data.
      
      * runtime/JSScope.h:
      (JSScope):
      (JSC::JSScope::JSScope):
      (JSC::JSScope::globalObject):
      (JSC::JSScope::globalData):
      * runtime/JSSegmentedVariableObject.h:
      (JSC::JSSegmentedVariableObject::JSSegmentedVariableObject):
      * runtime/JSSymbolTableObject.h:
      (JSC::JSSymbolTableObject::JSSymbolTableObject):
      * runtime/JSVariableObject.h:
      (JSC::JSVariableObject::JSVariableObject):
      * runtime/JSWithScope.h:
      (JSC::JSWithScope::JSWithScope):
      * runtime/StrictEvalActivation.cpp:
      (JSC::StrictEvalActivation::StrictEvalActivation): Simplified now that
      we don't need to pass so much data to JSScope.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127293 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0b44fca6
    • paroga@webkit.org's avatar
      Build fix for WinCE after r127191. · fe3529b1
      paroga@webkit.org authored
      * bytecode/JumpTable.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127248 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fe3529b1
  2. 30 Aug, 2012 21 commits
    • fpizlo@apple.com's avatar
      ASSERTION FAILURE in JSC::JSGlobalData::float32ArrayDescriptor when running... · 6515573a
      fpizlo@apple.com authored
      ASSERTION FAILURE in JSC::JSGlobalData::float32ArrayDescriptor when running fast/js/dfg-float64array.html
      https://bugs.webkit.org/show_bug.cgi?id=95398
      
      Reviewed by Mark Hahnenberg.
      
      Source/JavaScriptCore:
      
      Trying to get the build failure to be a bit more informative.
      
      * runtime/JSGlobalData.h:
      (JSGlobalData):
      
      LayoutTests:
      
      Temporarily unskipping tests to figure out what is going.
      
      * platform/mac-wk2/Skipped:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127222 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6515573a
    • ggaren@apple.com's avatar
      Try to fix the Qt build: add some #includes that, for some reason, only the Qt linker requires. · 4122d36f
      ggaren@apple.com authored
      * runtime/BooleanObject.cpp:
      * runtime/ErrorInstance.cpp:
      * runtime/NameInstance.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127214 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4122d36f
    • ggaren@apple.com's avatar
      Fix the Qt build: Removed a now-dead variable. · 42c85134
      ggaren@apple.com authored
      * interpreter/Interpreter.cpp:
      (JSC::Interpreter::execute):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127213 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      42c85134
    • benjamin@webkit.org's avatar
      Ambiguous operator[] after r127191 on some compiler · c08af738
      benjamin@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=95509
      
      Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-08-30
      Reviewed by Simon Fraser.
      
      Source/JavaScriptCore: 
      
      On some compilers, the operator[] conflicts with the Obj-C++ operators. This attempts to solve
      the issue.
      
      * runtime/JSString.h:
      (JSC::jsSingleCharacterSubstring):
      (JSC::jsString):
      (JSC::jsSubstring8):
      (JSC::jsSubstring):
      (JSC::jsOwnedString):
      
      Source/WTF: 
      
      * wtf/text/WTFString.h:
      (WTF::String::characterAt): At this as a synonym to operator[] to attempt a build fix.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127212 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c08af738
    • ggaren@apple.com's avatar
      Try to fix the Qt build: Remove the inline keyword at the declaration · 1281f327
      ggaren@apple.com authored
      site. 
      
      The Qt compiler seems to be confused, complaining about these functions
      not being defined in a translation unit, even though no generated code
      in the unit calls these functions. Maybe removing the keyword at the
      declaration site will change its mind.
      
      This shouldn't change the inlining decision at all: the definition is
      still inline.
      
      * interpreter/CallFrame.h:
      (ExecState):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127211 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1281f327
    • ggaren@apple.com's avatar
      Undo Qt build fix guess, since it breaks other builds. · e553197f
      ggaren@apple.com authored
      * runtime/JSArray.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127210 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e553197f
    • ggaren@apple.com's avatar
      Try to fix the Qt build: add an #include to JSArray.h, since · ac41be1d
      ggaren@apple.com authored
      it's included by some of the files Qt complains about, and
      some of is functions call the functions Qt complains about.
      
      * runtime/JSArray.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127208 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ac41be1d
    • ggaren@apple.com's avatar
      Second step toward fixing the Windows build: Add new symbols. · 453907a4
      ggaren@apple.com authored
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127207 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      453907a4
    • ggaren@apple.com's avatar
      Try to fix the Qt build: add an #include. · aab72727
      ggaren@apple.com authored
      * bytecode/GetByIdStatus.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127205 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      aab72727
    • ggaren@apple.com's avatar
      First step toward fixing the Windows build: Remove old symbols. · 4faafb27
      ggaren@apple.com authored
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127204 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4faafb27
    • ggaren@apple.com's avatar
      Use one object instead of two for closures, eliminating ScopeChainNode · b11e7874
      ggaren@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=95501
      
      Reviewed by Filip Pizlo.
      
      ../JavaScriptCore: 
      
      This patch removes ScopeChainNode, and moves all the data and related
      functions that used to be in ScopeChainNode into JSScope.
      
      Most of this patch is mechanical changes to use a JSScope* where we used
      to use a ScopeChainNode*. I've only specifically commented about items
      that were non-mechanical.
      
      * runtime/Completion.cpp:
      (JSC::evaluate):
      * runtime/Completion.h: Don't require an explicit scope chain argument
      when evaluating code. Clients never wanted anything other than the
      global scope, and other arbitrary scopes probably wouldn't work
      correctly, anyway.
      
      * runtime/JSScope.cpp:
      * runtime/JSScope.h:
      (JSC::JSScope::JSScope): JSScope now requires the data we used to pass to
      ScopeChainNode, so it can link itself into the scope chain correctly.
      
      * runtime/JSWithScope.h:
      (JSC::JSWithScope::create):
      (JSC::JSWithScope::JSWithScope): JSWithScope gets an extra constructor
      for specifically supplying your own scope chain. The DOM needs this
      interface for setting up the scope chain for certain event handlers.
      Other clients always just push the JSWithScope to the head of the current
      scope chain.
      
      ../WebCore: 
      
      Mechanical changes to update for JSC interface changes.
      
      ../WebKit/mac: 
      
      Mechanical change to update for JSC interface change.
      
      ../WebKit/qt: 
      
      Mechanical change to update for JSC interface change.
      
      * Api/qwebelement.cpp:
      (QWebElement::evaluateJavaScript):
      
      ../WebKit2: 
      
      Mechanical changes to update for JSC interface change.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127202 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b11e7874
    • commit-queue@webkit.org's avatar
      Render unto #ifdef's that which belong to them. · b8419483
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=95482.
      
      Patch by Mark Lam <mark.lam@apple.com> on 2012-08-30
      Reviewed by Filip Pizlo.
      
      Source/JavaScriptCore:
      
      Refining / disambiguating between #ifdefs and adding some. For
      example, ENABLE(JIT) is conflated with ENABLE(LLINT) in some places.
      Also, we need to add ENABLE(COMPUTED_GOTO_OPCODES) to indicate that we
      want interpreted opcodes to use COMPUTED GOTOs apart from ENABLE(LLINT)
      and ENABLE(COMPUTED_GOTO_CLASSIC_INTERPRETER). Also cleaned up #ifdefs
      in certain places which were previously incorrect.
      
      * bytecode/CodeBlock.cpp:
      (JSC):
      (JSC::CodeBlock::bytecodeOffset):
      * bytecode/CodeBlock.h:
      (CodeBlock):
      * bytecode/Opcode.h:
      (JSC::padOpcodeName):
      * config.h:
      * dfg/DFGOperations.cpp:
      * interpreter/AbstractPC.cpp:
      (JSC::AbstractPC::AbstractPC):
      * interpreter/CallFrame.h:
      (ExecState):
      * interpreter/Interpreter.cpp:
      (JSC::Interpreter::~Interpreter):
      (JSC::Interpreter::initialize):
      (JSC::Interpreter::isOpcode):
      (JSC::Interpreter::unwindCallFrame):
      (JSC::getLineNumberForCallFrame):
      (JSC::getCallerInfo):
      (JSC::Interpreter::execute):
      (JSC::Interpreter::executeCall):
      (JSC::Interpreter::executeConstruct):
      (JSC::Interpreter::privateExecute):
      * interpreter/Interpreter.h:
      (JSC::Interpreter::getOpcode):
      (JSC::Interpreter::getOpcodeID):
      (Interpreter):
      * jit/HostCallReturnValue.h:
      * jit/JITCode.h:
      (JITCode):
      * jit/JITExceptions.cpp:
      * jit/JITExceptions.h:
      * jit/JSInterfaceJIT.h:
      * llint/LLIntData.h:
      (JSC::LLInt::getOpcode):
      * llint/LLIntEntrypoints.cpp:
      (JSC::LLInt::getFunctionEntrypoint):
      (JSC::LLInt::getEvalEntrypoint):
      (JSC::LLInt::getProgramEntrypoint):
      * llint/LLIntOffsetsExtractor.cpp:
      (JSC::LLIntOffsetsExtractor::dummy):
      * llint/LLIntSlowPaths.cpp:
      (LLInt):
      * runtime/JSGlobalData.cpp:
      (JSC):
      
      Source/WTF:
      
      * wtf/Platform.h: Added ENABLE(COMPUTED_GOTO_OPCODES).
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127199 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b8419483
    • commit-queue@webkit.org's avatar
      [EFL][WK2] Add WebMemorySampler feature. · 9f7e231d
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=91214
      
      Patch by JungJik Lee <jungjik.lee@samsung.com> on 2012-08-30
      Reviewed by Kenneth Rohde Christiansen.
      
      .:
      
      Set WebMemorySampler feature on in EFL port.
      
      * Source/cmake/OptionsEfl.cmake:
      * Source/cmake/WebKitFeatures.cmake:
      * Source/cmakeconfig.h.cmake:
      
      Source/JavaScriptCore:
      
      WebMemorySampler collects Javascript stack and JIT memory usage in globalMemoryStatistics.
      
      * PlatformEfl.cmake:
      
      Source/WebKit2:
      
      Add WebMemorySampler feature to EFL port. WebMemorySampler records memory usage of
      WebProcess and UI Process and also it records application memory status in real time.
      Included items on the result are JIT, JS heap, fastmalloc bytes and
      application memory info from /proc/process_id/statm.
      
      * PlatformEfl.cmake:
      * Shared/linux/WebMemorySamplerLinux.cpp: Added.
      (WebKit):
      (ApplicationMemoryStats):
      (WebKit::nextToken):
      (WebKit::appendKeyValuePair):
      (WebKit::sampleMemoryAllocatedForApplication):
      (WebKit::WebMemorySampler::processName):
      (WebKit::WebMemorySampler::sampleWebKit):
      (WebKit::WebMemorySampler::sendMemoryPressureEvent):
      * UIProcess/API/efl/ewk_context.cpp:
      (_Ewk_Context::_Ewk_Context):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127195 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9f7e231d
    • benjamin@webkit.org's avatar
      Replace JSC::UString by WTF::String · cff06e46
      benjamin@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=95271
      
      Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-08-30
      Reviewed by Geoffrey Garen.
      
      Source/JavaScriptCore: 
      
      Having JSC::UString and WTF::String increase the complexity of working on WebKit, and
      add useless conversions in the bindings. It also cause some code bloat.
      
      The performance advantages of UString have been ported over in previous patches. This patch
      is the last step: getting rid of UString.
      
      In addition to the simplified code, this also reduce the binary size by 15kb on x86_64.
      
      * API/OpaqueJSString.cpp:
      (OpaqueJSString::ustring):
      * runtime/Identifier.h:
      (JSC::Identifier::ustring):
      To avoid changing everything at once, the function named ustring() were kept as is. They
      will be renamed in a follow up patch.
      
      * runtime/JSString.h:
      (JSC::JSString::string):
      (JSC::JSValue::toWTFString):
      (JSC::inlineJSValueNotStringtoString):
      (JSC::JSValue::toWTFStringInline):
      Since JSValue::toString() already exist (and return the JSString), the direct accessor is renamed
      to ::toWTFString(). We may change ::string() to ::jsString() and ::toWTFString() to ::toString()
      in the future.
      
      * runtime/StringPrototype.cpp:
      (JSC::substituteBackreferencesSlow): Replace the use of UString::getCharacters<>() by String::getCharactersWithUpconvert<>().
      
      Source/WebCore: 
      
      Update the code to use String instead of UString.
      
      On x86_64, this reduces the binary size by 22kb.
      
      Since it is no longer possible to differenciate JSC::jsString() and WebCore::jsString() by the input
      types, WebCore::jsString() is renated to WebCore::jsStringWithCache().
      
      Since the cache is using a PtrHash, JSC::jsString() is used in place of the old WebCore::jsString() when
      the string is generated locally. This is because the cache can never match in those cases.
      
      Source/WebKit/blackberry: 
      
      Replace UString by String.
      
      * WebCoreSupport/ClientExtension.cpp:
      * WebCoreSupport/PagePopupBlackBerry.cpp:
      (WebCore::PagePopupBlackBerry::installDomFunction):
      
      Source/WebKit/efl: 
      
      Replace UString by String.
      
      * WebCoreSupport/DumpRenderTreeSupportEfl.cpp:
      (DumpRenderTreeSupportEfl::sendWebIntentResponse):
      * ewk/ewk_frame.cpp:
      (ewk_frame_script_execute):
      
      Source/WebKit/gtk: 
      
      Replace UString by String.
      
      * gdom/ConvertToGCharPrivate.h:
      (copyAsGchar):
      
      Source/WebKit/mac: 
      
      Get rid of UString, replace it by String, and simplify the code when possible.
      
      On x86_64, this reduces the binary size by 7kb.
      
      * Plugins/Hosted/NetscapePluginHostProxy.mm:
      (identifierFromIdentifierRep):
      * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
      (WebKit::NetscapePluginInstanceProxy::addValueToArray):
      (WebKit::NetscapePluginInstanceProxy::moveGlobalExceptionToExecState):
      * Plugins/Hosted/ProxyInstance.mm:
      (WebKit::ProxyRuntimeMethod::create):
      (WebKit::ProxyRuntimeMethod::finishCreation):
      (WebKit::ProxyInstance::getPropertyNames):
      (WebKit::ProxyInstance::methodsNamed):
      (WebKit::ProxyInstance::fieldNamed):
      * WebView/WebFrame.mm:
      (-[WebFrame _stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
      (-[WebFrame _stringByEvaluatingJavaScriptFromString:withGlobalObject:inScriptWorld:]):
      * WebView/WebScriptDebugDelegate.mm:
      (-[WebScriptCallFrame functionName]):
      (-[WebScriptCallFrame evaluateWebScript:]):
      * WebView/WebScriptDebugger.h:
      (WTF):
      (JSC):
      (WebScriptDebugger):
      * WebView/WebScriptDebugger.mm:
      (toNSURL):
      (WebScriptDebugger::sourceParsed):
      * WebView/WebView.mm:
      (aeDescFromJSValue):
      
      Source/WebKit/qt: 
      
      Replace UString by String.
      
      * Api/qwebelement.cpp:
      (QWebElement::evaluateJavaScript):
      
      Source/WebKit/win: 
      
      Replace UString by String.
      
      * WebFrame.cpp:
      (WebFrame::stringByEvaluatingJavaScriptInScriptWorld):
      * WebView.cpp:
      (WebView::stringByEvaluatingJavaScriptFromString):
      
      Source/WebKit/wx: 
      
      Update the #includes to use the correct types.
      
      * WebFrame.cpp:
      * WebView.cpp:
      
      Source/WebKit2: 
      
      Update to code to switch from UString to String.
      
      * WebProcess/Plugins/Netscape/JSNPMethod.cpp:
      (WebKit::JSNPMethod::finishCreation):
      * WebProcess/Plugins/Netscape/JSNPMethod.h:
      (WebKit::JSNPMethod::create):
      (JSNPMethod):
      * WebProcess/Plugins/Netscape/JSNPObject.cpp:
      (WebKit::npIdentifierFromIdentifier):
      * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
      (WebKit::NPRuntimeObjectMap::evaluate):
      (WebKit::NPRuntimeObjectMap::moveGlobalExceptionToExecState):
      
      Source/WTF: 
      
      * wtf/Platform.h: Useless edit to force a full build. This is needed for some bots for some reason.
      * wtf/text/WTFString.h: Export a symbol that was exported on UString and needed in WebCore.
      
      Add String::getCharactersWithUpconvert<>(), which is similar to String::getCharacters<>() but with the same
      behaviors as UString::getCharacters<>().
      
      String::getCharactersWithUpconvert<>() is useful when manipulating multiple strings, it allow writting code
      using 16bits characters if any of the input String is not 8bit.
      
      Tools: 
      
      Get rid of UString.
      
      * DumpRenderTree/efl/WorkQueueItemEfl.cpp:
      * gdb/webkit.py:
      (WTFStringPrinter.to_string):
      (JSCIdentifierPrinter.to_string):
      (JSCJSStringPrinter.to_string):
      (add_pretty_printers):
      
      Websites/webkit.org: 
      
      Update the coding style to avoid mentioning a class that no longer exist.
      
      * coding/coding-style.html:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127191 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cff06e46
    • mhahnenberg@apple.com's avatar
      Remove uses of ClassInfo in StrictEq and CompareEq in the DFG · 030c9dac
      mhahnenberg@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=93401
      
      Reviewed by Filip Pizlo.
      
      Source/JavaScriptCore: 
      
      Another incremental step in removing the dependence on ClassInfo pointers in object headers.
      
      * bytecode/SpeculatedType.h:
      (JSC::isCellOrOtherSpeculation):
      (JSC):
      * dfg/DFGAbstractState.cpp: Updated the CFA to reflect the changes to the backend.
      (JSC::DFG::AbstractState::execute):
      * dfg/DFGNode.h:
      (Node):
      (JSC::DFG::Node::shouldSpeculateString): Added this new function since it was conspicuously absent.
      (JSC::DFG::Node::shouldSpeculateNonStringCellOrOther): Also add this function for use in the CFA.
      * dfg/DFGSpeculativeJIT.cpp: Refactored how we handle CompareEq and CompareStrictEq in the DFG. We now just 
      check for Strings by comparing the object's Structure to the global Structure for strings. We only 
      check for MasqueradesAsUndefined if the watchpoint has fired. These changes allow us to remove our 
      uses of the ClassInfo pointer for compiling these nodes.
      (JSC::DFG::SpeculativeJIT::compilePeepHoleObjectEquality):
      (JSC::DFG::SpeculativeJIT::compilePeepHoleBranch):
      (JSC::DFG::SpeculativeJIT::compare):
      (JSC::DFG::SpeculativeJIT::compileStrictEq):
      * dfg/DFGSpeculativeJIT.h:
      (SpeculativeJIT):
      * dfg/DFGSpeculativeJIT32_64.cpp: Same changes for 32 bit as for 64 bit.
      (JSC::DFG::SpeculativeJIT::compileObjectEquality):
      (JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
      (JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
      * dfg/DFGSpeculativeJIT64.cpp:
      (JSC::DFG::SpeculativeJIT::compileObjectEquality):
      (JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
      (JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
      
      LayoutTests: 
      
      New test to make sure the DFG watchpoint works correctly for these cases.
      
      * fast/js/document-all-triggers-masquerades-watchpoint-expected.txt: Added.
      * fast/js/document-all-triggers-masquerades-watchpoint.html: Added.
      * fast/js/script-tests/document-all-triggers-masquerades-watchpoint.js: Added.
      (f):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127189 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      030c9dac
    • yoli@rim.com's avatar
      [BlackBerry] Implement IncrementalSweeper for PLATFORM(BLACKBERRY) · abd91444
      yoli@rim.com authored
      https://bugs.webkit.org/show_bug.cgi?id=95469
      
      Reviewed by Rob Buis.
      
      RIM PR# 200595.
      Share most code with USE(CF) and implement timer-related methods
      for PLATFORM(BLACKBERRY).
      
      * heap/IncrementalSweeper.cpp:
      (JSC):
      (JSC::IncrementalSweeper::IncrementalSweeper):
      (JSC::IncrementalSweeper::create):
      (JSC::IncrementalSweeper::scheduleTimer):
      (JSC::IncrementalSweeper::cancelTimer):
      (JSC::IncrementalSweeper::doSweep):
      * heap/IncrementalSweeper.h:
      (IncrementalSweeper):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127185 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      abd91444
    • commit-queue@webkit.org's avatar
      Fix broken classic intrpreter build. · 3fb33c88
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=95484.
      
      Patch by Mark Lam <mark.lam@apple.com> on 2012-08-30
      Reviewed by Filip Pizlo.
      
      * interpreter/Interpreter.cpp:
      (JSC::Interpreter::privateExecute):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127179 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3fb33c88
    • commit-queue@webkit.org's avatar
      Build warning : -Wsign-compare on DFGByteCodeParser.cpp. · 8e6c8b3a
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=95418
      
      Patch by Byungwoo Lee <bw80.lee@samsung.com> on 2012-08-30
      Reviewed by Filip Pizlo.
      
      There is a build warning '-Wsign-compare' on
      findArgumentPositionForLocal() in DFGByteCodeParser.cpp.
      
      For removing this warning, casting statement is added explicitly.
      
      * dfg/DFGByteCodeParser.cpp:
      (JSC::DFG::ByteCodeParser::findArgumentPositionForLocal):
      (JSC::DFG::ByteCodeParser::findArgumentPosition):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127167 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8e6c8b3a
    • yoli@rim.com's avatar
      [BlackBerry] Set timer client on platform timer used in HeapTimer · 58a04a7e
      yoli@rim.com authored
      https://bugs.webkit.org/show_bug.cgi?id=95464
      
      Reviewed by Rob Buis.
      
      Otherwise the timer won't work.
      
      * heap/HeapTimer.cpp:
      (JSC::HeapTimer::HeapTimer):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127151 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      58a04a7e
    • commit-queue@webkit.org's avatar
      [sh4] Add missing implementation for JavaScriptCore JIT · 69633f69
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=95452
      
      Patch by Julien BRIANCEAU <jbrianceau@nds.com> on 2012-08-30
      Reviewed by Oliver Hunt.
      
      * assembler/MacroAssemblerSH4.h:
      (JSC::MacroAssemblerSH4::isCompactPtrAlignedAddressOffset):
      (MacroAssemblerSH4):
      (JSC::MacroAssemblerSH4::add32):
      (JSC::MacroAssemblerSH4::convertibleLoadPtr):
      * assembler/SH4Assembler.h:
      (JSC::SH4Assembler::labelIgnoringWatchpoints):
      (SH4Assembler):
      (JSC::SH4Assembler::replaceWithLoad):
      (JSC::SH4Assembler::replaceWithAddressComputation):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127148 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      69633f69
    • charles.wei@torchmobile.com.cn's avatar
      [BlackBerry] Eliminate build warnings · da09e531
      charles.wei@torchmobile.com.cn authored
      https://bugs.webkit.org/show_bug.cgi?id=95338
      
      Reviewed by Filip Pizlo.
      
      static_cast to the same type to eliminate the build time warnings.
      
      * assembler/AssemblerBufferWithConstantPool.h:
      (JSC::AssemblerBufferWithConstantPool::flushWithoutBarrier):
      * assembler/MacroAssemblerARM.h:
      (JSC::MacroAssemblerARM::branch32):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127128 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      da09e531
  3. 29 Aug, 2012 8 commits
    • mhahnenberg@apple.com's avatar
      Remove use of ClassInfo from compileGetByValOnArguments and compileGetArgumentsLength · 34decf24
      mhahnenberg@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=95131
      
      Reviewed by Filip Pizlo.
      
      * dfg/DFGSpeculativeJIT.cpp:
      (JSC::DFG::SpeculativeJIT::compileGetByValOnArguments): We don't need this speculation check. We can replace it
      with an assert to guarantee this.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127090 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      34decf24
    • barraclough@apple.com's avatar
      Refactoring LLInt::Data. · 25d57826
      barraclough@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=95316.
      
      Patch by Mark Lam <mark.lam@apple.com> on 2012-08-29
      Reviewed by Geoff Garen.
      
      This change allows its opcodeMap to be easily queried from any function
      without needing to go through a GlobalData object.  It also introduces
      the LLInt::getCodePtr() methods that will be used by the LLInt C loop
      later to redefine how llint symbols (opcodes and trampoline glue
      labels) get resolved.
      
      * assembler/MacroAssemblerCodeRef.h:
      (MacroAssemblerCodePtr):
      (JSC::MacroAssemblerCodePtr::createLLIntCodePtr):
      (MacroAssemblerCodeRef):
      (JSC::MacroAssemblerCodeRef::createLLIntCodeRef):
      * bytecode/CodeBlock.cpp:
      (JSC::CodeBlock::adjustPCIfAtCallSite):
      (JSC::CodeBlock::bytecodeOffset):
      * bytecode/Opcode.h:
          Remove the 'const' to simplify things and avoid having to do
          additional casts and #ifdefs in many places.
      * bytecode/ResolveGlobalStatus.cpp:
      (JSC::computeForLLInt):
      * bytecompiler/BytecodeGenerator.cpp:
      (JSC::BytecodeGenerator::generate):
      * interpreter/Interpreter.cpp:
      (JSC::Interpreter::initialize):
      * interpreter/Interpreter.h:
      (Interpreter):
      * jit/JITExceptions.cpp:
      (JSC::genericThrow):
      * llint/LLIntData.cpp:
      (LLInt):
      (JSC::LLInt::initialize):
      * llint/LLIntData.h:
      (JSC):
      (LLInt):
      (Data):
      (JSC::LLInt::exceptionInstructions):
      (JSC::LLInt::opcodeMap):
      (JSC::LLInt::getOpcode):
      (JSC::LLInt::getCodePtr):
      (JSC::LLInt::Data::performAssertions):
      * llint/LLIntExceptions.cpp:
      (JSC::LLInt::returnToThrowForThrownException):
      (JSC::LLInt::returnToThrow):
      (JSC::LLInt::callToThrow):
      * llint/LLIntSlowPaths.cpp:
      (JSC::LLInt::LLINT_SLOW_PATH_DECL):
      (JSC::LLInt::handleHostCall):
      * runtime/InitializeThreading.cpp:
      (JSC::initializeThreadingOnce): Initialize the singleton LLInt data.
      * runtime/JSGlobalData.cpp:
      (JSC::JSGlobalData::JSGlobalData):
      * runtime/JSGlobalData.h:
      (JSGlobalData): Removed the now unneeded LLInt::Data instance in
          JSGlobalData.
      * runtime/JSValue.h:
      (JSValue):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127068 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      25d57826
    • barraclough@apple.com's avatar
      PutById uses DataLabel32, not DataLabelCompact · 4c64ecd4
      barraclough@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=95245
      
      Reviewed by Geoff Garen.
      
      JIT::resetPatchPutById calls the the wrong thing on x86-64 – this is moot right now,
      since they currently both do the same thing, but if we were to ever make compact mean
      8-bit this could be a real problem. Also, relying on the object still being in eax
      on entry to the transition stub isn't very robust - added nonArgGPR1 to at least make
      this explicit.
      
      * jit/JITPropertyAccess.cpp:
      (JSC::JIT::emitSlow_op_put_by_id):
          - copy regT0 to nonArgGPR1
      (JSC::JIT::privateCompilePutByIdTransition):
          - DataLabelCompact -> DataLabel32
      (JSC::JIT::resetPatchPutById):
          - reload regT0 from nonArgGPR1
      * jit/JSInterfaceJIT.h:
      (JSInterfaceJIT):
          - added nonArgGPR1
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127066 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4c64ecd4
    • yoli@rim.com's avatar
      ExecutableAllocator should be destructed after Heap · cfe43f42
      yoli@rim.com authored
      https://bugs.webkit.org/show_bug.cgi?id=95244
      
      Reviewed by Rob Buis.
      
      RIM PR# 199364.
      Make ExecutableAllocator the first member in JSGlobalData.
      Existing Web Worker tests can show the issue.
      
      * runtime/JSGlobalData.cpp:
      (JSC::JSGlobalData::JSGlobalData):
      * runtime/JSGlobalData.h:
      (JSGlobalData):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127034 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cfe43f42
    • ggaren@apple.com's avatar
      2012-08-29 Geoffrey Garen <ggaren@apple.com> · f2e86275
      ggaren@apple.com authored
              Try to fix the Windows build.
      
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Export!
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127015 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f2e86275
    • ggaren@apple.com's avatar
      Introduced JSWithScope, making all scope objects subclasses of JSScope · bc3ae3f9
      ggaren@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=95295
      
      Reviewed by Filip Pizlo.
      
      This is a step toward removing ScopeChainNode. With a uniform representation
      for objects in the scope chain, we can move data from ScopeChainNode
      into JSScope.
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * Target.pri: Build!
      
      * interpreter/Interpreter.cpp:
      (JSC::Interpreter::privateExecute):
      * jit/JITStubs.cpp:
      (JSC::DEFINE_STUB_FUNCTION):
      * llint/LLIntSlowPaths.cpp:
      (JSC::LLInt::LLINT_SLOW_PATH_DECL): Use an explicit JSWithScope object
      for 'with' statements. Since 'with' can put any object in the scope
      chain, we'll need an adapter object to hold the data ScopeChainNode
      currently holds.
      
      * runtime/JSGlobalData.cpp:
      (JSC::JSGlobalData::JSGlobalData):
      * runtime/JSGlobalData.h:
      (JSGlobalData): Support for JSWithScope.
      
      * runtime/JSScope.cpp:
      (JSC::JSScope::objectAtScope):
      * runtime/JSScope.h: Check for and unwrap JSWithScope.
      
      * runtime/JSType.h: Support for JSWithScope.
      
      * runtime/StrictEvalActivation.cpp:
      (JSC::StrictEvalActivation::StrictEvalActivation):
      * runtime/StrictEvalActivation.h:
      (StrictEvalActivation): Inherit from JSScope, to make the scope chain uniform.
      
      * runtime/JSWithScope.cpp: Added.
      (JSC::JSWithScope::visitChildren):
      * runtime/JSWithScope.h: Added.
      (JSWithScope):
      (JSC::JSWithScope::create):
      (JSC::JSWithScope::object):
      (JSC::JSWithScope::createStructure):
      (JSC::JSWithScope::JSWithScope): New adapter object. Since this object
      is never exposed to scripts, it doesn't need any meaningful implementation
      of property access or other callbacks.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127010 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bc3ae3f9
    • paroga@webkit.org's avatar
      Unreviewed. Build fix for !ENABLE(JIT) after r126962. · 3ecfcc01
      paroga@webkit.org authored
      * interpreter/Interpreter.cpp:
      (JSC::Interpreter::privateExecute):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126990 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3ecfcc01
    • ggaren@apple.com's avatar
      Added JSScope::objectInScope(), and refactored callers to use it · 753dad16
      ggaren@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=95281
      
      Reviewed by Gavin Barraclough.
      
      ../JavaScriptCore: 
      
      This is a step toward removing ScopeChainNode. We need a layer of
      indirection so that 'with' scopes can proxy for an object.
      JSScope::objectInScope() will be that layer.
      
      * bytecode/EvalCodeCache.h:
      (JSC::EvalCodeCache::tryGet):
      (JSC::EvalCodeCache::getSlow):
      * bytecompiler/BytecodeGenerator.cpp:
      (JSC::BytecodeGenerator::resolve):
      (JSC::BytecodeGenerator::resolveConstDecl): . vs ->
      
      * interpreter/Interpreter.cpp:
      (JSC::Interpreter::unwindCallFrame):
      (JSC::Interpreter::execute):
      * runtime/JSScope.cpp:
      (JSC::JSScope::resolve):
      (JSC::JSScope::resolveSkip):
      (JSC::JSScope::resolveGlobalDynamic):
      (JSC::JSScope::resolveBase):
      (JSC::JSScope::resolveWithBase):
      (JSC::JSScope::resolveWithThis): Added JSScope::objectAtScope() calls.
      
      * runtime/JSScope.h:
      (JSScope):
      (JSC::JSScope::objectAtScope):
      (JSC):
      (ScopeChainIterator):
      (JSC::ScopeChainIterator::ScopeChainIterator):
      (JSC::ScopeChainIterator::get):
      (JSC::ScopeChainIterator::operator->):
      (JSC::ScopeChainIterator::operator++):
      (JSC::ScopeChainIterator::operator==):
      (JSC::ScopeChainIterator::operator!=):
      (JSC::ScopeChainNode::begin):
      (JSC::ScopeChainNode::end): I moved ScopeChainIterator to this file
      to resolve a circular #include problem. Eventually, I'll probably rename
      it to JSScope::iterator, so I think it belongs here.
      
      * runtime/ScopeChain.cpp:
      (JSC::ScopeChainNode::print):
      (JSC::ScopeChainNode::localDepth): . vs ->
      
      * runtime/ScopeChain.h:
      (ScopeChainNode): I made the 'object' data member private because it's
      no longer safe to access -- you need to call JSScope::objectAtScope()
      instead.
      
      The JITs need to be friends because of the private declaration.
      
      Subtly, JIT/LLInt code is correct without any changes because JIT/LLInt
      code never compiles direct access to a with scope.
      
      ../WebCore: 
      
      * bindings/js/JSJavaScriptCallFrameCustom.cpp:
      (WebCore::JSJavaScriptCallFrame::scopeChain):
      (WebCore::JSJavaScriptCallFrame::scopeType):
      
      ../WebKit/mac: 
      
      * WebView/WebScriptDebugDelegate.mm:
      (-[WebScriptCallFrame scopeChain]):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126962 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      753dad16