aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4context_p.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2013-10-18 15:42:17 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-10-29 10:38:45 +0100
commit5229a8b259286c9ea61036fd6b4bd0039104a206 (patch)
tree277d62ecedeaf703ce778d86f8cbcb94b9a57fe2 /src/qml/jsruntime/qv4context_p.h
parent570686d42176af193b15abfe4b7bc17d831f4cf6 (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.h23
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);