wince: vsnprintf is not available, use qvsnprintf

Change-Id: I42c87b2c319ce5b530ac5dc673edc99b067fafd7
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
Improve reliability of propertyVarOwnership test

In the last expect-to-collect-a-QObject test, avoid calling gc() from within
JavaScript and call it from C++ instead with zap stacking. That reduces the
probability of finding an old reference on the stack that would keep the
object alive.

Change-Id: Ia9c66dd188f31264a70ad4dbd20356d16aa7a057
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
The fast and the furious, register drift.

Enable the register allocator for X86_64 on Linux and MacOS. The
implications are:
- handle as much as possible with current code with as few changes as
possible
- temporarily force the register allocator to spill unop/binop arguments
to the stack by doing a call in the implementation (as is the current
case), so no change is needed here
- only have loadThis and loadConst handle registers
- have any method that might need to handle registrers actually cope
with them
- the inline versions of binops are not generated, as they cannot cope
with registers. This will change when ISel for binops is added in the
next patch.

This means that we are still running with the handbrakes on, but allow
for full-throttle in certain/limited cases.

Note about the changed test: multiplication always returns a Number
(double), so the operands are passed as doubles, so __qmljs_mul will
return a double. For addition this is different: because it might return
a Number or a String, the operands are passed as whatever fits best. So
__qmljs_add will return an int when both operands are ints. Hence the
change to the tests.

Change-Id: If5bd7dffca8f7de5ba45af700b9c7bb568fc74b7
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
QQuickPlatformFileDialog: fix directoryEntered() signal connection

Task-number: QTBUG-33008
Change-Id: I8c4d06bb9dded7b894ca576efd0a64dce9f9a720
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Fix unused variable warning

Fix gcc warning: unused parameter ‘newEffect’

Change-Id: If4ca8058b5b637518a868947226c834d571f7037
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
wince: Build fix, CONST conflicts with Windows macros.

Don't #undef system macros in header files, they propagate quickly
through other headers and make it very difficult to fix these problems.

Change-Id: Id5efdfa69d0eefa8c740b14f839194039bd9752b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Generate code conversion to double.

Performance improves by about 15% on fact.3.js when Qt is build in
debug mode.

Change-Id: I4a1c868fe211c1e0f9e7d9a5652f7726b37405d1
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
wince: Build fix, abort() is not available on this platform

Change-Id: I0962f8b89de465d84d913b46ba482a538fe25495
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
V4 regalloc: do not overwrite register availability in hole.

When a fixed interval for a register is inactive, the register is free
until that interval becomes active, or (and this was missing), until
another interval uses it before that position. So instead of blindly
overwriting the freeUntilPos, take the qMin of the existing one with
the intersection position.

Change-Id: I2730a748ef1e46b4782fbb9814e800eca52172f0
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
V4 regalloc: fix off-by-one in availability calculation.

Simplified the algorithm, and use it to iterate over all registers. The
previous version did not initialize bestReg correctly, thereby skipping
the first register (which could also be the best one).

Change-Id: I7e33f93a27e8fe64cd00acac755cf67ca5f0b1b8
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
qmltest: Register test object as a singleton

Change-Id: I5f6c404ff2901082f22b953b29aed08d3488f31d
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
qmltest: Add QTestDefinedVariables

QTestDefinedVariables is used by the QTestRootObject to check
is a preprocessor variable is defined.

Adding QT_OPENGL_ES_2_ANGLE. It can be useful to know
if it is defined (Win32 + Angle) while running a test.

Change-Id: I2f9ffb1028c94095c711ab64737b53b60c055312
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Generate code for conversion to boolean.

Change-Id: I59e24264325b6560ee1c0dbdafacb1f08c3671d5
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Generate code for conversion to signed int32.

Change-Id: I862a8c9c262b658859cc9b57ea0b6e9eb60e32e5
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
wince: Build fix, disable the assembler when JIT is disabled.

Change-Id: Ibd22f27401c3751bc64749c6f1eea3aba57d66eb
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
wince: Build fix, assert() is not present in this platform.

Change-Id: Ib29f1411b9829bc9bf6a94e4fb23a33f955ee1b2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
tst_qquickpathview::cancelDrag(): Move mouse after setUrl().

Take correct window size into account.

Task-number: QTBUG-32662

Change-Id: Ie04c8fe8e254d232f076e6f9d9d0d96f12a4530f
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
tst_QQuickItemLayer: Specify precision in shader for ANGLE.

tst_QQuickItemLayer::layerSourceRect() QQuickCustomMaterialShader:
Shader compilation failed: ERROR: 0:9: '' : No precision specified for
(float).

Change-Id: I3ab87c747bed5b8c8cfcf5527ee2a8b2ebd891a2
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Stabilize tst_rendernode.

Center windows on screen, add QSKIP for screen depth, add error message
to color comparison.

Change-Id: I03d600a4810f27654e0b971b19631ba51c9f6874
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Fix crash on QV8Engine destruction

QObjects tracked by QV8Engine can end up causing bindings to execute
when the QV8Engine is being deleted, which can call through to
QV8Engine::fromVariant(). This change ensure that that is valid
while the QObjects are being destroyed.

Task-number: QTBUG-31555

Change-Id: Iaea402ff65993bb2322af403d3590653005e30fe
Reviewed-by: Alan Alpert <aalpert@blackberry.com>