diff options
author | Lars Knoll <lars.knoll@digia.com> | 2013-10-18 15:42:17 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-10-29 10:38:45 +0100 |
commit | 5229a8b259286c9ea61036fd6b4bd0039104a206 (patch) | |
tree | 277d62ecedeaf703ce778d86f8cbcb94b9a57fe2 /src/qml/jsruntime/qv4context_p.h | |
parent | 570686d42176af193b15abfe4b7bc17d831f4cf6 (diff) |
Rework exception handling
Start the work to remove c++ exceptions from our JS
exception handling. Rather rely on engine->hasException.
Check the flag after we return from any runtime call in the
JIT.
Implement new try/catch handling code in qv4codegen and
for the JIT that doesn't rely on exceptions. As an added
bonus, we can remove the Try statement in the IR.
Change-Id: Ic95addd6ae03371c43c47e04cac26afdce23a061
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4context_p.h')
-rw-r--r-- | src/qml/jsruntime/qv4context_p.h | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/src/qml/jsruntime/qv4context_p.h b/src/qml/jsruntime/qv4context_p.h index e5b0c431ca..e85350451b 100644 --- a/src/qml/jsruntime/qv4context_p.h +++ b/src/qml/jsruntime/qv4context_p.h @@ -127,21 +127,20 @@ struct Q_QML_EXPORT ExecutionContext void createMutableBinding(const StringRef name, bool deletable); - void Q_NORETURN throwError(const QV4::ValueRef value); - void Q_NORETURN throwError(const QString &message); - void Q_NORETURN throwSyntaxError(const QString &message); - void Q_NORETURN throwSyntaxError(const QString &message, const QString &fileName, int line, int column); - void Q_NORETURN throwTypeError(); - void Q_NORETURN throwTypeError(const QString &message); - void Q_NORETURN throwReferenceError(const ValueRef value); - void Q_NORETURN throwReferenceError(const QString &value, const QString &fileName, int line, int column); - void Q_NORETURN throwRangeError(const ValueRef value); - void Q_NORETURN throwURIError(const ValueRef msg); - void Q_NORETURN throwUnimplemented(const QString &message); + void throwError(const QV4::ValueRef value); + void throwError(const QString &message); + void throwSyntaxError(const QString &message); + void throwSyntaxError(const QString &message, const QString &fileName, int line, int column); + void throwTypeError(); + void throwTypeError(const QString &message); + void throwReferenceError(const ValueRef value); + void throwReferenceError(const QString &value, const QString &fileName, int line, int column); + void throwRangeError(const ValueRef value); + void throwURIError(const ValueRef msg); + void throwUnimplemented(const QString &message); void setProperty(const StringRef name, const ValueRef value); ReturnedValue getProperty(const StringRef name); - ReturnedValue getPropertyNoThrow(const StringRef name); ReturnedValue getPropertyAndBase(const StringRef name, ObjectRef base); bool deleteProperty(const StringRef name); |