[Qt][Mac] Disable QTKit video on OS X.

https://bugs.webkit.org/show_bug.cgi?id=117591

Reviewed by Tor Arne Vestbø.

Source/WebCore:

Deployment of the same Qt binaries to different
Mac OS X version makes it impossible to link against
the correct WebKitSystemInterface version at build time.

No new tests, no behavioural change.

* WebCore.pri:

Tools:

Deployment of Qt binaries to different Mac OS X
platform version makes it impossible to link against
the correct version of the WebKitSystemInterface library,
so we need to disable QTKit for media elements.

* qmake/mkspecs/features/features.prf:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@151546 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Change-Id: I8ad054ffc1896de1cc461efed0a5786337c29261
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Merge remote-tracking branch 'origin/release' into stable

Change-Id: I5fd8c56818b88eae53133dae875d7b03d1ce6441
get_by_pname can become confused when iterating over objects with static properties

https://bugs.webkit.org/show_bug.cgi?id=113831

Reviewed by Geoffrey Garen.

get_by_pname doesn't take static properties into account when using a JSPropertyNameIterator to directly
access an object's backing store. One way to fix this is to not cache any properties when iterating over
objects with static properties. This patch fixes the bug that was originally reported on swisscom.ch.

Source/JavaScriptCore:

* runtime/JSObject.cpp:
(JSC::JSObject::getOwnNonIndexPropertyNames):
* runtime/JSPropertyNameIterator.cpp:
(JSC::JSPropertyNameIterator::create):
* runtime/PropertyNameArray.h:
(JSC::PropertyNameArray::PropertyNameArray):
(JSC::PropertyNameArray::numCacheableSlots):
(JSC::PropertyNameArray::setNumCacheableSlots):
(PropertyNameArray):

Change-Id: I7ae9c48eea3c5300c4825a10a660b0e2210c8862
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147570 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
JSObject::getOwnNonIndexPropertyNames calculates numCacheableSlots incorrectly

https://bugs.webkit.org/show_bug.cgi?id=114235

Reviewed by Geoffrey Garen.

Due to the way that numCacheableSlots is currently calculated, checking an object's prototype for enumerable
properties causes us not to cache any properties at all. We should only cache properties on the object itself
since we currently don't take advantage of any sort of name caching for properties in the prototype chain.
This fix undoes a ~2% SunSpider regression caused by http://trac.webkit.org/changeset/147570.

* runtime/JSObject.cpp:
(JSC::JSObject::getOwnNonIndexPropertyNames):

Change-Id: I5853ab567cd0a8cd20aeac1372ec64fc4f25df1a
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148036 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
JSObject::getOwnNonIndexPropertyNames calculates numCacheableSlots incorrectly (2/2)

https://bugs.webkit.org/show_bug.cgi?id=114235

Reviewed by Filip Pizlo.

If the object doesn't have any properties but the prototype does, we'll assume those prototype properties are
accessible in the base object's backing store, which is bad.

Source/JavaScriptCore:

* runtime/JSObject.cpp:
(JSC::JSObject::getPropertyNames):
(JSC::JSObject::getOwnNonIndexPropertyNames):
* runtime/PropertyNameArray.h:
(JSC::PropertyNameArray::PropertyNameArray):
(JSC::PropertyNameArray::setNumCacheableSlotsForObject):
(JSC::PropertyNameArray::setBaseObject):
(PropertyNameArray):

Change-Id: If61b609438fa1d62364bac556af635413198d8ad
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148142 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Use __sync_add_and_fetch instead of __gnu_cxx::__exchange_and_add

https://bugs.webkit.org/show_bug.cgi?id=106729

After r139514 we need atomicIncrement(int64_t volatile*) for all platform. Now the
GCC implementation of atomicIncrement() is based on __gnu_cxx::__exchange_and_add,
which doesn't support int64_t type, but __sync_add_and_fetch does.

Reviewed by Benjamin Poulain.

* wtf/Atomics.h:
(WTF::atomicIncrement):
(WTF::atomicDecrement):

Change-Id: I6f1215b1a73a93f902823a6f0efd1eaef8d53926
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139553 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Use GCC's implementation of atomicIncrement/Decrement on Mac

https://bugs.webkit.org/show_bug.cgi?id=106976

Reviewed by Filip Pizlo.

* wtf/Atomics.h:
GCC and LLVM have builtin for atomic ADD and SUB: __sync_add_and_fetch,
__sync_sub_and_fetch.

Using them let the compiler just generate the atomic operations inline
instead of generating a function call to LibC. It also simplify the
code a bit.

Change-Id: I4615faede4a9f2fc2d8415bd526db9dcb70a24ce
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139921 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
[Qt] Handle Return key without key text

https://bugs.webkit.org/show_bug.cgi?id=117239

Reviewed by Andreas Kling.

Source/WebCore:

Test added to tst_qwebpage.cpp.

* platform/qt/PlatformKeyboardEventQt.cpp:
(WebCore::keyTextForKeyEvent):

Source/WebKit/qt:

Test for QKeyEvent(Return_Key) without key text.

* tests/qwebpage/tst_qwebpage.cpp:
(tst_QWebPage::inputMethods):

Change-Id: I2e6ee33d90fd740ed2cb17580b1a6fa2f196943f
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@151213 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Merge remote-tracking branch 'origin/stable' into dev

Change-Id: Ibe6e706a4f315065b8cfa96d796c1f04063c58df