Skip to content

要求必须是原生的Symbol #481

@rabit2022

Description

@rabit2022
var $iterator$ = Type.symbol(Symbol.iterator)
    ? Symbol.iterator
    : '_es6-shim iterator_';
fl.trace($iterator$);

我发现 $iterator$ 总是'es6-shim iterator';即使我的环境里面polyfill了Symbol

原因是

var Type = {
    primitive: function (x) {
        return x === null || (typeof x !== 'function' && typeof x !== 'object');
    },
    string: function (x) {
        return _toString(x) === '[object String]';
    },
    regex: function (x) {
        return _toString(x) === '[object RegExp]';
    },
    symbol: function (x) {
        return typeof globals.Symbol === 'function' && typeof x === 'symbol';
    }
};

这里要求必须是原生的Symbol,这里的判断是否过于严格

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions