'a'
mh-two-thousand-and-two
2024-04-12 44d2c92345cd156a59fc327b3060292a282d2893
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
'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();
});