aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/qml/jsruntime/qv4engine.cpp2
-rw-r--r--src/qml/jsruntime/qv4errorobject.cpp12
-rw-r--r--src/qml/jsruntime/qv4errorobject_p.h34
-rw-r--r--tests/auto/qml/ecmascripttests/TestExpectations19
-rw-r--r--tests/auto/qml/qjsvalue/tst_qjsvalue.cpp2
5 files changed, 28 insertions, 41 deletions
diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp
index a776e7d14a..07340d502f 100644
--- a/src/qml/jsruntime/qv4engine.cpp
+++ b/src/qml/jsruntime/qv4engine.cpp
@@ -387,7 +387,7 @@ ExecutionEngine::ExecutionEngine(QJSEngine *jsEngine)
Q_ASSERT(index == ErrorObject::Index_LineNumber);
classes[Class_ErrorObjectWithMessage] = ic->addMember((str = newIdentifier(QStringLiteral("message")))->propertyKey(), Attr_Data|Attr_NotEnumerable, &index);
Q_ASSERT(index == ErrorObject::Index_Message);
- ic = newInternalClass(ErrorObject::staticVTable(), objectPrototype());
+ ic = newInternalClass(Object::staticVTable(), objectPrototype());
ic = ic->addMember(id_constructor()->propertyKey(), Attr_Data|Attr_NotEnumerable, &index);
Q_ASSERT(index == ErrorPrototype::Index_Constructor);
ic = ic->addMember((str = newIdentifier(QStringLiteral("message")))->propertyKey(), Attr_Data|Attr_NotEnumerable, &index);
diff --git a/src/qml/jsruntime/qv4errorobject.cpp b/src/qml/jsruntime/qv4errorobject.cpp
index e8b4e04e83..53c070898f 100644
--- a/src/qml/jsruntime/qv4errorobject.cpp
+++ b/src/qml/jsruntime/qv4errorobject.cpp
@@ -242,7 +242,7 @@ ReturnedValue ErrorCtor::virtualCall(const FunctionObject *f, const Value *, con
void Heap::EvalErrorCtor::init(QV4::ExecutionContext *scope)
{
- Heap::ErrorCtor::init(scope, QStringLiteral("EvalError"));
+ Heap::FunctionObject::init(scope, QStringLiteral("EvalError"));
}
ReturnedValue EvalErrorCtor::virtualCallAsConstructor(const FunctionObject *f, const Value *argv, int argc, const Value *)
@@ -253,7 +253,7 @@ ReturnedValue EvalErrorCtor::virtualCallAsConstructor(const FunctionObject *f, c
void Heap::RangeErrorCtor::init(QV4::ExecutionContext *scope)
{
- Heap::ErrorCtor::init(scope, QStringLiteral("RangeError"));
+ Heap::FunctionObject::init(scope, QStringLiteral("RangeError"));
}
ReturnedValue RangeErrorCtor::virtualCallAsConstructor(const FunctionObject *f, const Value *argv, int argc, const Value *)
@@ -264,7 +264,7 @@ ReturnedValue RangeErrorCtor::virtualCallAsConstructor(const FunctionObject *f,
void Heap::ReferenceErrorCtor::init(QV4::ExecutionContext *scope)
{
- Heap::ErrorCtor::init(scope, QStringLiteral("ReferenceError"));
+ Heap::FunctionObject::init(scope, QStringLiteral("ReferenceError"));
}
ReturnedValue ReferenceErrorCtor::virtualCallAsConstructor(const FunctionObject *f, const Value *argv, int argc, const Value *)
@@ -275,7 +275,7 @@ ReturnedValue ReferenceErrorCtor::virtualCallAsConstructor(const FunctionObject
void Heap::SyntaxErrorCtor::init(QV4::ExecutionContext *scope)
{
- Heap::ErrorCtor::init(scope, QStringLiteral("SyntaxError"));
+ Heap::FunctionObject::init(scope, QStringLiteral("SyntaxError"));
}
ReturnedValue SyntaxErrorCtor::virtualCallAsConstructor(const FunctionObject *f, const Value *argv, int argc, const Value *)
@@ -286,7 +286,7 @@ ReturnedValue SyntaxErrorCtor::virtualCallAsConstructor(const FunctionObject *f,
void Heap::TypeErrorCtor::init(QV4::ExecutionContext *scope)
{
- Heap::ErrorCtor::init(scope, QStringLiteral("TypeError"));
+ Heap::FunctionObject::init(scope, QStringLiteral("TypeError"));
}
ReturnedValue TypeErrorCtor::virtualCallAsConstructor(const FunctionObject *f, const Value *argv, int argc, const Value *)
@@ -297,7 +297,7 @@ ReturnedValue TypeErrorCtor::virtualCallAsConstructor(const FunctionObject *f, c
void Heap::URIErrorCtor::init(QV4::ExecutionContext *scope)
{
- Heap::ErrorCtor::init(scope, QStringLiteral("URIError"));
+ Heap::FunctionObject::init(scope, QStringLiteral("URIError"));
}
ReturnedValue URIErrorCtor::virtualCallAsConstructor(const FunctionObject *f, const Value *argv, int argc, const Value *)
diff --git a/src/qml/jsruntime/qv4errorobject_p.h b/src/qml/jsruntime/qv4errorobject_p.h
index 90ef4dd842..fd042ca8f0 100644
--- a/src/qml/jsruntime/qv4errorobject_p.h
+++ b/src/qml/jsruntime/qv4errorobject_p.h
@@ -115,7 +115,7 @@ struct URIErrorObject : ErrorObject {
void init(const Value &message);
};
-struct ErrorCtor : Heap::FunctionObject {
+struct ErrorCtor : FunctionObject {
void init(QV4::ExecutionContext *scope);
void init(QV4::ExecutionContext *scope, const QString &name);
};
@@ -235,48 +235,54 @@ struct ErrorCtor: FunctionObject
struct EvalErrorCtor: ErrorCtor
{
- V4_OBJECT2(EvalErrorCtor, ErrorCtor)
+ V4_OBJECT2(EvalErrorCtor, FunctionObject)
+ V4_PROTOTYPE(errorCtor)
static ReturnedValue virtualCallAsConstructor(const FunctionObject *f, const Value *argv, int argc, const Value *);
};
struct RangeErrorCtor: ErrorCtor
{
- V4_OBJECT2(RangeErrorCtor, ErrorCtor)
+ V4_OBJECT2(RangeErrorCtor, FunctionObject)
+ V4_PROTOTYPE(errorCtor)
static ReturnedValue virtualCallAsConstructor(const FunctionObject *f, const Value *argv, int argc, const Value *);
};
struct ReferenceErrorCtor: ErrorCtor
{
- V4_OBJECT2(ReferenceErrorCtor, ErrorCtor)
+ V4_OBJECT2(ReferenceErrorCtor, FunctionObject)
+ V4_PROTOTYPE(errorCtor)
static ReturnedValue virtualCallAsConstructor(const FunctionObject *f, const Value *argv, int argc, const Value *);
};
struct SyntaxErrorCtor: ErrorCtor
{
- V4_OBJECT2(SyntaxErrorCtor, ErrorCtor)
+ V4_OBJECT2(SyntaxErrorCtor, FunctionObject)
+ V4_PROTOTYPE(errorCtor)
static ReturnedValue virtualCallAsConstructor(const FunctionObject *f, const Value *argv, int argc, const Value *);
};
struct TypeErrorCtor: ErrorCtor
{
- V4_OBJECT2(TypeErrorCtor, ErrorCtor)
+ V4_OBJECT2(TypeErrorCtor, FunctionObject)
+ V4_PROTOTYPE(errorCtor)
static ReturnedValue virtualCallAsConstructor(const FunctionObject *f, const Value *argv, int argc, const Value *);
};
struct URIErrorCtor: ErrorCtor
{
- V4_OBJECT2(URIErrorCtor, ErrorCtor)
+ V4_OBJECT2(URIErrorCtor, FunctionObject)
+ V4_PROTOTYPE(errorCtor)
static ReturnedValue virtualCallAsConstructor(const FunctionObject *f, const Value *argv, int argc, const Value *);
};
-struct ErrorPrototype : ErrorObject
+struct ErrorPrototype : Object
{
enum {
Index_Constructor = 0,
@@ -289,32 +295,32 @@ struct ErrorPrototype : ErrorObject
static ReturnedValue method_toString(const FunctionObject *, const Value *thisObject, const Value *argv, int argc);
};
-struct EvalErrorPrototype : ErrorObject
+struct EvalErrorPrototype : Object
{
void init(ExecutionEngine *engine, Object *ctor) { ErrorPrototype::init(engine, ctor, this, Heap::ErrorObject::EvalError); }
};
-struct RangeErrorPrototype : ErrorObject
+struct RangeErrorPrototype : Object
{
void init(ExecutionEngine *engine, Object *ctor) { ErrorPrototype::init(engine, ctor, this, Heap::ErrorObject::RangeError); }
};
-struct ReferenceErrorPrototype : ErrorObject
+struct ReferenceErrorPrototype : Object
{
void init(ExecutionEngine *engine, Object *ctor) { ErrorPrototype::init(engine, ctor, this, Heap::ErrorObject::ReferenceError); }
};
-struct SyntaxErrorPrototype : ErrorObject
+struct SyntaxErrorPrototype : Object
{
void init(ExecutionEngine *engine, Object *ctor) { ErrorPrototype::init(engine, ctor, this, Heap::ErrorObject::SyntaxError); }
};
-struct TypeErrorPrototype : ErrorObject
+struct TypeErrorPrototype : Object
{
void init(ExecutionEngine *engine, Object *ctor) { ErrorPrototype::init(engine, ctor, this, Heap::ErrorObject::TypeError); }
};
-struct URIErrorPrototype : ErrorObject
+struct URIErrorPrototype : Object
{
void init(ExecutionEngine *engine, Object *ctor) { ErrorPrototype::init(engine, ctor, this, Heap::ErrorObject::URIError); }
};
diff --git a/tests/auto/qml/ecmascripttests/TestExpectations b/tests/auto/qml/ecmascripttests/TestExpectations
index 186e4f6320..5ddfc02b44 100644
--- a/tests/auto/qml/ecmascripttests/TestExpectations
+++ b/tests/auto/qml/ecmascripttests/TestExpectations
@@ -378,7 +378,6 @@ built-ins/Date/prototype/toUTCString/format.js fails
built-ins/Date/prototype/toUTCString/month-names.js fails
built-ins/Date/subclassing.js fails
built-ins/Error/proto-from-ctor-realm.js fails
-built-ins/Error/prototype/S15.11.4_A2.js fails
built-ins/Function/call-bind-this-realm-undef.js fails
built-ins/Function/call-bind-this-realm-value.js fails
built-ins/Function/internals/Call/class-ctor-realm.js fails
@@ -446,18 +445,6 @@ built-ins/Map/prototype/size/returns-count-of-present-values-by-iterable.js fail
built-ins/Map/prototype/values/does-not-have-mapdata-internal-slot-weakmap.js fails
built-ins/Math/max/zeros.js fails
built-ins/Math/round/S15.8.2.15_A7.js fails
-built-ins/NativeErrors/EvalError/proto.js fails
-built-ins/NativeErrors/EvalError/prototype/not-error-object.js fails
-built-ins/NativeErrors/RangeError/proto.js fails
-built-ins/NativeErrors/RangeError/prototype/not-error-object.js fails
-built-ins/NativeErrors/ReferenceError/proto.js fails
-built-ins/NativeErrors/ReferenceError/prototype/not-error-object.js fails
-built-ins/NativeErrors/SyntaxError/proto.js fails
-built-ins/NativeErrors/SyntaxError/prototype/not-error-object.js fails
-built-ins/NativeErrors/TypeError/proto.js fails
-built-ins/NativeErrors/TypeError/prototype/not-error-object.js fails
-built-ins/NativeErrors/URIError/proto.js fails
-built-ins/NativeErrors/URIError/prototype/not-error-object.js fails
built-ins/Number/isFinite/arg-is-not-number.js fails
built-ins/Number/isNaN/arg-is-not-number.js fails
built-ins/Number/proto-from-ctor-realm.js fails
@@ -510,12 +497,6 @@ built-ins/Object/getOwnPropertyDescriptors/proxy-undefined-descriptor.js fails
built-ins/Object/getOwnPropertyDescriptors/symbols-included.js fails
built-ins/Object/getOwnPropertyDescriptors/tamper-with-global-object.js fails
built-ins/Object/getOwnPropertyDescriptors/tamper-with-object-keys.js fails
-built-ins/Object/getPrototypeOf/15.2.3.2-2-12.js fails
-built-ins/Object/getPrototypeOf/15.2.3.2-2-13.js fails
-built-ins/Object/getPrototypeOf/15.2.3.2-2-14.js fails
-built-ins/Object/getPrototypeOf/15.2.3.2-2-15.js fails
-built-ins/Object/getPrototypeOf/15.2.3.2-2-16.js fails
-built-ins/Object/getPrototypeOf/15.2.3.2-2-17.js fails
built-ins/Object/isExtensible/15.2.3.13-1-1.js fails
built-ins/Object/isExtensible/15.2.3.13-1-2.js fails
built-ins/Object/isFrozen/15.2.3.12-1-1.js fails
diff --git a/tests/auto/qml/qjsvalue/tst_qjsvalue.cpp b/tests/auto/qml/qjsvalue/tst_qjsvalue.cpp
index 6384369ef0..f9718e3699 100644
--- a/tests/auto/qml/qjsvalue/tst_qjsvalue.cpp
+++ b/tests/auto/qml/qjsvalue/tst_qjsvalue.cpp
@@ -1259,7 +1259,7 @@ void tst_QJSValue::isError_propertiesOfGlobalObject()
for (int i = 0; i < errors.size(); ++i) {
QJSValue ctor = eng.globalObject().property(errors.at(i));
QVERIFY(ctor.isCallable());
- QVERIFY(ctor.property("prototype").isError());
+ QVERIFY(ctor.property("prototype").isObject());
}
}