QQuickWindow: Quieten warning about unused variable

Clang nags about this.

Change-Id: I4b1b3123ef526a4692b08af7211ecb6cae6835d8
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Create a stack for JS values and use it in the interpreter

First step towards being able to do an exact GC.

Create a stack for JS Values that is separate from the C++
stack.

Use the stack for generated methods (masm and moth).

Change-Id: I80ac0e5b5d86439dda5e9ea2b21fa0c57d8aef22
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Add ScopedValue and ScopedValueArray classes

Use these classes to hold Values on the stack. They
are known by the GC and very fast to create and destroy.

Change-Id: Idacf639485295ff446f290c5b0e149465354720e
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Move CallData onto the JS stack

Change-Id: I22e853acfd2da337344b581bb0412c5f9930c510
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Generate CallData structures directly in the instruction selection

Like this we can hand the CallData through the runtime methods
without any need to modify them. This simplifies the code in there,
and should also speed them up to some degree.

Change-Id: Ibd92ff4a8f279a5c4a054c5678646f658cfed5ca
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Change signature of call/construct() to take a pointer to a CallData

Change-Id: I5467aadba083e4b01fb0a7170946695207033680
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Properly unwind the js stack for generated code

Surround all calls into generated code with a
try {} catch {} statement that resets the jstack
to the correct position.

Like this we properly unwind the js stack in all cases, and
can also use stricter assertions in our ScopedCallData, etc.
classes to check that the stack is healthy.

Change-Id: I7ca03e06ea55007be683305d9c2a6898cf5fc689
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Remove unusued method

Change-Id: I76233198e01d853637bd09b12f73ba3b45104e70
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Add ValueRef classe and use it to make things GC safe

The ValueRef class holds a reference to a Value that
is already known to the GC. ValueRef's should be
used to pass Value arguments to methods.

As a first step us the class to make unary
operations GC safe

Change-Id: Ie13e332ed95b2908df9a201a3f757db864c05ca9
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Start adapting function signatures in the qv4runtime

Move the signatures over to something that will enforce
the exact GC later on.

Change-Id: I2e1a472aea296cc1862c76c1e6dab5d0d2f5177c
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
More work on converting calling conventions to fit the new GC scheme

Change-Id: I4283cc85ad599b62a8efbe9268680287cf74097e
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Continue conversion to using scoped values

This converts all methods in qv4runtime_p.h to not
use raw values in arguments anymore.

The conversion of return values will be done in a separate
commit.

Change-Id: Ie6e8f3bed459d09cb831f7f87920b7eada161502
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>