| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| | |
Change-Id: I45e1d1d13fe7dee22809734595a3fbbfd03b123d
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I3afba14741f18782e71210b14d9d091fe0bebc51
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I4fe680ff334a13085df425ad2badad08e548f21f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: Ie9e767d36d3d810bf0d2a173d04954277041f68f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
O is allowed to be null here, so don't use objectValue() unconditionally
and instead use asObject().
Change-Id: I3e868d3486d2de109c94aef8a7de16110a3a8326
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| |
| |
| | |
This is used only on Linux/ARM. iOS uses setjmp/longjmp.
Change-Id: I06f907ce702c1b8e06a50ac31b5486d11ef392ec
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| |
| |
| | |
Run qmake with CONFIG+=debug-with-libunwind.
Change-Id: I02f5820a1c8ee9132dac521d182007800c250103
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
By inlining temp and local fetching, the interpreter is 30% faster
on x86 on crypto.js. x86_64 gains about 35%.
As the comment in the source already indicates: this might need some
tweaking for QML.
Change-Id: I9aa51036d42d2749f9aeec39a479d9e5f6233a23
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This allows gcc to inline slightly better, gaining 1% in the
interpreter.
Change-Id: Ia0ebc9eb698f12de4ff7860e9f62a62dbd782ccd
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I7af3abbbf8cae86abe31a0d55d3d4c7e8c91a803
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The object acts as a replacement for the QML scope chain.
We need to write values to it even if __hasProperty__ returns
false.
Change-Id: I97856ab8cc3a7a728bb244f40b9f230a415b5a33
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I59b414484c05d8292ee7300860ef9e0611da49e6
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Objects at the beginning of a chunk didn't get marked
properly as qLowerBound in the mark() method returned an
even number for them. Fix this by subtracting one to the
beginning of the chunk.
Change-Id: I1abd7e24f5b7f374fc0776b7d891a3124fee7270
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| |
| |
| | |
Implement it in a similar way as PersistentValue
Change-Id: If4adba61a8bfedce657f07ee24662c3b13384fd9
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Not all calls are yet propertly protected by try/catch
statements, but it should work in principle.
Change-Id: I5ddaf433b0a454106dc2743fe2ccfc5822fb3926
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: Ifbbc5004ada03b6efa7a9884938ff5d59220c5fb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: Ia36b2b5c5b40475450fe369c7d6cb5e3965a4488
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: Ica73c21e58b406abd6310c59ec0f541ae2cc9155
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I718f10f28a053eda78e086407183706e8fad317b
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I02f7072c13c319b1bdf77471360308bd0d0d3d2a
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I237fdf6acdfad9805306e4fc5f437457efa8eb7f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Change v8::Template::Set to take Handle<Value> instead of Handle<Data>
and remove incorrect Data inheritance from Value
Change-Id: Iaa71d4437c9913c7a79bc5322f05dafce6e3c89c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Make V4V8 object a template in preparation for future changes
* Fix handle <> local conversions
* Implemented v8::External
Change-Id: I27b57c767a31393e1b8b05f3150c16158b178f0d
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I299b252346b2c5696fb11eb7b8dc527d94dbaf3b
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: Iee403e3b542423726f95a0b516a4e2d5938ea2ed
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A try defines the exception var, because it is the first time it is
mentioned. It might also use it, but that could be seen as
an initialization.
Change-Id: Ibacd12edc02f99c8049003655373122d7916978b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When a move has a temp that is either a scoped local or a formal,
then instead of "returning" from the visit, the source expr still has
to be visited. It might contain a use.
Change-Id: Ibd54fdc3488b1348e63ecd5a0c1b1036ae111c8a
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Suppress error for methods that have to return a value, but are marked
as Q_UNIMPLEMENTED by adding a Q_UNREACHABLE.
Change-Id: I2f7d3027fd5a8949b7c330d8cab3f3f095e11450
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When a class is dllexported, the methods cannot also be marked as such.
They are exported automatically. The error message is:
d:\dev\v4vm\src\v4\qv4v8.h(1525) : error C2487: 'New' : member of dll interface class may not be declared with dll interface
Change-Id: Ib44ee401e35c723b20c8c9f2dceab02736c77a3f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| |
| |
| | |
In a way that it the compiler doesn't complain anymore.
Change-Id: I877b1a051b2ffcbd63a04cf219733b2b21cb9128
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Re-introduce the old register_frame and deregister_frame approach
on Mac OS X until we have something faster.
Change-Id: Idf524857c91175535184b29c11265c7d26f064a7
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
At the moment we only generate a dead assignment when initializing the
return value to undefined (and subsequently assign to it). With upcoming
patches, esp. constant propagation, there will be more dead assignments.
Change-Id: I423ed77fb0693ca6c2855d1e0200e6a205d01f4f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I80cc7533effad2a1fa3fe60c2596ed9d27e843c9
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I7632382ccb8aa2f8ae733f638bb42eddbc739c6a
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I7feea63d0e9eb7c1e633536aea4c4a4dbd03b462
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I10dda09c8a087bc7ef34c0315c698e08c35ec28d
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| |
| |
| | |
It suggests a template keyword here to make it clear that As() is template dependent
Change-Id: I0a228ad51b7a7a09e3774465f7118e3e6e247e93
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I6fe14b02205901dbffa25c6c1b4883fb99586417
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| |
| |
| | |
Simply call getPropertyDescriptor instead
Change-Id: I9e156a45dd10bf250fa156820ec2f3d5bbe80bbc
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I72598ad9941b35e7268f6a90c26c91f37593bed4
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I78d0ddb1b5b790cb74cfa2d115e7dd47ebb30ab1
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I4168ad5bb934a74e6957969417fdcf491a7374a1
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: If62d4a0dbe8f59d62bef2cce0bb9002be47957bc
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: Ibc8feb95b9473712105cf79e98fc0cef8c3b0fe7
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
__register_frame and __deregister_frame are very slow when called
with many functions many times, like in some of the tests that use
a lot of eval(). Change the approach to interposing a function symbol
that is called in libgcc whenever a PC -> FDE lookup is required.
This also changes the code to create the unwind info on-demand.
Change-Id: I99dfcc921b087831ad00f79bad9e7bcfb0cc8c33
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I7e3c4e0d1d9a23a54922a3254962ac2dc42bf67b
Reviewed-by: Lars Knoll <lars.knoll@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>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Instead allocate a temp to hold the exception to rethrow and pass the address
of that to the TRY statement. Then it can be set in the run-time.
Change-Id: Ic15869e8e5ab5119b26f98fc45dbdb1a2ad9d21e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
These calls aren't needed anymore and can easily be done on the run-time level
instead right before and after calling the catch block.
Change-Id: I445361688782d12269764578e83ebb21ae184190
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: Ia95866060e27c4311ce819c7aec04f328fa8eca1
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|