aboutsummaryrefslogtreecommitdiffstats
path: root/qmljs_objects.h
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@digia.com>2012-11-28 11:00:23 +0100
committerLars Knoll <lars.knoll@digia.com>2012-11-28 12:31:20 +0100
commit4bd20c2ac36c59eb72acc71bc78ddbc058199666 (patch)
treeecf040f99ed7872ab578c4b3984204350c88ba4e /qmljs_objects.h
parent61460c785907049567120e07dcadd714fff93cdb (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.h11
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 {