diff options
author | Erik Verbruggen <erik.verbruggen@digia.com> | 2012-11-28 11:00:23 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@digia.com> | 2012-11-28 12:31:20 +0100 |
commit | 4bd20c2ac36c59eb72acc71bc78ddbc058199666 (patch) | |
tree | ecf040f99ed7872ab578c4b3984204350c88ba4e /qmljs_objects.h | |
parent | 61460c785907049567120e07dcadd714fff93cdb (diff) |
Throw a SyntaxError instead of printing an error message.
Change-Id: I94ef8a4f2bea80bc3689b104e381a9dc134439fa
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'qmljs_objects.h')
-rw-r--r-- | qmljs_objects.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/qmljs_objects.h b/qmljs_objects.h index 25790f457e..0b6f68992b 100644 --- a/qmljs_objects.h +++ b/qmljs_objects.h @@ -566,6 +566,8 @@ struct ErrorObject: Object { virtual ErrorObject *asErrorObject() { return this; } virtual Value __get__(ExecutionContext *ctx, String *name); + virtual struct SyntaxErrorObject *asSyntaxError() { return 0; } + protected: void setNameProperty(ExecutionContext *ctx); }; @@ -589,9 +591,14 @@ struct ReferenceErrorObject: ErrorObject { }; struct SyntaxErrorObject: ErrorObject { - SyntaxErrorObject(ExecutionContext *ctx) - : ErrorObject(ctx->argument(0)) { setNameProperty(ctx); } + SyntaxErrorObject(ExecutionContext *ctx, DiagnosticMessage *msg); virtual QString className() { return QStringLiteral("SyntaxError"); } + + virtual SyntaxErrorObject *asSyntaxError() { return this; } + DiagnosticMessage *message() { return msg; } + +private: + DiagnosticMessage *msg; }; struct TypeErrorObject: ErrorObject { |