Spaces:
Sleeping
Sleeping
File size: 1,244 Bytes
51ddcbf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
'use strict';
var $defineProperty = require('../');
var test = require('tape');
var gOPD = require('gopd');
test('defineProperty: supported', { skip: !$defineProperty }, function (t) {
t.plan(4);
t.equal(typeof $defineProperty, 'function', 'defineProperty is supported');
if ($defineProperty && gOPD) { // this `if` check is just to shut TS up
var o = { a: 1 };
$defineProperty(o, 'b', { enumerable: true, value: 2 });
t.deepEqual(
gOPD(o, 'b'),
{
configurable: false,
enumerable: true,
value: 2,
writable: false
},
'property descriptor is as expected'
);
$defineProperty(o, 'c', { enumerable: false, value: 3, writable: true });
t.deepEqual(
gOPD(o, 'c'),
{
configurable: false,
enumerable: false,
value: 3,
writable: true
},
'property descriptor is as expected'
);
}
t.equal($defineProperty, Object.defineProperty, 'defineProperty is Object.defineProperty');
t.end();
});
test('defineProperty: not supported', { skip: !!$defineProperty }, function (t) {
t.notOk($defineProperty, 'defineProperty is not supported');
t.match(
typeof $defineProperty,
/^(?:undefined|boolean)$/,
'`typeof defineProperty` is `undefined` or `boolean`'
);
t.end();
});
|