Merge branch 'dev' of git://gitorious.org/qt/qtdeclarative into wip/v4

Change-Id: Iaf5c134e8c6fa27ef17dcf85d8bd5ccd896c7b9d
Add initial draft of the compiled data structures for JS and QML

To be able to cleanly separate the compilation stage from the runtime,
the compiler will create a read-only data structure, that is described
in this file.

This will later on also allow us to fully compile JS and QML in separate
threads, and longer term replace the qqmlcompiler/vme infrastructure.

Change-Id: Iafe6d527c0994c3bc17ba1630959ffd32cc74067
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Merge branch 'dev' of ssh://codereview.qt-project.org/qt/qtdeclarative into wip/v4

Change-Id: I85b23c90f5bc9261dcaf54a360d68b89bc847f70
Initial version of generator for new data structures

Change-Id: I172a504f8b4f8284967a4a02e207bf4c0a04c2a4
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Begin using the compiled data structures for runtime strings

Change-Id: Idbf278a96624bf101df35de40577b38e593f22be
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Fix writing the function offset table and initialize the pointer to the compiled function in the runtime function

Change-Id: I9aed9f394fedc4a4ea334f6ab1b72fe749c64c72
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Get rid of flags in QV4::Function and use CompiledFunction::flags instead

Change-Id: Iffe72ff6dd0311d7548d1ea41164a400fd3a7600
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Move QV4::Function::sourceFile to CompiledFunction

Change-Id: Iacf907c475070bab4a5a1583280f110c089141c4
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Move the masm compilation unit entirely into qv4isel_masm

Change-Id: If24b6a761dc2f2443520b31b5130ab44b739cdf3
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Move codeRef out of QV4::Function

Change-Id: I65700b9cc4907aaa28623a95204e88f87fccfd49
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Store the file name per compilation unit, not per compiled function

Change-Id: Id699897b241a9ff6495689e5685092d311acb8c2
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Initialize formals and locals from the compiled function data instead of in the isel

Change-Id: I9db976df310a5986ceca66d21efeeae536dbede4
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Prepare MASM for better runtime string handling

Keep the run-time functions as-is by taking String pointers and use a little
bit of inline assembly to resolve the string ids to string pointers, by
adding a runtimeStrings array pointer next to the lookups in the context
(similar mechanism).

Change-Id: Ib5a70bdf47fef7c447d646ccfe03f3dc30d39f20
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Convert more of the masm backend to generate code for run-time strings

Change-Id: Ib560f86b2b32162a9344487f4cde03e76231b089
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Ported lookups to use the compiled data infrastructure

Change-Id: Idf75cd51087ea825f22aabda59661be461fd3b86
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Fix valgrind errors in strings in compiled data

Make sure to include the zero terminator in the QString data.

Change-Id: Ie3c3b6a135b012a12a1d4de8bfb16cb8cf7d4615
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Fix crashes with unmarked runtime strings

Runtime strings are identifiers, but they still require to be marked. Keep
track of all compilation units in the engine (one per file) and mark its
run-time strings.

Change-Id: Ie70b00dfa373c4567279591de2f717e8103c288f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Remove identifier() from masm isel

It isn't needed anymore.

Change-Id: Ia9977db4d247c35d170e74f68a602cecde096165
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Ported regular expressions over to be run-time generated data

Change-Id: I04e693d4923c97c3d869a5beb17011f6aad85f03
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Store line number mappings in the compiled function

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