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,这里的判断是否过于严格
我发现$iterator$ 总是'es6-shim iterator';即使我的环境里面polyfill了Symbol
原因是
这里要求必须是原生的Symbol,这里的判断是否过于严格