diff options
-rw-r--r-- | src/qml/jsruntime/qv4engine.cpp | 2 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4errorobject.cpp | 12 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4errorobject_p.h | 34 | ||||
-rw-r--r-- | tests/auto/qml/ecmascripttests/TestExpectations | 19 | ||||
-rw-r--r-- | tests/auto/qml/qjsvalue/tst_qjsvalue.cpp | 2 |
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()); } } |