update, fix merge conflict

This commit is contained in:
smikes 2015-05-02 20:20:47 -06:00
parent 9b5a1c1e79
commit d513714fda
80 changed files with 1007 additions and 1210 deletions

View File

@ -20,11 +20,6 @@ includes: [propertyHelper.js]
}
});
obj.property = "isWritable";
return obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
}
assert(obj.hasOwnProperty("property"));
verifyNotWritable(obj, "property");
assert(obj.hasOwnProperty("property"));

View File

@ -35,9 +35,7 @@ includes: [propertyHelper.js]
Object.defineProperties(obj, {
prop: descObj
});
var result1 = obj.hasOwnProperty("prop");
delete obj.prop;
var result2 = obj.hasOwnProperty("prop");
return result1 === true && result2 === true;
}
assert(obj.hasOwnProperty("prop"));
verifyNotConfigurable(obj, "prop");
assert(obj.hasOwnProperty("prop"));

View File

@ -24,20 +24,7 @@ includes: [propertyHelper.js]
}
});
var verifyEnumerable = false;
for (var p in obj) {
if (p === "foo") {
verifyEnumerable = true;
}
}
verifyNotEnumerable(obj, "foo");
verifyNotWritable(obj, "foo");
verifyNotConfigurable(obj, "foo");
var verifyValue = false;
obj.prop = "overrideData";
verifyValue = obj.foo !== obj.foo && isNaN(obj.foo);
var verifyConfigurable = false;
delete obj.foo;
verifyConfigurable = obj.hasOwnProperty("foo");
return verifyConfigurable && !verifyEnumerable && verifyValue;
}

View File

@ -16,11 +16,5 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", { configurable: null });
var beforeDeleted = obj.hasOwnProperty("property");
delete obj.property;
var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
return beforeDeleted === true && afterDeleted === true;
}
assert(obj.hasOwnProperty("property"));
verifyNotConfigurable(obj, "property");

View File

@ -16,11 +16,5 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", { configurable: false });
var beforeDeleted = obj.hasOwnProperty("property");
delete obj.property;
var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
return beforeDeleted === true && afterDeleted === true;
}
assert(obj.hasOwnProperty("property"));
verifyNotConfigurable(obj, "property");

View File

@ -16,11 +16,5 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", { configurable: 0 });
var beforeDeleted = obj.hasOwnProperty("property");
delete obj.property;
var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
return beforeDeleted === true && afterDeleted === true;
}
assert(obj.hasOwnProperty("property"));
verifyNotConfigurable(obj, "property");

View File

@ -16,11 +16,5 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", { configurable: +0 });
var beforeDeleted = obj.hasOwnProperty("property");
delete obj.property;
var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
return beforeDeleted === true && afterDeleted === true;
}
assert(obj.hasOwnProperty("property"));
verifyNotConfigurable(obj, "property");

View File

@ -16,11 +16,5 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", { configurable: -0 });
var beforeDeleted = obj.hasOwnProperty("property");
delete obj.property;
var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
return beforeDeleted === true && afterDeleted === true;
}
assert(obj.hasOwnProperty("property"));
verifyNotConfigurable(obj, "property");

View File

@ -16,11 +16,5 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", { configurable: NaN });
var beforeDeleted = obj.hasOwnProperty("property");
delete obj.property;
var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
return beforeDeleted === true && afterDeleted === true;
}
assert(obj.hasOwnProperty("property"));
verifyNotConfigurable(obj, "property");

View File

@ -16,11 +16,5 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", { configurable: "" });
var beforeDeleted = obj.hasOwnProperty("property");
delete obj.property;
var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
return beforeDeleted === true && afterDeleted === true;
}
assert(obj.hasOwnProperty("property"));
verifyNotConfigurable(obj, "property");

View File

@ -20,11 +20,7 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", attr);
var beforeWrite = obj.hasOwnProperty("property");
assert(obj.hasOwnProperty("property"));
verifyNotWritable(obj, "property");
verifyNotConfigurable(obj, "property");
obj.property = "isWritable";
var afterWrite = (obj.property === "isWritable");
return beforeWrite === true && afterWrite === false;
}

View File

@ -20,11 +20,5 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", attr);
var beforeWrite = obj.hasOwnProperty("property");
obj.property = "isWritable";
var afterWrite = (obj.property === "isWritable");
return beforeWrite === true && afterWrite === false;
}
assert(obj.hasOwnProperty("property"));
verifyNotWritable(obj, "property");

View File

@ -21,11 +21,6 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", attr);
var beforeWrite = obj.hasOwnProperty("property");
assert(obj.hasOwnProperty("property"));
verifyNotWritable(obj, "property");
obj.property = "isWritable";
var afterWrite = (typeof (obj.property) === "undefined");
return beforeWrite === true && afterWrite === true;
}

View File

@ -32,11 +32,5 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", child);
var beforeWrite = obj.hasOwnProperty("property");
obj.property = "isWritable";
var afterWrite = (typeof (obj.property) === "undefined");
return beforeWrite === true && afterWrite === true;
}
assert(obj.hasOwnProperty("property"));
verifyNotWritable(obj, "property");

View File

@ -27,11 +27,5 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", child);
var beforeWrite = obj.hasOwnProperty("property");
obj.property = "isWritable";
var afterWrite = (typeof (obj.property) === "undefined");
return beforeWrite === true && afterWrite === true;
}
assert(obj.hasOwnProperty("property"));
verifyNotWritable(obj, "property");

View File

@ -17,18 +17,11 @@ includes: [propertyHelper.js]
try {
Date.prototype.writable = true;
dateObj = new Date();
var dateObj = new Date();
Object.defineProperty(obj, "property", dateObj);
verifyWritable(obj, "property");
var beforeWrite = obj.hasOwnProperty("property");
obj.property = "isWritable";
var afterWrite = (obj.property === "isWritable");
return beforeWrite === true && afterWrite === true;
} finally {
delete Date.prototype.writable;
}
}

View File

@ -18,11 +18,5 @@ includes: [propertyHelper.js]
writable: undefined
});
var beforeWrite = obj.hasOwnProperty("property");
obj.property = "isWritable";
var afterWrite = (typeof (obj.property) === "undefined");
return beforeWrite === true && afterWrite === true;
}
assert(obj.hasOwnProperty("property"));
verifyNotWritable(obj, "property");

View File

@ -16,11 +16,5 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", { writable: null });
var beforeWrite = obj.hasOwnProperty("property");
obj.property = "isWritable";
var afterWrite = (typeof (obj.property) === "undefined");
return beforeWrite === true && afterWrite === true;
}
assert(obj.hasOwnProperty("property"));
verifyNotWritable(obj, "property");

View File

@ -16,11 +16,5 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", { writable: false });
var beforeWrite = obj.hasOwnProperty("property");
obj.property = "isWritable";
var afterWrite = (typeof (obj.property) === "undefined");
return beforeWrite === true && afterWrite === true;
}
assert(obj.hasOwnProperty("property"));
verifyNotWritable(obj, "property");

View File

@ -16,11 +16,5 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", { writable: 0 });
var beforeWrite = obj.hasOwnProperty("property");
obj.property = "isWritable";
var afterWrite = (typeof (obj.property) === "undefined");
return beforeWrite === true && afterWrite === true;
}
assert(obj.hasOwnProperty("property"));
verifyNotWritable(obj, "property");

View File

@ -16,11 +16,5 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", { writable: +0 });
var beforeWrite = obj.hasOwnProperty("property");
obj.property = "isWritable";
var afterWrite = (typeof (obj.property) === "undefined");
return beforeWrite === true && afterWrite === true;
}
assert(obj.hasOwnProperty("property"));
verifyNotWritable(obj, "property");

View File

@ -16,11 +16,5 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", { writable: -0 });
var beforeWrite = obj.hasOwnProperty("property");
obj.property = "isWritable";
var afterWrite = (typeof (obj.property) === "undefined");
return beforeWrite === true && afterWrite === true;
}
assert(obj.hasOwnProperty("property"));
verifyNotWritable(obj, "property");

View File

@ -16,11 +16,9 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", { writable: NaN});
var beforeWrite = obj.hasOwnProperty("property");
assert(obj.hasOwnProperty("property"));
obj.property = "isWritable";
verifyNotWritable(obj, "property");
var afterWrite = (typeof (obj.property) === "undefined");
assert.sameValue(typeof (obj.property), "undefined");
return beforeWrite === true && afterWrite === true;
}

View File

@ -16,11 +16,5 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", { writable: "" });
var beforeWrite = obj.hasOwnProperty("property");
obj.property = "isWritable";
var afterWrite = (typeof (obj.property) === "undefined");
return beforeWrite === true && afterWrite === true;
}
assert(obj.hasOwnProperty("property"));
verifyNotWritable(obj, "property");

View File

@ -20,7 +20,5 @@ includes: [propertyHelper.js]
}
});
obj.property = 14;
var desc = Object.getOwnPropertyDescriptor(obj, "property");
return obj.hasOwnProperty("property") && obj.property === 11 && typeof desc.set === "undefined";
}
assert(obj.hasOwnProperty("property"));
verifyNotWritable(obj, "property");

View File

@ -21,9 +21,11 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", attributes);
obj.property = "overrideOwnData";
verifyNotWritable(obj, "property");
var desc = Object.getOwnPropertyDescriptor(obj, "property");
return obj.hasOwnProperty("property") && typeof obj.property === "undefined" &&
typeof desc.set === "undefined";
}
assert(obj.hasOwnProperty("property"));
assert.sameValue(typeof obj.property, "undefined");
assert.sameValue(typeof desc.set, "undefined");

View File

@ -34,6 +34,9 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", child);
obj.property = "overrideData";
return obj.hasOwnProperty("property") && typeof obj.property === "undefined" && data === "data";
}
verifyNotWritable(obj, "property");
assert.sameValue(typeof obj.property, "undefined");
assert.sameValue(data, "data");
assert(obj.hasOwnProperty("property"));

View File

@ -26,6 +26,5 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", child);
obj.property = "overrideData";
return obj.hasOwnProperty("property") && typeof obj.property === "undefined";
}
assert(obj.hasOwnProperty("property"));
verifyNotWritable(obj, "property");

View File

@ -18,8 +18,7 @@ includes: [propertyHelper.js]
set: undefined
});
obj.property = "overrideData";
var desc = Object.getOwnPropertyDescriptor(obj, "property");
return obj.hasOwnProperty("property") && typeof obj.property === "undefined" &&
typeof desc.set === "undefined";
}
assert(obj.hasOwnProperty("property"));
verifyNotWritable(obj, "property");

View File

@ -18,11 +18,5 @@ includes: [propertyHelper.js]
configurable: false
});
var beforeDeleted = obj.hasOwnProperty("property");
delete obj.property;
var afterDeleted = obj.hasOwnProperty("property");
return beforeDeleted === true && afterDeleted === true;
}
assert(obj.hasOwnProperty("property"));
verifyNotConfigurable(obj, "property");

View File

@ -16,12 +16,5 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", { value: 100 });
var beforeDeleted = obj.hasOwnProperty("property");
delete obj.property;
var afterDeleted = (obj.property === 100);
return beforeDeleted === true && afterDeleted === true;
}
assert(obj.hasOwnProperty("property"));
verifyNotConfigurable(obj, "property");

View File

@ -25,10 +25,10 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", child);
var beforeDeleted = obj.hasOwnProperty("property");
assert(obj.hasOwnProperty("property"));
delete obj.property;
verifyNotConfigurable(obj, "property");
var afterDeleted = obj.hasOwnProperty("property");
return beforeDeleted && afterDeleted && typeof (obj.property) === "undefined";
}
assert(obj.hasOwnProperty("property"));
assert.sameValue(typeof (obj.property), "undefined");

View File

@ -21,11 +21,5 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", attr);
var beforeDeleted = obj.hasOwnProperty("property");
delete obj.property;
var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
return beforeDeleted === true && afterDeleted === true;
}
assert(obj.hasOwnProperty("property"));
verifyNotConfigurable(obj, "property");

View File

@ -32,11 +32,5 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", child);
var beforeDeleted = obj.hasOwnProperty("property");
delete obj.property;
var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
return beforeDeleted === true && afterDeleted === true;
}
assert(obj.hasOwnProperty("property"));
verifyNotConfigurable(obj, "property");

View File

@ -27,11 +27,11 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", child);
var beforeDeleted = obj.hasOwnProperty("property");
assert(obj.hasOwnProperty("property"));
delete obj.property;
verifyNotConfigurable(obj, "property");
assert(obj.hasOwnProperty("property"));
assert.sameValue(typeof (obj.property), "undefined");
var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
return beforeDeleted === true && afterDeleted === true;
}

View File

@ -16,11 +16,5 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "property", { configurable: undefined });
var beforeDeleted = obj.hasOwnProperty("property");
delete obj.property;
var afterDeleted = obj.hasOwnProperty("property") && typeof (obj.property) === "undefined";
return beforeDeleted === true && afterDeleted === true;
}
assert(obj.hasOwnProperty("property"));
verifyNotConfigurable(obj, "property");

View File

@ -17,23 +17,8 @@ includes: [propertyHelper.js]
Object.defineProperty(arrObj, "length", {});
var verifyValue = false;
if (arrObj.length === 0) {
verifyValue = true;
}
assert.sameValue(arrObj.length, 0);
arrObj.length = 2;
var verifyWritable = arrObj.length === 2;
var verifyEnumerable = false;
for (var p in arrObj) {
if (p === "length" && arrObj.hasOwnProperty(p)) {
verifyEnumerable = true;
}
}
delete arrObj.length;
var verifyConfigurable = arrObj.hasOwnProperty("length");
return verifyValue && verifyWritable && !verifyEnumerable && verifyConfigurable;
}
assert.sameValue(arrObj.length, 2);
verifyNotEnumerable(arrObj, "length");
verifyNotConfigurable(arrObj, "length");

View File

@ -22,23 +22,8 @@ includes: [propertyHelper.js]
configurable: false
});
var verifyValue = false;
if (arrObj.length === 0) {
verifyValue = true;
}
assert.sameValue(arrObj.length, 0);
arrObj.length = 2;
var verifyWritable = arrObj.length === 2 ? true : false;
var verifyEnumerable = false;
for (var p in arrObj) {
if (p === "length" && arrObj.hasOwnProperty(p)) {
verifyEnumerable = true;
}
}
delete arrObj.length;
var verifyConfigurable = arrObj.hasOwnProperty("length");
return verifyValue && verifyWritable && !verifyEnumerable && verifyConfigurable;
}
assert.sameValue(arrObj.length, 2);
verifyNotEnumerable(arrObj, "length");
verifyNotConfigurable(arrObj, "length");

View File

@ -24,9 +24,6 @@ includes: [propertyHelper.js]
writable: false
});
var indexDeleted = !arrObj.hasOwnProperty("1");
arrObj.length = 10;
return indexDeleted && arrObj.length === 1;
}
assert(!arrObj.hasOwnProperty("1"))
assert.sameValue(arrObj.length, 1);
verifyNotWritable(arrObj, "length");

View File

@ -24,6 +24,7 @@ includes: [propertyHelper.js]
writable: false
});
arrObj.length = 10; //try to overwrite length value of arr
return !arrObj.hasOwnProperty("1") && arrObj.length === 0;
}
verifyNotWritable(arrObj, "length");
assert(!arrObj.hasOwnProperty("1"));
assert.sameValue(arrObj.length, 0);

View File

@ -19,23 +19,9 @@ includes: [propertyHelper.js]
Object.defineProperty(arrObj, "0", { value: NaN });
var hasProperty = arrObj.hasOwnProperty("0");
var verifyValue = (arrObj[0] !== arrObj[0]);
assert(arrObj.hasOwnProperty("0"));
assert(arrObj[0] !== arrObj[0]);
var verifyWritable = false;
arrObj[0] = 1001;
verifyWritable = arrObj[0] !== 1001 && arrObj[0] !== arrObj[0];
var verifyEnumerable = false;
for (var p in arrObj) {
if (p === "0") {
verifyEnumerable = true;
}
}
var verifyConfigurable = false;
delete arrObj[0];
verifyConfigurable = arrObj.hasOwnProperty("0");
return hasProperty && verifyValue && verifyWritable && !verifyEnumerable && verifyConfigurable;
}
verifyNotWritable(arrObj, "0");
verifyNotEnumerable(arrObj, "0");
verifyNotWritable(arrObj, "0");

View File

@ -21,7 +21,7 @@ includes: [propertyHelper.js]
Object.defineProperty(arrObj, "1", {
set: undefined
});
var hasProperty = arrObj.hasOwnProperty("1");
assert(arrObj.hasOwnProperty("1"));
Object.defineProperty(arrObj, "1", {
set: undefined
@ -29,20 +29,9 @@ includes: [propertyHelper.js]
var desc = Object.getOwnPropertyDescriptor(arrObj, "1");
var verifyGet = desc.hasOwnProperty("get") && typeof desc.get === "undefined";
assert(desc.hasOwnProperty("get") && typeof desc.get === "undefined");
assert(desc.hasOwnProperty("set") && typeof desc.set === "undefined");
var verifySet = desc.hasOwnProperty("set") && typeof desc.set === "undefined";
verifyNotEnumerable(arrObj, "1");
verifyNotConfigurable(arrObj, "1");
var verifyEnumerable = false;
for (var p in arrObj) {
if (p === "1") {
verifyEnumerable = true
}
}
var verifyConfigurable = false;
delete arrObj[1];
verifyConfigurable = arrObj.hasOwnProperty("1");
return hasProperty && verifyGet && verifySet && !verifyEnumerable && verifyConfigurable;
}

View File

@ -33,27 +33,18 @@ includes: [propertyHelper.js]
}
});
return false;
$ERROR("Expected TypeError");
} catch (e) {
var hasProperty = arrObj.hasOwnProperty("1");
assert(e instanceof TypeError);
assert(arrObj.hasOwnProperty("1"));
var desc = Object.getOwnPropertyDescriptor(arrObj, "1");
var verifyGet = arrObj[1] === getFunc();
assert(arrObj[1] === getFunc());
var verifySet = desc.hasOwnProperty("set") && typeof desc.set === "undefined";
assert(desc.hasOwnProperty("set") && typeof desc.set === "undefined");
var verifyEnumerable = false;
for (var p in arrObj) {
if (p === "1") {
verifyEnumerable = true
}
verifyNotEnumerable(arrObj, "1");
verifyNotConfigurable(arrObj, "1");
}
var verifyConfigurable = false;
delete arrObj[1];
verifyConfigurable = arrObj.hasOwnProperty("1");
return e instanceof TypeError && hasProperty && verifyGet &&
verifySet && !verifyEnumerable && verifyConfigurable;
}
}

View File

@ -29,27 +29,18 @@ includes: [propertyHelper.js]
Object.defineProperty(arrObj, "1", {
get: undefined
});
return false;
$ERROR("Expected TypeError");
} catch (e) {
var hasProperty = arrObj.hasOwnProperty("1");
assert(e instanceof TypeError);
assert(arrObj.hasOwnProperty("1"));
var desc = Object.getOwnPropertyDescriptor(arrObj, "1");
var verifyGet = arrObj[1] === getFunc();
assert(arrObj[1] === getFunc());
assert(desc.hasOwnProperty("set") && typeof desc.set === "undefined");
var verifySet = desc.hasOwnProperty("set") && typeof desc.set === "undefined";
verifyNotWritable(arrObj, "1");
var verifyEnumerable = false;
for (var p in arrObj) {
if (p === "1") {
verifyEnumerable = true
}
verifyNotWritable(arrObj, "1");
}
var verifyConfigurable = false;
delete arrObj[1];
verifyConfigurable = arrObj.hasOwnProperty("1");
return e instanceof TypeError && hasProperty && verifyGet &&
verifySet && !verifyEnumerable && verifyConfigurable;
}
}

View File

@ -20,8 +20,7 @@ includes: [propertyHelper.js]
enumerable: true,
configurable: false
});
var beforeDelete = obj.hasOwnProperty("prop");
delete obj.prop;
var afterDelete = obj.hasOwnProperty("prop");
return beforeDelete && obj.prop === 2010 && afterDelete;
}
assert(obj.hasOwnProperty("prop"));
verifyNotConfigurable(obj, "prop");
assert.sameValue(obj.prop, 2010);

View File

@ -20,8 +20,7 @@ includes: [propertyHelper.js]
enumerable: false,
configurable: false
});
var beforeDelete = obj.hasOwnProperty("prop");
delete obj.prop;
var afterDelete = obj.hasOwnProperty("prop");
return beforeDelete && obj.prop === 2010 && afterDelete;
}
assert(obj.hasOwnProperty("prop"));
verifyNotConfigurable(obj, "prop");
assert.sameValue(obj.prop, 2010);

View File

@ -21,8 +21,7 @@ includes: [propertyHelper.js]
enumerable: true,
configurable: true
});
var verifyValue = (obj.prop === 2010);
obj.prop = 1001;
return verifyValue && obj.prop === 2010;
}
assert.sameValue(obj.prop, 2010);
verifyNotWritable(obj, "prop");

View File

@ -24,8 +24,6 @@ includes: [propertyHelper.js]
enumerable: true,
configurable: true
});
var valueVerify = (obj[0] === 2010);
obj[0] = 1001;
return valueVerify && obj[0] === 2010;
}
assert.sameValue(obj[0], 2010);
verifyNotWritable(obj, "0");

View File

@ -21,8 +21,6 @@ includes: [propertyHelper.js]
enumerable: true,
configurable: true
});
var verifyValue = (obj[0] === 2010);
obj[0] = 1001;
return verifyValue && obj[0] === 2010;
}
assert.sameValue(obj[0], 2010);
verifyNotWritable(obj, "0");

View File

@ -23,8 +23,6 @@ includes: [propertyHelper.js]
enumerable: true,
configurable: true
});
var valueVerify = (obj.prop === 2010);
obj.prop = 1001;
return valueVerify && obj.prop === 2010;
}
assert.sameValue(obj.prop, 2010);
verifyNotWritable(obj, "prop");

View File

@ -23,11 +23,11 @@ includes:
enumerable: true,
configurable: true
});
var valueVerify = (obj.prop === 2010);
obj.prop = 1001;
return valueVerify && obj.prop === 2010;
assert.sameValue(obj.prop, 2010);
verifyNotWritable(obj, "prop");
} finally {
delete obj.prop;
}
}

View File

@ -20,8 +20,6 @@ includes: [propertyHelper.js]
enumerable: true,
configurable: true
});
var propertyDefineCorrect = (obj.prop === 2010);
obj.prop = 1001;
return propertyDefineCorrect && obj.prop === 2010;
}
assert.sameValue(obj.prop, 2010);
verifyNotWritable(obj, "prop");

View File

@ -20,8 +20,6 @@ includes: [propertyHelper.js]
enumerable: true,
configurable: false
});
var propertyDefineCorrect = (obj.prop === 2010);
obj.prop = 1001;
return propertyDefineCorrect && obj.prop === 2010;
}
assert.sameValue(obj.prop, 2010);
verifyNotWritable(obj, "prop");

View File

@ -20,8 +20,6 @@ includes: [propertyHelper.js]
enumerable: true,
configurable: false
});
var beforeDelete = obj.hasOwnProperty("prop");
delete obj.prop;
var afterDelete = obj.hasOwnProperty("prop");
return beforeDelete && obj.prop === 2010 && afterDelete;
}
assert(obj.hasOwnProperty("prop"));
verifyNotConfigurable(obj, "prop");

View File

@ -20,8 +20,6 @@ includes: [propertyHelper.js]
enumerable: false,
configurable: true
});
var propertyDefineCorrect = (obj.prop === 2010);
obj.prop = 1001;
return propertyDefineCorrect && obj.prop === 2010;
}
assert.sameValue(obj.prop, 2010);
verifyNotWritable(obj, "prop");

View File

@ -20,8 +20,6 @@ includes: [propertyHelper.js]
enumerable: false,
configurable: false
});
var propertyDefineCorrect = (obj.prop === 2010);
obj.prop = 1001;
return propertyDefineCorrect && obj.prop === 2010;
}
assert.sameValue(obj.prop, 2010);
verifyNotWritable(obj, "prop");

View File

@ -20,8 +20,6 @@ includes: [propertyHelper.js]
enumerable: false,
configurable: false
});
var beforeDelete = obj.hasOwnProperty("prop");
delete obj.prop;
var afterDelete = obj.hasOwnProperty("prop");
return beforeDelete && obj.prop === 2010 && afterDelete;
}
assert(obj.hasOwnProperty("prop"));
verifyNotConfigurable(obj, "prop");

View File

@ -20,11 +20,12 @@ includes: [propertyHelper.js]
enumerable: false,
configurable: true
});
var numObj = new Number();
numObj.prop = 1002;
return !numObj.hasOwnProperty("prop") && numObj.prop === 1001;
var numObj = new Number();
assert(!numObj.hasOwnProperty("prop"));
verifyNotWritable(numObj, "prop", "noCheckOwnProp");
} finally {
delete Number.prototype.prop;
}
}

View File

@ -20,10 +20,12 @@ includes: [propertyHelper.js]
enumerable: false,
configurable: true
});
JSON.prop = 1002;
return !JSON.hasOwnProperty("prop") && JSON.prop === 1001;
assert(!JSON.hasOwnProperty("prop"));
verifyNotWritable(JSON, "prop", "noCheckOwnProp");
assert.sameValue(JSON.prop, 1001);
} finally {
delete Object.prototype.prop;
}
}

View File

@ -37,16 +37,21 @@ includes: [propertyHelper.js]
});
var teamMeeting = Object.create(meeting);
teamMeeting.name = "Team Meeting";
//teamMeeting.name = "Team Meeting";
verifyNotWritable(teamMeeting, "name", "noCheckOwnProp");
var dateObj = new Date("10/31/2010 08:00");
teamMeeting.startTime = dateObj;
teamMeeting.conferenceCall = "4255551212";
//teamMeeting.startTime = dateObj;
verifyNotWritable(teamMeeting, "startTime", "noCheckOwnProp");
var hasOwnProperty = !teamMeeting.hasOwnProperty("name") &&
!teamMeeting.hasOwnProperty("startTime") &&
!teamMeeting.hasOwnProperty('conferenceCall');
//teamMeeting.conferenceCall = "4255551212";
verifyNotWritable(teamMeeting, "conferenceCall", "noCheckOwnProp");
return hasOwnProperty && teamMeeting.name === "NAME" &&
teamMeeting.startTime === 1001 &&
teamMeeting.conferenceCall === "In-person meeting";
}
assert(!teamMeeting.hasOwnProperty("name"));
assert(!teamMeeting.hasOwnProperty("startTime"));
assert(!teamMeeting.hasOwnProperty('conferenceCall'));
assert.sameValue(teamMeeting.name, "NAME");
assert.sameValue(teamMeeting.startTime, 1001);
assert.sameValue(teamMeeting.conferenceCall, "In-person meeting");

View File

@ -23,10 +23,9 @@ includes: [propertyHelper.js]
});
var obj = foo.bind({});
obj.prop = 1002;
return !obj.hasOwnProperty("prop") && obj.prop === 1001;
assert(!obj.hasOwnProperty("prop"));
verifyNotWritable(foo, "prop", "noCheckOwnProp");
} finally {
delete Function.prototype.prop;
}
}

View File

@ -28,7 +28,8 @@ includes: [propertyHelper.js]
configurable: false
});
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
delete obj.prop;
return desc1.configurable === true && desc2.configurable === false && obj.hasOwnProperty("prop");
}
verifyNotConfigurable(obj, "prop");
assert.sameValue(desc1.configurable, true);
assert.sameValue(desc2.configurable, false);
assert(obj.hasOwnProperty("prop"));

View File

@ -22,10 +22,10 @@ includes: [propertyHelper.js]
configurable: false
});
var propertyDefineCorrect = obj.hasOwnProperty("prop");
assert(obj.hasOwnProperty("prop"));
var desc = Object.getOwnPropertyDescriptor(obj, "prop");
delete obj.prop;
assert.sameValue(desc.configurable, false);
return propertyDefineCorrect && desc.configurable === false && obj.hasOwnProperty("prop");
}
verifyNotConfigurable(obj, "prop");

View File

@ -29,11 +29,16 @@ includes: [propertyHelper.js]
configurable: true
});
return false;
$ERROR("Expected TypeError");
} catch (e) {
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
delete obj.prop;
assert(e instanceof TypeError);
return desc1.configurable === false && desc2.configurable === false && obj.hasOwnProperty("prop") && e instanceof TypeError;
}
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
assert.sameValue(desc1.configurable, false);
assert.sameValue(desc2.configurable, false);
verifyNotConfigurable(obj, "prop");
assert(obj.hasOwnProperty("prop"));
}

View File

@ -27,8 +27,11 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "prop", {
configurable: false
});
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
delete obj.prop;
return desc1.configurable === true && desc2.configurable === false && obj.hasOwnProperty("prop");
}
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
assert.sameValue(desc1.configurable, true);
assert.sameValue(desc2.configurable, false);
verifyNotConfigurable(obj, "prop");
assert(obj.hasOwnProperty("prop"));

View File

@ -22,10 +22,10 @@ includes: [propertyHelper.js]
configurable: false
});
var propertyDefineCorrect = obj.hasOwnProperty("prop");
assert(obj.hasOwnProperty("prop"));
var desc = Object.getOwnPropertyDescriptor(obj, "prop");
delete obj.prop;
assert.sameValue(desc.configurable, false);
return propertyDefineCorrect && desc.configurable === false && obj.hasOwnProperty("prop");
}
verifyNotConfigurable(obj, "prop");

View File

@ -29,11 +29,16 @@ includes: [propertyHelper.js]
configurable: true
});
return false;
$ERROR("Expected TypeError");
} catch (e) {
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
delete obj.prop;
assert(e instanceof TypeError);
return desc1.configurable === false && desc2.configurable === false && obj.hasOwnProperty("prop") && e instanceof TypeError;
}
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
assert.sameValue(desc1.configurable, false);
assert.sameValue(desc2.configurable, false);
verifyNotConfigurable(obj, "prop");
assert(obj.hasOwnProperty("prop"));
}

View File

@ -32,8 +32,11 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "prop", {
configurable: false
});
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
delete obj.prop;
return desc1.configurable === true && desc2.configurable === false && obj.hasOwnProperty("prop");
}
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
assert.sameValue(desc1.configurable, true);
assert.sameValue(desc2.configurable, false);
verifyNotConfigurable(obj, "prop");
assert(obj.hasOwnProperty("prop"));

View File

@ -27,10 +27,12 @@ includes: [propertyHelper.js]
configurable: false
});
var propertyDefineCorrect = obj.hasOwnProperty("prop");
assert(obj.hasOwnProperty("prop"));
var desc = Object.getOwnPropertyDescriptor(obj, "prop");
delete obj.prop;
verifyNotWritable(obj, "prop");
return propertyDefineCorrect && desc.configurable === false && obj.hasOwnProperty("prop");
}
assert.sameValue(desc.configurable, false);
assert(obj.hasOwnProperty("prop"));

View File

@ -34,11 +34,16 @@ includes: [propertyHelper.js]
configurable: true
});
return false;
$ERROR("Expected TypeError");
} catch (e) {
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
delete obj.prop;
assert(e instanceof TypeError);
return desc1.configurable === false && desc2.configurable === false && obj.hasOwnProperty("prop") && e instanceof TypeError;
}
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
assert.sameValue(desc1.configurable, false);
assert.sameValue(desc2.configurable, false);
verifyNotConfigurable(obj, "prop");
assert(obj.hasOwnProperty("prop"));
}

View File

@ -32,8 +32,12 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "prop", {
configurable: false
});
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
delete obj.prop;
return desc1.configurable === true && desc2.configurable === false && obj.hasOwnProperty("prop");
}
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
assert.sameValue(desc1.configurable, true);
assert.sameValue(desc2.configurable, false);
verifyNotConfigurable(obj, "prop");
assert(obj.hasOwnProperty("prop"));

View File

@ -27,10 +27,11 @@ includes: [propertyHelper.js]
configurable: false
});
var propertyDefineCorrect = obj.hasOwnProperty("prop");
assert(obj.hasOwnProperty("prop"));
var desc = Object.getOwnPropertyDescriptor(obj, "prop");
delete obj.prop;
verifyNotConfigurable(obj, "prop");
assert.sameValue(desc.configurable, false);
return propertyDefineCorrect && desc.configurable === false && obj.hasOwnProperty("prop");
}
assert(obj.hasOwnProperty("prop"));

View File

@ -34,11 +34,16 @@ includes: [propertyHelper.js]
configurable: true
});
return false;
$ERROR("Expected TypeError");
} catch (e) {
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
delete obj.prop;
assert(e instanceof TypeError);
return desc1.configurable === false && desc2.configurable === false && obj.hasOwnProperty("prop") && e instanceof TypeError;
}
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
verifyNotConfigurable(obj, "prop");
assert.sameValue(desc1.configurable, false);
assert.sameValue(desc2.configurable, false);
assert(obj.hasOwnProperty("prop"));
}

View File

@ -31,8 +31,12 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "prop", {
configurable: false
});
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
delete obj.prop;
return desc1.configurable === true && desc2.configurable === false && obj.hasOwnProperty("prop");
}
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
assert.sameValue(desc1.configurable, true);
assert.sameValue(desc2.configurable, false);
verifyNotWritable(obj, "prop");
assert(obj.hasOwnProperty("prop"));

View File

@ -26,10 +26,12 @@ includes: [propertyHelper.js]
configurable: false
});
var propertyDefineCorrect = obj.hasOwnProperty("prop");
assert(obj.hasOwnProperty("prop"));
var desc = Object.getOwnPropertyDescriptor(obj, "prop");
delete obj.prop;
assert.sameValue(desc.configurable, false);
return propertyDefineCorrect && desc.configurable === false && obj.hasOwnProperty("prop");
}
verifyNotConfigurable(obj, "prop");
assert(obj.hasOwnProperty("prop"));

View File

@ -33,11 +33,16 @@ includes: [propertyHelper.js]
configurable: true
});
return false;
$ERROR("Expected TypeError");
} catch (e) {
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
delete obj.prop;
assert(e instanceof TypeError);
return desc1.configurable === false && desc2.configurable === false && obj.hasOwnProperty("prop") && e instanceof TypeError;
}
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
assert.sameValue(desc1.configurable, false);
assert.sameValue(desc2.configurable, false);
verifyNotConfigurable(obj, "prop");
assert(obj.hasOwnProperty("prop"));
}

View File

@ -31,8 +31,12 @@ includes: [propertyHelper.js]
Object.defineProperty(obj, "prop", {
configurable: false
});
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
delete obj.prop;
return desc1.configurable === true && desc2.configurable === false && obj.hasOwnProperty("prop");
}
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
assert.sameValue(desc1.configurable, true);
assert.sameValue(desc2.configurable, false);
verifyNotConfigurable(obj, "prop");
assert(obj.hasOwnProperty("prop"));

View File

@ -26,10 +26,11 @@ includes: [propertyHelper.js]
configurable: false
});
var propertyDefineCorrect = obj.hasOwnProperty("prop");
assert(obj.hasOwnProperty("prop"));
var desc = Object.getOwnPropertyDescriptor(obj, "prop");
delete obj.prop;
assert.sameValue(desc.configurable, false);
return propertyDefineCorrect && desc.configurable === false && obj.hasOwnProperty("prop");
}
verifyNotConfigurable(obj, "prop");
assert(obj.hasOwnProperty("prop"));

View File

@ -33,11 +33,16 @@ includes: [propertyHelper.js]
configurable: true
});
return false;
$ERROR("Expected TypeError");
} catch (e) {
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
delete obj.prop;
assert(e instanceof TypeError);
return desc1.configurable === false && desc2.configurable === false && obj.hasOwnProperty("prop") && e instanceof TypeError;
}
var desc2 = Object.getOwnPropertyDescriptor(obj, "prop");
assert.sameValue(desc1.configurable, false);
assert.sameValue(desc2.configurable, false);
verifyNotConfigurable(obj, "prop");
assert(obj.hasOwnProperty("prop"));
}

View File

@ -26,9 +26,10 @@ includes: [propertyHelper.js]
configurable: true
});
obj[0] = "overrideData";
var propertyDefineCorrect = obj.hasOwnProperty("0");
verifyNotWritable(obj, "0");
assert(obj.hasOwnProperty("0"));
var desc = Object.getOwnPropertyDescriptor(obj, "0");
return propertyDefineCorrect && typeof desc.set === "undefined" && obj[0] === "data";
}
assert.sameValue(typeof desc.set, "undefined");