Skip to content

Commit 8021f70

Browse files
committed
Improve legacy iterators check
1 parent 657b8e6 commit 8021f70

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

polyfills/Array/prototype/values/polyfill.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
/* global CreateMethodProperty, Symbol, ToObject, ArrayIterator */
22
// 22.1.3.30/ Array.prototype.values ( )
33

4-
var hasLegacyIterator = !(function () {
4+
var hasModernIterator = function () {
55
// firefox 44 and below uses legacy iterators
66
// https://github.com/zloirock/core-js/commit/bb3b34bbf92b1d1a7b50d3a5a445c84dc2fb5cd5#diff-25d2a16dc5a355ce40a572773be144d1c8e085a809633e42ec$
77
var IteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));
88
var test = {};
99
return IteratorPrototype[Symbol.iterator].call(test) === test;
10-
})();
10+
}
1111

1212
// Firefox, Chrome and Opera have Array.prototype[Symbol.iterator], which is the exact same function as Array.prototype.values.
13-
if ('Symbol' in self && 'iterator' in Symbol && typeof Array.prototype[Symbol.iterator] === 'function' && !hasLegacyIterator) {
13+
if ('Symbol' in self && 'iterator' in Symbol && typeof Array.prototype[Symbol.iterator] === 'function' && hasModernIterator()) {
1414
CreateMethodProperty(Array.prototype, 'values', Array.prototype[Symbol.iterator]);
1515
} else {
1616
CreateMethodProperty(Array.prototype, 'values', function values () {

0 commit comments

Comments
 (0)