/
githubmirror
/
webpack
Обзор
Документация
Войти
/
githubmirror
/
webpack
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
v5.105.2
lib/util/AppendOnlyStackedSet.js
57 строк
982 B
hai-x
feat: support import specifier guard (#20320)
02 фев 2026, 18:31
Не верифицирован
02 фев 2026, 18:31
cd4793d
Код
Авторство
О чём код?
/* MIT License http://www.opensource.org/licenses/mit-license.php Author Ivan Kopeykin @vankop */ "use strict"; /** * @template T */ class AppendOnlyStackedSet { /** * @param {Set<T>[]} sets an optional array of sets */ constructor(sets = []) { /** @type {Set<T>[]} */ this._sets = sets; /** @type {Set<T> | undefined} */ this._current = undefined; } /** * @param {T} el element */ add(el) { if (!this._current) { this._current = new Set(); this._sets.push(this._current); } this._current.add(el); } /** * @param {T} el element * @returns {boolean} result */ has(el) { for (const set of this._sets) { if (set.has(el)) return true; } return false; } clear() { this._sets = []; if (this._current) this._current.clear(); } /** * @returns {AppendOnlyStackedSet<T>} child */ createChild() { return new AppendOnlyStackedSet(this._sets.length ? [...this._sets] : []); } } module.exports = AppendOnlyStackedSet;