Index: frontend/node_modules/es-shim-unscopables/test/index.js
===================================================================
--- frontend/node_modules/es-shim-unscopables/test/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/es-shim-unscopables/test/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,70 @@
+'use strict';
+
+var test = require('tape');
+var inspect = require('object-inspect');
+var v = require('es-value-fixtures');
+var forEach = require('for-each');
+var hasOwn = require('hasown');
+
+var shimUnscopables = require('../');
+
+/** @type {(a: symbol, b: symbol) => number} */
+var sortSymbols = function (a, b) {
+	return inspect(a).localeCompare(inspect(b));
+};
+
+test('shimUnscopables', function (t) {
+	t.equal(typeof shimUnscopables, 'function', 'is a function');
+
+	forEach(v.nonStrings, function (notNonEmptyString) {
+		t['throws'](
+			// @ts-expect-error
+			function () { shimUnscopables(notNonEmptyString); },
+			TypeError,
+			inspect(notNonEmptyString) + ' is not a non-empty String'
+		);
+	});
+
+	t['throws'](
+		// @ts-expect-error
+		function () { shimUnscopables('x'); },
+		TypeError,
+		inspect('x') + ' is not on Array.prototype'
+	);
+
+	t.test('no symbols', { skip: typeof Symbol === 'function' }, function (st) {
+		st.doesNotThrow(function () { shimUnscopables('forEach'); });
+
+		st.end();
+	});
+
+	t.test('symbols, no unscopables', { skip: typeof Symbol !== 'function' || !!Symbol.unscopables }, function (st) {
+		st.deepEqual(Object.getOwnPropertySymbols(Array.prototype), [Symbol.iterator]);
+
+		shimUnscopables('forEach');
+
+		st.deepEqual(Object.getOwnPropertySymbols(Array.prototype), [Symbol.iterator]);
+
+		st.end();
+	});
+
+	t.test('Symbol.unscopables', { skip: typeof Symbol !== 'function' || !Symbol.unscopables }, function (st) {
+		st.deepEqual(
+			Object.getOwnPropertySymbols(Array.prototype).sort(sortSymbols),
+			[Symbol.iterator, Symbol.unscopables]
+		);
+		st.notOk(hasOwn(Array.prototype[Symbol.unscopables], 'forEach'), 'unscopables map lacks forEach');
+
+		shimUnscopables('forEach');
+
+		st.deepEqual(
+			Object.getOwnPropertySymbols(Array.prototype).sort(sortSymbols),
+			[Symbol.iterator, Symbol.unscopables]
+		);
+		st.equal(Array.prototype[Symbol.unscopables].forEach, true, 'unscopables map has forEach');
+
+		st.end();
+	});
+
+	t.end();
+});
Index: frontend/node_modules/es-shim-unscopables/test/with.js
===================================================================
--- frontend/node_modules/es-shim-unscopables/test/with.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/es-shim-unscopables/test/with.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,43 @@
+/* eslint no-restricted-syntax: 0, no-with: 0, strict: 0 */
+
+var test = require('tape');
+
+var shimUnscopables = require('../');
+
+test('`with` statement', { skip: typeof Symbol !== 'function' || !Symbol.unscopables }, function (t) {
+	// @ts-expect-error this variable is declared in case unscopables doesn't work
+	var entries;
+	// @ts-expect-error this variable is declared in case unscopables doesn't work
+	var concat;
+	// @ts-expect-error `with` unsupported
+	with ([]) {
+		t.equal(concat, Array.prototype.concat, 'concat is dynamically bound');
+		t.notEqual(entries, Array.prototype.entries, 'entries is not dynamically bound');
+	}
+
+	/** @type {Record<PropertyKey, unknown>} */
+	var obj = {
+		foo: 1,
+		bar: 2
+	};
+	// @ts-expect-error this variable is declared in case unscopables doesn't work
+	var foo;
+	// @ts-expect-error this variable is declared in case unscopables doesn't work
+	var bar;
+	obj[Symbol.unscopables] = { foo: true };
+	// @ts-expect-error `with` unsupported
+	with (obj) {
+		t.equal(foo, undefined);
+		t.equal(bar, obj.bar);
+	}
+
+	shimUnscopables('concat');
+
+	// @ts-expect-error `with` unsupported
+	with ([]) {
+		t.notEqual(concat, Array.prototype.concat, 'concat is no longer dynamically bound');
+		t.notEqual(entries, Array.prototype.entries, 'entries is still not dynamically bound');
+	}
+
+	t.end();
+});
