aboutsummaryrefslogtreecommitdiffstats
path: root/src/v4/qv4errorobject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/v4/qv4errorobject.cpp')
-rw-r--r--src/v4/qv4errorobject.cpp51
1 files changed, 14 insertions, 37 deletions
diff --git a/src/v4/qv4errorobject.cpp b/src/v4/qv4errorobject.cpp
index 51a0930524..b69262e77c 100644
--- a/src/v4/qv4errorobject.cpp
+++ b/src/v4/qv4errorobject.cpp
@@ -73,96 +73,74 @@
using namespace QQmlJS::VM;
-ErrorObject::ErrorObject(ExecutionEngine* engine, const Value &message)
- : Object(engine)
+ErrorObject::ErrorObject(ExecutionContext *context, const Value &message, ErrorType t)
+ : Object(context->engine)
{
type = Type_ErrorObject;
- subtype = Error;
+ subtype = t;
if (!message.isUndefined())
- defineDefaultProperty(engine->newString(QStringLiteral("message")), message);
-}
-
-void ErrorObject::setNameProperty(ExecutionContext *ctx)
-{
- defineDefaultProperty(ctx, QLatin1String("name"), Value::fromString(ctx, className()));
+ defineDefaultProperty(context->engine->newString(QStringLiteral("message")), message);
+ defineDefaultProperty(context, QLatin1String("name"), Value::fromString(context, className()));
}
DEFINE_MANAGED_VTABLE(SyntaxErrorObject);
SyntaxErrorObject::SyntaxErrorObject(ExecutionContext *ctx, DiagnosticMessage *message)
- : ErrorObject(ctx->engine, message ? Value::fromString(message->buildFullMessage(ctx)) : ctx->argument(0))
+ : ErrorObject(ctx, message ? Value::fromString(message->buildFullMessage(ctx)) : ctx->argument(0), SyntaxError)
, msg(message)
{
vtbl = &static_vtbl;
- subtype = SyntaxError;
prototype = ctx->engine->syntaxErrorPrototype;
- setNameProperty(ctx);
}
EvalErrorObject::EvalErrorObject(ExecutionContext *ctx, const Value &message)
- : ErrorObject(ctx->engine, message)
+ : ErrorObject(ctx, message, EvalError)
{
- subtype = EvalError;
- setNameProperty(ctx);
prototype = ctx->engine->evalErrorPrototype;
}
RangeErrorObject::RangeErrorObject(ExecutionContext *ctx, const Value &message)
- : ErrorObject(ctx->engine, message)
+ : ErrorObject(ctx, message, RangeError)
{
- subtype = RangeError;
- setNameProperty(ctx);
prototype = ctx->engine->rangeErrorPrototype;
}
RangeErrorObject::RangeErrorObject(ExecutionContext *ctx, const QString &message)
- : ErrorObject(ctx->engine, Value::fromString(ctx,message))
+ : ErrorObject(ctx, Value::fromString(ctx,message), RangeError)
{
- subtype = RangeError;
- setNameProperty(ctx);
prototype = ctx->engine->rangeErrorPrototype;
}
ReferenceErrorObject::ReferenceErrorObject(ExecutionContext *ctx, const Value &message)
- : ErrorObject(ctx->engine, message)
+ : ErrorObject(ctx, message, ReferenceError)
{
- subtype = ReferenceError;
- setNameProperty(ctx);
prototype = ctx->engine->referenceErrorPrototype;
}
ReferenceErrorObject::ReferenceErrorObject(ExecutionContext *ctx, const QString &message)
- : ErrorObject(ctx->engine, Value::fromString(ctx,message))
+ : ErrorObject(ctx, Value::fromString(ctx,message), ReferenceError)
{
- subtype = ReferenceError;
- setNameProperty(ctx);
prototype = ctx->engine->referenceErrorPrototype;
}
TypeErrorObject::TypeErrorObject(ExecutionContext *ctx, const Value &message)
- : ErrorObject(ctx->engine, message)
+ : ErrorObject(ctx, message, TypeError)
{
- subtype = TypeError;
- setNameProperty(ctx);
prototype = ctx->engine->typeErrorPrototype;
}
TypeErrorObject::TypeErrorObject(ExecutionContext *ctx, const QString &message)
- : ErrorObject(ctx->engine, Value::fromString(ctx,message))
+ : ErrorObject(ctx, Value::fromString(ctx,message), TypeError)
{
- subtype = TypeError;
- setNameProperty(ctx);
prototype = ctx->engine->typeErrorPrototype;
}
URIErrorObject::URIErrorObject(ExecutionContext *ctx, const Value &message)
- : ErrorObject(ctx->engine, message)
+ : ErrorObject(ctx, message, URIError)
{
- subtype = URIError;
- setNameProperty(ctx);
prototype = ctx->engine->uRIErrorPrototype;
}
@@ -227,7 +205,6 @@ void ErrorPrototype::init(ExecutionContext *ctx, const Value &ctor, Object *obj)
obj->defineDefaultProperty(ctx, QStringLiteral("constructor"), ctor);
obj->defineDefaultProperty(ctx, QStringLiteral("toString"), method_toString, 0);
obj->defineDefaultProperty(ctx, QStringLiteral("message"), Value::fromString(ctx, QString()));
- obj->defineDefaultProperty(ctx, QStringLiteral("name"), Value::fromString(ctx, QStringLiteral("Error")));
}
Value ErrorPrototype::method_toString(SimpleCallContext *ctx)