diff options
author | Lars Knoll <lars.knoll@theqtcompany.com> | 2014-11-06 17:04:39 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2014-11-08 23:26:50 +0100 |
commit | 34fa0f8fec639444bd6ba2091b6f6623128471ce (patch) | |
tree | 3b9bb3f9189f995d6ed9bb547531d45d65d3a91a /src/qml/jsruntime/qv4errorobject_p.h | |
parent | 04bf728d7d02c56f9f526bf0b71b31690a5e9e92 (diff) |
Move Data of error objects into the Heap namespace
Change-Id: I893095107eaadf38959a4e489d92ef66b2f9e81d
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4errorobject_p.h')
-rw-r--r-- | src/qml/jsruntime/qv4errorobject_p.h | 157 |
1 files changed, 90 insertions, 67 deletions
diff --git a/src/qml/jsruntime/qv4errorobject_p.h b/src/qml/jsruntime/qv4errorobject_p.h index 3d438352aa..71dcecedf8 100644 --- a/src/qml/jsruntime/qv4errorobject_p.h +++ b/src/qml/jsruntime/qv4errorobject_p.h @@ -42,11 +42,9 @@ namespace QV4 { struct SyntaxErrorObject; -struct ErrorObject: Object { - enum { - IsErrorObject = true - }; +namespace Heap { +struct ErrorObject : Object { enum ErrorType { Error, EvalError, @@ -56,15 +54,81 @@ struct ErrorObject: Object { TypeError, URIError }; - struct Data : Heap::Object { - Data(InternalClass *ic); - Data(InternalClass *ic, const ValueRef message, ErrorType t = Error); - Data(InternalClass *ic, const QString &message, ErrorType t = Error); - Data(InternalClass *ic, const QString &message, const QString &fileName, int line, int column, ErrorType t = Error); - StackTrace stackTrace; - String *stack; + + ErrorObject(InternalClass *ic); + ErrorObject(InternalClass *ic, const ValueRef message, ErrorType t = Error); + ErrorObject(InternalClass *ic, const QString &message, ErrorType t = Error); + ErrorObject(InternalClass *ic, const QString &message, const QString &fileName, int line, int column, ErrorType t = Error); + StackTrace stackTrace; + QV4::String *stack; +}; + +struct EvalErrorObject : ErrorObject { + EvalErrorObject(ExecutionEngine *engine, const ValueRef message); +}; + +struct RangeErrorObject : ErrorObject { + RangeErrorObject(ExecutionEngine *engine, const ValueRef message); + RangeErrorObject(ExecutionEngine *engine, const QString &msg); +}; + +struct ReferenceErrorObject : ErrorObject { + ReferenceErrorObject(ExecutionEngine *engine, const ValueRef message); + ReferenceErrorObject(ExecutionEngine *engine, const QString &msg); + ReferenceErrorObject(ExecutionEngine *engine, const QString &msg, const QString &fileName, int lineNumber, int columnNumber); +}; + +struct SyntaxErrorObject : ErrorObject { + SyntaxErrorObject(ExecutionEngine *engine, const ValueRef message); + SyntaxErrorObject(ExecutionEngine *engine, const QString &msg, const QString &fileName, int lineNumber, int columnNumber); +}; + +struct TypeErrorObject : ErrorObject { + TypeErrorObject(ExecutionEngine *engine, const ValueRef message); + TypeErrorObject(ExecutionEngine *engine, const QString &msg); +}; + +struct URIErrorObject : ErrorObject { + URIErrorObject(ExecutionEngine *engine, const ValueRef message); +}; + +struct ErrorCtor : Heap::FunctionObject { + ErrorCtor(QV4::ExecutionContext *scope); + ErrorCtor(QV4::ExecutionContext *scope, const QString &name); +}; + +struct EvalErrorCtor : ErrorCtor { + EvalErrorCtor(QV4::ExecutionContext *scope); +}; + +struct RangeErrorCtor : ErrorCtor { + RangeErrorCtor(QV4::ExecutionContext *scope); +}; + +struct ReferenceErrorCtor : ErrorCtor { + ReferenceErrorCtor(QV4::ExecutionContext *scope); +}; + +struct SyntaxErrorCtor : ErrorCtor { + SyntaxErrorCtor(QV4::ExecutionContext *scope); +}; + +struct TypeErrorCtor : ErrorCtor { + TypeErrorCtor(QV4::ExecutionContext *scope); +}; + +struct URIErrorCtor : ErrorCtor { + URIErrorCtor(QV4::ExecutionContext *scope); +}; + +} + +struct ErrorObject: Object { + enum { + IsErrorObject = true }; - V4_OBJECT(Object) + + V4_OBJECT2(ErrorObject, Object) Q_MANAGED_TYPE(ErrorObject) SyntaxErrorObject *asSyntaxError(); @@ -80,55 +144,32 @@ inline ErrorObject *value_cast(const Value &v) { } struct EvalErrorObject: ErrorObject { - struct Data : ErrorObject::Data { - Data(ExecutionEngine *engine, const ValueRef message); - }; + typedef Heap::EvalErrorObject Data; }; struct RangeErrorObject: ErrorObject { - struct Data : ErrorObject::Data { - Data(ExecutionEngine *engine, const ValueRef message); - Data(ExecutionEngine *engine, const QString &msg); - }; + typedef Heap::RangeErrorObject Data; }; struct ReferenceErrorObject: ErrorObject { - struct Data : ErrorObject::Data { - Data(ExecutionEngine *engine, const ValueRef message); - Data(ExecutionEngine *engine, const QString &msg); - Data(ExecutionEngine *engine, const QString &msg, const QString &fileName, int lineNumber, int columnNumber); - }; + typedef Heap::ReferenceErrorObject Data; }; struct SyntaxErrorObject: ErrorObject { - struct Data : ErrorObject::Data { - Data(ExecutionEngine *engine, const ValueRef message); - Data(ExecutionEngine *engine, const QString &msg, const QString &fileName, int lineNumber, int columnNumber); - }; - V4_OBJECT(ErrorObject) + V4_OBJECT2(SyntaxErrorObject, ErrorObject) }; struct TypeErrorObject: ErrorObject { - struct Data : ErrorObject::Data { - Data(ExecutionEngine *engine, const ValueRef message); - Data(ExecutionEngine *engine, const QString &msg); - }; + typedef Heap::TypeErrorObject Data; }; struct URIErrorObject: ErrorObject { - struct Data : ErrorObject::Data { - Data(ExecutionEngine *engine, const ValueRef message); - }; + typedef Heap::URIErrorObject Data; }; struct ErrorCtor: FunctionObject { - struct Data : Heap::FunctionObject { - Data(ExecutionContext *scope); - Data(ExecutionContext *scope, const QString &name); - }; - - V4_OBJECT(FunctionObject) + V4_OBJECT2(ErrorCtor, FunctionObject) static ReturnedValue construct(Managed *, CallData *callData); static ReturnedValue call(Managed *that, CallData *callData); @@ -136,60 +177,42 @@ struct ErrorCtor: FunctionObject struct EvalErrorCtor: ErrorCtor { - struct Data : ErrorCtor::Data { - Data(ExecutionContext *scope); - }; - V4_OBJECT(ErrorCtor) + V4_OBJECT2(EvalErrorCtor, ErrorCtor) static ReturnedValue construct(Managed *m, CallData *callData); }; struct RangeErrorCtor: ErrorCtor { - struct Data : ErrorCtor::Data { - Data(ExecutionContext *scope); - }; - V4_OBJECT(ErrorCtor) + V4_OBJECT2(RangeErrorCtor, ErrorCtor) static ReturnedValue construct(Managed *m, CallData *callData); }; struct ReferenceErrorCtor: ErrorCtor { - struct Data : ErrorCtor::Data { - Data(ExecutionContext *scope); - }; - V4_OBJECT(ErrorCtor) + V4_OBJECT2(ReferenceErrorCtor, ErrorCtor) static ReturnedValue construct(Managed *m, CallData *callData); }; struct SyntaxErrorCtor: ErrorCtor { - struct Data : ErrorCtor::Data { - Data(ExecutionContext *scope); - }; - V4_OBJECT(ErrorCtor) + V4_OBJECT2(SyntaxErrorCtor, ErrorCtor) static ReturnedValue construct(Managed *m, CallData *callData); }; struct TypeErrorCtor: ErrorCtor { - struct Data : ErrorCtor::Data { - Data(ExecutionContext *scope); - }; - V4_OBJECT(ErrorCtor) + V4_OBJECT2(TypeErrorCtor, ErrorCtor) static ReturnedValue construct(Managed *m, CallData *callData); }; struct URIErrorCtor: ErrorCtor { - struct Data : ErrorCtor::Data { - Data(ExecutionContext *scope); - }; - V4_OBJECT(ErrorCtor) + V4_OBJECT2(URIErrorCtor, ErrorCtor) static ReturnedValue construct(Managed *m, CallData *callData); }; @@ -236,7 +259,7 @@ struct URIErrorPrototype : ErrorObject inline SyntaxErrorObject *ErrorObject::asSyntaxError() { - return subtype() == SyntaxError ? static_cast<SyntaxErrorObject *>(this) : 0; + return subtype() == QV4::Heap::ErrorObject::SyntaxError ? static_cast<SyntaxErrorObject *>(this) : 0; } } |