| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
ssh://codereview.qt-project.org:29418/playground/v4vm into v4
This is the initial merge of the v4vm JS engine, designed specifically for QML.
The engine is tested on Linux and Mac OS X, works on x86, x86-64 and ARM.
Change-Id: I826b72cfa3d3575007b70d78604080582db568db
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: Ia8b010a9d9c9dd3aacb1b08ce34a42236fa73195
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I7dc172eba02d454467ead1e18a1a59e98890dd54
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I46ba9b2621be72116d94bee249ad5b798e951c88
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I6fe62b501803422f78b47a87c55e4278820725aa
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| |
| |
| | |
In a way that it the compiler doesn't complain anymore.
Change-Id: I877b1a051b2ffcbd63a04cf219733b2b21cb9128
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I10dda09c8a087bc7ef34c0315c698e08c35ec28d
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I6fe14b02205901dbffa25c6c1b4883fb99586417
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Instead the JS exception value is now part of the C++ Exception object.
This also allows getting rid of some run-time functions.
Change-Id: I43ff773cacd5e925ba96601f3633ccf3b62273be
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| |
| |
| | |
This will allow for re-use from the v8 wrapper API.
Change-Id: I2330432dad43d7fd7af6147e96a0cbbb340cd917
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Instead of doing the ExecutionContext unwinding at the time of throw, do it
at the time of catch, conveniently through an accept() method of the Exception
object. That allows us to get rid of the separate handler registration stack.
The only tricky part are that some execution contexts are allocated on the stack.
When exceptions are thrown through that, we have to catch, unwinding up until that
point (or rather the parent of the stack allocated context that's going to be
deleted) and then simply rethrow.
This patch also gets rid of the __builtin_delete_exception_handler. The next patch
will rename the remainder to what it really does now.
Change-Id: I00bb113b3a2fe24f7054c03fdfb8fed5cc1258b1
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Instead of registering catch handlers with setjmp and throwing JS exceptions
with longjmp, they are now thrown and caught as C++ exceptions. This allows for
tight interoperability between C++ and JS in the future and allows for clear
semantics with regards to cleaning up memory in the engine when throwing
exceptions. (destructors are guaranteed to be called, unlike with
setjmp/longjmp).
The recent unwind table additions allow for the exceptions to be thrown through
JIT generated code.
Catching the exception is done by re-using the existing IR semantics where the
beginning of a try block is marked by registering an exception handler.
Execution after the registration continues conditionally, based on the return
value of builtin_create_exception_handler. A return value of is 0 the try
block(s) are executed. If an exception is thrown during that time, execution
resumes at the point where builtin_create_exception_handler returns, but with a
return value of 1. If an exception is thrown within the catch handler, the
execution resumes again at the same point, but the inCatch IR variable will
guide execution straight to the finally block(s), which calls
delete_exception_handler.
In the JIT as well as the interpreter this is implemented by entering a C++
code section that contains a C++ try {} catch {} block, in which the calling
function is called again and continues right at the next instruction (or the
interpreter loop is recursively entered). An exception will throw us out of
that scope and back into the try {} catch {} wrapper, which can call again
into the calling function.
The IR guarantees that delete_exception_handler is always called, regardless of
how the try or catch blocks are terminated. That is where in the JIT and
interpreter we return from the nested function call and return back into the
original stack frame, effectively unregistering the catch handler.
Further cleanups with regards to the naming and the exception handler stack
will come in subsequent patches, this is merely the minimal patch set to
change to the new mechanism.
This patch set breaks ARM until ARM exception handler tables are implemented.
The interpreter changes are based on a patchset from Erik
from https://codereview.qt-project.org/#change,45750
Change-Id: I543f2bd37b2186f7e48ffcab177d57b5ce932a0c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This makes it easier to generate the right magic bits and bytes
across different architectures.
Change-Id: I83cf8f348f4ea92febfe463e1ffd627808e1bb44
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: Id248400c50609811baebb1ea710210915e5274c9
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I4f58a1fac25440695bdc62a49adb51a887616a5c
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| |
| |
| | |
Also removed unused TestHarness stuff.
Change-Id: I6332d9a34f471df07cfa0e9709a203e99a48b524
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fast lookups still require a function call, and will only work
for properties defined on the object itself. Properties of the
prototype will still be slow.
Change-Id: I07c601998d312b1bd8e9977708d3375bf72df3e3
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: Ic4bbc6a595849042a9c970ba2d0ad5785fe1b89a
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| |
| |
| | |
Don't use the export macro on internal debug classes.
Change-Id: Id2f8069cc8b6703a3fafd3058524d46252eb57f8
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I618e0ee413e9548817f84473917ccb8051f689f2
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| |
| |
| | |
Centralize the macros in v4.pri that's included by both.
Change-Id: I1ae2ed3b7b97a4e905d2e4ae563c99c964253bb1
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| |
| |
| | |
Add proper LLVM detection for v4 tool.
Change-Id: I03ad3099ce9622df67b7c61ce1e72752b9f6e4bd
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The QMLJS_NO_LLVM flag should be provided by a pri file somewhere next
to the other v4.pro, not here.
Change-Id: I55c17d6a09f81141e9fa671bab9d3ee9a5830e6a
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: Ib5ecd92a0b7209ed505d17620ba4097e8d54a53c
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
Move the v4 tool into basedir/tools/v4
Small fix to sync.profile
Install v4 into QT_INSTALL_BINS
adjust test262.py to simply call 'v4' by default
Change-Id: If78f40632c226bc26f64b0eea06fe93d7770af3e
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
| |
Change-Id: I3202e8e7461f457eeb73a82b7a8da40a11e4f76d
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
|
|
|
|
|
|
|
|
|
| |
QmlDevTools is really meant for host tools (the two only ones using this
being qmlmin in this repo and lupdate in qttools). qmake magic will take
care of bootstrapping them while x-building.
Change-Id: I29d921af483659d5455be0ad080dc1a88540c036
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|\
| |
| |
| | |
Change-Id: Ia02971527a2d1a80c5624d69330428818aab3a41
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-28849
Change-Id: I331ebca76892ce7ffbc6f8e03ff4afe0c8e28d5e
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This doesn't actually result in putting any information about the
composite type into the output, though.
Change-Id: I160702578f0acd22eff98e8afa288b3c9fb20076
Reviewed-by: Alan Alpert <aalpert@rim.com>
|
| |
| |
| |
| |
| | |
Change-Id: I080c25ed8b8cc8b743043b5aa348927749c1f0eb
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/doc/qtqml.qdocconf
src/quick/doc/qtquick.qdocconf
Change-Id: I087fa14720995a5e53c43567dc4a3c29eb9992a9
|
| |
| |
| |
| |
| |
| | |
Change-Id: I6c3bd7bebe3d62d1cfd0fa6334544c9db8398c76
Reviewed-by: Akseli Salovaara <akseli.salovaara@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
|
| |
| |
| |
| |
| |
| |
| | |
Change-Id: I23f11c944fafb5863a960dcc83bc1e57e189f662
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Reviewed-by: Tasuku Suzuki <stasuku@gmail.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
- last line was not aliged correctly with the previous lines.
- usage of capital letter was inconsistent.
Change-Id: Ied7caab8296a635e105764bc2e95aa9e78f1cfcb
Reviewed-by: Alan Alpert <aalpert@rim.com>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/qml/parser/qqmljskeywords_p.h
sync.profile
tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
Change-Id: I9bc6659e1bab924009167bec567354d40a77a8cb
|
| |
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-28131
Change-Id: Iad55e3c6057b060cd8f8233e02a6151c91cc32ed
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
While the process should terminate immediately with a non-zero exit code
on component error, it does that in the next line already. The main
difference is dropping the backtrace, which is not useful in this case.
Change-Id: I866ea00e62cb9d1b7c506b9819cd9bb2750ac81f
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
qmlmin could compress identifiers in an invalid way if
it contained special chars that would get expanded to
unicode escape sequences
Change-Id: I35b3ba01f68b69b34c4cd19616afb8b4b4cd6fa3
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
|
|/
|
|
|
| |
Change-Id: I9ec8961342c23ea2c116c970e84aa412365412a9
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
|
|
|
|
|
| |
Change-Id: I146e7b8e3ae0ee74f5f4e3ef85f59d50a639c0f5
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
|
|
|
|
|
|
|
|
| |
Make sure that the minimal platform plugin is used by default.
Change-Id: I2362649dafaf823b00ab37519b516aef9ac3166b
Reviewed-by: hjk <qthjk@ovi.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
|
|
|
|
|
|
|
|
|
| |
Although not valid according to ECMA 5.1, both JSC and V8 accept a
missing semicolon after a do-while loop. (Both JSC and V8 do not do this
through automatic semicolon insertion, but handle it as a special case.)
Change-Id: Iff2b07b894564740d2dcbf9b1d46bc279d30b9e3
Reviewed-by: Alan Alpert <aalpert@rim.com>
|
|
|
|
|
|
| |
Change-Id: Id7aeef0d499f48ddc64b4ea3e4dc713db8458c38
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Alan Alpert (RIM) <aalpert@rim.com>
|
|
|
|
|
| |
Change-Id: I7ea8ff54d24fe0818cd216d4aac0e8970461306e
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
|
|
|
|
|
|
|
| |
Add window title and shrink import button.
Change-Id: Ic35b03c1b7d24fc4c3ca1dc237445474ecf3a213
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Keeping the name qmleasing, but most of the code from easingcurveeditor.
easingcurveeditor had more UI and functionality, as qmleasing could only
import AfterEffects curves. That functionality has now been added to
easingcurveeditor.
Change-Id: Iac1a004f13fe33a18449af1b08bd22138d525322
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Christopher Adams <chris.adams@jollamobile.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
|
|
|
|
|
|
|
|
|
| |
Setting Window.color in QML takes effect immediately.
It was only possible to set the property at startup.
Examples demonstrate new Window property features.
Change-Id: Ic5b43d0d84371f3fe5c42223ccc98e6de27aed10
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
Abbreviated properties are to be avoided, and this is a new class so
we have a good opportunity to avoid it before the release.
Related to qtbase change I19c00b54b1d2712f9418e8bcf56e35a8008b89ef
Change-Id: Ibd5cd10814c8cbd2b1f6e49b70782c7768d2366d
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
|
|
|
|
|
|
|
| |
Depends on patch Ie4424ec15fbdef6b29b137f90a2ae33f173edd21 in qtbase.
Change-Id: I9614cc2c7ed119c663b3f6f99267483e291e529c
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
|