private
Advanced tools
Comparing version 0.1.4 to 0.1.5
@@ -19,3 +19,3 @@ { | ||
], | ||
"version": "0.1.4", | ||
"version": "0.1.5", | ||
"homepage": "http://github.com/benjamn/private", | ||
@@ -22,0 +22,0 @@ "repository": { |
@@ -9,8 +9,3 @@ "use strict"; | ||
if (originalDefProp) try { | ||
originalDefProp.call(originalObject, obj, name, { | ||
value: value, | ||
writable: false, | ||
enumerable: false, | ||
configurable: false | ||
}); | ||
originalDefProp.call(originalObject, obj, name, { value: value }); | ||
} catch (definePropertyIsBrokenInIE8) { | ||
@@ -67,13 +62,8 @@ obj[name] = value; | ||
function wrap(obj, value) { | ||
var old = obj[value.name]; | ||
defProp(obj, value.name, value); | ||
return old; | ||
} | ||
// Object.getOwnPropertyNames is the only way to enumerate non-enumerable | ||
// properties, so if we wrap it to ignore our secret keys, there should be | ||
// no way (except guessing) to access those properties. | ||
var realGetOPNs = wrap(Object, function getOwnPropertyNames(object) { | ||
for (var names = realGetOPNs(object), | ||
var originalGetOPNs = Object.getOwnPropertyNames; | ||
Object.getOwnPropertyNames = function getOwnPropertyNames(object) { | ||
for (var names = originalGetOPNs(object), | ||
src = 0, | ||
@@ -93,3 +83,3 @@ dst = 0, | ||
return names; | ||
}); | ||
}; | ||
@@ -96,0 +86,0 @@ function defaultCreatorFn(object) { |
14995
162