v3 new release (#80)
This commit is contained in:
committed by
GitHub
parent
a767c8d3a1
commit
20d2b4f98d
34
node_modules/object-inspect/test/has.js
generated
vendored
Normal file
34
node_modules/object-inspect/test/has.js
generated
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
var inspect = require('../');
|
||||
var test = require('tape');
|
||||
|
||||
function withoutProperty(object, property, fn) {
|
||||
var original;
|
||||
if (Object.getOwnPropertyDescriptor) {
|
||||
original = Object.getOwnPropertyDescriptor(object, property);
|
||||
} else {
|
||||
original = object[property];
|
||||
}
|
||||
delete object[property];
|
||||
try {
|
||||
fn();
|
||||
} finally {
|
||||
if (Object.getOwnPropertyDescriptor) {
|
||||
Object.defineProperty(object, property, original);
|
||||
} else {
|
||||
object[property] = original;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
test('when Object#hasOwnProperty is deleted', function (t) {
|
||||
t.plan(1);
|
||||
var arr = [1, , 3]; // eslint-disable-line no-sparse-arrays
|
||||
|
||||
// eslint-disable-next-line no-extend-native
|
||||
Array.prototype[1] = 2; // this is needed to account for "in" vs "hasOwnProperty"
|
||||
|
||||
withoutProperty(Object.prototype, 'hasOwnProperty', function () {
|
||||
t.equal(inspect(arr), '[ 1, , 3 ]');
|
||||
});
|
||||
delete Array.prototype[1];
|
||||
});
|
Reference in New Issue
Block a user