Fix regression in tst_qqmlecmascript::signalAssignment

Detect errors in the signal declaration already at compile time, re-introducing
the earlier code in qqmlcompiler.cpp that checked that. This also means that
the parameter string construction can be done once for each signal and not for
each handler.

Change-Id: Icf6242a793939466bbc44d43bf041281164ad1b6
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Fix failing GC related tests with gcc in release builds

Our conservative collector might is more likely to find old pointers
to QV4::Objects on the C stack in release builds, when gcc optimizes out
stores that seem unnecessary. These two tests are prone to that due to
temporary QV4::Values potentially ending up on the stack on x86,
because vmeProperty returns then through an invisible first argument that
is a pointer a a location on the stack.

This patch makes those temporaries explicit, clears them out after
usages and adds GCC pragmas to disable optimizations for these two
test functions.

Change-Id: Ie43841e869346792296911fee6fed80c745faeff
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Fix crashes in tst_qquickvisualdatamodel

Don't try to set the name string pointer of FunctionObject
to itself for these two FunctionObject subclasses.

Change-Id: I4e5a1963ffefd4ce96308022c251a4bdba54dc1e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>