From 68cabdef27e4369118b1283694f41be0dda8602a Mon Sep 17 00:00:00 2001 From: Taku Amano Date: Thu, 18 Apr 2024 13:54:11 +0900 Subject: [PATCH] fix(jsx/dom): remove lookbehind assertion in event regexp (#2524) * fix(jsx/dom): remove lookbehind assertion in event regexp for iOS Safari 16.3 * chore: denoify --- deno_dist/jsx/dom/render.ts | 2 +- src/jsx/dom/index.test.tsx | 27 +++++++++++++++++++++++++++ src/jsx/dom/render.ts | 2 +- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/deno_dist/jsx/dom/render.ts b/deno_dist/jsx/dom/render.ts index b43228d39..22edb92e3 100644 --- a/deno_dist/jsx/dom/render.ts +++ b/deno_dist/jsx/dom/render.ts @@ -90,7 +90,7 @@ let nameSpaceContext: JSXContext | undefined = undefined const isNodeString = (node: Node): node is NodeString => Array.isArray(node) const getEventSpec = (key: string): [string, boolean] | undefined => { - const match = key.match(/^on([A-Z][a-zA-Z]+?)((? { root.querySelector('button')?.click() expect(clicked).toEqual(['div', 'button', 'button']) }) + + it('onGotPointerCapture', async () => { + const App = () => { + return
{}}>
+ } + const addEventListenerSpy = vi.spyOn(dom.window.Node.prototype, 'addEventListener') + render(, root) + expect(addEventListenerSpy).toHaveBeenCalledOnce() + expect(addEventListenerSpy).toHaveBeenCalledWith( + 'gotpointercapture', + expect.any(Function), + false + ) + }) + it('onGotPointerCaptureCapture', async () => { + const App = () => { + return
{}}>
+ } + const addEventListenerSpy = vi.spyOn(dom.window.Node.prototype, 'addEventListener') + render(, root) + expect(addEventListenerSpy).toHaveBeenCalledOnce() + expect(addEventListenerSpy).toHaveBeenCalledWith( + 'gotpointercapture', + expect.any(Function), + true + ) + }) }) it('simple Counter', async () => { diff --git a/src/jsx/dom/render.ts b/src/jsx/dom/render.ts index 787f54c2e..4b3fc6eba 100644 --- a/src/jsx/dom/render.ts +++ b/src/jsx/dom/render.ts @@ -90,7 +90,7 @@ let nameSpaceContext: JSXContext | undefined = undefined const isNodeString = (node: Node): node is NodeString => Array.isArray(node) const getEventSpec = (key: string): [string, boolean] | undefined => { - const match = key.match(/^on([A-Z][a-zA-Z]+?)((?