Skip to content
Snippets Groups Projects
Commit f81dd64d authored by Brian Terlson's avatar Brian Terlson
Browse files

Merge pull request #191 from bocoup/non-destructive-writable-check

Make writability helper function non-destructive
parents d24fd105 9f8f0284
No related branches found
No related tags found
No related merge requests found
......@@ -29,6 +29,9 @@ function isEqualTo(obj, name, expectedValue) {
function isWritable(obj, name, verifyProp, value) {
var newValue = value || "unlikelyValue";
var hadValue = Object.prototype.hasOwnProperty.call(obj, name);
var oldValue = obj[name];
var result;
try {
obj[name] = newValue;
......@@ -38,12 +41,16 @@ function isWritable(obj, name, verifyProp, value) {
}
}
if ((verifyProp && isEqualTo(obj, verifyProp, newValue)) ||
isEqualTo(obj, name, newValue)) {
return true;
result = (verifyProp && isEqualTo(obj, verifyProp, newValue)) ||
isEqualTo(obj, name, newValue);
if (hadValue) {
obj[name] = oldValue;
} else {
delete obj[name];
}
return false;
return result;
}
function verifyEqualTo(obj, name, value) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment