aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/jsruntime.pri
Commit message (Collapse)AuthorAgeFilesLines
* Drop the qml-interpreter featureUlf Hermann2018-01-101-9/+4
| | | | | | | We cannot build QML without interpreter anymore. Change-Id: Ibc51240caa956132eef8753fa6c75939026930d5 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge remote-tracking branch 'origin/wip/new-backend' into devSimon Hausmann2017-11-211-0/+3
|\ | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/compiler/qv4isel_moth.cpp src/qml/compiler/qv4jsir_p.h src/qml/jsruntime/qv4engine_p.h src/qml/jsruntime/qv4vme_moth.cpp tests/auto/qml/qml.pro Change-Id: Ia7b6ec24c7fcbcbb1786d9e798d2df294020ae37
| * Move ScopedCallData and ScopedStackFrame into a separate fileLars Knoll2017-09-011-0/+1
| | | | | | | | | | Change-Id: I9ae42aa7a811aa93fe0950725e9d253a0c5e8dba Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * Move the Runtime codegen into it's own fileLars Knoll2017-07-031-0/+2
| | | | | | | | | | Change-Id: I3d09fc4b8aebe19acae0ba5a688491428a4af715 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Make qml-debug a proper featureUlf Hermann2017-11-081-1/+1
|/ | | | | Change-Id: Iea33ff0200f0bbf43953fedba030edf91d0f1417 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Move the EngineBase class into it's own header fileLars Knoll2017-05-191-0/+1
| | | | | Change-Id: Idf87618e4ebff99f3b3c269c950191d67a0182b2 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Update the alloca() support in QtQmlOswald Buddenhagen2017-05-101-0/+1
| | | | | | | | | | | | | | | | | qv4alloca_p.h dates from April 2013 and contained just the #includes, whereas the code in qtqmlglobal_p.h was introduced earlier this year in commit 87f016ea9eddc874d5cba7d79d0a487d5ef61761. This commit moves the macros to qv4alloca_p.h and centralizes the support there. This also updates the #include detection mechanism, by using QT_CONFIG(alloca_h) to determine which #include to use. See commit 98c1d516b7f7624f7fcd7b9046783e3903a6a42b in qtbase for more details. Task-number: QTBUG-59700 Started-by: Thiago Macieira <thiago.macieira@intel.com> Change-Id: Icd0e0d4b27cb4e5eb892fffd14b4b38005ce2ecb Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Allow selecting armv7 as target architecture in qmlcachegenSimon Hausmann2017-02-011-2/+2
| | | | | Change-Id: I36e8f95e83ea3de6553145efc762e3bc46f60071 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-12-141-1/+2
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/qmltooling/qmldbg_debugger/qv4debugjob.cpp src/plugins/qmltooling/qmldbg_inspector/globalinspector.cpp src/plugins/qmltooling/qmldbg_nativedebugger/qqmlnativedebugservice.cpp src/qml/qml/qqmlimport.cpp src/quick/items/context2d/qquickcontext2dtexture_p.h tools/qmleasing/splineeditor.h Change-Id: I8f6630fcac243824350986c8e9f4bd6483bf20b5
| * Start cleaning up the QmlContextWrapperLars Knoll2016-12-041-1/+2
| | | | | | | | | | | | | | | | | | The class should get merged with the QV4::QmlContext class. Simplify the cleanup by moving both classes into a common file. Change-Id: I0074da79701d5f41eb51681b70fcde85bfd45fc1 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-10-181-2/+7
|\| | | | | | | | | | | | | | | | | | | Conflicts: src/qml/jsruntime/qv4variantobject.cpp src/qml/types/qquickworkerscript.cpp src/quick/scenegraph/util/qsgdefaultpainternode_p.h tools/qmljs/qmljs.cpp Change-Id: I876242714ec8c046238d8fd673a5ace2455b2b59
| * Make the Moth interpreter configurableLars Knoll2016-10-101-2/+7
| | | | | | | | | | | | Change-Id: I2b784820c4e39a7932f81bfee9ce78e01a2e96b5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Make qv4util_p.h part of qmldevtoolsSimon Hausmann2016-09-011-1/+1
|/ | | | | | | Needed for QV4::BitVector in the isel Change-Id: I0ac79974790417238e619169fdc980d5d8b70ed0 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Add QT_NO_QML_DEBUGGER to MODULE_DEFINES on -no-qml-debugUlf Hermann2016-08-031-5/+1
| | | | | | | | | | | If -no-qml-debug is set when building QtQml, we have to add QT_NO_QML_DEBUGGER when building application code, because this build option modifies the headers and linking an application built with QML debugging against a Qt built without is crashy. Change-Id: Ib150810f40deb98dcf398e3998401358a25155d9 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Replace debugger and profiler with stubs on -no-qml-debugUlf Hermann2016-07-281-1/+6
| | | | | Change-Id: I0f029d92366b3b508bf024c67b877a14bae27cd6 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* V4: Remove empty fileUlf Hermann2016-07-271-1/+0
| | | | | Change-Id: Ibae2334336f5cc4f16cd9c9d8d142ea4b013462b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Add heaptrack support to qv4mm pool allocator.Milian Wolff2016-06-261-0/+4
| | | | | | | | | When you build qtdeclarative with CONFIG+=heaptrack then the allocations from the custom pool allocator can be traced with heaptrack. This works similar to the existing valgrind support. Change-Id: Ia988380415083aa1346c84c8c64b49ea3e17b7e2 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Move the Runtime API into it's own fileLars Knoll2016-04-111-0/+1
| | | | | | | | We will need to access the runtime API in the engine, so let's separate the API from the implementation details. Change-Id: Iaa638fa19cc3859fcd210963396a248e64fb6955 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* QML: make QmlContext::qml{Context,Scope} inlinable.Erik Verbruggen2016-04-051-0/+1
| | | | | | | | Both methods are called in QQmlPropertyCapture::registerQmlDependencies, which is called after every binding evaluation. Change-Id: Ic0c7ff96aa7d0be186d103de9d50eae19f42908b Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* V4 JIT: Switch all platforms to W^X for the ExecutableAllocator.Erik Verbruggen2016-01-151-2/+0
| | | | | | | | This also fixes makeWritable, which needs to work in order to add more c0d3 to used pages. Also finish the WinRT parts. Change-Id: Idaa4187b1ec256e65c881285a608f3a51fdbeebd Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* tvOS supportMike Krus2016-01-011-1/+1
| | | | | | Change-Id: If48e8bcf55781d1148e15ce19e07cfbe35d829d2 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
* Remove libdouble-conversionUlf Hermann2015-11-231-2/+0
| | | | | | | | We can use facilities in qtbase to convert doubles to strings now. This also makes the fix to QTBUG-47070 obsolete. Change-Id: I2f813164ff788b96281c3ffd37d8d2c65665de80 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Get rid of qv4qmlextensionsLars Knoll2015-06-151-2/+0
| | | | | | | | It only contained the proto for the value type wrapper. Instead just create it lazily, but reserve space on the js stack for it. Change-Id: I2301549b6dc4007bd5ac848e1dca25aafd583c4a Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Get rid of TypedValueLars Knoll2015-06-101-1/+0
| | | | | | | | Now that Managed inherits from Value, this class doesn't make sense anymore. Change-Id: I04e10f53ef305658d902bd0f1c7d7280068c0dc3 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Get rid of qv4value_inl_p.h and replace it by qv4typedvalue_p.hLars Knoll2015-04-241-1/+2
| | | | | | | | This is a cleaner separation and further reduces include dependencies in the definitions of our basic data structured. Change-Id: I18aa86cdea0c0dfbc16075d4d617af97e638811e Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Move memory management related functionality into it's own folderLars Knoll2015-03-021-2/+0
| | | | | | | | | Start moving the memory related functionality into it's own folder. This will simplify refactoring of the GC related functionality later on. Change-Id: I70ec6f512af7a7897625afb84d914c17572b0ccd Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Basic support for typed arraysLars Knoll2014-10-291-0/+2
| | | | | | | | | | | | | | | This implements most of the spec required for the Khronos typed array specification. It tries to follow ECMAScript 6 as closely as possible, but currently only implements a subset of the ECMAScript 6 specification. Addes a test script in tests/manual/v4 to test our implementation. Change-Id: I8ec63869500358e088b73240e1f37120ae3cf59a Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Implement DataViewLars Knoll2014-10-291-2/+4
| | | | | | | | The second class that is required for typed array support. Change-Id: Idc2dcec7c1eee541f76dc5ab1aea6057ba03cb93 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Implement ArrayBufferLars Knoll2014-10-291-2/+4
| | | | | | | | This is the first class required to support typed arrays in our JS engine. Change-Id: I0fe1e1ca430769c171912dda207cfae772e9b9db Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Remove redundant sse2 math flagsAllan Sandfeld Jensen2014-07-011-7/+0
| | | | | | | | | Qtbase already enables sse2 math by default now. This version is no longer needed and may actually hurt performance by triggering scheduling for pentium4. Change-Id: Ib3b6781fb0b92c1351344cc2d2f13101fa2b632b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Extend the QML bootstrap library by the IR buildersSimon Hausmann2014-04-231-7/+15
| | | | | | | | | | | | | This is among other things needed to fix the qml import scanner to detect dependencies from .js files correctly. The patch also fixes the use of Q_QML_EXPORT towards Q_QML_PRIVATE_EXPORT where appropriate and corrects the wrong include path for the double conversion code to actually be relative to the file it is included from. This worked by accident because of other include paths present in the build. Change-Id: I338583dad2f76300819af8ab0dae8e5724c84430 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Garbage collect member dataLars Knoll2014-04-041-0/+2
| | | | | | | | Move the allocated member data into the garbage collected area, so that we can avoid using malloc/free for it. Change-Id: I20625efa67ecd60238568742b74854b0c8cb2e3e Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Satellite profiler for V4Ulf Hermann2014-02-121-2/+4
| | | | | | | | Self-contained profiler for V4. By itself it doesn't have any connections to qqmlprofilerservice. Change-Id: I471a6119e07eab9c5f4712a16835be49c8886d1a Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* Move PersistenValue and WeakValue into it's own fileLars Knoll2014-02-051-0/+2
| | | | | | | | They deserve having their own set of files, and it helps reduce dependencies. Change-Id: Ifd4394f88ef51cbccc61bf92dd20636f570141d9 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Rename some filesLars Knoll2014-01-311-1/+1
| | | | | | | | | | | | Rename qv4value_def_p.h -> qv4value_p.h and qv4value_p.h to qv4value_inl_p.h. It makes more sense to have the class definition in the file that is named after the class and move the inline methods into a _inl file. Doing this now, as I expect we'll be needing a few more _inl files soon. Change-Id: Ib59e9380e9e976254c6b4369574157f39b1b5f51 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Rework array handling for JS objectsLars Knoll2014-01-091-0/+2
| | | | | | | | | Split up ArrayData into two classes, one for regular arrays, one for sparse arrays and cleanly separate the two cases. Only create array data on demand. Change-Id: I9ca8d0b53592174f213ba0f20caf93e77dba690a Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Remove stray warn_off in pri fileLars Knoll2013-11-091-2/+0
| | | | | Change-Id: I9abf1180aecbd2e87fa7f52b51ad1c59665723fc Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Remove the last C++ exceptions from QtQmlLars Knoll2013-10-301-2/+0
| | | | | | | | Also clean up and compile the repository with exceptions disabled again. Change-Id: I653ae89353284b2f4ab884384f8ea6a5d100785d Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Remove qv4unwindhelper classLars Knoll2013-10-291-4/+0
| | | | | | | | This class is not required anymore to generate stack traces, as we now store the required information in the JS context stack. Change-Id: I3893c805ca89dda70efde07fdd120e7dfaf3639f Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Cleanup: Remove now unused throwInternal() methodLars Knoll2013-10-291-25/+0
| | | | | | | | This method was throwing a C++ exception in the old exception handling and is not needed anymore. Change-Id: If67696cdbd260225ae60720a1035941fe7e1e650 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Win32: Remove dependency to DbgHelp DLLSimon Hausmann2013-10-231-4/+0
| | | | | | | | This was used for natice stack trace determination, which is done differently now. Change-Id: Id983f2bf6805aaf3f7081a16196268be88c98951 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Speed up stack trace generation for the JITSimon Hausmann2013-10-161-2/+0
| | | | | | | | | | | | | | It turns out that in QML it is not unusual that during early binding evaluations due to the undefined order, the evaluation tries to look up properties in objects that aren't initialized yet and thus exceptions are thrown. Eeach thrown exception saves a stack trace, which is expensive to generate when using the JIT, as it does full stack unwinding. This patch implements a more light-weight approach by storing the instruction pointer in the context before leaving JIT generated code. Change-Id: I95e1cfd01179247dfc2c1df949828f474a23161b Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Temporarily disable libunwind exception throwing on MacSimon Hausmann2013-10-031-1/+1
| | | | | | | | | The run-time appears to have a slightly different behaviour wrt exception ownership. We don't strictly need this code path on Mac, so use regular C++ exceptions until I can figure out what happens there. Change-Id: Idd540c8656d25ffdb4002843f398114881e33214 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Cleanup exception handlingSimon Hausmann2013-10-031-3/+1
| | | | | | | | | | The code in the Exception class operates entirely on the engine's data, so move it into ExecutionEngine instead. This eliminates the need for a QV4::Exception class and catches and old code that tries to still do catch (Exception &) instead of catch (...) Change-Id: Ie608bec6af652038aca6c9423c225a4d7eb13b39 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Change v4 exceptions to use the common C++ ABIs foreign exceptionsSimon Hausmann2013-10-031-6/+5
| | | | | | | | | | | | | | | | | | | On platforms where we use the common C++ ABI, throw the exception not using a dummy C++ exception structure and the throw keyboard, but instead use the lower-level _Unwind_RaiseException to throw a foreign exception. It is caught with the existing "catch (...)" and re-throw is implemented similarly, by grabbing the current exception from the globals (a standardized data structure) and re-throwing it. On platforms such as ARM that lack hooks for supplying our unwind tables to the system run-time, this patch will make it possible to link the unwinder statically into libQtQml (libgcc or libunwind) and thus force it to use our unwind tables, because throwing or re-throwing will always go through our statically linked code through direct calls to _Unwind_RaiseException (instead of libstdc++). Change-Id: Ic2ac056fc7ed9e93fb51e30ab45f35b260487c5f Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix WinCE build.v5.2.0-alpha1Sérgio Martins2013-09-251-1/+1
| | | | | Change-Id: Ie0536ad94f88efe1e54226ed7f1d9e1042ffcc19 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Add ScopedValue and ScopedValueArray classesLars Knoll2013-09-111-0/+1
| | | | | | | | 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>
* Rename the DW2 and ARM unwinder helpers to standard _p.hThiago Macieira2013-09-021-2/+2
| | | | | | | | | | The Qt convention is that private headers end in _p.h. A great deal of our build automation relies on this, including the choosing of which headers to install and which ones not to. Change-Id: I03ab6021e0a8a68d5a9cbc9d9387a9c5331f7bb7 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* The Moth VME is actually part of the runtime, not the compilerLars Knoll2013-08-081-2/+4
| | | | | Change-Id: Idcb7a6b6157c58e33192f86750ded487c0e75b9f Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Restructure source codeLars Knoll2013-08-081-0/+144
Move the v4 engine classes from a subdir of qml/qml into two subdirs (compiler and jsruntime) of the qml module Remove an unsued qv4syntaxchecker class, and move the moth code directly into compiler. Change-Id: I6929bede1f25098e6cb2e68087e779fac16b0c68 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>