From af995579232639f4d717c5428f7a94b1a413b5b4 Mon Sep 17 00:00:00 2001 From: jdecroock Date: Sun, 10 Nov 2024 14:01:40 +0100 Subject: [PATCH] Remove more compat IE11 stuff --- TODO.md | 3 +- compat/src/index.d.ts | 5 --- compat/src/index.js | 13 -------- compat/src/render.js | 8 +---- compat/test/browser/exports.test.js | 2 -- .../browser/unstable_batchedUpdates.test.js | 33 ------------------- 6 files changed, 2 insertions(+), 62 deletions(-) delete mode 100644 compat/test/browser/unstable_batchedUpdates.test.js diff --git a/TODO.md b/TODO.md index e7b94d815a3..3bc7686b1c0 100644 --- a/TODO.md +++ b/TODO.md @@ -1,9 +1,8 @@ - https://github.com/preactjs/preact/pull/4362 - https://github.com/preactjs/preact/pull/4358 - https://github.com/preactjs/preact/pull/4361 -- https://github.com/preactjs/preact/pull/4460 -- https://github.com/preactjs/preact/pull/4453 - Backing VNodes +- Enable removing classes from the bundle - Remove deprecated lifecycle methods - Try to get rid of DOM pointers - Separate mount/update paths diff --git a/compat/src/index.d.ts b/compat/src/index.d.ts index bc066c39dfd..eb4f659796e 100644 --- a/compat/src/index.d.ts +++ b/compat/src/index.d.ts @@ -774,11 +774,6 @@ declare namespace React { export function flushSync(fn: () => R): R; export function flushSync(fn: (a: A) => R, a: A): R; - export function unstable_batchedUpdates( - callback: (arg?: any) => void, - arg?: any - ): void; - export type PropsWithChildren

= P & { children?: preact.ComponentChildren | undefined; }; diff --git a/compat/src/index.js b/compat/src/index.js index ab3bf03b3a9..38cb891275b 100644 --- a/compat/src/index.js +++ b/compat/src/index.js @@ -116,16 +116,6 @@ function findDOMNode(component) { ); } -/** - * Deprecated way to control batched rendering inside the reconciler, but we - * already schedule in batches inside our rendering code - * @template Arg - * @param {(arg: Arg) => void} callback function that triggers the updated - * @param {Arg} [arg] Optional argument that can be passed to the callback - */ -// eslint-disable-next-line camelcase -const unstable_batchedUpdates = (callback, arg) => callback(arg); - /** * In React, `flushSync` flushes the entire tree and forces a rerender. It's * implmented here as a no-op. @@ -237,8 +227,6 @@ export { memo, forwardRef, flushSync, - // eslint-disable-next-line camelcase - unstable_batchedUpdates, StrictMode, Suspense, lazy, @@ -285,7 +273,6 @@ export default { memo, forwardRef, flushSync, - unstable_batchedUpdates, StrictMode, Suspense, lazy, diff --git a/compat/src/render.js b/compat/src/render.js index f18cbd896bb..0cdd6dad55b 100644 --- a/compat/src/render.js +++ b/compat/src/render.js @@ -36,13 +36,7 @@ const CAMEL_REPLACE = /[A-Z0-9]/g; const IS_DOM = typeof document !== 'undefined'; // Input types for which onchange should not be converted to oninput. -// type="file|checkbox|radio", plus "range" in IE11. -// (IE11 doesn't support Symbol, which we use here to turn `rad` into `ra` which matches "range") -const onChangeInputType = type => - (typeof Symbol != 'undefined' && typeof Symbol() == 'symbol' - ? /fil|che|rad/ - : /fil|che|ra/ - ).test(type); +const onChangeInputType = type => /fil|che|rad/.test(type); // Some libraries like `react-virtualized` explicitly check for this. Component.prototype.isReactComponent = {}; diff --git a/compat/test/browser/exports.test.js b/compat/test/browser/exports.test.js index cced23da456..d96e4bed4cf 100644 --- a/compat/test/browser/exports.test.js +++ b/compat/test/browser/exports.test.js @@ -58,7 +58,6 @@ describe('compat exports', () => { expect(Compat.Children.toArray).to.exist.and.be.a('function'); expect(Compat.Children.only).to.exist.and.be.a('function'); expect(Compat.unmountComponentAtNode).to.exist.and.be.a('function'); - expect(Compat.unstable_batchedUpdates).to.exist.and.be.a('function'); expect(Compat.version).to.exist.and.be.a('string'); expect(Compat.startTransition).to.be.a('function'); }); @@ -99,7 +98,6 @@ describe('compat exports', () => { expect(Named.Children.toArray).to.exist.and.be.a('function'); expect(Named.Children.only).to.exist.and.be.a('function'); expect(Named.unmountComponentAtNode).to.exist.and.be.a('function'); - expect(Named.unstable_batchedUpdates).to.exist.and.be.a('function'); expect(Named.version).to.exist.and.be.a('string'); }); }); diff --git a/compat/test/browser/unstable_batchedUpdates.test.js b/compat/test/browser/unstable_batchedUpdates.test.js deleted file mode 100644 index bef738484b5..00000000000 --- a/compat/test/browser/unstable_batchedUpdates.test.js +++ /dev/null @@ -1,33 +0,0 @@ -import { unstable_batchedUpdates, flushSync } from 'preact/compat'; - -describe('unstable_batchedUpdates', () => { - it('should call the callback', () => { - const spy = sinon.spy(); - unstable_batchedUpdates(spy); - expect(spy).to.be.calledOnce; - }); - - it('should call callback with only one arg', () => { - const spy = sinon.spy(); - unstable_batchedUpdates(spy, 'foo', 'bar'); - expect(spy).to.be.calledWithExactly('foo'); - }); -}); - -describe('flushSync', () => { - it('should invoke the given callback', () => { - const returnValue = {}; - const spy = sinon.spy(() => returnValue); - const result = flushSync(spy); - expect(spy).to.have.been.calledOnce; - expect(result).to.equal(returnValue); - }); - - it('should invoke the given callback with the given argument', () => { - const returnValue = {}; - const spy = sinon.spy(() => returnValue); - const result = flushSync(spy, 'foo'); - expect(spy).to.be.calledWithExactly('foo'); - expect(result).to.equal(returnValue); - }); -});