heyujie
2021-05-20 6ebdefb4a5b2be82a8c452c0bb4624f3d85a17b7
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
'use strict';
 
var d        = require('d')
  , isSymbol = require('../is-symbol')
 
  , defineProperty = Object.defineProperty;
 
module.exports = function (T, a) {
    var symbol = T('test'), x = {};
    defineProperty(x, symbol, d('foo'));
    a(x.test, undefined, "Name");
    a(x[symbol], 'foo', "Get");
    a(x instanceof T, false);
 
    a(isSymbol(symbol), true, "Symbol");
    a(isSymbol(T.iterator), true, "iterator");
    a(isSymbol(T.toStringTag), true, "toStringTag");
 
    x = {};
    x[symbol] = 'foo';
    if (typeof symbol !== 'symbol') {
        a.deep(Object.getOwnPropertyDescriptor(x, symbol), { configurable: true, enumerable: false,
            value: 'foo', writable: true });
    }
    symbol = T.for('marko');
    a(isSymbol(symbol), true);
    a(T.for('marko'), symbol);
    a(T.keyFor(symbol), 'marko');
};