V4 JIT: fix MSVC warning.

d:\dev\qt5-dev\qtdeclarative\src\qml\jit\qv4assembler_p.h(394) : warning C4146: unary minus operator applied to unsigned type, result still unsigned

Change-Id: Iff972f419d7505ecedeb42b4b7eb456295225cb2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
V4 JIT: enable disassembler on windows.

Change-Id: I55a2a96a1a774c79cc2146c6b47d441fede1d102
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Doc: Renamed Qt Quick Code Samples page.

-new name is Qt Quick Examples and Tutorials
-includes tutorials, not just examples or code samples.

Task-number: QTBUG-36838
Change-Id: I660770cac1cdd71cd3b34bad878b0e59a088924b
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Work around MSVC having issues with nested classes and templates

Move SharedState into its own top-level structure.

Change-Id: I0b6baeade57ff342df23672808d77933fa6ad26d
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Fix some typos

Change-Id: Iea540b768232ea423ea7f04e41655198931cf36d
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
[new compiler] Fix tst_qquickloader::deleteComponentCrash by introducing a watcher for self-deletion

Change-Id: I809a4860831847ab61c7ca0ba302057ec165ee24
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Remove nArguments and name from QV4::Function

Saves 12 bytes per Function

Change-Id: I9a495805f9201eb6162a520ff5c2defeb73dc37a
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Remove unused codeSizes

Change-Id: I13c7d9dda7cd1e771079f6fdaa175008b3a3e0e5
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Remove unused ExecutionEngine::allFunctions

Change-Id: I69a736ac7920a10667949475600460ee43d61480
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
[new compiler] Detect when writing to read-only value type property and bail out

Also annotate QML expressions in the IR with a proper function name, to
make debugging easier.

Change-Id: I5bacf446f40d35896f50bed0732f6f10408d9c97
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
[new compiler] Fix tst_qqmlvaluetypes

* Make sure to remove earlier set bindings for any value type property, not just
  scripts. We want font.bold: false to also override an earlier actual binding
  for example.
* Propagate on assignments on qualified property names throughout the
  chain of bindings - that makes it easier to detect them early on.
* The group property collection in the bindings validator should only include
  value bindings to group properties, not on assignments - as they can always
  appear in parallel.

Change-Id: Ib7ec4de755a5a8d269324a77cba36eb945366274
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Move all binop related code into qv4binop*

Change-Id: I8f96b8d570dd4c0139b0a2e595055b3b2c6dae70
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reduce size of QQmlBoundSignalExpression in the common case.

This reduces the base size of QQmlBoundSignalExpression by 20 bytes,
by moving member variables specific to runtime rewrites in to an "extra"
structure.

Task-number: QTBUG-37134
Change-Id: I235895a395ba4304a7ea071d88aa9aebcfff61cb
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
V4 JIT: enable register allocator on win32.

Change-Id: I7134bd3721df0e000ad0bd135c01e76c55271156
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Remove isES() usage in scenegraph

The error signal patch added some usages of QOpenGLFunctions::isES().
These need to be temporarily removed.

Change-Id: Ibd1d8094059020708aefe4b3502ba56d624928b3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Document qmlContext() and qmlEngine().

146b942d59cca446516652d42718197573d34e46 documented them (Qt 5), but
for some reason they aren't visible [1].
c74e4a74ba97d32df7406fb684527d415dd8a6ba (Qt 5.1) then moved them into
the QtQml namespace "to avoid symbol conflicts with QtDeclarative", and
then did the following trick so that they could be called without
qualifying the functions with the namespace:

using namespace QtQml;

For that reason, qdoc shouldn't see the namespace, so we #ifdef it out.

[1] project.org/doc/qt-5.0/qtqml/qqmlengine.html

Change-Id: Id815ae4de7f081c22755eef7c37a2bc6e812b440
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
[new compiler] Fix some qqmlincubator tests

We need to track the objects created and pass them over to the VME guard used in the
incubator. The incremental build nature of the incubator requires that to avoid crashes.

For nested incubators we need to set the activeVMEData field in the root QQmlContext, to allow
child incubators to locate the parent.

Lastly we need can emulate most of the VME behavior in terms of build states when running with
QQmlInstantiationInterrupt by presenting four build steps: The initial state, two build steps,
a finalization step and the state when we're done.

Change-Id: I16cd7f71744decb9d4735ec77e9d944fad18e88d
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
[new compiler] Fix profiler support

Add profiler tracing calls during objection creation and make sure to set the
function token / source location correctly for the synthesized function
declarations of signal handlers.

Change-Id: Ie4f8accce3a5c5d1d57bb0646cda588b89b76718
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Combine the source file, line and column number triplet in a common structure

This avoids unnecessary function calls when all of the three pieces need
to be retrieved from a QQmlBoundSignalExpression.

Change-Id: Ibcd498c907ea723baf6439cf32ca5fc704f204b5
Reviewed-by: Ulf Hermann <ulf.hermann@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Fix crash when accessing var properties in objects with invalid context

We've had two indepedent reports of people running into the issue of
their QML code accidentally trying to access var properties in item view
delegates that were on the path of destruction, i.e. their QQmlContext was
already marked as invalid. Any such access would cause a failing assertion
in debug builds or a crash in release builds.

This patch removes the dependency to QQmlContextData for accessing the
var properties and adds a test-case that covers this use-case.

This is a regression from Qt 5.1.x.

Task-number: QTBUG-37227
Change-Id: Icf55d5fa8c15e45974e78086e9e11b2401ea9bad
Reviewed-by: Albert Astals Cid <albert.astals@canonical.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>