Accessibility: respect password state

Better don't leak passwords via accessibility

Change-Id: Ibdb0f63101dbd71f51de6f1b8ddaceb359f01e30
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Move Referenced together with Managed

The two classes belong logically together (as the Managed base
type and a generic pointer to a Managed object).

Change-Id: I65691669a7169a4514cadf7ab3e744c090851c6b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Rename Referenced to ManagedRef

First step of removing the templates here and turning this
into a class hierarchy. This is required, so we can move all
member methods into the Ref classes and make objects movable
during GC.

Change-Id: Ie14af07fd3e72a7d84a528d0042189ff12ba21bb
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Make the Ref classes not template based

Move to a class hierarchy that mirrors the main classes. This will
allow moving functionality over into the Ref classes, as the current
Managed classes become mainly something that holds the data. This
is required to make objects movable by the GC.

Change-Id: I4ca88ab0e5d8c88c8dc56d51937990500a33e0d9
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Add a MoveConst instruction to the interpreter

This simplifies and speeds up loading of constants

Change-Id: I05b4f7a34abd4ed6416fa800a31debbb28b37104
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Remove two unused parameters from VME::run()

These parameters are not used outside the function itself
anymore, so we can safely remove them.

Change-Id: I1694481c05a9927fc78a59ffb7fec43a88e85ac8
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Simplify some runtime methods

This gives as performant but simpler code, as the first line
in toInt() checks if the value is integercompatible.

Change-Id: I15d0ade231719116ca1c6c03a86106b7f5aaa9aa
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Add specialized instructions for right and left shift

These give a measurable speedup as the critical code
paths are now inline.

Change-Id: I3cee8a432fbe96d66ba1e6bd277a38e624a50c14
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Remove a memset that is not required

Keep it in debug builds to ease debugging.

Change-Id: I334872d3c0ef30b5f09fb5febfc2129a3b450bca
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Avoid some unary plus instructions

Change-Id: Ie01ef2be8beb890b1ca56bbdc990ccea87c1d91e
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Specialize CJump into JumpEq and JumpNe

This avoids the bool invert in the instruction
stream, and some additional code in the VME.

Change-Id: I0ea675a2e3d07c1b8c5234b888d8d9683bcee330
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Remove add/sub/mul instruction specializations for numbers

These instructions did hurt more than help, as they converted
ints to doubles. Since the regular add/sub/mul runtime methods
have fast paths for both ints and doubles, we're better off
using those instead.

Change-Id: I0b7a6f95818943bfc8a0669c1c56f7db4e7246e0
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
V4: fix life range for phi node target that is never used.

When a temp is defined by a phi-node, but never used, still insert the
(very short) life range.

Change-Id: Ia976f496736a1606108fab7597c5d90048d9d55a
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
V4: stack slot allocator for the interpreter.

Use the life-time intervals to track which temps go out of scope, in
order to re-use the stack-slots they occupied. This reduces the memory
consumption on the JavaScript stack and allows for deeper call stacks.

For the ECMA tests, this reduces the number of slots needed for the
main/entry function from more than 650 to about 10 (depending on the
test).

Change-Id: Iff4044f5ff7f25e1f88ff1a04f4e80dd99a67590
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Protect list of client plugins from concurrent access

Previously the list of client plugins in the QQmlDebugServer could be
accessed concurrently from receiveMessage() and addService() either
when in non-blocking mode, or if the client uses service discovery or
sends additional hello messages after the first one.

Change-Id: I946243957184210d40ebca728143714c341b1226
Reviewed-by: Kai Koehne <kai.koehne@digia.com>