Show More
Commit Description:
merge
Commit Description:
merge
References:
File last commit:
Show/Diff file:
Action:
node_modules/object-inspect/test/has.js
| 31 lines
| 900 B
| application/javascript
| JavascriptLexer
|
r789 | var inspect = require('../'); | |||
var test = require('tape'); | ||||
var withoutProperty = function (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]; | ||||
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]; | ||||
}); | ||||