mirror of
https://github.com/tc39/test262.git
synced 2025-07-30 01:14:56 +02:00
Compatibility with Hardened JavaScript (#4088)
This PR proposes changes to existing test262 tests to allow them to pass under Hardened JavaScript (see Secure ECMAScript proposal and Hardened JavaScript). Moddable uses Hardened JavaScript for JavaScript runtimes on resource constrained embedded devices, including those targeted by ECMA-419. The changes fall into four groups: 1. Replace use of new Date() with new Date(1970). Scripts running inside a Compartment cannot retrieve the current time, so new Date() throws but new Date(1970) succeeds. Very few tests need the current time, but instead simply need a Date instance. 2. Use Object.defineProperty instead of setting existing built-in properties directly, such as toString and toValue. In Hardened JavaScript, prototypes of built-in objects are frozen. Consequently, setting properties of an instance that exist on the prototype throw (Hardened JavaScript is always in strict mode). 3. Eliminate use of Math.random(). Scripts running inside a Compartment cannot generate random numbers. One test identified so far uses Math.random() in a way that can easily be replaced with a counter. 4. Narrow the scope of exception tests. Consider the following assert.throws(TypeError, () => { var s1 = new Date(); s1.toString = Boolean.prototype.toString; s1.toString(); }); This test passes, but only because new Date() fails by throwing a TypeError. If the invocation of the Date constructor is resolved by (1) above, then the assignment to toString fails as per (2) above. The script should be modified as below to ensure that assert.throws only tests the intended statement, s1.toString(). The modified script tests the intended functionality and passes under Hardened JavaScript var s1 = new Date(1970); Object.defineProperty(s1, "toString", { value: Boolean.prototype.toString }); assert.throws(TypeError, () => { s1.toString(); }); This is an initial PR to begin the process of adapting test262 for use with Hardened JavaScript. Further changes are expected, with the vast majority likely to fall into the four groups described above. Thank you to gibson042, kriskowal, and erights for their advice on this work.
This commit is contained in:
parent
3f805a1383
commit
e4f4abdcb2
@ -4,9 +4,11 @@
|
|||||||
/*---
|
/*---
|
||||||
esid: sec-ecmascript-standard-built-in-objects
|
esid: sec-ecmascript-standard-built-in-objects
|
||||||
desc: >
|
desc: >
|
||||||
new SubDate() instanceof Date
|
new SubDate(0) instanceof Date
|
||||||
template: default
|
template: default
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
//- builtin
|
//- builtin
|
||||||
Date
|
Date
|
||||||
|
//- args
|
||||||
|
0
|
||||||
|
@ -15,19 +15,19 @@ features: [Symbol]
|
|||||||
|
|
||||||
var date;
|
var date;
|
||||||
|
|
||||||
date = new Date();
|
date = new Date(0);
|
||||||
assert.sameValue(date.setYear(), NaN, 'return value (no argument)');
|
assert.sameValue(date.setYear(), NaN, 'return value (no argument)');
|
||||||
assert.sameValue(
|
assert.sameValue(
|
||||||
date.valueOf(), NaN, '[[DateValue]] internal slot (no argument)'
|
date.valueOf(), NaN, '[[DateValue]] internal slot (no argument)'
|
||||||
);
|
);
|
||||||
|
|
||||||
date = new Date();
|
date = new Date(0);
|
||||||
assert.sameValue(date.setYear(NaN), NaN, 'return value (literal NaN)');
|
assert.sameValue(date.setYear(NaN), NaN, 'return value (literal NaN)');
|
||||||
assert.sameValue(
|
assert.sameValue(
|
||||||
date.valueOf(), NaN, '[[DateValue]] internal slot (literal NaN)'
|
date.valueOf(), NaN, '[[DateValue]] internal slot (literal NaN)'
|
||||||
);
|
);
|
||||||
|
|
||||||
date = new Date();
|
date = new Date(0);
|
||||||
assert.sameValue(
|
assert.sameValue(
|
||||||
date.setYear('not a number'), NaN, 'return value (NaN from ToNumber)'
|
date.setYear('not a number'), NaN, 'return value (NaN from ToNumber)'
|
||||||
);
|
);
|
||||||
|
@ -12,7 +12,7 @@ info: |
|
|||||||
features: [Symbol]
|
features: [Symbol]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var date = new Date();
|
var date = new Date(0);
|
||||||
var symbol = Symbol('');
|
var symbol = Symbol('');
|
||||||
var year = {
|
var year = {
|
||||||
valueOf: function() {
|
valueOf: function() {
|
||||||
|
@ -7,4 +7,4 @@ es5id: 15.4.3.2-1-9
|
|||||||
description: Array.isArray applied to Date object
|
description: Array.isArray applied to Date object
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
assert.sameValue(Array.isArray(new Date()), false, 'Array.isArray(new Date()) must return false');
|
assert.sameValue(Array.isArray(new Date(0)), false, 'Array.isArray(new Date(0)) must return false');
|
||||||
|
@ -10,7 +10,7 @@ function callbackfn(val, idx, obj) {
|
|||||||
return !(obj instanceof Date);
|
return !(obj instanceof Date);
|
||||||
}
|
}
|
||||||
|
|
||||||
var obj = new Date();
|
var obj = new Date(0);
|
||||||
obj.length = 1;
|
obj.length = 1;
|
||||||
obj[0] = 1;
|
obj[0] = 1;
|
||||||
|
|
||||||
|
@ -31,10 +31,12 @@ Con.prototype = proto;
|
|||||||
|
|
||||||
var child = new Con();
|
var child = new Con();
|
||||||
|
|
||||||
child.toString = function() {
|
Object.defineProperty(child, "toString", {
|
||||||
toStringAccessed = true;
|
value: function() {
|
||||||
return '1';
|
toStringAccessed = true;
|
||||||
};
|
return '1';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
var obj = {
|
var obj = {
|
||||||
0: 12,
|
0: 12,
|
||||||
|
@ -8,7 +8,7 @@ description: Array.prototype.every - Date Object can be used as thisArg
|
|||||||
---*/
|
---*/
|
||||||
|
|
||||||
var accessed = false;
|
var accessed = false;
|
||||||
var objDate = new Date();
|
var objDate = new Date(0);
|
||||||
|
|
||||||
function callbackfn(val, idx, obj) {
|
function callbackfn(val, idx, obj) {
|
||||||
accessed = true;
|
accessed = true;
|
||||||
|
@ -10,7 +10,7 @@ var accessed = false;
|
|||||||
|
|
||||||
function callbackfn(val, idx, obj) {
|
function callbackfn(val, idx, obj) {
|
||||||
accessed = true;
|
accessed = true;
|
||||||
return new Date();
|
return new Date(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
assert([11].every(callbackfn), '[11].every(callbackfn) !== true');
|
assert([11].every(callbackfn), '[11].every(callbackfn) !== true');
|
||||||
|
@ -10,7 +10,7 @@ function callbackfn(val, idx, obj) {
|
|||||||
return obj instanceof Date;
|
return obj instanceof Date;
|
||||||
}
|
}
|
||||||
|
|
||||||
var obj = new Date();
|
var obj = new Date(0);
|
||||||
obj.length = 1;
|
obj.length = 1;
|
||||||
obj[0] = 1;
|
obj[0] = 1;
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ description: Array.prototype.filter - Date Object can be used as thisArg
|
|||||||
|
|
||||||
var accessed = false;
|
var accessed = false;
|
||||||
|
|
||||||
var objDate = new Date();
|
var objDate = new Date(0);
|
||||||
|
|
||||||
function callbackfn(val, idx, obj) {
|
function callbackfn(val, idx, obj) {
|
||||||
accessed = true;
|
accessed = true;
|
||||||
|
@ -9,7 +9,7 @@ description: >
|
|||||||
---*/
|
---*/
|
||||||
|
|
||||||
function callbackfn(val, idx, obj) {
|
function callbackfn(val, idx, obj) {
|
||||||
return new Date();
|
return new Date(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
var newArr = [11].filter(callbackfn);
|
var newArr = [11].filter(callbackfn);
|
||||||
|
@ -12,7 +12,7 @@ function callbackfn(val, idx, obj) {
|
|||||||
result = obj instanceof Date;
|
result = obj instanceof Date;
|
||||||
}
|
}
|
||||||
|
|
||||||
var obj = new Date();
|
var obj = new Date(0);
|
||||||
obj.length = 1;
|
obj.length = 1;
|
||||||
obj[0] = 1;
|
obj[0] = 1;
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ description: Array.prototype.forEach - Date Object can be used as thisArg
|
|||||||
---*/
|
---*/
|
||||||
|
|
||||||
var result = false;
|
var result = false;
|
||||||
var objDate = new Date();
|
var objDate = new Date(0);
|
||||||
|
|
||||||
function callbackfn(val, idx, obj) {
|
function callbackfn(val, idx, obj) {
|
||||||
result = (this === objDate);
|
result = (this === objDate);
|
||||||
|
@ -6,7 +6,7 @@ esid: sec-array.prototype.indexof
|
|||||||
description: Array.prototype.indexOf applied to Date object
|
description: Array.prototype.indexOf applied to Date object
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var obj = new Date();
|
var obj = new Date(0);
|
||||||
obj.length = 2;
|
obj.length = 2;
|
||||||
obj[1] = true;
|
obj[1] = true;
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ esid: sec-array.prototype.lastindexof
|
|||||||
description: Array.prototype.lastIndexOf applied to Date object
|
description: Array.prototype.lastIndexOf applied to Date object
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var obj = new Date();
|
var obj = new Date(0);
|
||||||
obj.length = 2;
|
obj.length = 2;
|
||||||
obj[1] = true;
|
obj[1] = true;
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ function callbackfn(val, idx, obj) {
|
|||||||
return obj instanceof Date;
|
return obj instanceof Date;
|
||||||
}
|
}
|
||||||
|
|
||||||
var obj = new Date();
|
var obj = new Date(0);
|
||||||
obj.length = 1;
|
obj.length = 1;
|
||||||
obj[0] = 1;
|
obj[0] = 1;
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ esid: sec-array.prototype.map
|
|||||||
description: Array.prototype.map - Date object can be used as thisArg
|
description: Array.prototype.map - Date object can be used as thisArg
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var objDate = new Date();
|
var objDate = new Date(0);
|
||||||
|
|
||||||
function callbackfn(val, idx, obj) {
|
function callbackfn(val, idx, obj) {
|
||||||
return this === objDate;
|
return this === objDate;
|
||||||
|
@ -10,7 +10,7 @@ function callbackfn(prevVal, curVal, idx, obj) {
|
|||||||
return obj instanceof Date;
|
return obj instanceof Date;
|
||||||
}
|
}
|
||||||
|
|
||||||
var obj = new Date();
|
var obj = new Date(0);
|
||||||
obj.length = 1;
|
obj.length = 1;
|
||||||
obj[0] = 1;
|
obj[0] = 1;
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ esid: sec-array.prototype.reduce
|
|||||||
description: Array.prototype.reduce - Date object can be used as accumulator
|
description: Array.prototype.reduce - Date object can be used as accumulator
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var objDate = new Date();
|
var objDate = new Date(0);
|
||||||
|
|
||||||
var accessed = false;
|
var accessed = false;
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ esid: sec-array.prototype.reduceright
|
|||||||
description: Array.prototype.reduceRight applied to Date object
|
description: Array.prototype.reduceRight applied to Date object
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var obj = new Date();
|
var obj = new Date(0);
|
||||||
obj.length = 1;
|
obj.length = 1;
|
||||||
obj[0] = 1;
|
obj[0] = 1;
|
||||||
var accessed = false;
|
var accessed = false;
|
||||||
|
@ -35,10 +35,12 @@ function callbackfn(prevVal, curVal, idx, obj) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
child.toString = function() {
|
Object.defineProperty(child, "toString", {
|
||||||
toStringAccessed = true;
|
value: function() {
|
||||||
return '1';
|
toStringAccessed = true;
|
||||||
};
|
return '1';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
var obj = {
|
var obj = {
|
||||||
0: 12,
|
0: 12,
|
||||||
|
@ -9,7 +9,7 @@ description: >
|
|||||||
---*/
|
---*/
|
||||||
|
|
||||||
var accessed = false;
|
var accessed = false;
|
||||||
var objDate = new Date();
|
var objDate = new Date(0);
|
||||||
|
|
||||||
function callbackfn(prevVal, curVal, idx, obj) {
|
function callbackfn(prevVal, curVal, idx, obj) {
|
||||||
accessed = true;
|
accessed = true;
|
||||||
|
@ -10,7 +10,7 @@ function callbackfn(val, idx, obj) {
|
|||||||
return obj instanceof Date;
|
return obj instanceof Date;
|
||||||
}
|
}
|
||||||
|
|
||||||
var obj = new Date();
|
var obj = new Date(0);
|
||||||
obj.length = 2;
|
obj.length = 2;
|
||||||
obj[0] = 11;
|
obj[0] = 11;
|
||||||
obj[1] = 9;
|
obj[1] = 9;
|
||||||
|
@ -6,7 +6,7 @@ esid: sec-array.prototype.some
|
|||||||
description: Array.prototype.some - Date object can be used as thisArg
|
description: Array.prototype.some - Date object can be used as thisArg
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var objDate = new Date();
|
var objDate = new Date(0);
|
||||||
|
|
||||||
function callbackfn(val, idx, obj) {
|
function callbackfn(val, idx, obj) {
|
||||||
return this === objDate;
|
return this === objDate;
|
||||||
|
@ -7,7 +7,7 @@ description: Array.prototype.some - return value of callbackfn is a Date object
|
|||||||
---*/
|
---*/
|
||||||
|
|
||||||
function callbackfn(val, idx, obj) {
|
function callbackfn(val, idx, obj) {
|
||||||
return new Date();
|
return new Date(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
assert([11].some(callbackfn), '[11].some(callbackfn) !== true');
|
assert([11].some(callbackfn), '[11].some(callbackfn) !== true');
|
||||||
|
@ -11,14 +11,14 @@ es5id: 15.6.4.2_A2_T3
|
|||||||
description: transferring to the Date objects
|
description: transferring to the Date objects
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
|
var s1 = new Date(0);
|
||||||
|
Object.defineProperty(s1, "toString", {value: Boolean.prototype.toString});
|
||||||
assert.throws(TypeError, () => {
|
assert.throws(TypeError, () => {
|
||||||
var s1 = new Date();
|
|
||||||
s1.toString = Boolean.prototype.toString;
|
|
||||||
s1.toString();
|
s1.toString();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var s2 = new Date(0);
|
||||||
|
s2.myToString = Boolean.prototype.toString;
|
||||||
assert.throws(TypeError, () => {
|
assert.throws(TypeError, () => {
|
||||||
var s2 = new Date();
|
|
||||||
s2.myToString = Boolean.prototype.toString;
|
|
||||||
s2.myToString();
|
s2.myToString();
|
||||||
});
|
});
|
||||||
|
@ -20,5 +20,5 @@ features: [Reflect.construct]
|
|||||||
---*/
|
---*/
|
||||||
|
|
||||||
assert.sameValue(isConstructor(Date), true, 'isConstructor(Date) must return true');
|
assert.sameValue(isConstructor(Date), true, 'isConstructor(Date) must return true');
|
||||||
new Date();
|
new Date(0);
|
||||||
|
|
||||||
|
@ -25,6 +25,6 @@ var other = $262.createRealm().global;
|
|||||||
var C = new other.Function();
|
var C = new other.Function();
|
||||||
C.prototype = null;
|
C.prototype = null;
|
||||||
|
|
||||||
var o = Reflect.construct(Date, [], C);
|
var o = Reflect.construct(Date, [0], C);
|
||||||
|
|
||||||
assert.sameValue(Object.getPrototypeOf(o), other.Date.prototype);
|
assert.sameValue(Object.getPrototypeOf(o), other.Date.prototype);
|
||||||
|
@ -14,7 +14,7 @@ info: |
|
|||||||
features: [Symbol.toPrimitive]
|
features: [Symbol.toPrimitive]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var d = new Date();
|
var d = new Date(0);
|
||||||
|
|
||||||
assert.sameValue(typeof d[Symbol.toPrimitive], 'function');
|
assert.sameValue(typeof d[Symbol.toPrimitive], 'function');
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ info: |
|
|||||||
2. Let dt be ? ToNumber(date).
|
2. Let dt be ? ToNumber(date).
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var date = new Date();
|
var date = new Date(0);
|
||||||
var originalValue = date.getTime();
|
var originalValue = date.getTime();
|
||||||
var obj = {
|
var obj = {
|
||||||
valueOf: function() {
|
valueOf: function() {
|
||||||
|
@ -13,7 +13,7 @@ info: |
|
|||||||
? ToNumber(date).
|
? ToNumber(date).
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var date = new Date();
|
var date = new Date(0);
|
||||||
var originalValue = date.getTime();
|
var originalValue = date.getTime();
|
||||||
var obj = {
|
var obj = {
|
||||||
valueOf: function() {
|
valueOf: function() {
|
||||||
|
@ -11,7 +11,7 @@ info: |
|
|||||||
? ToNumber(month).
|
? ToNumber(month).
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var date = new Date();
|
var date = new Date(0);
|
||||||
var callCount = 0;
|
var callCount = 0;
|
||||||
var originalValue = date.getTime();
|
var originalValue = date.getTime();
|
||||||
var obj = {
|
var obj = {
|
||||||
|
@ -9,7 +9,7 @@ info: |
|
|||||||
3. Let y be ? ToNumber(year).
|
3. Let y be ? ToNumber(year).
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var date = new Date();
|
var date = new Date(0);
|
||||||
var callCount = 0;
|
var callCount = 0;
|
||||||
var originalValue = date.getTime();
|
var originalValue = date.getTime();
|
||||||
var obj = {
|
var obj = {
|
||||||
|
@ -8,7 +8,7 @@ info: |
|
|||||||
2. Let dt be ? ToNumber(hour).
|
2. Let dt be ? ToNumber(hour).
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var date = new Date();
|
var date = new Date(0);
|
||||||
var callCount = 0;
|
var callCount = 0;
|
||||||
var originalValue = date.getTime();
|
var originalValue = date.getTime();
|
||||||
var obj = {
|
var obj = {
|
||||||
|
@ -10,7 +10,7 @@ info: |
|
|||||||
ToNumber(min).
|
ToNumber(min).
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var date = new Date();
|
var date = new Date(0);
|
||||||
var callCount = 0;
|
var callCount = 0;
|
||||||
var originalValue = date.getTime();
|
var originalValue = date.getTime();
|
||||||
var obj = {
|
var obj = {
|
||||||
|
@ -14,7 +14,7 @@ info: |
|
|||||||
be ? ToNumber(ms).
|
be ? ToNumber(ms).
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var date = new Date();
|
var date = new Date(0);
|
||||||
var originalValue = date.getTime();
|
var originalValue = date.getTime();
|
||||||
var obj = {
|
var obj = {
|
||||||
valueOf: function() {
|
valueOf: function() {
|
||||||
|
@ -12,7 +12,7 @@ info: |
|
|||||||
ToNumber(sec).
|
ToNumber(sec).
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var date = new Date();
|
var date = new Date(0);
|
||||||
var callCount = 0;
|
var callCount = 0;
|
||||||
var originalValue = date.getTime();
|
var originalValue = date.getTime();
|
||||||
var obj = {
|
var obj = {
|
||||||
|
@ -8,7 +8,7 @@ info: |
|
|||||||
2. Let dt be ? ToNumber(date).
|
2. Let dt be ? ToNumber(date).
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var date = new Date();
|
var date = new Date(0);
|
||||||
var originalValue = date.getTime();
|
var originalValue = date.getTime();
|
||||||
var obj = {
|
var obj = {
|
||||||
valueOf: function() {
|
valueOf: function() {
|
||||||
|
@ -8,7 +8,7 @@ info: |
|
|||||||
2. Let m be ? ToNumber(min).
|
2. Let m be ? ToNumber(min).
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var date = new Date();
|
var date = new Date(0);
|
||||||
var callCount = 0;
|
var callCount = 0;
|
||||||
var originalValue = date.getTime();
|
var originalValue = date.getTime();
|
||||||
var obj = {
|
var obj = {
|
||||||
|
@ -12,7 +12,7 @@ info: |
|
|||||||
be ? ToNumber(ms).
|
be ? ToNumber(ms).
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var date = new Date();
|
var date = new Date(0);
|
||||||
var originalValue = date.getTime();
|
var originalValue = date.getTime();
|
||||||
var obj = {
|
var obj = {
|
||||||
valueOf: function() {
|
valueOf: function() {
|
||||||
|
@ -10,7 +10,7 @@ info: |
|
|||||||
ToNumber(sec).
|
ToNumber(sec).
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var date = new Date();
|
var date = new Date(0);
|
||||||
var callCount = 0;
|
var callCount = 0;
|
||||||
var originalValue = date.getTime();
|
var originalValue = date.getTime();
|
||||||
var obj = {
|
var obj = {
|
||||||
|
@ -10,7 +10,7 @@ info: |
|
|||||||
? ToNumber(date).
|
? ToNumber(date).
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var date = new Date();
|
var date = new Date(0);
|
||||||
var originalValue = date.getTime();
|
var originalValue = date.getTime();
|
||||||
var obj = {
|
var obj = {
|
||||||
valueOf: function() {
|
valueOf: function() {
|
||||||
|
@ -11,7 +11,7 @@ info: |
|
|||||||
? ToNumber(month).
|
? ToNumber(month).
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var date = new Date();
|
var date = new Date(0);
|
||||||
var callCount = 0;
|
var callCount = 0;
|
||||||
var originalValue = date.getTime();
|
var originalValue = date.getTime();
|
||||||
var obj = {
|
var obj = {
|
||||||
|
@ -10,7 +10,7 @@ info: |
|
|||||||
be ? ToNumber(ms).
|
be ? ToNumber(ms).
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var date = new Date();
|
var date = new Date(0);
|
||||||
var originalValue = date.getTime();
|
var originalValue = date.getTime();
|
||||||
var obj = {
|
var obj = {
|
||||||
valueOf: function() {
|
valueOf: function() {
|
||||||
|
@ -8,7 +8,7 @@ info: |
|
|||||||
2. Let s be ? ToNumber(sec).
|
2. Let s be ? ToNumber(sec).
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var date = new Date();
|
var date = new Date(0);
|
||||||
var callCount = 0;
|
var callCount = 0;
|
||||||
var originalValue = date.getTime();
|
var originalValue = date.getTime();
|
||||||
var obj = {
|
var obj = {
|
||||||
|
@ -8,7 +8,7 @@ info: |
|
|||||||
2. Let t be ? ToNumber(time).
|
2. Let t be ? ToNumber(time).
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var date = new Date();
|
var date = new Date(0);
|
||||||
var originalValue = date.getTime();
|
var originalValue = date.getTime();
|
||||||
var obj = {
|
var obj = {
|
||||||
valueOf: function() {
|
valueOf: function() {
|
||||||
|
@ -17,7 +17,7 @@ info: |
|
|||||||
---*/
|
---*/
|
||||||
|
|
||||||
var maxMs = 8.64e15;
|
var maxMs = 8.64e15;
|
||||||
var date = new Date();
|
var date = new Date(0);
|
||||||
var returnValue;
|
var returnValue;
|
||||||
|
|
||||||
assert.notSameValue(date.getTime(), NaN);
|
assert.notSameValue(date.getTime(), NaN);
|
||||||
|
@ -11,7 +11,7 @@ info: |
|
|||||||
---*/
|
---*/
|
||||||
|
|
||||||
let dateRegExp = /^(Sun|Mon|Tue|Wed|Thu|Fri|Sat) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{2} [0-9]{4}$/
|
let dateRegExp = /^(Sun|Mon|Tue|Wed|Thu|Fri|Sat) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{2} [0-9]{4}$/
|
||||||
let match = dateRegExp.exec(new Date().toDateString());
|
let match = dateRegExp.exec(new Date(0).toDateString());
|
||||||
assert.notSameValue(null, match);
|
assert.notSameValue(null, match);
|
||||||
|
|
||||||
// Years are padded to the left with zeroes
|
// Years are padded to the left with zeroes
|
||||||
|
@ -9,7 +9,7 @@ description: >
|
|||||||
UTC(0)
|
UTC(0)
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var timeZoneMinutes = new Date().getTimezoneOffset() * (-1);
|
var timeZoneMinutes = new Date(0).getTimezoneOffset() * (-1);
|
||||||
var date, dateStr;
|
var date, dateStr;
|
||||||
|
|
||||||
if (timeZoneMinutes > 0) {
|
if (timeZoneMinutes > 0) {
|
||||||
|
@ -9,7 +9,7 @@ description: >
|
|||||||
UTC(0)
|
UTC(0)
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var timeZoneMinutes = new Date().getTimezoneOffset() * (-1);
|
var timeZoneMinutes = new Date(0).getTimezoneOffset() * (-1);
|
||||||
var date, dateStr;
|
var date, dateStr;
|
||||||
|
|
||||||
date = new Date(1970, 0, 100000001, 0, 0 + timeZoneMinutes - 60, 0, -1);
|
date = new Date(1970, 0, 100000001, 0, 0 + timeZoneMinutes - 60, 0, -1);
|
||||||
|
@ -9,7 +9,7 @@ description: >
|
|||||||
UTC(0)
|
UTC(0)
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var timeZoneMinutes = new Date().getTimezoneOffset() * (-1);
|
var timeZoneMinutes = new Date(0).getTimezoneOffset() * (-1);
|
||||||
var date, dateStr;
|
var date, dateStr;
|
||||||
|
|
||||||
date = new Date(1970, 0, 100000001, 0, 0 + timeZoneMinutes - 60, 0, 0);
|
date = new Date(1970, 0, 100000001, 0, 0 + timeZoneMinutes - 60, 0, 0);
|
||||||
|
@ -8,6 +8,6 @@ description: >
|
|||||||
zone(0)
|
zone(0)
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var dateStr = (new Date()).toISOString();
|
var dateStr = (new Date(0)).toISOString();
|
||||||
|
|
||||||
assert.sameValue(dateStr[dateStr.length - 1], "Z", 'dateStr[dateStr.length - 1]');
|
assert.sameValue(dateStr[dateStr.length - 1], "Z", 'dateStr[dateStr.length - 1]');
|
||||||
|
@ -9,7 +9,7 @@ description: >
|
|||||||
UTC(0)
|
UTC(0)
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var timeZoneMinutes = new Date().getTimezoneOffset() * (-1);
|
var timeZoneMinutes = new Date(0).getTimezoneOffset() * (-1);
|
||||||
var date, dateStr;
|
var date, dateStr;
|
||||||
assert.throws(RangeError, function() {
|
assert.throws(RangeError, function() {
|
||||||
if (timeZoneMinutes > 0) {
|
if (timeZoneMinutes > 0) {
|
||||||
|
@ -9,7 +9,7 @@ description: >
|
|||||||
UTC(0)
|
UTC(0)
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var timeZoneMinutes = new Date().getTimezoneOffset() * (-1);
|
var timeZoneMinutes = new Date(0).getTimezoneOffset() * (-1);
|
||||||
var date, dateStr;
|
var date, dateStr;
|
||||||
|
|
||||||
if (timeZoneMinutes > 0) {
|
if (timeZoneMinutes > 0) {
|
||||||
|
@ -17,7 +17,7 @@ info: |
|
|||||||
4. Return ? Call(func, V, argumentsList).
|
4. Return ? Call(func, V, argumentsList).
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var date = new Date();
|
var date = new Date(0);
|
||||||
assert.sameValue(date.toJSON(), date.toISOString());
|
assert.sameValue(date.toJSON(), date.toISOString());
|
||||||
|
|
||||||
var result = {};
|
var result = {};
|
||||||
|
@ -12,7 +12,7 @@ info: |
|
|||||||
---*/
|
---*/
|
||||||
|
|
||||||
let stringRegExp = /^(Sun|Mon|Tue|Wed|Thu|Fri|Sat) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{2} [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT[+-][0-9]{4}( \(.+\))?$/
|
let stringRegExp = /^(Sun|Mon|Tue|Wed|Thu|Fri|Sat) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{2} [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT[+-][0-9]{4}( \(.+\))?$/
|
||||||
let match = stringRegExp.exec(new Date().toString());
|
let match = stringRegExp.exec(new Date(0).toString());
|
||||||
assert.notSameValue(null, match);
|
assert.notSameValue(null, match);
|
||||||
|
|
||||||
// Years are padded to the left with zeroes
|
// Years are padded to the left with zeroes
|
||||||
|
@ -11,5 +11,5 @@ info: |
|
|||||||
---*/
|
---*/
|
||||||
|
|
||||||
let timeRegExp = /^[0-9]{2}:[0-9]{2}:[0-9]{2} GMT[+-][0-9]{4}( \(.+\))?$/
|
let timeRegExp = /^[0-9]{2}:[0-9]{2}:[0-9]{2} GMT[+-][0-9]{4}( \(.+\))?$/
|
||||||
let match = timeRegExp.exec(new Date().toTimeString());
|
let match = timeRegExp.exec(new Date(0).toTimeString());
|
||||||
assert.notSameValue(null, match);
|
assert.notSameValue(null, match);
|
||||||
|
@ -11,7 +11,7 @@ info: |
|
|||||||
---*/
|
---*/
|
||||||
|
|
||||||
let utcRegExp = /^(Sun|Mon|Tue|Wed|Thu|Fri|Sat), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$/
|
let utcRegExp = /^(Sun|Mon|Tue|Wed|Thu|Fri|Sat), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$/
|
||||||
let match = utcRegExp.exec(new Date().toUTCString());
|
let match = utcRegExp.exec(new Date(0).toUTCString());
|
||||||
assert.notSameValue(null, match);
|
assert.notSameValue(null, match);
|
||||||
|
|
||||||
// Years are padded to the left with zeroes
|
// Years are padded to the left with zeroes
|
||||||
|
@ -10,9 +10,9 @@ es5id: 15.7.4.2_A4_T03
|
|||||||
description: transferring to the Date objects
|
description: transferring to the Date objects
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
|
var s1 = new Date(0);
|
||||||
|
Object.defineProperty(s1, "toString", {value: Number.prototype.toString});
|
||||||
try {
|
try {
|
||||||
var s1 = new Date();
|
|
||||||
s1.toString = Number.prototype.toString;
|
|
||||||
var v1 = s1.toString();
|
var v1 = s1.toString();
|
||||||
throw new Test262Error('#1: Number.prototype.toString on not a Number object should throw TypeError');
|
throw new Test262Error('#1: Number.prototype.toString on not a Number object should throw TypeError');
|
||||||
}
|
}
|
||||||
@ -20,9 +20,9 @@ catch (e) {
|
|||||||
assert(e instanceof TypeError, 'The result of evaluating (e instanceof TypeError) is expected to be true');
|
assert(e instanceof TypeError, 'The result of evaluating (e instanceof TypeError) is expected to be true');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var s2 = new Date(0);
|
||||||
|
s2.myToString = Number.prototype.toString;
|
||||||
try {
|
try {
|
||||||
var s2 = new Date();
|
|
||||||
s2.myToString = Number.prototype.toString;
|
|
||||||
var v2 = s2.myToString();
|
var v2 = s2.myToString();
|
||||||
throw new Test262Error('#2: Number.prototype.toString on not a Number object should throw TypeError');
|
throw new Test262Error('#2: Number.prototype.toString on not a Number object should throw TypeError');
|
||||||
}
|
}
|
||||||
|
@ -10,9 +10,9 @@ es5id: 15.7.4.4_A2_T03
|
|||||||
description: transferring to the Date objects
|
description: transferring to the Date objects
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
|
var s1 = new Date(0);
|
||||||
|
Object.defineProperty(s1, "valueOf", {value: Number.prototype.valueOf});
|
||||||
try {
|
try {
|
||||||
var s1 = new Date();
|
|
||||||
s1.valueOf = Number.prototype.valueOf;
|
|
||||||
var v1 = s1.valueOf();
|
var v1 = s1.valueOf();
|
||||||
throw new Test262Error('#1: Number.prototype.valueOf on not a Number object should throw TypeError');
|
throw new Test262Error('#1: Number.prototype.valueOf on not a Number object should throw TypeError');
|
||||||
}
|
}
|
||||||
@ -20,9 +20,9 @@ catch (e) {
|
|||||||
assert(e instanceof TypeError, 'The result of evaluating (e instanceof TypeError) is expected to be true');
|
assert(e instanceof TypeError, 'The result of evaluating (e instanceof TypeError) is expected to be true');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var s2 = new Date(0);
|
||||||
|
s2.myValueOf = Number.prototype.valueOf;
|
||||||
try {
|
try {
|
||||||
var s2 = new Date();
|
|
||||||
s2.myValueOf = Number.prototype.valueOf;
|
|
||||||
var v2 = s2.myValueOf();
|
var v2 = s2.myValueOf();
|
||||||
throw new Test262Error('#2: Number.prototype.valueOf on not a Number object should throw TypeError');
|
throw new Test262Error('#2: Number.prototype.valueOf on not a Number object should throw TypeError');
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ description: >
|
|||||||
step 2)
|
step 2)
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var props = new Date();
|
var props = new Date(0);
|
||||||
var result = false;
|
var result = false;
|
||||||
|
|
||||||
Object.defineProperty(props, "prop", {
|
Object.defineProperty(props, "prop", {
|
||||||
|
@ -9,7 +9,7 @@ description: >
|
|||||||
(8.10.5 step 4.a)
|
(8.10.5 step 4.a)
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var descObj = new Date();
|
var descObj = new Date(0);
|
||||||
|
|
||||||
descObj.configurable = true;
|
descObj.configurable = true;
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ description: >
|
|||||||
|
|
||||||
var newObj = Object.create({}, {
|
var newObj = Object.create({}, {
|
||||||
prop: {
|
prop: {
|
||||||
configurable: new Date()
|
configurable: new Date(0)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ description: >
|
|||||||
(8.10.5 step 5.a)
|
(8.10.5 step 5.a)
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var dateObj = new Date();
|
var dateObj = new Date(0);
|
||||||
|
|
||||||
dateObj.value = "DateValue";
|
dateObj.value = "DateValue";
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ description: >
|
|||||||
(8.10.5 step 6.a)
|
(8.10.5 step 6.a)
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var dateObj = new Date();
|
var dateObj = new Date(0);
|
||||||
|
|
||||||
dateObj.writable = true;
|
dateObj.writable = true;
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ description: >
|
|||||||
|
|
||||||
var newObj = Object.create({}, {
|
var newObj = Object.create({}, {
|
||||||
prop: {
|
prop: {
|
||||||
writable: new Date()
|
writable: new Date(0)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
var hasProperty = newObj.hasOwnProperty("prop");
|
var hasProperty = newObj.hasOwnProperty("prop");
|
||||||
|
@ -9,7 +9,7 @@ description: >
|
|||||||
step 7.a)
|
step 7.a)
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var dateObj = new Date();
|
var dateObj = new Date(0);
|
||||||
|
|
||||||
dateObj.get = function() {
|
dateObj.get = function() {
|
||||||
return "VerifyDateObject";
|
return "VerifyDateObject";
|
||||||
|
@ -9,7 +9,7 @@ description: >
|
|||||||
step 8.a)
|
step 8.a)
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var dateObj = new Date();
|
var dateObj = new Date(0);
|
||||||
var data = "data";
|
var data = "data";
|
||||||
dateObj.set = function(value) {
|
dateObj.set = function(value) {
|
||||||
data = value;
|
data = value;
|
||||||
|
@ -12,7 +12,7 @@ description: >
|
|||||||
assert.throws(TypeError, function() {
|
assert.throws(TypeError, function() {
|
||||||
Object.create({}, {
|
Object.create({}, {
|
||||||
prop: {
|
prop: {
|
||||||
set: new Date()
|
set: new Date(0)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -9,7 +9,7 @@ description: >
|
|||||||
5.a)
|
5.a)
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var props = new Date();
|
var props = new Date(0);
|
||||||
props.prop = {
|
props.prop = {
|
||||||
value: 12,
|
value: 12,
|
||||||
enumerable: true
|
enumerable: true
|
||||||
|
@ -10,7 +10,7 @@ description: >
|
|||||||
---*/
|
---*/
|
||||||
|
|
||||||
var accessed = false;
|
var accessed = false;
|
||||||
var descObj = new Date();
|
var descObj = new Date(0);
|
||||||
|
|
||||||
descObj.enumerable = true;
|
descObj.enumerable = true;
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ var accessed = false;
|
|||||||
|
|
||||||
var newObj = Object.create({}, {
|
var newObj = Object.create({}, {
|
||||||
prop: {
|
prop: {
|
||||||
enumerable: new Date()
|
enumerable: new Date(0)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
for (var property in newObj) {
|
for (var property in newObj) {
|
||||||
|
@ -7,7 +7,7 @@ description: Object.defineProperties - argument 'Properties' is a Date object
|
|||||||
---*/
|
---*/
|
||||||
|
|
||||||
var obj = {};
|
var obj = {};
|
||||||
var props = new Date();
|
var props = new Date(0);
|
||||||
var result = false;
|
var result = false;
|
||||||
|
|
||||||
Object.defineProperty(props, "prop", {
|
Object.defineProperty(props, "prop", {
|
||||||
|
@ -9,7 +9,7 @@ description: >
|
|||||||
---*/
|
---*/
|
||||||
|
|
||||||
var obj = {};
|
var obj = {};
|
||||||
var props = new Date();
|
var props = new Date(0);
|
||||||
|
|
||||||
Object.defineProperty(props, "prop", {
|
Object.defineProperty(props, "prop", {
|
||||||
value: {
|
value: {
|
||||||
|
@ -12,7 +12,7 @@ var obj = {};
|
|||||||
|
|
||||||
Object.defineProperties(obj, {
|
Object.defineProperties(obj, {
|
||||||
property: {
|
property: {
|
||||||
configurable: new Date()
|
configurable: new Date(0)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
var preCheck = obj.hasOwnProperty("property");
|
var preCheck = obj.hasOwnProperty("property");
|
||||||
|
@ -11,7 +11,7 @@ description: >
|
|||||||
|
|
||||||
var obj = {};
|
var obj = {};
|
||||||
|
|
||||||
var descObj = new Date();
|
var descObj = new Date(0);
|
||||||
|
|
||||||
descObj.value = "Date";
|
descObj.value = "Date";
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ includes: [propertyHelper.js]
|
|||||||
|
|
||||||
var obj = {};
|
var obj = {};
|
||||||
|
|
||||||
var descObj = new Date();
|
var descObj = new Date(0);
|
||||||
|
|
||||||
descObj.writable = false;
|
descObj.writable = false;
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ var obj = {};
|
|||||||
|
|
||||||
Object.defineProperties(obj, {
|
Object.defineProperties(obj, {
|
||||||
property: {
|
property: {
|
||||||
writable: new Date()
|
writable: new Date(0)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ description: >
|
|||||||
|
|
||||||
var obj = {};
|
var obj = {};
|
||||||
|
|
||||||
var descObj = new Date();
|
var descObj = new Date(0);
|
||||||
|
|
||||||
descObj.get = function() {
|
descObj.get = function() {
|
||||||
return "Date";
|
return "Date";
|
||||||
|
@ -10,7 +10,7 @@ description: >
|
|||||||
---*/
|
---*/
|
||||||
|
|
||||||
var data = "data";
|
var data = "data";
|
||||||
var descObj = new Date();
|
var descObj = new Date(0);
|
||||||
var setFun = function(value) {
|
var setFun = function(value) {
|
||||||
data = value;
|
data = value;
|
||||||
};
|
};
|
||||||
|
@ -10,7 +10,7 @@ description: >
|
|||||||
---*/
|
---*/
|
||||||
|
|
||||||
var obj = {};
|
var obj = {};
|
||||||
var descObj = new Date();
|
var descObj = new Date(0);
|
||||||
var accessed = false;
|
var accessed = false;
|
||||||
|
|
||||||
descObj.enumerable = true;
|
descObj.enumerable = true;
|
||||||
|
@ -13,7 +13,7 @@ var accessed = false;
|
|||||||
|
|
||||||
Object.defineProperties(obj, {
|
Object.defineProperties(obj, {
|
||||||
prop: {
|
prop: {
|
||||||
enumerable: new Date()
|
enumerable: new Date(0)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
for (var property in obj) {
|
for (var property in obj) {
|
||||||
|
@ -11,7 +11,7 @@ description: >
|
|||||||
|
|
||||||
var obj = {};
|
var obj = {};
|
||||||
|
|
||||||
var descObj = new Date();
|
var descObj = new Date(0);
|
||||||
descObj.configurable = true;
|
descObj.configurable = true;
|
||||||
|
|
||||||
Object.defineProperties(obj, {
|
Object.defineProperties(obj, {
|
||||||
|
@ -10,7 +10,7 @@ includes: [propertyHelper.js]
|
|||||||
---*/
|
---*/
|
||||||
|
|
||||||
|
|
||||||
var obj = new Date();
|
var obj = new Date(0);
|
||||||
|
|
||||||
Object.defineProperty(obj, "prop", {
|
Object.defineProperty(obj, "prop", {
|
||||||
value: 11,
|
value: 11,
|
||||||
|
@ -11,7 +11,7 @@ description: >
|
|||||||
var obj = {};
|
var obj = {};
|
||||||
|
|
||||||
Object.defineProperty(obj, "property", {
|
Object.defineProperty(obj, "property", {
|
||||||
configurable: new Date()
|
configurable: new Date(0)
|
||||||
});
|
});
|
||||||
|
|
||||||
var beforeDeleted = obj.hasOwnProperty("property");
|
var beforeDeleted = obj.hasOwnProperty("property");
|
||||||
|
@ -11,7 +11,7 @@ description: >
|
|||||||
|
|
||||||
var obj = {};
|
var obj = {};
|
||||||
|
|
||||||
var dateObj = new Date();
|
var dateObj = new Date(0);
|
||||||
|
|
||||||
dateObj.value = "Date";
|
dateObj.value = "Date";
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ description: >
|
|||||||
|
|
||||||
var obj = {};
|
var obj = {};
|
||||||
|
|
||||||
var dateObj = new Date();
|
var dateObj = new Date(0);
|
||||||
|
|
||||||
dateObj.writable = true;
|
dateObj.writable = true;
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ description: >
|
|||||||
var obj = {};
|
var obj = {};
|
||||||
|
|
||||||
Object.defineProperty(obj, "property", {
|
Object.defineProperty(obj, "property", {
|
||||||
writable: new Date()
|
writable: new Date(0)
|
||||||
});
|
});
|
||||||
|
|
||||||
var beforeWrite = obj.hasOwnProperty("property");
|
var beforeWrite = obj.hasOwnProperty("property");
|
||||||
|
@ -11,7 +11,7 @@ description: >
|
|||||||
|
|
||||||
var obj = {};
|
var obj = {};
|
||||||
|
|
||||||
var dateObj = new Date();
|
var dateObj = new Date(0);
|
||||||
|
|
||||||
dateObj.get = function() {
|
dateObj.get = function() {
|
||||||
return "dateGetProperty";
|
return "dateGetProperty";
|
||||||
|
@ -11,7 +11,7 @@ description: >
|
|||||||
|
|
||||||
var obj = {};
|
var obj = {};
|
||||||
var data = "data";
|
var data = "data";
|
||||||
var dateObj = new Date();
|
var dateObj = new Date(0);
|
||||||
|
|
||||||
dateObj.set = function(value) {
|
dateObj.set = function(value) {
|
||||||
data = value;
|
data = value;
|
||||||
|
@ -12,7 +12,7 @@ description: >
|
|||||||
var obj = {};
|
var obj = {};
|
||||||
var accessed = false;
|
var accessed = false;
|
||||||
|
|
||||||
var dateObj = new Date();
|
var dateObj = new Date(0);
|
||||||
dateObj.enumerable = true;
|
dateObj.enumerable = true;
|
||||||
|
|
||||||
Object.defineProperty(obj, "property", dateObj);
|
Object.defineProperty(obj, "property", dateObj);
|
||||||
|
@ -12,7 +12,7 @@ var obj = {};
|
|||||||
var accessed = false;
|
var accessed = false;
|
||||||
|
|
||||||
Object.defineProperty(obj, "property", {
|
Object.defineProperty(obj, "property", {
|
||||||
enumerable: new Date()
|
enumerable: new Date(0)
|
||||||
});
|
});
|
||||||
|
|
||||||
for (var prop in obj) {
|
for (var prop in obj) {
|
||||||
|
@ -11,7 +11,7 @@ description: >
|
|||||||
|
|
||||||
var obj = {};
|
var obj = {};
|
||||||
|
|
||||||
var dateObj = new Date();
|
var dateObj = new Date(0);
|
||||||
|
|
||||||
dateObj.configurable = true;
|
dateObj.configurable = true;
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ description: >
|
|||||||
step 1)
|
step 1)
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var desc = new Date();
|
var desc = new Date(0);
|
||||||
|
|
||||||
Object.defineProperty(desc, "foo", {
|
Object.defineProperty(desc, "foo", {
|
||||||
value: 12,
|
value: 12,
|
||||||
|
@ -9,7 +9,7 @@ description: >
|
|||||||
---*/
|
---*/
|
||||||
|
|
||||||
var obj = {};
|
var obj = {};
|
||||||
var dateObj = new Date();
|
var dateObj = new Date(0);
|
||||||
|
|
||||||
Object.defineProperty(obj, "prop", {
|
Object.defineProperty(obj, "prop", {
|
||||||
value: dateObj
|
value: dateObj
|
||||||
|
@ -6,7 +6,7 @@ es5id: 15.2.3.9-2-d-6
|
|||||||
description: Object.freeze - 'O' is a Date object
|
description: Object.freeze - 'O' is a Date object
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var dateObj = new Date();
|
var dateObj = new Date(0);
|
||||||
|
|
||||||
Object.freeze(dateObj);
|
Object.freeze(dateObj);
|
||||||
|
|
||||||
|
@ -8,6 +8,6 @@ description: >
|
|||||||
(Date object)
|
(Date object)
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var obj = new Date();
|
var obj = new Date(0);
|
||||||
|
|
||||||
assert.sameValue(Object.getPrototypeOf(obj), Date.prototype, 'Object.getPrototypeOf(obj)');
|
assert.sameValue(Object.getPrototypeOf(obj), Date.prototype, 'Object.getPrototypeOf(obj)');
|
||||||
|
@ -8,7 +8,7 @@ description: >
|
|||||||
with the order of properties in 'O' (any other built-in object)
|
with the order of properties in 'O' (any other built-in object)
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var obj = new Date();
|
var obj = new Date(0);
|
||||||
obj.prop1 = 100;
|
obj.prop1 = 100;
|
||||||
obj.prop2 = "prop2";
|
obj.prop2 = "prop2";
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ description: >
|
|||||||
includes: [propertyHelper.js]
|
includes: [propertyHelper.js]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var obj = new Date();
|
var obj = new Date(0);
|
||||||
|
|
||||||
assert(Object.isExtensible(obj));
|
assert(Object.isExtensible(obj));
|
||||||
Object.preventExtensions(obj);
|
Object.preventExtensions(obj);
|
||||||
|
@ -9,7 +9,7 @@ description: >
|
|||||||
includes: [propertyHelper.js]
|
includes: [propertyHelper.js]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var obj = new Date();
|
var obj = new Date(0);
|
||||||
|
|
||||||
assert(Object.isExtensible(obj));
|
assert(Object.isExtensible(obj));
|
||||||
Object.preventExtensions(obj);
|
Object.preventExtensions(obj);
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user