namespace QQmlJS {
namespace VM {
+struct SyntaxErrorObject;
+
struct ErrorObject: Object {
enum ErrorType {
Error,
ErrorObject(ExecutionEngine* engine, const Value &message);
- virtual struct SyntaxErrorObject *asSyntaxError() { return 0; }
+ SyntaxErrorObject *asSyntaxError();
protected:
void setNameProperty(ExecutionContext *ctx);
SyntaxErrorObject(ExecutionContext *ctx, DiagnosticMessage *msg);
~SyntaxErrorObject() { delete msg; }
- virtual SyntaxErrorObject *asSyntaxError() { return this; }
DiagnosticMessage *message() { return msg; }
private:
};
+inline SyntaxErrorObject *ErrorObject::asSyntaxError()
+{
+ return subtype == SyntaxError ? static_cast<SyntaxErrorObject *>(this) : 0;
+}
+
} // end of namespace VM
} // end of namespace QQmlJS