Convert some JSC code over to std::mutex
https://bugs.webkit.org/show_bug.cgi?id=128500

Reviewed by Dan Bernstein.

* API/JSVirtualMachine.mm:
(wrapperCacheMutex):
(+[JSVMWrapperCache addWrapper:forJSContextGroupRef:]):
(+[JSVMWrapperCache wrapperForJSContextGroupRef:]):
* heap/GCThreadSharedData.h:
* heap/SlotVisitor.cpp:
(JSC::SlotVisitor::mergeOpaqueRoots):
* heap/SlotVisitorInlines.h:
(JSC::SlotVisitor::containsOpaqueRootTriState):
* inspector/remote/RemoteInspector.h:
* inspector/remote/RemoteInspector.mm:
(Inspector::RemoteInspector::registerDebuggable):
(Inspector::RemoteInspector::unregisterDebuggable):
(Inspector::RemoteInspector::updateDebuggable):
(Inspector::RemoteInspector::sendMessageToRemoteFrontend):
(Inspector::RemoteInspector::start):
(Inspector::RemoteInspector::stop):
(Inspector::RemoteInspector::setupXPCConnectionIfNeeded):
(Inspector::RemoteInspector::xpcConnectionReceivedMessage):
(Inspector::RemoteInspector::xpcConnectionFailed):
(Inspector::RemoteInspector::pushListingSoon):
(Inspector::RemoteInspector::receivedIndicateMessage):
* inspector/remote/RemoteInspectorDebuggableConnection.h:
* inspector/remote/RemoteInspectorDebuggableConnection.mm:
(Inspector::RemoteInspectorDebuggableConnection::setup):
(Inspector::RemoteInspectorDebuggableConnection::closeFromDebuggable):
(Inspector::RemoteInspectorDebuggableConnection::close):
(Inspector::RemoteInspectorDebuggableConnection::sendMessageToBackend):
* jit/ExecutableAllocator.cpp:
(JSC::DemandExecutableAllocator::DemandExecutableAllocator):
(JSC::DemandExecutableAllocator::~DemandExecutableAllocator):
(JSC::DemandExecutableAllocator::bytesAllocatedByAllAllocators):
(JSC::DemandExecutableAllocator::bytesCommittedByAllocactors):
(JSC::DemandExecutableAllocator::dumpProfileFromAllAllocators):
(JSC::DemandExecutableAllocator::allocatorsMutex):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163752 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reduce ref churn in ChildInsertionNotifier.
<https://webkit.org/b/128494>

All callers of notifyNodeInsertedIntoDocument() already hold a strong
reference on the Node, so there's no need to ref it again inside.

Reviewed by Anders Carlsson.

* dom/ContainerNodeAlgorithms.h:
(WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoDocument):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163753 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reduce ref churn in ChildNodesLazySnapshot iteration.
<https://webkit.org/b/128492>

Add a missing release() in ChildNodesLazySnapshot::nextNode()
so we don't have to churn the ref count.

Reviewed by Sam Weinig.

* dom/ContainerNode.h:
(WebCore::ChildNodesLazySnapshot::nextNode):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163754 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Pass VM instead of ExecState to JSCell::fastGetOwnProperty().
<https://webkit.org/b/128497>

Knocks off a couple of instructions.

Reviewed by Anders Carlsson.

* dfg/DFGOperations.cpp:
* jit/JITOperations.cpp:
(JSC::getByVal):
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::getByVal):
* runtime/JSCell.h:
* runtime/JSCellInlines.h:
(JSC::JSCell::fastGetOwnProperty):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163755 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Objective-C API NSDate conversion is off by 1000x (ms vs s)
https://bugs.webkit.org/show_bug.cgi?id=128386

Reviewed by Michael Saboff.

* API/JSValue.mm:
(valueToObjectWithoutCopy):
(valueToDate):
(objectToValueWithoutCopy):
* API/tests/DateTests.h: Added.
* API/tests/DateTests.mm: Added.
(+[DateTests NSDateToJSDateTest]):
(+[DateTests JSDateToNSDateTest]):
(+[DateTests roundTripThroughJSDateTest]):
(+[DateTests roundTripThroughObjCDateTest]):
* API/tests/testapi.mm:
(checkResult):
* JavaScriptCore.xcodeproj/project.pbxproj:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163756 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add WTF_MAKE_FAST_ALLOCATED to more classes
https://bugs.webkit.org/show_bug.cgi?id=128506

Reviewed by Andreas Kling.

Source/JavaScriptCore:

* bytecode/UnlinkedInstructionStream.h:
* runtime/SymbolTable.h:
* runtime/WriteBarrier.h:

Source/WebCore:

* dom/Node.h:
* dom/ScriptElement.h:
* loader/ImageLoader.h:
* loader/cache/CachedResourceClient.h:
* platform/TreeShared.h:
* platform/graphics/GlyphMetricsMap.h:
* rendering/InlineBox.h:
* rendering/RenderLayer.h:
* rendering/RenderObject.h:

Source/WTF:

* wtf/Bag.h:
* wtf/ListHashSet.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163757 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[iOS][wk2] ASSERT(WebThreadIsCurrent()) in [WebDisplayLinkHandler handleDisplayLink:]
https://bugs.webkit.org/show_bug.cgi?id=128490

Reviewed by Simon Fraser.

* platform/graphics/ios/DisplayRefreshMonitorIOS.mm:
(-[WebDisplayLinkHandler handleDisplayLink:]):
[WebDisplayLinkHandler handleDisplayLink:] has an ASSERT(WebThreadIsCurrent()).

We don't use the Web Thread in WebKit2, but it looks like isMainThread()
does the right thing (main thread if web thread is disabled, web thread
otherwise), so use that instead.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163758 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, don't mark isHostFunction() inline in the header file because that really confuses EFL.

* runtime/JSFunction.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163759 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Never include *Inlines.h files in interface headers, and never include *Inlines.h when you could include Operations.h instead
https://bugs.webkit.org/show_bug.cgi?id=128505

Reviewed by Mark Hahnenberg and Oliver Hunt.

* API/JSContextRef.cpp:
* assembler/LinkBuffer.cpp:
* bytecode/ArrayProfile.cpp:
* bytecode/BytecodeBasicBlock.cpp:
* bytecode/BytecodeLivenessAnalysisInlines.h:
* bytecode/CallLinkInfo.cpp:
* bytecode/CodeBlock.cpp:
* bytecode/CodeBlock.h:
* bytecode/CodeBlockJettisoningWatchpoint.cpp:
* bytecode/ExecutionCounter.cpp:
* bytecode/MethodOfGettingAValueProfile.cpp:
* bytecode/PreciseJumpTargets.cpp:
* bytecode/ProfiledCodeBlockJettisoningWatchpoint.cpp:
* bytecode/SamplingTool.cpp:
* bytecode/SpecialPointer.cpp:
* bytecode/StructureStubClearingWatchpoint.cpp:
* debugger/DebuggerCallFrame.cpp:
* dfg/DFGAbstractHeap.cpp:
* dfg/DFGAbstractValue.cpp:
* dfg/DFGArgumentsSimplificationPhase.cpp:
* dfg/DFGArithMode.cpp:
* dfg/DFGArrayMode.cpp:
* dfg/DFGAtTailAbstractState.cpp:
* dfg/DFGAvailability.cpp:
* dfg/DFGBackwardsPropagationPhase.cpp:
* dfg/DFGBasicBlock.cpp:
* dfg/DFGBinarySwitch.cpp:
* dfg/DFGBlockInsertionSet.cpp:
* dfg/DFGByteCodeParser.cpp:
* dfg/DFGCFAPhase.cpp:
* dfg/DFGCFGSimplificationPhase.cpp:
* dfg/DFGCPSRethreadingPhase.cpp:
* dfg/DFGCSEPhase.cpp:
* dfg/DFGCapabilities.cpp:
* dfg/DFGClobberSet.cpp:
* dfg/DFGClobberize.cpp:
* dfg/DFGCommon.cpp:
* dfg/DFGCommonData.cpp:
* dfg/DFGCompilationKey.cpp:
* dfg/DFGCompilationMode.cpp:
* dfg/DFGConstantFoldingPhase.cpp:
* dfg/DFGCriticalEdgeBreakingPhase.cpp:
* dfg/DFGDCEPhase.cpp:
* dfg/DFGDesiredIdentifiers.cpp:
* dfg/DFGDesiredStructureChains.cpp:
* dfg/DFGDesiredTransitions.cpp:
* dfg/DFGDesiredWatchpoints.cpp:
* dfg/DFGDisassembler.cpp:
* dfg/DFGDisassembler.h:
* dfg/DFGDominators.cpp:
* dfg/DFGEdge.cpp:
* dfg/DFGFailedFinalizer.cpp:
* dfg/DFGFinalizer.cpp:
* dfg/DFGFixupPhase.cpp:
* dfg/DFGFlushFormat.cpp:
* dfg/DFGFlushLivenessAnalysisPhase.cpp:
* dfg/DFGFlushedAt.cpp:
* dfg/DFGGraph.cpp:
* dfg/DFGInPlaceAbstractState.cpp:
* dfg/DFGInvalidationPointInjectionPhase.cpp:
* dfg/DFGJITCode.cpp:
* dfg/DFGJITCompiler.cpp:
* dfg/DFGJITCompiler.h:
* dfg/DFGJITFinalizer.cpp:
* dfg/DFGJumpReplacement.cpp:
* dfg/DFGLICMPhase.cpp:
* dfg/DFGLazyJSValue.cpp:
* dfg/DFGLivenessAnalysisPhase.cpp:
* dfg/DFGLongLivedState.cpp:
* dfg/DFGLoopPreHeaderCreationPhase.cpp:
* dfg/DFGMinifiedNode.cpp:
* dfg/DFGNaturalLoops.cpp:
* dfg/DFGNode.cpp:
* dfg/DFGNodeFlags.cpp:
* dfg/DFGOSRAvailabilityAnalysisPhase.cpp:
* dfg/DFGOSREntry.cpp:
* dfg/DFGOSREntrypointCreationPhase.cpp:
* dfg/DFGOSRExit.cpp:
* dfg/DFGOSRExitBase.cpp:
* dfg/DFGOSRExitCompiler.cpp:
* dfg/DFGOSRExitCompiler32_64.cpp:
* dfg/DFGOSRExitCompiler64.cpp:
* dfg/DFGOSRExitCompilerCommon.cpp:
* dfg/DFGOSRExitJumpPlaceholder.cpp:
* dfg/DFGOSRExitPreparation.cpp:
* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGPhase.cpp:
* dfg/DFGPlan.cpp:
* dfg/DFGPredictionInjectionPhase.cpp:
* dfg/DFGPredictionPropagationPhase.cpp:
* dfg/DFGResurrectionForValidationPhase.cpp:
* dfg/DFGSSAConversionPhase.cpp:
* dfg/DFGSSALoweringPhase.cpp:
* dfg/DFGSpeculativeJIT.cpp:
* dfg/DFGSpeculativeJIT32_64.cpp:
* dfg/DFGSpeculativeJIT64.cpp:
* dfg/DFGStackLayoutPhase.cpp:
* dfg/DFGStoreBarrierElisionPhase.cpp:
* dfg/DFGStrengthReductionPhase.cpp:
* dfg/DFGThunks.cpp:
* dfg/DFGTierUpCheckInjectionPhase.cpp:
* dfg/DFGToFTLDeferredCompilationCallback.cpp:
* dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp:
* dfg/DFGTypeCheckHoistingPhase.cpp:
* dfg/DFGUnificationPhase.cpp:
* dfg/DFGUseKind.cpp:
* dfg/DFGValidate.cpp:
* dfg/DFGValueSource.cpp:
* dfg/DFGVariableAccessDataDump.cpp:
* dfg/DFGVariableEvent.cpp:
* dfg/DFGVariableEventStream.cpp:
* dfg/DFGVirtualRegisterAllocationPhase.cpp:
* dfg/DFGWatchpointCollectionPhase.cpp:
* dfg/DFGWorklist.cpp:
* disassembler/Disassembler.cpp:
* ftl/FTLLink.cpp:
* ftl/FTLOSRExitCompiler.cpp:
* ftl/FTLSlowPathCall.cpp:
* ftl/FTLThunks.cpp:
(JSC::FTL::slowPathCallThunkGenerator):
* heap/BlockAllocator.cpp:
* heap/CodeBlockSet.cpp:
* heap/ConservativeRoots.cpp:
* heap/DeferGC.cpp:
* heap/GCThread.cpp:
* heap/GCThreadSharedData.cpp:
* heap/HeapTimer.cpp:
* heap/IncrementalSweeper.cpp:
* heap/JITStubRoutineSet.cpp:
* heap/MachineStackMarker.cpp:
* heap/MarkStack.cpp:
* heap/MarkedAllocator.cpp:
* heap/MarkedSpace.cpp:
* heap/SuperRegion.cpp:
* heap/Weak.cpp:
* heap/WeakHandleOwner.cpp:
* heap/WeakSet.cpp:
* heap/WriteBarrierBuffer.cpp:
* heap/WriteBarrierSupport.cpp:
* inspector/ScriptCallStackFactory.cpp:
* interpreter/AbstractPC.cpp:
* interpreter/JSStack.cpp:
* interpreter/ProtoCallFrame.cpp:
* interpreter/VMInspector.cpp:
* jit/ArityCheckFailReturnThunks.cpp:
* jit/AssemblyHelpers.cpp:
* jit/ExecutableAllocator.cpp:
* jit/ExecutableAllocatorFixedVMPool.cpp:
* jit/GCAwareJITStubRoutine.cpp:
* jit/HostCallReturnValue.cpp:
* jit/JITDisassembler.cpp:
* jit/JITDisassembler.h:
* jit/JITExceptions.cpp:
* jit/JITInlines.h:
* jit/JITOperations.cpp:
* jit/JITOperationsMSVC64.cpp:
* jit/JITStubRoutine.cpp:
* jit/JITStubs.cpp:
* jit/JITToDFGDeferredCompilationCallback.cpp:
* jit/RegisterPreservationWrapperGenerator.cpp:
* jit/RegisterSet.cpp:
* jit/Repatch.cpp:
* jit/TempRegisterSet.cpp:
* jsc.cpp:
* parser/Lexer.cpp:
* parser/Parser.cpp:
* parser/ParserArena.cpp:
* parser/SourceCode.cpp:
* parser/SourceProvider.cpp:
* parser/SourceProviderCache.cpp:
* profiler/ProfileGenerator.cpp:
* runtime/Arguments.cpp:
* runtime/ArgumentsIteratorPrototype.cpp:
* runtime/CommonSlowPathsExceptions.cpp:
* runtime/JSArgumentsIterator.cpp:
* runtime/JSFunction.cpp:
* runtime/JSGlobalObjectFunctions.cpp:
* runtime/ObjectConstructor.cpp:
* runtime/Operations.h:
* runtime/VM.cpp:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163760 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] Remove PageClientEfl
https://bugs.webkit.org/show_bug.cgi?id=128508

Reviewed by Andreas Kling.

Source/WebCore:

PageClientEfl was introduced for accelerated compositing of WebKit1, but
it's bad idea because it's layer violation.
Indeed, it has never been used since introduced.

* platform/Widget.h: Back to PlatformPageClient to Evas_Object.
* platform/graphics/efl/GraphicsContext3DPrivate.cpp:
Removed empty method which use PageClientEfl.
* platform/graphics/efl/GraphicsContext3DPrivate.h: Ditto.

Source/WebKit:

* PlatformEfl.cmake: Removed PageClientEfl.cpp

Source/WebKit/efl:

* WebCoreSupport/AcceleratedCompositingContextEfl.cpp:
Removed dependencies of PageClientEfl.
(WebCore::AcceleratedCompositingContext::initialize):
* WebCoreSupport/ChromeClientEfl.cpp:
(WebCore::ChromeClientEfl::platformPageClient):
* WebCoreSupport/PageClientEfl.cpp: Removed.
* WebCoreSupport/PageClientEfl.h: Removed.
* ewk/ewk_view.cpp:
(_ewk_view_priv_new):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163761 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove unused layer owner from WebGLLayer
https://bugs.webkit.org/show_bug.cgi?id=128512

Reviewed by Dirk Schulze.

The m_layerOwner and ObjC category were not
used anywhere.

* platform/graphics/mac/WebGLLayer.h:
* platform/graphics/mac/WebGLLayer.mm:
(-[WebGLLayer display]):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163762 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WebGL] Remove state restorer code
https://bugs.webkit.org/show_bug.cgi?id=128516

Reviewed by Dirk Schulze.

I'm not sure what the point of the WebGLStateRestorer class was. It was
always constructed with a false parameter, and then wasn't even retained
in local scope (so wouldn't have worked anyway). Meanwhile there were
also LOTS of calls to cleanupAfterGraphicsCall, the majority of which
were a no-op. I replaced the handful of cleanupAfterGraphicsCall(true)
with the call to markContextChanged().

* html/canvas/OESVertexArrayObject.cpp:
(WebCore::OESVertexArrayObject::bindVertexArrayOES):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::activeTexture):
(WebCore::WebGLRenderingContext::attachShader):
(WebCore::WebGLRenderingContext::bindAttribLocation):
(WebCore::WebGLRenderingContext::bindBuffer):
(WebCore::WebGLRenderingContext::bindFramebuffer):
(WebCore::WebGLRenderingContext::bindRenderbuffer):
(WebCore::WebGLRenderingContext::bindTexture):
(WebCore::WebGLRenderingContext::blendColor):
(WebCore::WebGLRenderingContext::blendEquation):
(WebCore::WebGLRenderingContext::blendEquationSeparate):
(WebCore::WebGLRenderingContext::blendFunc):
(WebCore::WebGLRenderingContext::blendFuncSeparate):
(WebCore::WebGLRenderingContext::bufferData):
(WebCore::WebGLRenderingContext::bufferSubData):
(WebCore::WebGLRenderingContext::checkFramebufferStatus):
(WebCore::WebGLRenderingContext::clear):
(WebCore::WebGLRenderingContext::clearColor):
(WebCore::WebGLRenderingContext::clearDepth):
(WebCore::WebGLRenderingContext::clearStencil):
(WebCore::WebGLRenderingContext::colorMask):
(WebCore::WebGLRenderingContext::compileShader):
(WebCore::WebGLRenderingContext::compressedTexImage2D):
(WebCore::WebGLRenderingContext::compressedTexSubImage2D):
(WebCore::WebGLRenderingContext::copyTexImage2D):
(WebCore::WebGLRenderingContext::copyTexSubImage2D):
(WebCore::WebGLRenderingContext::cullFace):
(WebCore::WebGLRenderingContext::depthFunc):
(WebCore::WebGLRenderingContext::depthMask):
(WebCore::WebGLRenderingContext::depthRange):
(WebCore::WebGLRenderingContext::detachShader):
(WebCore::WebGLRenderingContext::disable):
(WebCore::WebGLRenderingContext::disableVertexAttribArray):
(WebCore::WebGLRenderingContext::validateDrawArrays):
(WebCore::WebGLRenderingContext::drawArrays):
(WebCore::WebGLRenderingContext::validateDrawElements):
(WebCore::WebGLRenderingContext::drawElements):
(WebCore::WebGLRenderingContext::enable):
(WebCore::WebGLRenderingContext::enableVertexAttribArray):
(WebCore::WebGLRenderingContext::finish):
(WebCore::WebGLRenderingContext::flush):
(WebCore::WebGLRenderingContext::framebufferRenderbuffer):
(WebCore::WebGLRenderingContext::framebufferTexture2D):
(WebCore::WebGLRenderingContext::frontFace):
(WebCore::WebGLRenderingContext::generateMipmap):
(WebCore::WebGLRenderingContext::getBufferParameter):
(WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):
(WebCore::WebGLRenderingContext::getParameter):
(WebCore::WebGLRenderingContext::getProgramParameter):
(WebCore::WebGLRenderingContext::getProgramInfoLog):
(WebCore::WebGLRenderingContext::getRenderbufferParameter):
(WebCore::WebGLRenderingContext::getShaderParameter):
(WebCore::WebGLRenderingContext::getShaderInfoLog):
(WebCore::WebGLRenderingContext::getTexParameter):
(WebCore::WebGLRenderingContext::getUniform):
(WebCore::WebGLRenderingContext::getUniformLocation):
(WebCore::WebGLRenderingContext::getVertexAttrib):
(WebCore::WebGLRenderingContext::getVertexAttribOffset):
(WebCore::WebGLRenderingContext::hint):
(WebCore::WebGLRenderingContext::lineWidth):
(WebCore::WebGLRenderingContext::linkProgram):
(WebCore::WebGLRenderingContext::pixelStorei):
(WebCore::WebGLRenderingContext::polygonOffset):
(WebCore::WebGLRenderingContext::readPixels):
(WebCore::WebGLRenderingContext::releaseShaderCompiler):
(WebCore::WebGLRenderingContext::renderbufferStorage):
(WebCore::WebGLRenderingContext::sampleCoverage):
(WebCore::WebGLRenderingContext::scissor):
(WebCore::WebGLRenderingContext::shaderSource):
(WebCore::WebGLRenderingContext::stencilFunc):
(WebCore::WebGLRenderingContext::stencilFuncSeparate):
(WebCore::WebGLRenderingContext::stencilMask):
(WebCore::WebGLRenderingContext::stencilMaskSeparate):
(WebCore::WebGLRenderingContext::stencilOp):
(WebCore::WebGLRenderingContext::stencilOpSeparate):
(WebCore::WebGLRenderingContext::texImage2DBase):
(WebCore::WebGLRenderingContext::texImage2D):
(WebCore::WebGLRenderingContext::texParameter):
(WebCore::WebGLRenderingContext::texSubImage2DBase):
(WebCore::WebGLRenderingContext::uniform1f):
(WebCore::WebGLRenderingContext::uniform1fv):
(WebCore::WebGLRenderingContext::uniform1i):
(WebCore::WebGLRenderingContext::uniform1iv):
(WebCore::WebGLRenderingContext::uniform2f):
(WebCore::WebGLRenderingContext::uniform2fv):
(WebCore::WebGLRenderingContext::uniform2i):
(WebCore::WebGLRenderingContext::uniform2iv):
(WebCore::WebGLRenderingContext::uniform3f):
(WebCore::WebGLRenderingContext::uniform3fv):
(WebCore::WebGLRenderingContext::uniform3i):
(WebCore::WebGLRenderingContext::uniform3iv):
(WebCore::WebGLRenderingContext::uniform4f):
(WebCore::WebGLRenderingContext::uniform4fv):
(WebCore::WebGLRenderingContext::uniform4i):
(WebCore::WebGLRenderingContext::uniform4iv):
(WebCore::WebGLRenderingContext::uniformMatrix2fv):
(WebCore::WebGLRenderingContext::uniformMatrix3fv):
(WebCore::WebGLRenderingContext::uniformMatrix4fv):
(WebCore::WebGLRenderingContext::useProgram):
(WebCore::WebGLRenderingContext::validateProgram):
(WebCore::WebGLRenderingContext::vertexAttribPointer):
(WebCore::WebGLRenderingContext::viewport):
(WebCore::WebGLRenderingContext::vertexAttribfImpl):
(WebCore::WebGLRenderingContext::vertexAttribfvImpl):
(WebCore::WebGLRenderingContext::drawArraysInstanced):
(WebCore::WebGLRenderingContext::drawElementsInstanced):
* html/canvas/WebGLRenderingContext.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163763 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-webkit-clip-path should support fill, stroke, view-box keywords
https://bugs.webkit.org/show_bug.cgi?id=128393

Source/WebCore:

Patch by Dirk Schulze <dschulze@chromium.org> on 2014-02-09
Reviewed by Dean Jackson.

CSS Masking uses the keywords fill, stroke and view-box for SVG shapes.
This patch updates the parser, style resolver and SVG implementation of
the prefixed clip-path property.

Remove the unexposed and obsolete keyword bounding-box.

Tests: svg/clip-path/clip-path-shape-fill-expected.svg
       svg/clip-path/clip-path-shape-fill.svg
       svg/clip-path/clip-path-shape-stroke-expected.svg
       svg/clip-path/clip-path-shape-stroke.svg
       svg/clip-path/clip-path-shape-view-box-expected.svg
       svg/clip-path/clip-path-shape-view-box.svg

* css/CSSParser.cpp: Parse fill, stroke, view-box. Remove bounding-box.
(WebCore::isBoxValue):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator LayoutBox):
* css/CSSValueKeywords.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyClipPath::applyValue):
* rendering/RenderLayer.cpp:
(WebCore::computeReferenceBox):
* rendering/shapes/ShapeInfo.h:
(WebCore::ShapeInfo::setShapeSize):
(WebCore::ShapeInfo::logicalTopOffset):
(WebCore::ShapeInfo::logicalLeftOffset):
* rendering/style/RenderStyleConstants.h:
* rendering/svg/SVGRenderingContext.cpp: Use different reference boxes per keyword.
(WebCore::SVGRenderingContext::prepareToRenderSVGContent):

LayoutTests:

Patch by Dirk Schulze <krit@webkit.org> on 2014-02-09
Reviewed by Dean Jackson.

Update or add new tests for changed clip-path keywords.

* css3/masking/clip-path-circle-bounding-box.html: Removed.
* fast/masking/parsing-clip-path-shape.html:
* platform/mac/css3/masking/clip-path-circle-bounding-box-expected.png: Removed.
* platform/mac/css3/masking/clip-path-circle-bounding-box-expected.txt: Removed.
* svg/clip-path/clip-path-shape-fill-expected.svg: Added.
* svg/clip-path/clip-path-shape-fill.svg: Added.
* svg/clip-path/clip-path-shape-stroke-expected.svg: Added.
* svg/clip-path/clip-path-shape-stroke.svg: Added.
* svg/clip-path/clip-path-shape-view-box-expected.svg: Added.
* svg/clip-path/clip-path-shape-view-box.svg: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163764 268f45cc-cd09-0410-ab3c-d52691b4dbfc
GC blocks on FTL and then badness
https://bugs.webkit.org/show_bug.cgi?id=128291

Reviewed by Oliver Hunt.
        
Introduce the notion of a DFG::Safepoint, which allows you to unlock the rightToRun
mutex for your JIT thread, while supplying the GC with all of the information it would
need to scan you at that moment in time. The default way of using this is
DFG::GraphSafepoint, where you just supply the Graph. There's a lot of machinery in
this patch just to make the Graph scannable.
        
We then use DFG::GraphSafepoint in just two places for now: (1) while initializing LLVM
and (2) while invoking LLVM' optimizer and backend.
        
This is a 30% speed-up on Octane/typescript and a 10% speed-up on Octane/gbemu. 2-3%
speed-up overall on Octane.
        
* CMakeLists.txt:
* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* dfg/DFGDriver.cpp:
(JSC::DFG::compileImpl):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::visitChildren):
* dfg/DFGGraph.h:
* dfg/DFGGraphSafepoint.cpp: Added.
(JSC::DFG::GraphSafepoint::GraphSafepoint):
(JSC::DFG::GraphSafepoint::~GraphSafepoint):
* dfg/DFGGraphSafepoint.h: Added.
* dfg/DFGOperations.h:
* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThread):
(JSC::DFG::Plan::compileInThreadImpl):
* dfg/DFGPlan.h:
* dfg/DFGSafepoint.cpp: Added.
(JSC::DFG::Safepoint::Safepoint):
(JSC::DFG::Safepoint::~Safepoint):
(JSC::DFG::Safepoint::add):
(JSC::DFG::Safepoint::begin):
(JSC::DFG::Safepoint::visitChildren):
* dfg/DFGSafepoint.h: Added.
* dfg/DFGScannable.h: Added.
(JSC::DFG::Scannable::Scannable):
(JSC::DFG::Scannable::~Scannable):
* dfg/DFGThreadData.cpp: Added.
(JSC::DFG::ThreadData::ThreadData):
(JSC::DFG::ThreadData::~ThreadData):
* dfg/DFGThreadData.h: Added.
* dfg/DFGWorklist.cpp:
(JSC::DFG::Worklist::finishCreation):
(JSC::DFG::Worklist::visitChildren):
(JSC::DFG::Worklist::runThread):
* dfg/DFGWorklist.h:
* ftl/FTLCompile.cpp:
(JSC::FTL::compile):
* heap/SlotVisitor.h:
* heap/SlotVisitorInlines.h:
(JSC::SlotVisitor::appendUnbarrieredReadOnlyPointer):
(JSC::SlotVisitor::appendUnbarrieredReadOnlyValue):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163765 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Stop relinking WebKit on every build.

* WebKit.xcodeproj/project.pbxproj: Fix the case on an input file for the Generate Export Files
script phase so it will run only when the inputs change rather than on every build.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163766 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add type-safe casts for ContentData subclasses
<http://webkit.org/b/128510>

Reviewed by Darin Adler.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::contentToCSSValue):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingImages):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::createFor):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setContent):
- Switch to toFooContentData() methods.

* rendering/style/ContentData.h:
- Define toFooContentData() methods.
- Extract FooContentData::equals() methods so that the
  toFooContentData() methods can be used.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163770 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Regions] Fix Propagating Border and Padding for Inline Replaced Elements Flowed in Regions
https://bugs.webkit.org/show_bug.cgi?id=123143

Reviewed by Andrei Bucur.

Add test to make sure that outlines and borders are properly painted for inline replaced
transformed elements, having margins and paddings, displayed in region.

* compositing/regions/inline-replaced-transformed-in-region-expected.html: Added.
* compositing/regions/inline-replaced-transformed-in-region.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163771 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix a few mistakes that landed with r163749.

Rubber-stamped by Carlos Garcia Campos.

Source/WebCore: 

* platform/gtk/GtkTouchContextHelper.cpp:
(WebCore::GtkTouchContextHelper::handleEvent): When handling GDK_TOUCH_BEGIN, the assertion
should ensure that the sequence-to-event map doesn't yet contain pairs with the specific
sequence as the key.

Tools: 

* WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:
(WTR::EventSenderProxy::addTouchPoint): Avoid using the GUniquePtr<GdkEvent> after it's been moved
into the event vector since moving it invalidates the variable.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163774 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Code cleanup: Remove BUILDING_ON / TARGETING definitions.
https://bugs.webkit.org/show_bug.cgi?id=128242

Patch by Tamas Gergely <tgergely.u-szeged@partner.samsung.com> on 2014-02-10
Reviewed by Brent Fulgham.

The BUILDING_ON_* and TARGETING_* macros have not been used for a while.
According to the FIXME: they are removed.

Source/WTF:

* wtf/Platform.h:

Tools:

* DumpRenderTree/config.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163776 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix EFL build with INSPECTOR disabled
https://bugs.webkit.org/show_bug.cgi?id=125064

Patch by Peter Molnar <pmolnar.u-szeged@partner.samsung.com> on 2014-02-10
Reviewed by Csaba Osztrogonác.

Source/JavaScriptCore:

* inspector/InjectedScriptManager.h:
* inspector/ScriptDebugServer.cpp:
* inspector/agents/InspectorAgent.h:
* inspector/scripts/CodeGeneratorInspectorStrings.py:
(Inspector):

Source/WebCore:

* bindings/js/PageScriptDebugServer.cpp:
* bindings/js/PageScriptDebugServer.h:
* bindings/js/WorkerScriptDebugServer.cpp:
* bindings/js/WorkerScriptDebugServer.h:
* inspector/PageInjectedScriptManager.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163777 268f45cc-cd09-0410-ab3c-d52691b4dbfc