diff options
author | Robin Burchell <robin.burchell@crimson.no> | 2017-02-04 13:01:35 +0100 |
---|---|---|
committer | Robin Burchell <robin.burchell@crimson.no> | 2017-02-07 10:14:30 +0000 |
commit | d6280f7729bfad1f28be56e6a8619d4d57387002 (patch) | |
tree | 7e9a3ff42642259eaaf6c64ed966c11eecb3d496 | |
parent | d4d460ffbd9dd7ebb7966ce43b94b708fb6200ce (diff) |
DatePrototype: In ES6, this is an Object, not a DateObject
Quoting 20.3.4:
The Date prototype object is the intrinsic object %DatePrototype%. The Date
prototype object is itself an ordinary object. It is not a Date instance
and does not have a [[DateValue]] internal slot.
Aside from Symbol failures (which we expect, because we don't have a
Symbol implementation at this time), Date.prototype only has these two
failures left in ES6:
setFullYear/new-value-time-clip in strict mode
setFullYear/new-value-time-clip in non-strict mode
setMonth/new-value-time-clip in strict mode
setMonth/new-value-time-clip in non-strict mode
These seem to be related to handling of overflow conditions.
Change-Id: I0b7f65fbef3f709ff56ecfc8e5a5d5cf974b7515
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
-rw-r--r-- | src/qml/jsruntime/qv4dateobject_p.h | 2 | ||||
-rw-r--r-- | tests/auto/qml/qjsengine/tst_qjsengine.cpp | 8 | ||||
-rw-r--r-- | tests/manual/v4/TestExpectations | 5 |
3 files changed, 5 insertions, 10 deletions
diff --git a/src/qml/jsruntime/qv4dateobject_p.h b/src/qml/jsruntime/qv4dateobject_p.h index a56d17f9b1..b32b2c3f66 100644 --- a/src/qml/jsruntime/qv4dateobject_p.h +++ b/src/qml/jsruntime/qv4dateobject_p.h @@ -112,7 +112,7 @@ struct DateCtor: FunctionObject static void call(const Managed *that, Scope &scope, CallData *); }; -struct DatePrototype: DateObject +struct DatePrototype: Object { void init(ExecutionEngine *engine, Object *ctor); diff --git a/tests/auto/qml/qjsengine/tst_qjsengine.cpp b/tests/auto/qml/qjsengine/tst_qjsengine.cpp index f83fe18621..65ce1bed45 100644 --- a/tests/auto/qml/qjsengine/tst_qjsengine.cpp +++ b/tests/auto/qml/qjsengine/tst_qjsengine.cpp @@ -566,10 +566,6 @@ void tst_QJSEngine::newDate() QCOMPARE(date.isDate(), true); QCOMPARE(date.isObject(), true); QVERIFY(!date.isCallable()); - // prototype should be Date.prototype - QVERIFY(!date.prototype().isUndefined()); - QCOMPARE(date.prototype().isDate(), true); - QCOMPARE(date.prototype().strictlyEquals(eng.evaluate("Date.prototype")), true); } { @@ -578,10 +574,6 @@ void tst_QJSEngine::newDate() QVERIFY(!date.isUndefined()); QCOMPARE(date.isDate(), true); QCOMPARE(date.isObject(), true); - // prototype should be Date.prototype - QVERIFY(!date.prototype().isUndefined()); - QCOMPARE(date.prototype().isDate(), true); - QCOMPARE(date.prototype().strictlyEquals(eng.evaluate("Date.prototype")), true); QCOMPARE(date.toDateTime(), dt); } diff --git a/tests/manual/v4/TestExpectations b/tests/manual/v4/TestExpectations index f9a898c43d..3d0ffd7116 100644 --- a/tests/manual/v4/TestExpectations +++ b/tests/manual/v4/TestExpectations @@ -128,9 +128,12 @@ S15.10.6.2_A9 failing S15.10.6.3_A9 failing S15.10.6.4_A9 failing -# Object.freeze(v) on a non-object returns v, no longer TypeError +# es6: Object.freeze(v) on a non-object returns v, no longer TypeError 15.2.3.9-1 failing 15.2.3.9-1-1 failing 15.2.3.9-1-2 failing 15.2.3.9-1-3 failing 15.2.3.9-1-4 failing + +# es6: Date.prototype is no longer a DateObject +15.9.5.40_1 failing |