From 54ecaa13f12c2fa14f3e0f759fffaf27d73775e9 Mon Sep 17 00:00:00 2001 From: Marvin Hagemeister Date: Fri, 24 Feb 2023 13:03:12 +0100 Subject: [PATCH] Switch back to microticks for scheduling --- src/component.js | 12 ++---------- src/diff/props.js | 18 ++---------------- src/index.d.ts | 2 +- 3 files changed, 5 insertions(+), 27 deletions(-) diff --git a/src/component.js b/src/component.js index 10e95e5a32..565b58b519 100644 --- a/src/component.js +++ b/src/component.js @@ -2,7 +2,6 @@ import { assign } from './util'; import { diff, commitRoot } from './diff/index'; import options from './options'; import { Fragment } from './create-element'; -import { inEvent } from './diff/props'; /** * Base Component class. Provides `setState()` and `forceUpdate()`, which @@ -184,17 +183,10 @@ let rerenderQueue = []; let prevDebounce; -const microTick = +const defer = typeof Promise == 'function' ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout; -function defer(cb) { - if (inEvent) { - setTimeout(cb); - } else { - microTick(cb); - } -} /** * Enqueue a rerender of a component @@ -209,7 +201,7 @@ export function enqueueRender(c) { prevDebounce !== options.debounceRendering ) { prevDebounce = options.debounceRendering; - (prevDebounce || defer)(process, inEvent); + (prevDebounce || defer)(process); } } diff --git a/src/diff/props.js b/src/diff/props.js index 4286b4049a..3a589564ea 100644 --- a/src/diff/props.js +++ b/src/diff/props.js @@ -143,29 +143,15 @@ export function setProperty(dom, name, value, oldValue, isSvg) { } } -export let inEvent = false; - /** * Proxy an event to hooked event handlers * @param {Event} e The event object from the browser * @private */ function eventProxy(e) { - inEvent = true; - try { - return this._listeners[e.type + false]( - options.event ? options.event(e) : e - ); - } finally { - inEvent = false; - } + return this._listeners[e.type + false](options.event ? options.event(e) : e); } function eventProxyCapture(e) { - inEvent = true; - try { - return this._listeners[e.type + true](options.event ? options.event(e) : e); - } finally { - inEvent = false; - } + return this._listeners[e.type + true](options.event ? options.event(e) : e); } diff --git a/src/index.d.ts b/src/index.d.ts index ff08e83606..eb192aa15c 100644 --- a/src/index.d.ts +++ b/src/index.d.ts @@ -331,7 +331,7 @@ export interface Options { diffed?(vnode: VNode): void; event?(e: Event): any; requestAnimationFrame?(callback: () => void): void; - debounceRendering?(cb: () => void, inEvent: boolean): void; + debounceRendering?(cb: () => void): void; useDebugValue?(value: string | number): void; _addHookName?(name: string | number): void; __suspenseDidResolve?(vnode: VNode, cb: () => void): void;