Source/JavaScriptCore: Work around another MSVC bug.

* runtime/PrototypeMap.cpp:
(JSC::PrototypeMap::emptyObjectStructureForPrototype):

Source/WTF: Build fixes.

Fix a paste-o.

* wtf/StdLibExtras.h:
(std::make_unique):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156505 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Expose a setting to disable hardware accelerated animations
https://bugs.webkit.org/show_bug.cgi?id=121978
<rdar://problem/15091284>

Reviewed by Eric Carlson.

Source/WebCore:

Expose acceleratedCompositedAnimationsEnabled
to disable CoreAnimation animations.

Test: LayoutTests/animations/transform-non-accelerated.html

* WebCore.exp.in: Export new method.
* page/Settings.in: Add new setting.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::startAnimation): Don't go
to GraphicsLayer if the setting is false.

LayoutTests:

* animations/resources/animation-test-helpers.js: Add a callback
for when the tests finish. Minor cleanup.
(endTest):
(.else):
(runAnimationTest):
* animations/transform-non-accelerated.html: New test.
* animations/transform-non-accelerated-expected.txt: Result.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156506 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove needsDestruction from vector and hash traits
https://bugs.webkit.org/show_bug.cgi?id=121983

Reviewed by Sam Weinig.

For Vector, use std::is_trivially_destructible to determine whether to call the destructor.
For HashTable, always call the destructor; if it is trivial then no code will be generated for it and the loops will be folded away.

Removing this does break the ability to store objects with non-trivial destructors in vectors and hash maps
and have their destructors not be called when removed, but we've never used this feature in WebKit so the extra
code complexity is not worth it.

* wtf/HashTable.h:
(WTF::::deallocateTable):
* wtf/HashTraits.h:
* wtf/Vector.h:
(WTF::VectorTypeOperations::destruct):
* wtf/VectorTraits.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156507 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove Windows code
https://bugs.webkit.org/show_bug.cgi?id=121988

Reviewed by Antti Koivisto.

* Platform/CoreIPC/Connection.h:
* Platform/CoreIPC/win/ConnectionWin.cpp: Removed.
* Platform/SharedMemory.h:
* Platform/WorkQueue.h:
* Platform/win/SharedMemoryWin.cpp: Removed.
* Platform/win/WorkQueueWin.cpp: Removed.
* Shared/ChildProcess.cpp:
* Shared/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::didFinishLaunching):
* UIProcess/Plugins/PluginInfoStore.cpp:
(WebKit::PluginInfoStore::loadPluginsIfNecessary):
* WebProcess/WebProcess.cpp:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156508 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Flaky Test: transitions/cancel-transition.html
https://bugs.webkit.org/show_bug.cgi?id=114193

* platform/mac/TestExpectations: Marking as flaky. Dean says that such tests are
currently broken by design.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156509 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Windows] Unreviewed build fix after r156487.

Add explicit casting needed by MSVC to compile this code. Much
of this could probably be removed when we move to VS2012 or newer.

* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::JSEventListener):
* bindings/js/JSEventListener.h:
(WebCore::JSEventListener::jsFunction):
* bridge/jsc/BridgeJSC.cpp:
(JSC::Bindings::Instance::createRuntimeObject):
* platform/graphics/filters/FEGaussianBlur.cpp:
(WebCore::FEGaussianBlur::platformApplyGeneric):
(WebCore::FEGaussianBlur::platformApply):
* platform/graphics/win/DIBPixelData.cpp:
(WebCore::DIBPixelData::DIBPixelData):
(WebCore::DIBPixelData::writeToFile):
* platform/graphics/win/DIBPixelData.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156510 268f45cc-cd09-0410-ab3c-d52691b4dbfc
VirtualRegister should be a class
https://bugs.webkit.org/show_bug.cgi?id=121732

Reviewed by Geoffrey Garen.

This is a refactoring change.  Changed VirtualRegister from an enum to a class.
Moved Operands::operandIsArgument(), operandToArgument(), argumentToOperand()
and the similar functions for locals to VirtualRegister class.

This is in preparation for changing the offset for the first local register from
0 to -1.  This is needed since most native calling conventions have the architected
frame pointer (e.g. %rbp for X86) point at the slot that stores the previous frame
pointer.  Local values start below that address.

* bytecode/CodeBlock.cpp:
* bytecode/CodeBlock.h:
* bytecode/Instruction.h:
* bytecode/LazyOperandValueProfile.h:
* bytecode/MethodOfGettingAValueProfile.cpp:
* bytecode/Operands.h:
* bytecode/UnlinkedCodeBlock.cpp:
* bytecode/UnlinkedCodeBlock.h:
* bytecode/ValueRecovery.h:
* bytecode/VirtualRegister.h:
* bytecompiler/BytecodeGenerator.cpp:
* bytecompiler/BytecodeGenerator.h:
* bytecompiler/RegisterID.h:
* debugger/DebuggerCallFrame.cpp:
* dfg/DFGAbstractHeap.h:
* dfg/DFGAbstractInterpreterInlines.h:
* dfg/DFGArgumentPosition.h:
* dfg/DFGArgumentsSimplificationPhase.cpp:
* dfg/DFGByteCodeParser.cpp:
* dfg/DFGCFGSimplificationPhase.cpp:
* dfg/DFGCPSRethreadingPhase.cpp:
* dfg/DFGCapabilities.cpp:
* dfg/DFGConstantFoldingPhase.cpp:
* dfg/DFGFlushLivenessAnalysisPhase.cpp:
* dfg/DFGGraph.cpp:
* dfg/DFGGraph.h:
* dfg/DFGJITCode.cpp:
* dfg/DFGNode.h:
* dfg/DFGOSREntry.cpp:
* dfg/DFGOSREntrypointCreationPhase.cpp:
* dfg/DFGOSRExit.h:
* dfg/DFGOSRExitCompiler32_64.cpp:
* dfg/DFGOSRExitCompiler64.cpp:
* dfg/DFGRegisterBank.h:
* dfg/DFGScoreBoard.h:
* dfg/DFGSpeculativeJIT.cpp:
* dfg/DFGSpeculativeJIT.h:
* dfg/DFGSpeculativeJIT32_64.cpp:
* dfg/DFGSpeculativeJIT64.cpp:
* dfg/DFGValidate.cpp:
* dfg/DFGValueRecoveryOverride.h:
* dfg/DFGVariableAccessData.h:
* dfg/DFGVariableEvent.h:
* dfg/DFGVariableEventStream.cpp:
* dfg/DFGVirtualRegisterAllocationPhase.cpp:
* ftl/FTLExitArgumentForOperand.h:
* ftl/FTLLink.cpp:
* ftl/FTLLowerDFGToLLVM.cpp:
* ftl/FTLOSREntry.cpp:
* ftl/FTLOSRExit.cpp:
* ftl/FTLOSRExit.h:
* ftl/FTLOSRExitCompiler.cpp:
* interpreter/CallFrame.h:
* interpreter/Interpreter.cpp:
* jit/AssemblyHelpers.h:
* jit/JIT.h:
* jit/JITCall.cpp:
* jit/JITCall32_64.cpp:
* jit/JITInlines.h:
* jit/JITOpcodes.cpp:
* jit/JITOpcodes32_64.cpp:
* jit/JITPropertyAccess32_64.cpp:
* jit/JITStubs.cpp:
* llint/LLIntSlowPaths.cpp:
* profiler/ProfilerBytecodeSequence.cpp:
* runtime/CommonSlowPaths.cpp:
* runtime/JSActivation.cpp:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156511 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r156510.
http://trac.webkit.org/changeset/156510
https://bugs.webkit.org/show_bug.cgi?id=121989

Landed in-progress code along with build fix. (Requested by
bfulgham on #webkit).

* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::JSEventListener):
* bindings/js/JSEventListener.h:
(WebCore::JSEventListener::jsFunction):
* bridge/jsc/BridgeJSC.cpp:
(JSC::Bindings::Instance::createRuntimeObject):
* platform/graphics/filters/FEGaussianBlur.cpp:
(WebCore::FEGaussianBlur::platformApplyGeneric):
(WebCore::FEGaussianBlur::platformApply):
* platform/graphics/win/DIBPixelData.cpp:
(WebCore::DIBPixelData::writeToFile):
* platform/graphics/win/DIBPixelData.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156512 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Windows] Unreviewed build fix after r156487.

Add explicit casting needed by MSVC to compile this code. Much
of this could probably be removed when we move to VS2012 or newer.

* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::JSEventListener):
* bindings/js/JSEventListener.h:
(WebCore::JSEventListener::jsFunction):
* bridge/jsc/BridgeJSC.cpp:
(JSC::Bindings::Instance::createRuntimeObject):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156513 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2013-09-25  Oliver Hunt  <oliver@apple.com>

        Implement prefixed-destructuring assignment
        https://bugs.webkit.org/show_bug.cgi?id=121930

        Reviewed by Mark Hahnenberg.

        Relanding with fix after rollout

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156514 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move CSS MatchRequest from StyleResolver to a private definition in ElementRuleCollector
https://bugs.webkit.org/show_bug.cgi?id=121986

Reviewed by Andreas Kling.

MatchRequest is an internal type of ElementRuleCollector now, move the definition
to ElementRuleCollector.

* css/DocumentRuleSets.h:
* css/ElementRuleCollector.h:
(WebCore::ElementRuleCollector::MatchRequest::MatchRequest):
* css/StyleResolver.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156515 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Windows] Work around missing C++11 features of MSVC by providing an implementation for
std::is_trivially_destructible based on the existing std::has_trivial_destructor.

Rubber-stamped by Anders Carlsson.

* wtf/StdLibExtras.h: Add implementation for is_trivially_destructable for MSVC 2010 and prior.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156516 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Windows] Unreviewed Build fix.

* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add missing
symbol export to support tests.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156517 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make GCC happy

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156518 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Layout Test http/tests/inspector/network/network-iframe-load-and-delete.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=121998

* platform/mac/TestExpectations: Marking as such.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156519 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: dissociate old content views that are spliced from back/forward list
https://bugs.webkit.org/show_bug.cgi?id=121987

Patch by Brian J. Burg <burg@cs.washington.edu> on 2013-09-26
Reviewed by Timothy Hatcher.

There was a bug where old back/forward list entries were not being dissociated when
the newly-shown content view was already in the list. Instead, dissociation should be
skipped if the old list entry is not already in the list.

* UserInterface/ContentViewContainer.js:
(WebInspector.ContentViewContainer.prototype.showContentView):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156520 268f45cc-cd09-0410-ab3c-d52691b4dbfc
GetterSetter construction should take a VM instead of ExecState.
<https://webkit.org/b/121993>

Reviewed by Sam Weinig.

Pass VM& instead of ExecState* to GetterSetter. Updated surrounding
code at touched sites to cache VM in a local for fewer loads.

JSC release binary size -= 4120 bytes.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156521 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[MediaStream] make MediaStream testable
https://bugs.webkit.org/show_bug.cgi?id=121967

Reviewed by Dean Jackson.

Source/WebCore: 

No new tests, existing tests updated.

* CMakeLists.txt: Add MockMediaStreamCenter.
* GNUmakefile.list.am: Ditto.

* Modules/mediastream/MediaStreamTrack.idl: Add SkipVTableValidation.
* Modules/mediastream/NavigatorUserMediaError.idl: Add JSGenerateToJSObject.
* WebCore.exp.in: Export MockMediaStreamCenter::registerMockMediaStreamCenter.

* WebCore.xcodeproj/project.pbxproj: Add MockMediaStreamCenter.
* dom/DOMError.h: Make the destructor virtual because it has a derived class.
* dom/DOMError.idl:

* platform/mock/MockMediaStreamCenter.cpp: Added.
* platform/mock/MockMediaStreamCenter.h: Added.

* testing/Internals.cpp: Register the mock stream center.

Source/WebKit: 

* WebKit.xcodeproj/project.pbxproj: Add WebUserMediaClient.

Source/WebKit/mac: 

* WebCoreSupport/WebUserMediaClient.h: Added.
* WebCoreSupport/WebUserMediaClient.mm: Added.

* WebView/WebUIDelegatePrivate.h: Declare decidePolicyForUserMediaRequestFromOrigin:listener:

* WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]): Register WebUserMediaClient.
(-[WebView _setUserMediaClient:]): New.
(-[WebView _userMediaClient]): New.
* WebView/WebViewData.h:
* WebView/WebViewPrivate.h:

Tools: 

* DumpRenderTree/mac/UIDelegate.mm:
(-[UIDelegate webView:decidePolicyForUserMediaRequestFromOrigin:listener:]): Add a very permissive
    user media request policy delegate.

LayoutTests: 

* fast/mediastream/MediaStream-add-remove-tracks-expected.txt:
* fast/mediastream/MediaStream-add-remove-tracks.html: Make the test results more understandable
    to simplify debugging failures.
* fast/mediastream/MediaStream-onended-expected.txt:
* fast/mediastream/MediaStream-onended.html: Ditto. Fix a test error: stopping stream A should
    not stop stream B even when it was created from stream A.
* fast/mediastream/MediaStreamConstructor-expected.txt:
* fast/mediastream/MediaStreamConstructor.html: Make the test results more understandable. Fix a
    logic errors: webkitMediaStream is an object, not a function. JSC does not support 
    object.constructor.name, use object.constructor.toString() instead.
* fast/mediastream/MediaStreamTrackEvent-constructor-expected.txt:
* fast/mediastream/MediaStreamTrackEvent-constructor.html: Update now that getUserMedia() works.
* fast/mediastream/argument-types-expected.txt: Updated with "Failing" results because the correct 
    behavior is unknown. The spec says "the syntax for getUserMedia() is still under discussion".


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156522 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Tentative SunSpider 1.0.2
https://bugs.webkit.org/show_bug.cgi?id=122002

Reviewed by Gavin Barraclough.

PerformanceTests/SunSpider: 

Be even more aggressive about asking for zero delay between tests by
setting a timeout at the beginning of a test instead of the end. This is
another step toward reducing noise -- particularly noise caused by
power management -- just like the step down from 10ms to 0ms.

Browsers typically put a 4ms floor on timers. The sooner we set
our timer, the sooner it will fire.

* make-hosted:
* resources/driver-TEMPLATE.html: Changed the driver to set the timeout
earlier.
* tests/sunspider-1.0.2: Added. These tests are unchanged from 1.0.1.

Websites/webkit.org: 

See comments in PerformanceTests/SunSpider.

* perf/sunspider-1.0.2: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156523 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Use the move assignment operator when reinserting values in the hash map
https://bugs.webkit.org/show_bug.cgi?id=122003

Reviewed by Alexey Proskuryakov.

Using the move assignment operator ensures that the existing values will be destroyed correctly.

* wtf/HashTable.h:

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