| 123456789101112131415161718192021222324252627282930 |
- 'use strict';
- // Should get iterator record of a set-like object before cloning this
- // https://bugs.webkit.org/show_bug.cgi?id=289430
- module.exports = function (METHOD_NAME) {
- try {
- // eslint-disable-next-line es/no-set -- needed for test
- var baseSet = new Set();
- var setLike = {
- size: 0,
- has: function () { return true; },
- keys: function () {
- // eslint-disable-next-line es/no-object-defineproperty -- needed for test
- return Object.defineProperty({}, 'next', {
- get: function () {
- baseSet.clear();
- baseSet.add(4);
- return function () {
- return { done: true };
- };
- }
- });
- }
- };
- var result = baseSet[METHOD_NAME](setLike);
- return result.size === 1 && result.values().next().value === 4;
- } catch (error) {
- return false;
- }
- };
|