Spaces:
Runtime error
Runtime error
| ; | |
| 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(); | |
| }); | |