diff --git a/CHANGELOG.md b/CHANGELOG.md index 7df5f37ea283..20778751e7ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ ## Changelog ##### Unreleased +- [`Set` methods proposal](https://github.com/tc39/proposal-set-methods) minor updates: + - Closing of iterators of `Set`-like objects on early exit, [proposal-set-methods/85](https://github.com/tc39/proposal-set-methods/pull/85) - Added one more workaround of a `webpack` dev server bug on IE global methods, [#1161](https://github.com/zloirock/core-js/issues/1161) - Fixed possible `String.{ raw, cooked }` error with empty template array - Used non-standard V8 `Error.captureStackTrace` instead of stack parsing in new error classes / wrappers where it's possible diff --git a/packages/core-js/internals/set-is-disjoint-from.js b/packages/core-js/internals/set-is-disjoint-from.js index 239eaf85bef1..cff2cfc6704f 100644 --- a/packages/core-js/internals/set-is-disjoint-from.js +++ b/packages/core-js/internals/set-is-disjoint-from.js @@ -4,7 +4,7 @@ var has = require('../internals/set-helpers').has; var size = require('../internals/set-size'); var getSetRecord = require('../internals/get-set-record'); var iterateSet = require('../internals/set-iterate'); -var iterateSimple = require('../internals/iterate-simple'); +var iterate = require('../internals/iterate'); // `Set.prototype.isDisjointFrom` method // https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom @@ -15,8 +15,8 @@ module.exports = function isDisjointFrom(other) { ? iterateSet(O, function (e) { if (otherRec.includes(e)) return false; }, true) - : iterateSimple(otherRec.getIterator(), function (e) { - if (has(O, e)) return false; - }) + : !iterate(otherRec.getIterator(), function (e, stop) { + if (has(O, e)) return stop(); + }, { IS_ITERATOR: true, INTERRUPTED: true }).stopped ); }; diff --git a/packages/core-js/internals/set-is-superset-of.js b/packages/core-js/internals/set-is-superset-of.js index b5a3d3dba8aa..aa826255f9e4 100644 --- a/packages/core-js/internals/set-is-superset-of.js +++ b/packages/core-js/internals/set-is-superset-of.js @@ -3,7 +3,7 @@ var aSet = require('../internals/a-set'); var has = require('../internals/set-helpers').has; var size = require('../internals/set-size'); var getSetRecord = require('../internals/get-set-record'); -var iterateSimple = require('../internals/iterate-simple'); +var iterate = require('../internals/iterate'); // `Set.prototype.isSupersetOf` method // https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf @@ -11,7 +11,7 @@ module.exports = function isSupersetOf(other) { var O = aSet(this); var otherRec = getSetRecord(other); if (size(O) < otherRec.size) return false; - return iterateSimple(otherRec.getIterator(), function (e) { - if (has(O, e) === false) return false; - }) !== false; + return !iterate(otherRec.getIterator(), function (e, stop) { + if (!has(O, e)) return stop(); + }, { IS_ITERATOR: true, INTERRUPTED: true }).stopped; };