| Line | Source | Count |
| 1 | | - |
| 2 | | - |
| 3 | | - |
| 4 | | - |
| 5 | | - |
| 6 | | - |
| 7 | | - |
| 8 | | - |
| 9 | | - |
| 10 | | - |
| 11 | | - |
| 12 | | - |
| 13 | | - |
| 14 | | - |
| 15 | | - |
| 16 | | - |
| 17 | | - |
| 18 | | - |
| 19 | | - |
| 20 | | - |
| 21 | | - |
| 22 | | - |
| 23 | | - |
| 24 | | - |
| 25 | | - |
| 26 | | - |
| 27 | | - |
| 28 | | - |
| 29 | | - |
| 30 | | - |
| 31 | | - |
| 32 | | - |
| 33 | | - |
| 34 | | - |
| 35 | | - |
| 36 | | - |
| 37 | | - |
| 38 | | - |
| 39 | #ifndef QV4COMPILERCONTROLFLOW_P_H | - |
| 40 | #define QV4COMPILERCONTROLFLOW_P_H | - |
| 41 | | - |
| 42 | | - |
| 43 | | - |
| 44 | | - |
| 45 | | - |
| 46 | | - |
| 47 | | - |
| 48 | | - |
| 49 | | - |
| 50 | | - |
| 51 | | - |
| 52 | | - |
| 53 | #include <private/qv4global_p.h> | - |
| 54 | #include <private/qv4codegen_p.h> | - |
| 55 | #include <private/qqmljsast_p.h> | - |
| 56 | #include <private/qv4bytecodegenerator_p.h> | - |
| 57 | | - |
| 58 | QT_BEGIN_NAMESPACE | - |
| 59 | | - |
| 60 | namespace QV4 { | - |
| 61 | | - |
| 62 | namespace Compiler { | - |
| 63 | | - |
| 64 | struct ControlFlow { | - |
| 65 | using Reference = Codegen::Reference; | - |
| 66 | using BytecodeGenerator = Moth::BytecodeGenerator; | - |
| 67 | using Instruction = Moth::Instruction; | - |
| 68 | | - |
| 69 | enum Type { | - |
| 70 | Loop, | - |
| 71 | With, | - |
| 72 | Block, | - |
| 73 | Finally, | - |
| 74 | Catch | - |
| 75 | }; | - |
| 76 | | - |
| 77 | enum UnwindType { | - |
| 78 | Break, | - |
| 79 | Continue, | - |
| 80 | Return | - |
| 81 | }; | - |
| 82 | | - |
| 83 | struct UnwindTarget { | - |
| 84 | BytecodeGenerator::Label linkLabel; | - |
| 85 | int unwindLevel; | - |
| 86 | }; | - |
| 87 | | - |
| 88 | Codegen *cg; | - |
| 89 | ControlFlow *parent; | - |
| 90 | Type type; | - |
| 91 | | - |
| 92 | ControlFlow(Codegen *cg, Type type) | - |
| 93 | : cg(cg), parent(cg->controlFlow), type(type) | - |
| 94 | { | - |
| 95 | cg->controlFlow = this; | - |
| 96 | }executed 1808077 times by 76 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmlecmascript
- tst_qqmlenginedebugservice
- tst_qqmlexpression
- tst_qqmlincubator
- tst_qqmlinfo
- tst_qqmlinstantiator
- tst_qqmlitemmodels
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmllistreference
- tst_qqmllocale
- tst_qqmlmoduleplugin
- ...
| 1808077 |
| 97 | | - |
| 98 | virtual ~ControlFlow() { | - |
| 99 | cg->controlFlow = parent; | - |
| 100 | }executed 1815632 times by 76 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmlecmascript
- tst_qqmlenginedebugservice
- tst_qqmlexpression
- tst_qqmlincubator
- tst_qqmlinfo
- tst_qqmlinstantiator
- tst_qqmlitemmodels
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmllistreference
- tst_qqmllocale
- tst_qqmlmoduleplugin
- ...
| 1815632 |
| 101 | | - |
| 102 | UnwindTarget unwindTarget(UnwindType type, const QString &label = QString()) | - |
| 103 | { | - |
| 104 | Q_ASSERT(type == Break || type == Continue || type == Return); | - |
| 105 | ControlFlow *flow = this; | - |
| 106 | int level = 0; | - |
| 107 | while (flow) {| TRUE | evaluated 553069 times by 28 testsEvaluated by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qqmlcomponent
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmlecmascript
- tst_qqmlexpression
- tst_qqmllistmodel
- tst_qqmllocale
- tst_qqmlnotifier
- tst_qqmlqt
- tst_qqmlsqldatabase
- tst_qqmlvaluetypeproviders
- tst_qqmlvaluetypes
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickitem2
- tst_qquicklayouts
- tst_qquicklistview
- tst_qquickpositioners
- tst_qquickvisualdatamodel
- tst_qtqmlmodules
- ...
| | FALSE | evaluated 501977 times by 27 testsEvaluated by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qqmlcomponent
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmlecmascript
- tst_qqmlexpression
- tst_qqmllistmodel
- tst_qqmllocale
- tst_qqmlnotifier
- tst_qqmlqt
- tst_qqmlsqldatabase
- tst_qqmlvaluetypeproviders
- tst_qqmlvaluetypes
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickitem2
- tst_qquicklayouts
- tst_qquicklistview
- tst_qquickpositioners
- tst_qquickvisualdatamodel
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- ...
|
| 501977-553069 |
| 108 | BytecodeGenerator::Label l = flow->getUnwindTarget(type, label); | - |
| 109 | if (l.isValid())| TRUE | evaluated 18110 times by 10 testsEvaluated by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qqmlecmascript
- tst_qquickanimationcontroller
- tst_qquicklayouts
- tst_quicktestmainwithsetup
- tst_testfiltering
| | FALSE | evaluated 537738 times by 28 testsEvaluated by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qqmlcomponent
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmlecmascript
- tst_qqmlexpression
- tst_qqmllistmodel
- tst_qqmllocale
- tst_qqmlnotifier
- tst_qqmlqt
- tst_qqmlsqldatabase
- tst_qqmlvaluetypeproviders
- tst_qqmlvaluetypes
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickitem2
- tst_qquicklayouts
- tst_qquicklistview
- tst_qquickpositioners
- tst_qquickvisualdatamodel
- tst_qtqmlmodules
- ...
|
| 18110-537738 |
| 110 | return UnwindTarget{l, level};executed 18112 times by 10 tests: return UnwindTarget{l, level};Executed by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qqmlecmascript
- tst_qquickanimationcontroller
- tst_qquicklayouts
- tst_quicktestmainwithsetup
- tst_testfiltering
| 18112 |
| 111 | if (flow->requiresUnwind())| TRUE | evaluated 82890 times by 13 testsEvaluated by:- tst_ecmascripttests
- tst_parserstress
- tst_qjsengine
- tst_qqmlconsole
- tst_qqmlecmascript
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickitem2
- tst_qquicklayouts
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- tst_qv4debugger
- tst_testfiltering
| | FALSE | evaluated 452832 times by 26 testsEvaluated by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qqmlcomponent
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmlecmascript
- tst_qqmlexpression
- tst_qqmllistmodel
- tst_qqmllocale
- tst_qqmlnotifier
- tst_qqmlqt
- tst_qqmlsqldatabase
- tst_qqmlvaluetypeproviders
- tst_qqmlvaluetypes
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquicklayouts
- tst_qquicklistview
- tst_qquickpositioners
- tst_qquickvisualdatamodel
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- ...
|
| 82890-452832 |
| 112 | ++level;executed 82875 times by 13 tests: ++level;Executed by:- tst_ecmascripttests
- tst_parserstress
- tst_qjsengine
- tst_qqmlconsole
- tst_qqmlecmascript
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickitem2
- tst_qquicklayouts
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- tst_qv4debugger
- tst_testfiltering
| 82875 |
| 113 | flow = flow->parent; | - |
| 114 | }executed 536372 times by 28 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qqmlcomponent
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmlecmascript
- tst_qqmlexpression
- tst_qqmllistmodel
- tst_qqmllocale
- tst_qqmlnotifier
- tst_qqmlqt
- tst_qqmlsqldatabase
- tst_qqmlvaluetypeproviders
- tst_qqmlvaluetypes
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickitem2
- tst_qquicklayouts
- tst_qquicklistview
- tst_qquickpositioners
- tst_qquickvisualdatamodel
- tst_qtqmlmodules
- ...
| 536372 |
| 115 | if (type == Return)| TRUE | evaluated 502571 times by 27 testsEvaluated by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qqmlcomponent
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmlecmascript
- tst_qqmlexpression
- tst_qqmllistmodel
- tst_qqmllocale
- tst_qqmlnotifier
- tst_qqmlqt
- tst_qqmlsqldatabase
- tst_qqmlvaluetypeproviders
- tst_qqmlvaluetypes
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickitem2
- tst_qquicklayouts
- tst_qquicklistview
- tst_qquickpositioners
- tst_qquickvisualdatamodel
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- ...
| | FALSE | evaluated 6 times by 1 test |
| 6-502571 |
| 116 | return UnwindTarget{ cg->returnLabel(), level };executed 505876 times by 27 tests: return UnwindTarget{ cg->returnLabel(), level };Executed by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qqmlcomponent
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmlecmascript
- tst_qqmlexpression
- tst_qqmllistmodel
- tst_qqmllocale
- tst_qqmlnotifier
- tst_qqmlqt
- tst_qqmlsqldatabase
- tst_qqmlvaluetypeproviders
- tst_qqmlvaluetypes
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickitem2
- tst_qquicklayouts
- tst_qquicklistview
- tst_qquickpositioners
- tst_qquickvisualdatamodel
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- ...
| 505876 |
| 117 | return UnwindTarget();executed 6 times by 1 test: return UnwindTarget(); | 6 |
| 118 | } | - |
| 119 | | - |
| 120 | virtual QString label() const { return QString(); }executed 282 times by 3 tests: return QString();Executed by:- tst_ecmascripttests
- tst_parserstress
- tst_qjsengine
| 282 |
| 121 | | - |
| 122 | bool hasLoop() const { | - |
| 123 | const ControlFlow *flow = this; | - |
| 124 | while (flow) {| TRUE | evaluated 2190619 times by 76 testsEvaluated by:- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmlecmascript
- tst_qqmlenginedebugservice
- tst_qqmlexpression
- tst_qqmlincubator
- tst_qqmlinfo
- tst_qqmlinstantiator
- tst_qqmlitemmodels
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmllistreference
- tst_qqmllocale
- tst_qqmlmoduleplugin
- ...
| | FALSE | evaluated 1672862 times by 76 testsEvaluated by:- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmlecmascript
- tst_qqmlenginedebugservice
- tst_qqmlexpression
- tst_qqmlincubator
- tst_qqmlinfo
- tst_qqmlinstantiator
- tst_qqmlitemmodels
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmllistreference
- tst_qqmllocale
- tst_qqmlmoduleplugin
- ...
|
| 1672862-2190619 |
| 125 | if (flow->type == Loop)| TRUE | evaluated 64236 times by 26 testsEvaluated by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlcomponent
- tst_qqmlecmascript
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmlqt
- tst_qqmlsqldatabase
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickcustomaffector
- tst_qquicklayouts
- tst_qquicklistview
- tst_qquickpathview
- tst_qquickrepeater
- tst_qquickvisualdatamodel
- tst_qquickworkerscript
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- tst_qv4debugger
- tst_signalspy
- ...
| | FALSE | evaluated 2126927 times by 76 testsEvaluated by:- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmlecmascript
- tst_qqmlenginedebugservice
- tst_qqmlexpression
- tst_qqmlincubator
- tst_qqmlinfo
- tst_qqmlinstantiator
- tst_qqmlitemmodels
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmllistreference
- tst_qqmllocale
- tst_qqmlmoduleplugin
- ...
|
| 64236-2126927 |
| 126 | return true;executed 64244 times by 26 tests: return true;Executed by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlcomponent
- tst_qqmlecmascript
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmlqt
- tst_qqmlsqldatabase
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickcustomaffector
- tst_qquicklayouts
- tst_qquicklistview
- tst_qquickpathview
- tst_qquickrepeater
- tst_qquickvisualdatamodel
- tst_qquickworkerscript
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- tst_qv4debugger
- tst_signalspy
- ...
| 64244 |
| 127 | flow = flow->parent; | - |
| 128 | }executed 2128177 times by 76 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmlecmascript
- tst_qqmlenginedebugservice
- tst_qqmlexpression
- tst_qqmlincubator
- tst_qqmlinfo
- tst_qqmlinstantiator
- tst_qqmlitemmodels
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmllistreference
- tst_qqmllocale
- tst_qqmlmoduleplugin
- ...
| 2128177 |
| 129 | return false;executed 1675981 times by 76 tests: return false;Executed by:- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmlecmascript
- tst_qqmlenginedebugservice
- tst_qqmlexpression
- tst_qqmlincubator
- tst_qqmlinfo
- tst_qqmlinstantiator
- tst_qqmlitemmodels
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmllistreference
- tst_qqmllocale
- tst_qqmlmoduleplugin
- ...
| 1675981 |
| 130 | } | - |
| 131 | | - |
| 132 | protected: | - |
| 133 | virtual BytecodeGenerator::Label getUnwindTarget(UnwindType, const QString & = QString()) { | - |
| 134 | return BytecodeGenerator::Label();executed 532531 times by 28 tests: return BytecodeGenerator::Label();Executed by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qqmlcomponent
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmlecmascript
- tst_qqmlexpression
- tst_qqmllistmodel
- tst_qqmllocale
- tst_qqmlnotifier
- tst_qqmlqt
- tst_qqmlsqldatabase
- tst_qqmlvaluetypeproviders
- tst_qqmlvaluetypes
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickitem2
- tst_qquicklayouts
- tst_qquicklistview
- tst_qquickpositioners
- tst_qquickvisualdatamodel
- tst_qtqmlmodules
- ...
| 532531 |
| 135 | } | - |
| 136 | virtual bool requiresUnwind() { | - |
| 137 | return false; never executed: return false; | 0 |
| 138 | } | - |
| 139 | | - |
| 140 | public: | - |
| 141 | BytecodeGenerator::ExceptionHandler *parentUnwindHandler() { | - |
| 142 | return parent ? parent->unwindHandler() : nullptr;executed 160405 times by 22 tests: return parent ? parent->unwindHandler() : nullptr;Executed by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlconsole
- tst_qqmlecmascript
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmlpropertymap
- tst_qqmlqt
- tst_qqmlsqldatabase
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickitem2
- tst_qquicklayouts
- tst_qquickworkerscript
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- tst_qv4debugger
- tst_testfiltering
| 160405 |
| 143 | } | - |
| 144 | | - |
| 145 | virtual BytecodeGenerator::ExceptionHandler *unwindHandler() { | - |
| 146 | return parentUnwindHandler(); never executed: return parentUnwindHandler(); | 0 |
| 147 | } | - |
| 148 | | - |
| 149 | | - |
| 150 | protected: | - |
| 151 | QString loopLabel() const { | - |
| 152 | QString label; | - |
| 153 | if (cg->_labelledStatement) {| TRUE | evaluated 603 times by 5 testsEvaluated by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
| | FALSE | evaluated 29962 times by 32 testsEvaluated by:- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlcomponent
- tst_qqmlecmascript
- tst_qqmlitemmodels
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmlqt
- tst_qqmlsqldatabase
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickcustomaffector
- tst_qquickgridview
- tst_qquicklayouts
- tst_qquicklistview
- tst_qquickpathview
- tst_qquickpositioners
- tst_qquickrepeater
- tst_qquickscreen
- tst_qquickvisualdatamodel
- ...
|
| 603-29962 |
| 154 | label = cg->_labelledStatement->label.toString(); | - |
| 155 | cg->_labelledStatement = nullptr; | - |
| 156 | }executed 603 times by 5 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
| 603 |
| 157 | return label;executed 30522 times by 32 tests: return label;Executed by:- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlcomponent
- tst_qqmlecmascript
- tst_qqmlitemmodels
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmlqt
- tst_qqmlsqldatabase
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickcustomaffector
- tst_qquickgridview
- tst_qquicklayouts
- tst_qquicklistview
- tst_qquickpathview
- tst_qquickpositioners
- tst_qquickrepeater
- tst_qquickscreen
- tst_qquickvisualdatamodel
- ...
| 30522 |
| 158 | } | - |
| 159 | BytecodeGenerator *generator() const { | - |
| 160 | return cg->bytecodeGenerator;executed 862770 times by 22 tests: return cg->bytecodeGenerator;Executed by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlconsole
- tst_qqmlecmascript
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmlpropertymap
- tst_qqmlqt
- tst_qqmlsqldatabase
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickitem2
- tst_qquicklayouts
- tst_qquickworkerscript
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- tst_qv4debugger
- tst_testfiltering
| 862770 |
| 161 | } | - |
| 162 | }; | - |
| 163 | | - |
| 164 | struct ControlFlowUnwind : public ControlFlow | - |
| 165 | { | - |
| 166 | BytecodeGenerator::ExceptionHandler unwindLabel; | - |
| 167 | | - |
| 168 | ControlFlowUnwind(Codegen *cg, Type type) | - |
| 169 | : ControlFlow(cg, type) | - |
| 170 | { | - |
| 171 | }executed 1813663 times by 76 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmlecmascript
- tst_qqmlenginedebugservice
- tst_qqmlexpression
- tst_qqmlincubator
- tst_qqmlinfo
- tst_qqmlinstantiator
- tst_qqmlitemmodels
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmllistreference
- tst_qqmllocale
- tst_qqmlmoduleplugin
- ...
| 1813663 |
| 172 | | - |
| 173 | void setupUnwindHandler() | - |
| 174 | { | - |
| 175 | unwindLabel = generator()->newExceptionHandler(); | - |
| 176 | }executed 129245 times by 22 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlconsole
- tst_qqmlecmascript
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmlpropertymap
- tst_qqmlqt
- tst_qqmlsqldatabase
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickitem2
- tst_qquicklayouts
- tst_qquickworkerscript
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- tst_qv4debugger
- tst_testfiltering
| 129245 |
| 177 | | - |
| 178 | void emitUnwindHandler() | - |
| 179 | { | - |
| 180 | Q_ASSERT(requiresUnwind()); | - |
| 181 | | - |
| 182 | Instruction::UnwindDispatch dispatch; | - |
| 183 | generator()->addInstruction(dispatch); | - |
| 184 | }executed 129947 times by 22 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlconsole
- tst_qqmlecmascript
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmlpropertymap
- tst_qqmlqt
- tst_qqmlsqldatabase
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickitem2
- tst_qquicklayouts
- tst_qquickworkerscript
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- tst_qv4debugger
- tst_testfiltering
| 129947 |
| 185 | | - |
| 186 | virtual BytecodeGenerator::ExceptionHandler *unwindHandler() override { | - |
| 187 | return unwindLabel.isValid() ? &unwindLabel : parentUnwindHandler();executed 31337 times by 17 tests: return unwindLabel.isValid() ? &unwindLabel : parentUnwindHandler();Executed by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qqmlconsole
- tst_qqmlecmascript
- tst_qqmllistmodel
- tst_qqmlpropertymap
- tst_qqmlqt
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquicklayouts
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- tst_qv4debugger
- tst_testfiltering
| 31337 |
| 188 | } | - |
| 189 | }; | - |
| 190 | | - |
| 191 | struct ControlFlowLoop : public ControlFlowUnwind | - |
| 192 | { | - |
| 193 | QString loopLabel; | - |
| 194 | BytecodeGenerator::Label *breakLabel = nullptr; | - |
| 195 | BytecodeGenerator::Label *continueLabel = nullptr; | - |
| 196 | bool _requiresUnwind; | - |
| 197 | | - |
| 198 | ControlFlowLoop(Codegen *cg, BytecodeGenerator::Label *breakLabel, BytecodeGenerator::Label *continueLabel = nullptr, bool requiresUnwind = false) | - |
| 199 | : ControlFlowUnwind(cg, Loop), loopLabel(ControlFlow::loopLabel()), breakLabel(breakLabel), continueLabel(continueLabel), _requiresUnwind(requiresUnwind) | - |
| 200 | { | - |
| 201 | if (_requiresUnwind) {| TRUE | evaluated 13449 times by 13 testsEvaluated by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qqmlecmascript
- tst_qqmllistmodel
- tst_qqmlqt
- tst_qquickanimationcontroller
- tst_qquicklayouts
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- tst_qv4debugger
- tst_testfiltering
| | FALSE | evaluated 17157 times by 30 testsEvaluated by:- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlcomponent
- tst_qqmlecmascript
- tst_qqmlitemmodels
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmlsqldatabase
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickcustomaffector
- tst_qquickgridview
- tst_qquicklayouts
- tst_qquicklistview
- tst_qquickpathview
- tst_qquickpositioners
- tst_qquickrepeater
- tst_qquickscreen
- tst_qquickvisualdatamodel
- tst_qquickworkerscript
- ...
|
| 13449-17157 |
| 202 | setupUnwindHandler(); | - |
| 203 | generator()->setUnwindHandler(&unwindLabel); | - |
| 204 | }executed 13484 times by 13 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qqmlecmascript
- tst_qqmllistmodel
- tst_qqmlqt
- tst_qquickanimationcontroller
- tst_qquicklayouts
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- tst_qv4debugger
- tst_testfiltering
| 13484 |
| 205 | }executed 30661 times by 32 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlcomponent
- tst_qqmlecmascript
- tst_qqmlitemmodels
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmlqt
- tst_qqmlsqldatabase
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickcustomaffector
- tst_qquickgridview
- tst_qquicklayouts
- tst_qquicklistview
- tst_qquickpathview
- tst_qquickpositioners
- tst_qquickrepeater
- tst_qquickscreen
- tst_qquickvisualdatamodel
- ...
| 30661 |
| 206 | | - |
| 207 | ~ControlFlowLoop() { | - |
| 208 | if (_requiresUnwind) {| TRUE | evaluated 13528 times by 13 testsEvaluated by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qqmlecmascript
- tst_qqmllistmodel
- tst_qqmlqt
- tst_qquickanimationcontroller
- tst_qquicklayouts
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- tst_qv4debugger
- tst_testfiltering
| | FALSE | evaluated 17131 times by 30 testsEvaluated by:- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlcomponent
- tst_qqmlecmascript
- tst_qqmlitemmodels
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmlsqldatabase
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickcustomaffector
- tst_qquickgridview
- tst_qquicklayouts
- tst_qquicklistview
- tst_qquickpathview
- tst_qquickpositioners
- tst_qquickrepeater
- tst_qquickscreen
- tst_qquickvisualdatamodel
- tst_qquickworkerscript
- ...
|
| 13528-17131 |
| 209 | unwindLabel.link(); | - |
| 210 | generator()->setUnwindHandler(parentUnwindHandler()); | - |
| 211 | emitUnwindHandler(); | - |
| 212 | }executed 13554 times by 13 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qqmlecmascript
- tst_qqmllistmodel
- tst_qqmlqt
- tst_qquickanimationcontroller
- tst_qquicklayouts
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- tst_qv4debugger
- tst_testfiltering
| 13554 |
| 213 | }executed 30714 times by 32 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlcomponent
- tst_qqmlecmascript
- tst_qqmlitemmodels
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmlqt
- tst_qqmlsqldatabase
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickcustomaffector
- tst_qquickgridview
- tst_qquicklayouts
- tst_qquicklistview
- tst_qquickpathview
- tst_qquickpositioners
- tst_qquickrepeater
- tst_qquickscreen
- tst_qquickvisualdatamodel
- ...
| 30714 |
| 214 | | - |
| 215 | bool requiresUnwind() override { | - |
| 216 | return _requiresUnwind;executed 15651 times by 16 tests: return _requiresUnwind;Executed by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qqmlecmascript
- tst_qqmllistmodel
- tst_qqmlqt
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquicklayouts
- tst_qquicklistview
- tst_qquickvisualdatamodel
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- tst_qv4debugger
- tst_testfiltering
| 15651 |
| 217 | } | - |
| 218 | | - |
| 219 | BytecodeGenerator::Label getUnwindTarget(UnwindType type, const QString &label) override { | - |
| 220 | switch (type) { | - |
| 221 | case Break:executed 17118 times by 9 tests: case Break:Executed by:- tst_ecmascripttests
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qqmlecmascript
- tst_qquickanimationcontroller
- tst_qquicklayouts
- tst_quicktestmainwithsetup
- tst_testfiltering
| 17118 |
| 222 | if (breakLabel && (label.isEmpty() || label == loopLabel))| TRUE | evaluated 17168 times by 9 testsEvaluated by:- tst_ecmascripttests
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qqmlecmascript
- tst_qquickanimationcontroller
- tst_qquicklayouts
- tst_quicktestmainwithsetup
- tst_testfiltering
| | FALSE | never evaluated |
| TRUE | evaluated 16945 times by 9 testsEvaluated by:- tst_ecmascripttests
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qqmlecmascript
- tst_qquickanimationcontroller
- tst_qquicklayouts
- tst_quicktestmainwithsetup
- tst_testfiltering
| | FALSE | evaluated 248 times by 2 testsEvaluated by:- tst_ecmascripttests
- tst_parserstress
|
| TRUE | evaluated 160 times by 2 testsEvaluated by:- tst_ecmascripttests
- tst_parserstress
| | FALSE | evaluated 88 times by 2 testsEvaluated by:- tst_ecmascripttests
- tst_parserstress
|
| 0-17168 |
| 223 | return *breakLabel;executed 17029 times by 9 tests: return *breakLabel;Executed by:- tst_ecmascripttests
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qqmlecmascript
- tst_qquickanimationcontroller
- tst_qquicklayouts
- tst_quicktestmainwithsetup
- tst_testfiltering
| 17029 |
| 224 | break;executed 88 times by 2 tests: break;Executed by:- tst_ecmascripttests
- tst_parserstress
| 88 |
| 225 | case Continue:executed 1212 times by 9 tests: case Continue:Executed by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qquickanimationcontroller
- tst_qquicklayouts
- tst_quicktestmainwithsetup
- tst_testfiltering
| 1212 |
| 226 | if (continueLabel && (label.isEmpty() || label == loopLabel))| TRUE | evaluated 1086 times by 9 testsEvaluated by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qquickanimationcontroller
- tst_qquicklayouts
- tst_quicktestmainwithsetup
- tst_testfiltering
| | FALSE | evaluated 126 times by 2 testsEvaluated by:- tst_ecmascripttests
- tst_qjsengine
|
| TRUE | evaluated 826 times by 9 testsEvaluated by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qquickanimationcontroller
- tst_qquicklayouts
- tst_quicktestmainwithsetup
- tst_testfiltering
| | FALSE | evaluated 262 times by 3 testsEvaluated by:- tst_ecmascripttests
- tst_parserstress
- tst_qjsengine
|
| TRUE | evaluated 152 times by 2 testsEvaluated by:- tst_ecmascripttests
- tst_parserstress
| | FALSE | evaluated 110 times by 3 testsEvaluated by:- tst_ecmascripttests
- tst_parserstress
- tst_qjsengine
|
| 110-1086 |
| 227 | return *continueLabel;executed 976 times by 9 tests: return *continueLabel;Executed by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qquickanimationcontroller
- tst_qquicklayouts
- tst_quicktestmainwithsetup
- tst_testfiltering
| 976 |
| 228 | break;executed 236 times by 3 tests: break;Executed by:- tst_ecmascripttests
- tst_parserstress
- tst_qjsengine
| 236 |
| 229 | default:executed 1778 times by 14 tests: default:Executed by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qqmlecmascript
- tst_qqmllistmodel
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquicklayouts
- tst_qquicklistview
- tst_qquickvisualdatamodel
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- tst_testfiltering
| 1778 |
| 230 | break;executed 1777 times by 14 tests: break;Executed by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qqmlecmascript
- tst_qqmllistmodel
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquicklayouts
- tst_qquicklistview
- tst_qquickvisualdatamodel
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- tst_testfiltering
| 1777 |
| 231 | } | - |
| 232 | return BytecodeGenerator::Label();executed 2102 times by 14 tests: return BytecodeGenerator::Label();Executed by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qqmlecmascript
- tst_qqmllistmodel
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquicklayouts
- tst_qquicklistview
- tst_qquickvisualdatamodel
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- tst_testfiltering
| 2102 |
| 233 | } | - |
| 234 | | - |
| 235 | QString label() const override { return loopLabel; }executed 170 times by 3 tests: return loopLabel;Executed by:- tst_ecmascripttests
- tst_parserstress
- tst_qjsengine
| 170 |
| 236 | }; | - |
| 237 | | - |
| 238 | | - |
| 239 | struct ControlFlowWith : public ControlFlowUnwind | - |
| 240 | { | - |
| 241 | ControlFlowWith(Codegen *cg) | - |
| 242 | : ControlFlowUnwind(cg, With) | - |
| 243 | { | - |
| 244 | setupUnwindHandler(); | - |
| 245 | | - |
| 246 | | - |
| 247 | Instruction::PushWithContext pushScope; | - |
| 248 | generator()->addInstruction(pushScope); | - |
| 249 | generator()->setUnwindHandler(&unwindLabel); | - |
| 250 | }executed 818 times by 6 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qqmlecmascript
- tst_qv4debugger
| 818 |
| 251 | | - |
| 252 | ~ControlFlowWith() { | - |
| 253 | | - |
| 254 | unwindLabel.link(); | - |
| 255 | | - |
| 256 | generator()->setUnwindHandler(parentUnwindHandler()); | - |
| 257 | Instruction::PopContext pop; | - |
| 258 | generator()->addInstruction(pop); | - |
| 259 | | - |
| 260 | emitUnwindHandler(); | - |
| 261 | }executed 819 times by 6 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qqmlecmascript
- tst_qv4debugger
| 819 |
| 262 | | - |
| 263 | bool requiresUnwind() override { | - |
| 264 | return true;executed 893 times by 6 tests: return true;Executed by:- tst_ecmascripttests
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qqmlecmascript
- tst_qv4debugger
| 893 |
| 265 | } | - |
| 266 | | - |
| 267 | | - |
| 268 | }; | - |
| 269 | | - |
| 270 | struct ControlFlowBlock : public ControlFlowUnwind | - |
| 271 | { | - |
| 272 | ControlFlowBlock(Codegen *cg, AST::Node *ast) | - |
| 273 | : ControlFlowUnwind(cg, Block) | - |
| 274 | { | - |
| 275 | block = cg->enterBlock(ast); | - |
| 276 | block->emitBlockHeader(cg); | - |
| 277 | | - |
| 278 | if (block->requiresExecutionContext) {| TRUE | evaluated 825 times by 3 testsEvaluated by:- tst_ecmascripttests
- tst_parserstress
- tst_qv4debugger
| | FALSE | evaluated 1666518 times by 75 testsEvaluated by:- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmlecmascript
- tst_qqmlenginedebugservice
- tst_qqmlexpression
- tst_qqmlincubator
- tst_qqmlinfo
- tst_qqmlinstantiator
- tst_qqmlitemmodels
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmllistreference
- tst_qqmllocale
- tst_qqmlmoduleplugin
- ...
|
| 825-1666518 |
| 279 | setupUnwindHandler(); | - |
| 280 | generator()->setUnwindHandler(&unwindLabel); | - |
| 281 | }executed 825 times by 3 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_parserstress
- tst_qv4debugger
| 825 |
| 282 | }executed 1664723 times by 76 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmlecmascript
- tst_qqmlenginedebugservice
- tst_qqmlexpression
- tst_qqmlincubator
- tst_qqmlinfo
- tst_qqmlinstantiator
- tst_qqmlitemmodels
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmllistreference
- tst_qqmllocale
- tst_qqmlmoduleplugin
- ...
| 1664723 |
| 283 | | - |
| 284 | virtual ~ControlFlowBlock() { | - |
| 285 | | - |
| 286 | if (block->requiresExecutionContext) {| TRUE | evaluated 826 times by 3 testsEvaluated by:- tst_ecmascripttests
- tst_parserstress
- tst_qv4debugger
| | FALSE | evaluated 1666009 times by 75 testsEvaluated by:- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmlecmascript
- tst_qqmlenginedebugservice
- tst_qqmlexpression
- tst_qqmlincubator
- tst_qqmlinfo
- tst_qqmlinstantiator
- tst_qqmlitemmodels
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmllistreference
- tst_qqmllocale
- tst_qqmlmoduleplugin
- ...
|
| 826-1666009 |
| 287 | unwindLabel.link(); | - |
| 288 | generator()->setUnwindHandler(parentUnwindHandler()); | - |
| 289 | }executed 826 times by 3 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_parserstress
- tst_qv4debugger
| 826 |
| 290 | | - |
| 291 | block->emitBlockFooter(cg); | - |
| 292 | | - |
| 293 | if (block->requiresExecutionContext )| TRUE | evaluated 825 times by 3 testsEvaluated by:- tst_ecmascripttests
- tst_parserstress
- tst_qv4debugger
| | FALSE | evaluated 1670661 times by 75 testsEvaluated by:- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmlecmascript
- tst_qqmlenginedebugservice
- tst_qqmlexpression
- tst_qqmlincubator
- tst_qqmlinfo
- tst_qqmlinstantiator
- tst_qqmlitemmodels
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmllistreference
- tst_qqmllocale
- tst_qqmlmoduleplugin
- ...
|
| 825-1670661 |
| 294 | emitUnwindHandler();executed 825 times by 3 tests: emitUnwindHandler();Executed by:- tst_ecmascripttests
- tst_parserstress
- tst_qv4debugger
| 825 |
| 295 | cg->leaveBlock(); | - |
| 296 | }executed 1669689 times by 76 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_examples
- tst_flickableinterop
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlapplicationengine
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlconnections
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmlecmascript
- tst_qqmlenginedebugservice
- tst_qqmlexpression
- tst_qqmlincubator
- tst_qqmlinfo
- tst_qqmlinstantiator
- tst_qqmlitemmodels
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmllistreference
- tst_qqmllocale
- tst_qqmlmoduleplugin
- ...
| 1669689 |
| 297 | | - |
| 298 | virtual bool requiresUnwind() override { | - |
| 299 | return block->requiresExecutionContext;executed 450006 times by 27 tests: return block->requiresExecutionContext;Executed by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qqmlcomponent
- tst_qqmlconsole
- tst_qqmlcontext
- tst_qqmlecmascript
- tst_qqmlexpression
- tst_qqmllistmodel
- tst_qqmllocale
- tst_qqmlnotifier
- tst_qqmlqt
- tst_qqmlsqldatabase
- tst_qqmlvaluetypeproviders
- tst_qqmlvaluetypes
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquicklayouts
- tst_qquicklistview
- tst_qquickpositioners
- tst_qquickvisualdatamodel
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- ...
| 450006 |
| 300 | } | - |
| 301 | | - |
| 302 | Context *block; | - |
| 303 | }; | - |
| 304 | | - |
| 305 | struct ControlFlowCatch : public ControlFlowUnwind | - |
| 306 | { | - |
| 307 | AST::Catch *catchExpression; | - |
| 308 | bool insideCatch = false; | - |
| 309 | BytecodeGenerator::ExceptionHandler exceptionLabel; | - |
| 310 | bool oldLookupByName; | - |
| 311 | | - |
| 312 | ControlFlowCatch(Codegen *cg, AST::Catch *catchExpression) | - |
| 313 | : ControlFlowUnwind(cg, Catch), catchExpression(catchExpression), | - |
| 314 | exceptionLabel(generator()->newExceptionHandler()) | - |
| 315 | { | - |
| 316 | generator()->setUnwindHandler(&exceptionLabel); | - |
| 317 | }executed 113791 times by 21 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlconsole
- tst_qqmlecmascript
- tst_qqmllistmodelworkerscript
- tst_qqmlpropertymap
- tst_qqmlqt
- tst_qqmlsqldatabase
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickitem2
- tst_qquicklayouts
- tst_qquickworkerscript
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- tst_qv4debugger
- tst_testfiltering
| 113791 |
| 318 | | - |
| 319 | virtual bool requiresUnwind() override { | - |
| 320 | return true;executed 194657 times by 21 tests: return true;Executed by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlconsole
- tst_qqmlecmascript
- tst_qqmllistmodelworkerscript
- tst_qqmlpropertymap
- tst_qqmlqt
- tst_qqmlsqldatabase
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickitem2
- tst_qquicklayouts
- tst_qquickworkerscript
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- tst_qv4debugger
- tst_testfiltering
| 194657 |
| 321 | } | - |
| 322 | | - |
| 323 | BytecodeGenerator::ExceptionHandler *unwindHandler() override { | - |
| 324 | return insideCatch ? &unwindLabel : &exceptionLabel;executed 315 times by 5 tests: return insideCatch ? &unwindLabel : &exceptionLabel;Executed by:- tst_ecmascripttests
- tst_parserstress
- tst_qjsengine
- tst_qqmlecmascript
- tst_qv4debugger
| 315 |
| 325 | } | - |
| 326 | | - |
| 327 | ~ControlFlowCatch() { | - |
| 328 | | - |
| 329 | insideCatch = true; | - |
| 330 | setupUnwindHandler(); | - |
| 331 | | - |
| 332 | Codegen::RegisterScope scope(cg); | - |
| 333 | | - |
| 334 | | - |
| 335 | exceptionLabel.link(); | - |
| 336 | BytecodeGenerator::Jump noException = generator()->jumpNoException(); | - |
| 337 | | - |
| 338 | Context *block = cg->enterBlock(catchExpression); | - |
| 339 | | - |
| 340 | block->emitBlockHeader(cg); | - |
| 341 | | - |
| 342 | generator()->setUnwindHandler(&unwindLabel); | - |
| 343 | | - |
| 344 | if (catchExpression->patternElement->bindingIdentifier.isEmpty())| TRUE | evaluated 334 times by 1 test | | FALSE | evaluated 113694 times by 21 testsEvaluated by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlconsole
- tst_qqmlecmascript
- tst_qqmllistmodelworkerscript
- tst_qqmlpropertymap
- tst_qqmlqt
- tst_qqmlsqldatabase
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickitem2
- tst_qquicklayouts
- tst_qquickworkerscript
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- tst_qv4debugger
- tst_testfiltering
|
| 334-113694 |
| 345 | | - |
| 346 | cg->initializeAndDestructureBindingElement(catchExpression->patternElement, Reference::fromName(cg, QStringLiteral("@caught")));executed 334 times by 1 test: cg->initializeAndDestructureBindingElement(catchExpression->patternElement, Reference::fromName(cg, ([]() noexcept -> QString { enum { Size = sizeof(u"" "@caught")/2 - 1 }; static const QStaticStringData<Size> qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" "@caught" }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()))); executed 334 times by 1 test: return qstring_literal_temp; | 334 |
| 347 | | - |
| 348 | cg->statementList(catchExpression->statement->statements); | - |
| 349 | | - |
| 350 | | - |
| 351 | unwindLabel.link(); | - |
| 352 | block->emitBlockFooter(cg); | - |
| 353 | | - |
| 354 | cg->leaveBlock(); | - |
| 355 | | - |
| 356 | noException.link(); | - |
| 357 | generator()->setUnwindHandler(parentUnwindHandler()); | - |
| 358 | | - |
| 359 | emitUnwindHandler(); | - |
| 360 | insideCatch = false; | - |
| 361 | }executed 113700 times by 21 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_examples
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qmlcachegen
- tst_qqmlconsole
- tst_qqmlecmascript
- tst_qqmllistmodelworkerscript
- tst_qqmlpropertymap
- tst_qqmlqt
- tst_qqmlsqldatabase
- tst_qqmlxmlhttprequest
- tst_qquickanimationcontroller
- tst_qquickitem2
- tst_qquicklayouts
- tst_qquickworkerscript
- tst_qtqmlmodules
- tst_quicktestmainwithsetup
- tst_qv4debugger
- tst_testfiltering
| 113700 |
| 362 | }; | - |
| 363 | | - |
| 364 | struct ControlFlowFinally : public ControlFlowUnwind | - |
| 365 | { | - |
| 366 | AST::Finally *finally; | - |
| 367 | bool insideFinally = false; | - |
| 368 | | - |
| 369 | ControlFlowFinally(Codegen *cg, AST::Finally *finally) | - |
| 370 | : ControlFlowUnwind(cg, Finally), finally(finally) | - |
| 371 | { | - |
| 372 | Q_ASSERT(finally != nullptr); | - |
| 373 | setupUnwindHandler(); | - |
| 374 | generator()->setUnwindHandler(&unwindLabel); | - |
| 375 | }executed 825 times by 5 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qqmlecmascript
| 825 |
| 376 | | - |
| 377 | virtual bool requiresUnwind() override { | - |
| 378 | return !insideFinally;executed 1350 times by 5 tests: return !insideFinally;Executed by:- tst_ecmascripttests
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qqmlecmascript
| 1350 |
| 379 | } | - |
| 380 | | - |
| 381 | BytecodeGenerator::ExceptionHandler *unwindHandler() override { | - |
| 382 | return insideFinally ? parentUnwindHandler() : ControlFlowUnwind::unwindHandler();executed 513 times by 5 tests: return insideFinally ? parentUnwindHandler() : ControlFlowUnwind::unwindHandler();Executed by:- tst_ecmascripttests
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qqmlecmascript
| 513 |
| 383 | } | - |
| 384 | | - |
| 385 | ~ControlFlowFinally() { | - |
| 386 | | - |
| 387 | unwindLabel.link(); | - |
| 388 | | - |
| 389 | Codegen::RegisterScope scope(cg); | - |
| 390 | | - |
| 391 | insideFinally = true; | - |
| 392 | int returnValueTemp = -1; | - |
| 393 | if (cg->requiresReturnValue) {| TRUE | evaluated 134 times by 3 testsEvaluated by:- tst_ecmascripttests
- tst_qjsengine
- tst_qqmlecmascript
| | FALSE | evaluated 692 times by 3 testsEvaluated by:- tst_ecmascripttests
- tst_parserstress
- tst_qjsvalue
|
| 134-692 |
| 394 | returnValueTemp = generator()->newRegister(); | - |
| 395 | Instruction::MoveReg move; | - |
| 396 | move.srcReg = cg->_returnAddress; | - |
| 397 | move.destReg = returnValueTemp; | - |
| 398 | generator()->addInstruction(move); | - |
| 399 | }executed 134 times by 3 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_qjsengine
- tst_qqmlecmascript
| 134 |
| 400 | int exceptionTemp = generator()->newRegister(); | - |
| 401 | Instruction::GetException instr; | - |
| 402 | generator()->addInstruction(instr); | - |
| 403 | Reference::fromStackSlot(cg, exceptionTemp).storeConsumeAccumulator(); | - |
| 404 | | - |
| 405 | generator()->setUnwindHandler(parentUnwindHandler()); | - |
| 406 | cg->statement(finally->statement); | - |
| 407 | insideFinally = false; | - |
| 408 | | - |
| 409 | if (cg->requiresReturnValue) {| TRUE | evaluated 134 times by 3 testsEvaluated by:- tst_ecmascripttests
- tst_qjsengine
- tst_qqmlecmascript
| | FALSE | evaluated 692 times by 3 testsEvaluated by:- tst_ecmascripttests
- tst_parserstress
- tst_qjsvalue
|
| 134-692 |
| 410 | Instruction::MoveReg move; | - |
| 411 | move.srcReg = returnValueTemp; | - |
| 412 | move.destReg = cg->_returnAddress; | - |
| 413 | generator()->addInstruction(move); | - |
| 414 | }executed 134 times by 3 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_qjsengine
- tst_qqmlecmascript
| 134 |
| 415 | Reference::fromStackSlot(cg, exceptionTemp).loadInAccumulator(); | - |
| 416 | Instruction::SetException setException; | - |
| 417 | generator()->addInstruction(setException); | - |
| 418 | | - |
| 419 | emitUnwindHandler(); | - |
| 420 | }executed 826 times by 5 tests: end of blockExecuted by:- tst_ecmascripttests
- tst_parserstress
- tst_qjsengine
- tst_qjsvalue
- tst_qqmlecmascript
| 826 |
| 421 | }; | - |
| 422 | | - |
| 423 | } } | - |
| 424 | | - |
| 425 | QT_END_NAMESPACE | - |
| 426 | | - |
| 427 | #endif | - |
| | |