Update built-ins/Object/defineProperties to use verifyProperty

This commit is contained in:
André Bargull 2023-09-28 15:15:40 +02:00 committed by Philip Chimento
parent 3499832c3c
commit e3ba8cea11
265 changed files with 1409 additions and 1453 deletions

View File

@ -17,5 +17,6 @@ Object.defineProperties(obj, {
} }
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -17,4 +17,6 @@ Object.defineProperties(obj, {
} }
}); });
verifyNotWritable(obj, "property"); verifyProperty(obj, "property", {
writable: false,
});

View File

@ -17,5 +17,6 @@ Object.defineProperties(obj, {
} }
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -24,5 +24,6 @@ Object.defineProperties(obj, {
property: descObj property: descObj
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -27,5 +27,6 @@ Object.defineProperties(obj, {
property: descObj property: descObj
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -35,5 +35,6 @@ Object.defineProperties(obj, {
property: descObj property: descObj
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -23,5 +23,6 @@ Object.defineProperties(obj, {
property: descObj property: descObj
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -31,5 +31,6 @@ Object.defineProperties(obj, {
property: descObj property: descObj
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -35,5 +35,6 @@ Object.defineProperties(obj, {
property: descObj property: descObj
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -21,5 +21,6 @@ Object.defineProperties(obj, {
property: descObj property: descObj
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -33,5 +33,6 @@ Object.defineProperties(obj, {
property: descObj property: descObj
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -27,5 +27,6 @@ Object.defineProperties(obj, {
property: descObj property: descObj
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -22,5 +22,6 @@ Object.defineProperties(obj, {
property: func property: func
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -20,5 +20,6 @@ Object.defineProperties(obj, {
property: arr property: arr
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -20,5 +20,6 @@ Object.defineProperties(obj, {
property: str property: str
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -20,5 +20,6 @@ Object.defineProperties(obj, {
property: descObj property: descObj
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -20,5 +20,6 @@ Object.defineProperties(obj, {
property: descObj property: descObj
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -19,5 +19,6 @@ Object.defineProperties(obj, {
property: Math property: Math
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -20,5 +20,6 @@ Object.defineProperties(obj, {
property: descObj property: descObj
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -20,5 +20,6 @@ Object.defineProperties(obj, {
property: descObj property: descObj
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -18,5 +18,6 @@ Object.defineProperties(obj, {
property: JSON property: JSON
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -20,5 +20,6 @@ Object.defineProperties(obj, {
property: descObj property: descObj
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -19,8 +19,9 @@ var func = function(a, b) {
property: arguments property: arguments
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});
}; };
func(); func();

View File

@ -19,5 +19,6 @@ Object.defineProperties(obj, {
property: this property: this
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -17,5 +17,6 @@ Object.defineProperties(obj, {
} }
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -17,5 +17,6 @@ Object.defineProperties(obj, {
} }
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -17,5 +17,6 @@ Object.defineProperties(obj, {
} }
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -17,5 +17,6 @@ Object.defineProperties(obj, {
} }
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -17,5 +17,6 @@ Object.defineProperties(obj, {
} }
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -17,5 +17,6 @@ Object.defineProperties(obj, {
} }
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -17,5 +17,6 @@ Object.defineProperties(obj, {
} }
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -17,5 +17,6 @@ Object.defineProperties(obj, {
} }
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotWritable(obj, "property"); writable: false,
});

View File

@ -16,5 +16,6 @@ Object.defineProperties(obj, {
prop: {} prop: {}
}); });
assert(obj.hasOwnProperty("prop")); verifyProperty(obj, "prop", {
verifyNotConfigurable(obj, "prop"); configurable: false,
});

View File

@ -28,5 +28,6 @@ Object.defineProperties(obj, {
prop: descObj prop: descObj
}); });
assert(obj.hasOwnProperty("prop")); verifyProperty(obj, "prop", {
verifyNotConfigurable(obj, "prop"); configurable: false,
});

View File

@ -31,5 +31,6 @@ Object.defineProperties(obj, {
prop: descObj prop: descObj
}); });
assert(obj.hasOwnProperty("prop")); verifyProperty(obj, "prop", {
verifyNotConfigurable(obj, "prop"); configurable: false,
});

View File

@ -30,5 +30,6 @@ Object.defineProperties(obj, {
prop: descObj prop: descObj
}); });
assert(obj.hasOwnProperty("prop")); verifyProperty(obj, "prop", {
verifyNotConfigurable(obj, "prop"); configurable: false,
});

View File

@ -33,6 +33,6 @@ Object.defineProperties(obj, {
prop: descObj prop: descObj
}); });
assert(obj.hasOwnProperty("prop")); verifyProperty(obj, "prop", {
verifyNotConfigurable(obj, "prop"); configurable: false,
assert(obj.hasOwnProperty("prop")); });

View File

@ -20,5 +20,6 @@ Object.defineProperties(obj, {
prop: descObj prop: descObj
}); });
assert(obj.hasOwnProperty("prop")); verifyProperty(obj, "prop", {
verifyNotConfigurable(obj, "prop"); configurable: false,
});

View File

@ -31,5 +31,6 @@ Object.defineProperties(obj, {
prop: descObj prop: descObj
}); });
assert(obj.hasOwnProperty("prop")); verifyProperty(obj, "prop", {
verifyNotConfigurable(obj, "prop"); configurable: false,
});

View File

@ -25,5 +25,6 @@ Object.defineProperties(obj, {
prop: descObj prop: descObj
}); });
assert(obj.hasOwnProperty("prop")); verifyProperty(obj, "prop", {
verifyNotConfigurable(obj, "prop"); configurable: false,
});

View File

@ -17,5 +17,6 @@ Object.defineProperties(obj, {
} }
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotConfigurable(obj, "property"); configurable: false,
});

View File

@ -17,5 +17,6 @@ Object.defineProperties(obj, {
} }
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotConfigurable(obj, "property"); configurable: false,
});

View File

@ -17,5 +17,6 @@ Object.defineProperties(obj, {
} }
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotConfigurable(obj, "property"); configurable: false,
});

View File

@ -17,5 +17,6 @@ Object.defineProperties(obj, {
} }
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotConfigurable(obj, "property"); configurable: false,
});

View File

@ -17,5 +17,6 @@ Object.defineProperties(obj, {
} }
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotConfigurable(obj, "property"); configurable: false,
});

View File

@ -17,5 +17,6 @@ Object.defineProperties(obj, {
} }
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotConfigurable(obj, "property"); configurable: false,
});

View File

@ -17,5 +17,6 @@ Object.defineProperties(obj, {
} }
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotConfigurable(obj, "property"); configurable: false,
});

View File

@ -17,5 +17,6 @@ Object.defineProperties(obj, {
} }
}); });
assert(obj.hasOwnProperty("property")); verifyProperty(obj, "property", {
verifyNotConfigurable(obj, "property"); configurable: false,
});

View File

@ -25,10 +25,10 @@ Object.defineProperties(obj, {
configurable: false configurable: false
} }
}); });
verifyEqualTo(obj, "foo", 200);
verifyNotWritable(obj, "foo"); verifyProperty(obj, "foo", {
value: 200,
verifyNotEnumerable(obj, "foo"); writable: false,
enumerable: false,
verifyNotConfigurable(obj, "foo"); configurable: false,
});

View File

@ -41,6 +41,7 @@ verifyEqualTo(obj, "foo", get_func2());
verifyWritable(obj, "foo", "setVerifyHelpProp"); verifyWritable(obj, "foo", "setVerifyHelpProp");
verifyEnumerable(obj, "foo"); verifyProperty(obj, "foo", {
enumerable: true,
verifyConfigurable(obj, "foo"); configurable: true,
});

View File

@ -34,6 +34,7 @@ Object.defineProperties(obj, {
}); });
verifyWritable(obj, "foo", "setVerifyHelpProp"); verifyWritable(obj, "foo", "setVerifyHelpProp");
verifyEnumerable(obj, "foo"); verifyProperty(obj, "foo", {
enumerable: true,
verifyConfigurable(obj, "foo"); configurable: true,
});

View File

@ -36,6 +36,7 @@ verifyEqualTo(obj, "foo", get_func());
verifyWritable(obj, "foo", "setVerifyHelpProp"); verifyWritable(obj, "foo", "setVerifyHelpProp");
verifyEnumerable(obj, "foo"); verifyProperty(obj, "foo", {
enumerable: true,
verifyConfigurable(obj, "foo"); configurable: true,
});

View File

@ -41,6 +41,7 @@ verifyEqualTo(obj, "foo", get_func());
verifyWritable(obj, "foo", "setVerifyHelpProp"); verifyWritable(obj, "foo", "setVerifyHelpProp");
verifyEnumerable(obj, "foo"); verifyProperty(obj, "foo", {
enumerable: true,
verifyConfigurable(obj, "foo"); configurable: true,
});

View File

@ -6,6 +6,7 @@ es5id: 15.2.3.7-6-a-105
description: > description: >
Object.defineProperties - 'P' is accessor property, P.[[Set]] is Object.defineProperties - 'P' is accessor property, P.[[Set]] is
present and properties.[[Set]] is undefined (8.12.9 step 12) present and properties.[[Set]] is undefined (8.12.9 step 12)
includes: [propertyHelper.js]
---*/ ---*/
var obj = {}; var obj = {};
@ -31,7 +32,6 @@ Object.defineProperties(obj, {
} }
}); });
var hasProperty = obj.hasOwnProperty("property");
var verifyGet = false; var verifyGet = false;
verifyGet = (obj.property === 10); verifyGet = (obj.property === 10);
@ -39,19 +39,11 @@ var verifySet = false;
var desc = Object.getOwnPropertyDescriptor(obj, "property"); var desc = Object.getOwnPropertyDescriptor(obj, "property");
verifySet = (typeof desc.set === 'undefined'); verifySet = (typeof desc.set === 'undefined');
var verifyEnumerable = false; verifyProperty(obj, "property", {
for (var p in obj) { enumerable: true,
if (p === "property") { configurable: true,
verifyEnumerable = true; });
}
}
var verifyConfigurable = false;
delete obj.property;
verifyConfigurable = obj.hasOwnProperty("property");
assert(hasProperty, 'hasProperty !== true');
assert(verifyGet, 'verifyGet !== true'); assert(verifyGet, 'verifyGet !== true');
assert(verifySet, 'verifySet !== true'); assert(verifySet, 'verifySet !== true');
assert(verifyEnumerable, 'verifyEnumerable !== true');
assert.sameValue(verifyConfigurable, false, 'verifyConfigurable');

View File

@ -36,6 +36,7 @@ verifyEqualTo(obj, "foo", get_func());
verifyWritable(obj, "foo", "setVerifyHelpProp"); verifyWritable(obj, "foo", "setVerifyHelpProp");
verifyEnumerable(obj, "foo"); verifyProperty(obj, "foo", {
enumerable: true,
verifyConfigurable(obj, "foo"); configurable: true,
});

View File

@ -36,6 +36,7 @@ verifyEqualTo(obj, "foo", get_func());
verifyWritable(obj, "foo", "setVerifyHelpProp"); verifyWritable(obj, "foo", "setVerifyHelpProp");
verifyNotEnumerable(obj, "foo"); verifyProperty(obj, "foo", {
enumerable: false,
verifyConfigurable(obj, "foo"); configurable: true,
});

View File

@ -36,6 +36,7 @@ verifyEqualTo(obj, "foo", get_func());
verifyWritable(obj, "foo", "setVerifyHelpProp"); verifyWritable(obj, "foo", "setVerifyHelpProp");
verifyEnumerable(obj, "foo"); verifyProperty(obj, "foo", {
enumerable: true,
verifyNotConfigurable(obj, "foo"); configurable: false,
});

View File

@ -44,6 +44,7 @@ verifyEqualTo(obj, "foo", get_func2());
verifyWritable(obj, "foo", "setVerifyHelpProp"); verifyWritable(obj, "foo", "setVerifyHelpProp");
verifyNotEnumerable(obj, "foo"); verifyProperty(obj, "foo", {
enumerable: false,
verifyNotConfigurable(obj, "foo"); configurable: false,
});

View File

@ -36,17 +36,19 @@ var properties = {
}; };
Object.defineProperties(obj, properties); Object.defineProperties(obj, properties);
verifyEqualTo(obj, "foo1", 200);
verifyWritable(obj, "foo1"); verifyProperty(obj, "foo1", {
value: 200,
writable: true,
enumerable: true,
configurable: true,
});
verifyEnumerable(obj, "foo1");
verifyConfigurable(obj, "foo1");
verifyEqualTo(obj, "foo2", get_func()); verifyEqualTo(obj, "foo2", get_func());
verifyWritable(obj, "foo2", "setVerifyHelpProp"); verifyWritable(obj, "foo2", "setVerifyHelpProp");
verifyEnumerable(obj, "foo2"); verifyProperty(obj, "foo2", {
enumerable: true,
verifyConfigurable(obj, "foo2"); configurable: true,
});

View File

@ -24,6 +24,7 @@ verifyEqualTo(arr, "length", 0);
verifyWritable(arr, "length", "length", 1); verifyWritable(arr, "length", "length", 1);
verifyNotEnumerable(arr, "length"); verifyProperty(arr, "length", {
enumerable: false,
verifyNotConfigurable(arr, "length"); configurable: false,
});

View File

@ -26,6 +26,7 @@ verifyEqualTo(arr, "length", 2);
verifyWritable(arr, "length", "length", 5); verifyWritable(arr, "length", "length", 5);
verifyNotEnumerable(arr, "length"); verifyProperty(arr, "length", {
enumerable: false,
verifyNotConfigurable(arr, "length"); configurable: false,
});

View File

@ -24,8 +24,9 @@ Object.defineProperties(arr, {
assert.sameValue(arr.length, 0); assert.sameValue(arr.length, 0);
arr.length = 2; arr.length = 2;
assert.sameValue(arr.length, 2);
verifyNotEnumerable(arr, "length"); verifyProperty(arr, "length", {
value: 2,
verifyNotConfigurable(arr, "length"); enumerable: false,
configurable: false,
});

View File

@ -26,16 +26,14 @@ try {
}); });
throw new Test262Error("Expected an exception."); throw new Test262Error("Expected an exception.");
} catch (e) { } catch (e) {
verifyEqualTo(fun, "prop", 11);
verifyNotWritable(fun, "prop");
verifyNotEnumerable(fun, "prop");
verifyNotConfigurable(fun, "prop");
if (!(e instanceof TypeError)) { if (!(e instanceof TypeError)) {
throw new Test262Error("Expected TypeError, got " + e); throw new Test262Error("Expected TypeError, got " + e);
} }
} }
verifyProperty(fun, "prop", {
value: 11,
writable: false,
enumerable: false,
configurable: false,
});

View File

@ -19,10 +19,9 @@ Object.defineProperties(arr, {
} }
}); });
verifyEqualTo(arr, "length", 0); verifyProperty(arr, "length", {
value: 0,
verifyNotWritable(arr, "length"); writable: false,
enumerable: false,
verifyNotEnumerable(arr, "length"); configurable: false,
});
verifyNotConfigurable(arr, "length");

View File

@ -25,16 +25,14 @@ try {
}); });
throw new Test262Error("Expected an exception."); throw new Test262Error("Expected an exception.");
} catch (e) { } catch (e) {
verifyEqualTo(arr, "prop", 11);
verifyNotWritable(arr, "prop");
verifyNotEnumerable(arr, "prop");
verifyNotConfigurable(arr, "prop");
if (!(e instanceof TypeError)) { if (!(e instanceof TypeError)) {
throw new Test262Error("Expected TypeError, got " + e); throw new Test262Error("Expected TypeError, got " + e);
} }
} }
verifyProperty(arr, "prop", {
value: 11,
writable: false,
enumerable: false,
configurable: false,
});

View File

@ -25,16 +25,14 @@ try {
}); });
throw new Test262Error("Expected an exception."); throw new Test262Error("Expected an exception.");
} catch (e) { } catch (e) {
verifyEqualTo(str, "prop", 11);
verifyNotWritable(str, "prop");
verifyNotEnumerable(str, "prop");
verifyNotConfigurable(str, "prop");
if (!(e instanceof TypeError)) { if (!(e instanceof TypeError)) {
throw new Test262Error("Expected TypeError, got " + e); throw new Test262Error("Expected TypeError, got " + e);
} }
} }
verifyProperty(str, "prop", {
value: 11,
writable: false,
enumerable: false,
configurable: false,
});

View File

@ -26,16 +26,14 @@ try {
}); });
throw new Test262Error("Expected an exception."); throw new Test262Error("Expected an exception.");
} catch (e) { } catch (e) {
verifyEqualTo(obj, "prop", 11);
verifyNotWritable(obj, "prop");
verifyNotEnumerable(obj, "prop");
verifyNotConfigurable(obj, "prop");
if (!(e instanceof TypeError)) { if (!(e instanceof TypeError)) {
throw new Test262Error("Expected TypeError, got " + e); throw new Test262Error("Expected TypeError, got " + e);
} }
} }
verifyProperty(obj, "prop", {
value: 11,
writable: false,
enumerable: false,
configurable: false,
});

View File

@ -26,16 +26,14 @@ try {
}); });
throw new Test262Error("Expected an exception."); throw new Test262Error("Expected an exception.");
} catch (e) { } catch (e) {
verifyEqualTo(obj, "prop", 11);
verifyNotWritable(obj, "prop");
verifyNotEnumerable(obj, "prop");
verifyNotConfigurable(obj, "prop");
if (!(e instanceof TypeError)) { if (!(e instanceof TypeError)) {
throw new Test262Error("Expected TypeError, got " + e); throw new Test262Error("Expected TypeError, got " + e);
} }
} }
verifyProperty(obj, "prop", {
value: 11,
writable: false,
enumerable: false,
configurable: false,
});

View File

@ -24,8 +24,10 @@ Object.defineProperties(arr, {
}); });
//try to overwrite length value of arr //try to overwrite length value of arr
verifyNotWritable(arr, "length") verifyProperty(arr, "length", {
value: 1,
writable: false,
});
assert(!arr.hasOwnProperty("1")); assert(!arr.hasOwnProperty("1"));
assert.sameValue(arr.length, 1);
assert.sameValue(arr[0], 0); assert.sameValue(arr[0], 0);

View File

@ -31,6 +31,9 @@ try {
throw new Test262Error("expected to throw TypeError") throw new Test262Error("expected to throw TypeError")
} catch (e) { } catch (e) {
assert(e instanceof TypeError); assert(e instanceof TypeError);
assert.sameValue(arr.length, 2);
verifyNotWritable(arr, "length");
} }
verifyProperty(arr, "length", {
value: 2,
writable: false,
});

View File

@ -31,9 +31,14 @@ try {
throw new Test262Error("Expected to throw TypeError"); throw new Test262Error("Expected to throw TypeError");
} catch (e) { } catch (e) {
assert(e instanceof TypeError); assert(e instanceof TypeError);
}
assert(arr.hasOwnProperty("1")); assert(arr.hasOwnProperty("1"));
verifyNotWritable(arr, "length");
verifyProperty(arr, "length", {
value: 2,
writable: false,
});
assert.sameValue(arr[0], 0); assert.sameValue(arr[0], 0);
assert.sameValue(arr[1], 1); assert.sameValue(arr[1], 1);
assert.sameValue(arr.length, 2)
}

View File

@ -24,6 +24,9 @@ Object.defineProperties(arr, {
}); });
assert(!arr.hasOwnProperty("1")); assert(!arr.hasOwnProperty("1"));
assert.sameValue(arr.length, 0);
assert(!arr.hasOwnProperty("0")); assert(!arr.hasOwnProperty("0"));
verifyNotWritable(arr, "length");
verifyProperty(arr, "length", {
value: 0,
writable: false,
});

View File

@ -26,16 +26,14 @@ try {
}); });
throw new Test262Error("Expected an exception."); throw new Test262Error("Expected an exception.");
} catch (e) { } catch (e) {
verifyEqualTo(obj, "prop", 11);
verifyNotWritable(obj, "prop");
verifyNotEnumerable(obj, "prop");
verifyNotConfigurable(obj, "prop");
if (!(e instanceof TypeError)) { if (!(e instanceof TypeError)) {
throw new Test262Error("Expected TypeError, got " + e); throw new Test262Error("Expected TypeError, got " + e);
} }
} }
verifyProperty(obj, "prop", {
value: 11,
writable: false,
enumerable: false,
configurable: false,
});

View File

@ -26,16 +26,14 @@ try {
}); });
throw new Test262Error("Expected an exception."); throw new Test262Error("Expected an exception.");
} catch (e) { } catch (e) {
verifyEqualTo(obj, "prop", 11);
verifyNotWritable(obj, "prop");
verifyNotEnumerable(obj, "prop");
verifyNotConfigurable(obj, "prop");
if (!(e instanceof TypeError)) { if (!(e instanceof TypeError)) {
throw new Test262Error("Expected TypeError, got " + e); throw new Test262Error("Expected TypeError, got " + e);
} }
} }
verifyProperty(obj, "prop", {
value: 11,
writable: false,
enumerable: false,
configurable: false,
});

View File

@ -19,10 +19,9 @@ Object.defineProperties(arr, {
} }
}); });
verifyEqualTo(arr, "0", undefined); verifyProperty(arr, "0", {
value: undefined,
verifyNotWritable(arr, "0"); writable: false,
enumerable: true,
verifyEnumerable(arr, "0"); configurable: false,
});
verifyNotConfigurable(arr, "0");

View File

@ -24,6 +24,7 @@ Object.defineProperties(arr, {
} }
}); });
assert(arr.hasOwnProperty("0")); verifyProperty(arr, "0", {
verifyNotWritable(arr, "0"); value: 1001,
assert.sameValue(arr[0], 1001); writable: false,
});

View File

@ -24,6 +24,6 @@ Object.defineProperties(arr, {
} }
}); });
assert(arr.hasOwnProperty("0")); verifyProperty(arr, "0", {
verifyNotConfigurable(arr, "0"); configurable: false,
assert(arr.hasOwnProperty("0")); });

View File

@ -26,10 +26,9 @@ Object.defineProperties(obj, {
} }
}); });
verifyEqualTo(obj, "prop", 12); verifyProperty(obj, "prop", {
value: 12,
verifyNotWritable(obj, "prop"); writable: false,
enumerable: false,
verifyNotEnumerable(obj, "prop"); configurable: true,
});
verifyConfigurable(obj, "prop");

View File

@ -21,10 +21,9 @@ Object.defineProperties(arr, {
} }
}); });
verifyEqualTo(arr, "0", 1001); verifyProperty(arr, "0", {
value: 1001,
verifyNotWritable(arr, "0"); writable: false,
enumerable: false,
verifyNotEnumerable(arr, "0"); configurable: false,
});
verifyNotConfigurable(arr, "0");

View File

@ -8,6 +8,7 @@ description: >
named property, 'P' property doesn't exist in 'O', test [[Set]] of named property, 'P' property doesn't exist in 'O', test [[Set]] of
'P' property in 'Attributes' is set as undefined value if [[Set]] 'P' property in 'Attributes' is set as undefined value if [[Set]]
is absent in accessor descriptor 'desc' (15.4.5.1 step 4.c) is absent in accessor descriptor 'desc' (15.4.5.1 step 4.c)
includes: [propertyHelper.js]
---*/ ---*/
var arr = []; var arr = [];
@ -23,22 +24,12 @@ Object.defineProperties(arr, {
} }
}); });
var verifyEnumerable = false;
for (var i in arr) {
if (i === "0" && arr.hasOwnProperty("0")) {
verifyEnumerable = true;
}
}
var desc = Object.getOwnPropertyDescriptor(arr, "0"); var desc = Object.getOwnPropertyDescriptor(arr, "0");
var propertyDefineCorrect = arr.hasOwnProperty("0");
var verifyConfigurable = false; verifyProperty(arr, "0", {
delete arr[0]; enumerable: true,
verifyConfigurable = arr.hasOwnProperty("0"); configurable: true,
});
assert.sameValue(typeof desc.set, "undefined", 'typeof desc.set'); assert.sameValue(typeof desc.set, "undefined", 'typeof desc.set');
assert(propertyDefineCorrect, 'propertyDefineCorrect !== true');
assert.sameValue(desc.get, getFunc, 'desc.get'); assert.sameValue(desc.get, getFunc, 'desc.get');
assert.sameValue(verifyConfigurable, false, 'verifyConfigurable');
assert(verifyEnumerable, 'verifyEnumerable !== true');

View File

@ -39,4 +39,6 @@ if (arr.verifySetter !== 101) {
throw new Test262Error('Expected arr.verifySetter === 101, actually ' + arr.verifySetter); throw new Test262Error('Expected arr.verifySetter === 101, actually ' + arr.verifySetter);
} }
verifyNotConfigurable(arr, 0); verifyProperty(arr, "0", {
configurable: false,
});

View File

@ -42,6 +42,7 @@ verifyEqualTo(arr, "0", getFun());
verifyWritable(arr, "0", "setVerifyHelpProp"); verifyWritable(arr, "0", "setVerifyHelpProp");
verifyNotEnumerable(arr, "0"); verifyProperty(arr, "0", {
enumerable: false,
verifyNotConfigurable(arr, "0"); configurable: false,
});

View File

@ -18,10 +18,10 @@ arr[0] = 101; // default value of attributes: writable: true, configurable: true
Object.defineProperties(arr, { Object.defineProperties(arr, {
"0": {} "0": {}
}); });
verifyEqualTo(arr, "0", 101);
verifyWritable(arr, "0"); verifyProperty(arr, "0", {
value: 101,
verifyEnumerable(arr, "0"); writable: true,
enumerable: true,
verifyConfigurable(arr, "0"); configurable: true,
});

View File

@ -34,6 +34,7 @@ verifyEqualTo(arr, "0", get_func());
verifyWritable(arr, "0", "setVerifyHelpProp"); verifyWritable(arr, "0", "setVerifyHelpProp");
verifyEnumerable(arr, "0"); verifyProperty(arr, "0", {
enumerable: true,
verifyConfigurable(arr, "0"); configurable: true,
});

View File

@ -24,10 +24,10 @@ Object.defineProperties(arr, {
} }
}); });
verifyEqualTo(arr, "0", 100); verifyProperty(arr, "0", {
value: 100,
writable: true,
enumerable: true,
configurable: true,
});
verifyWritable(arr, "0");
verifyEnumerable(arr, "0");
verifyConfigurable(arr, "0");

View File

@ -38,6 +38,7 @@ verifyEqualTo(arr, "0", get_func());
verifyWritable(arr, "0", "setVerifyHelpProp"); verifyWritable(arr, "0", "setVerifyHelpProp");
verifyEnumerable(arr, "0"); verifyProperty(arr, "0", {
enumerable: true,
verifyConfigurable(arr, "0"); configurable: true,
});

View File

@ -26,16 +26,14 @@ try {
}); });
throw new Test262Error("Expected an exception."); throw new Test262Error("Expected an exception.");
} catch (e) { } catch (e) {
verifyEqualTo(obj, "prop", 11);
verifyNotWritable(obj, "prop");
verifyNotEnumerable(obj, "prop");
verifyNotConfigurable(obj, "prop");
if (!(e instanceof TypeError)) { if (!(e instanceof TypeError)) {
throw new Test262Error("Expected TypeError, got " + e); throw new Test262Error("Expected TypeError, got " + e);
} }
} }
verifyProperty(obj, "prop", {
value: 11,
writable: false,
enumerable: false,
configurable: false,
});

View File

@ -22,10 +22,10 @@ Object.defineProperties(arr, {
value: undefined value: undefined
} }
}); });
verifyEqualTo(arr, "0", undefined);
verifyNotWritable(arr, "0"); verifyProperty(arr, "0", {
value: undefined,
verifyNotEnumerable(arr, "0"); writable: false,
enumerable: false,
verifyNotConfigurable(arr, "0"); configurable: false,
});

View File

@ -21,10 +21,10 @@ Object.defineProperties(arr, {
value: null value: null
} }
}); });
verifyEqualTo(arr, "0", null);
verifyNotWritable(arr, "0"); verifyProperty(arr, "0", {
value: null,
verifyNotEnumerable(arr, "0"); writable: false,
enumerable: false,
verifyNotConfigurable(arr, "0"); configurable: false,
});

View File

@ -22,10 +22,9 @@ Object.defineProperties(arr, {
} }
}); });
verifyEqualTo(arr, "0", NaN); verifyProperty(arr, "0", {
value: NaN,
verifyNotWritable(arr, "0"); writable: false,
enumerable: false,
verifyNotEnumerable(arr, "0"); configurable: false,
});
verifyNotConfigurable(arr, "0");

View File

@ -24,16 +24,14 @@ try {
}); });
throw new Test262Error("Expected an exception."); throw new Test262Error("Expected an exception.");
} catch (e) { } catch (e) {
verifyEqualTo(arr, "0", -0);
verifyNotWritable(arr, "0");
verifyNotEnumerable(arr, "0");
verifyNotConfigurable(arr, "0");
if (!(e instanceof TypeError)) { if (!(e instanceof TypeError)) {
throw new Test262Error("Expected TypeError, got " + e); throw new Test262Error("Expected TypeError, got " + e);
} }
} }
verifyProperty(arr, "0", {
value: -0,
writable: false,
enumerable: false,
configurable: false,
});

View File

@ -24,16 +24,14 @@ try {
}); });
throw new Test262Error("Expected an exception."); throw new Test262Error("Expected an exception.");
} catch (e) { } catch (e) {
verifyEqualTo(arr, "0", +0);
verifyNotWritable(arr, "0");
verifyNotEnumerable(arr, "0");
verifyNotConfigurable(arr, "0");
if (!(e instanceof TypeError)) { if (!(e instanceof TypeError)) {
throw new Test262Error("Expected TypeError, got " + e); throw new Test262Error("Expected TypeError, got " + e);
} }
} }
verifyProperty(arr, "0", {
value: +0,
writable: false,
enumerable: false,
configurable: false,
});

View File

@ -22,10 +22,10 @@ Object.defineProperties(arr, {
value: 101 value: 101
} }
}); });
verifyEqualTo(arr, "0", 101);
verifyNotWritable(arr, "0"); verifyProperty(arr, "0", {
value: 101,
verifyNotEnumerable(arr, "0"); writable: false,
enumerable: false,
verifyNotConfigurable(arr, "0"); configurable: false,
});

View File

@ -22,10 +22,10 @@ Object.defineProperties(arr, {
value: "abcd" value: "abcd"
} }
}); });
verifyEqualTo(arr, "0", "abcd");
verifyNotWritable(arr, "0"); verifyProperty(arr, "0", {
value: "abcd",
verifyNotEnumerable(arr, "0"); writable: false,
enumerable: false,
verifyNotConfigurable(arr, "0"); configurable: false,
});

View File

@ -22,10 +22,10 @@ Object.defineProperties(arr, {
value: true value: true
} }
}); });
verifyEqualTo(arr, "0", true);
verifyNotWritable(arr, "0"); verifyProperty(arr, "0", {
value: true,
verifyNotEnumerable(arr, "0"); writable: false,
enumerable: false,
verifyNotConfigurable(arr, "0"); configurable: false,
});

View File

@ -27,10 +27,10 @@ var properties = {
}; };
Object.defineProperties(arr, properties); Object.defineProperties(arr, properties);
verifyEqualTo(arr, "0", obj1);
verifyNotWritable(arr, "0"); verifyProperty(arr, "0", {
value: obj1,
verifyNotEnumerable(arr, "0"); writable: false,
enumerable: false,
verifyNotConfigurable(arr, "0"); configurable: false,
});

View File

@ -21,10 +21,10 @@ Object.defineProperties(arr, {
writable: true writable: true
} }
}); });
verifyEqualTo(arr, "0", undefined);
verifyWritable(arr, "0"); verifyProperty(arr, "0", {
value: undefined,
verifyNotEnumerable(arr, "0"); writable: true,
enumerable: false,
verifyNotConfigurable(arr, "0"); configurable: false,
});

View File

@ -22,10 +22,10 @@ Object.defineProperties(arr, {
writable: false writable: false
} }
}); });
verifyEqualTo(arr, "0", undefined);
verifyNotWritable(arr, "0"); verifyProperty(arr, "0", {
value: undefined,
verifyNotEnumerable(arr, "0"); writable: false,
enumerable: false,
verifyConfigurable(arr, "0"); configurable: true,
});

View File

@ -28,6 +28,7 @@ Object.defineProperties(arr, {
}); });
verifyEqualTo(arr, "0", get_func()); verifyEqualTo(arr, "0", get_func());
verifyNotEnumerable(arr, "0"); verifyProperty(arr, "0", {
enumerable: false,
verifyNotConfigurable(arr, "0"); configurable: false,
});

View File

@ -28,6 +28,7 @@ Object.defineProperties(arr, {
}); });
verifyWritable(arr, "0", "setVerifyHelpProp"); verifyWritable(arr, "0", "setVerifyHelpProp");
verifyNotEnumerable(arr, "0"); verifyProperty(arr, "0", {
enumerable: false,
verifyNotConfigurable(arr, "0"); configurable: false,
});

Some files were not shown because too many files have changed in this diff Show More