diff --git a/.changeset/big-rocks-roll.md b/.changeset/big-rocks-roll.md new file mode 100644 index 00000000000..29146c44013 --- /dev/null +++ b/.changeset/big-rocks-roll.md @@ -0,0 +1,5 @@ +--- +'@qwik.dev/core': minor +--- + +FEAT: The optimizer now hoists QRLs without captures to the module scope. This means that only one instance of the QRL will be created. diff --git a/.changeset/big-rocks-rumble.md b/.changeset/big-rocks-rumble.md new file mode 100644 index 00000000000..0a96a3f342c --- /dev/null +++ b/.changeset/big-rocks-rumble.md @@ -0,0 +1,5 @@ +--- +'@qwik.dev/core': minor +--- + +FEAT: The optimizer will now extract captures from QRL event handlers and move them to their string tag. This allows moving the QRL to the module scope, giving better performance. diff --git a/.changeset/big-rocks-start.md b/.changeset/big-rocks-start.md new file mode 100644 index 00000000000..152302a171e --- /dev/null +++ b/.changeset/big-rocks-start.md @@ -0,0 +1,5 @@ +--- +'@qwik.dev/core': minor +--- + +FEAT: The optimizer can now handle self-references. This means that e.g. an `AsyncSignal` can write to itself. diff --git a/.changeset/eighty-pandas-write.md b/.changeset/eighty-pandas-write.md new file mode 100644 index 00000000000..9ec682ec1d8 --- /dev/null +++ b/.changeset/eighty-pandas-write.md @@ -0,0 +1,5 @@ +--- +'@qwik.dev/core': minor +--- + +FEAT: the optimizer can now detect empty QRL segments and replace them with a more efficient noopQrl. This means that for example, you can put code meant only for the server inside `if (isServer)` blocks and they will not cause an empty QRL to be downloaded. `event$()` is therefore no longer needed. diff --git a/AGENTS.md b/AGENTS.md index 8eed095a479..67cfb0bd393 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -40,25 +40,25 @@ Prefer `pnpm build --qwik --qwikrouter --dev` to build qwik and qwik-city faster ## Key Commands -| Task | Command | Notes | -| ------------------------ | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Install** | `pnpm install` | | -| **Build (no Rust)** | `pnpm build.local` | For a fresh start | -| **Build (with Rust)** | `pnpm build.full` | Only for optimizer changes | -| **Build core only** | `pnpm build.core` | Fast — just Qwik + Router + types | -| **Dev rebuild** | `pnpm build --dev --qwik --qwikrouter` | Very fast iterative rebuild | -| **Watch mode** | `pnpm build.watch` | Rebuilds on change | -| **Unit tests** | `pnpm vitest run` | Vitest — runs `packages/**/*.unit.{ts,tsx}` and `*.spec.{ts,tsx}`, or specify a single file. Add `-u` to update snapshots. **NEVER use `pnpm test.unit`** | -| **E2E tests (Chromium)** | `pnpm test.e2e.chromium` | Playwright - always run the dev rebuild first! | -| **E2E tests (Router)** | `pnpm test.e2e.router` | Router-specific E2E - always run the dev rebuild first! | -| **Lint** | `pnpm lint` | ESLint + Prettier + Rust lint | -| **Lint fix** | `pnpm lint.fix` | Auto-fix ESLint issues | -| **Format** | `pnpm fmt` | Prettier + syncpack | -| **Type check** | `pnpm tsc.check` | Full TypeScript check | -| **Update API docs** | `pnpm api.update` | Regenerates public API `.md` files | -| **Create changeset** | `pnpm change` | Interactive — creates `.changeset/*.md` | -| **Dev server** | `pnpm serve` | Port 3300 | -| **Docs dev** | `pnpm docs.dev` | Documentation site | +| Task | Command | Notes | +| ------------------------ | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Install** | `pnpm install` | | +| **Build (no Rust)** | `pnpm build.local` | For a fresh start | +| **Build (with Rust)** | `pnpm build.full` | Only for optimizer changes | +| **Build core only** | `pnpm build.core` | Fast — just Qwik + Router + types | +| **Dev rebuild** | `pnpm build.core.dev` | Very fast iterative rebuild | +| **Watch mode** | `pnpm build.watch` | Rebuilds on change | +| **Unit tests** | `pnpm vitest run` | Vitest — runs `packages/**/*.unit.{ts,tsx}` and `*.spec.{ts,tsx}`, or specify a single file. Add `-u` to update snapshots. **NEVER use `pnpm test.unit`** | +| **E2E tests (Chromium)** | `pnpm test.e2e.chromium` | Playwright - always run the dev rebuild first! | +| **E2E tests (Router)** | `pnpm test.e2e.router` | Router-specific E2E - always run the dev rebuild first! | +| **Lint** | `pnpm lint` | ESLint + Prettier + Rust lint | +| **Lint fix** | `pnpm lint.fix` | Auto-fix ESLint issues | +| **Format** | `pnpm fmt` | Prettier + syncpack | +| **Type check** | `pnpm tsc.check` | Full TypeScript check | +| **Update API docs** | `pnpm api.update` | Regenerates public API `.md` files | +| **Create changeset** | `pnpm change` | Interactive — creates `.changeset/*.md` | +| **Dev server** | `pnpm serve` | Port 3300 | +| **Docs dev** | `pnpm docs.dev` | Documentation site | ### Running a Single Test File diff --git a/Cargo.lock b/Cargo.lock index 496b95a8400..b7ae93a893d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1002,6 +1002,7 @@ dependencies = [ "anyhow", "base64", "derivative", + "indexmap", "insta", "lazy_static", "path-slash", diff --git a/package.json b/package.json index f8f2e6a3c89..15011ed4460 100644 --- a/package.json +++ b/package.json @@ -189,6 +189,7 @@ "build.cli": "node --require ./scripts/runBefore.ts scripts/index.ts --cli --dev", "build.cli.prod": "node --require ./scripts/runBefore.ts scripts/index.ts --cli", "build.core": "node --require ./scripts/runBefore.ts scripts/index.ts --tsc --qwik --insights --qwikrouter --api --platform-binding", + "build.core.dev": "node --require ./scripts/runBefore.ts scripts/index.ts --qwik --insights --qwikrouter --platform-binding --dev", "build.eslint": "node --require ./scripts/runBefore.ts scripts/index.ts --eslint", "build.full": "node --require ./scripts/runBefore.ts scripts/index.ts --tsc --tsc-docs --qwik --insights --supabaseauthhelpers --api --eslint --qwikrouter --qwikworker --qwikreact --cli --platform-binding --wasm", "build.local": "node --require ./scripts/runBefore.ts scripts/index.ts --tsc --tsc-docs --qwik --insights --supabaseauthhelpers --api --eslint --qwikrouter --qwikworker --qwikreact --cli --platform-binding-wasm-copy", diff --git a/packages/docs/src/routes/(blog)/blog/components/mdx/article-block.tsx b/packages/docs/src/routes/(blog)/blog/components/mdx/article-block.tsx index ce195d52054..a17eaa09aec 100644 --- a/packages/docs/src/routes/(blog)/blog/components/mdx/article-block.tsx +++ b/packages/docs/src/routes/(blog)/blog/components/mdx/article-block.tsx @@ -9,7 +9,7 @@ export const ArticleBlock = component$(({ authorLink }) => { const location = useLocation(); const { frontmatter } = useDocumentHead(); const article = blogArticles.find(({ path }) => path === location.url.pathname); - const authorLinks = frontmatter.authors.map((author: string) => authors[author].socialLink); + const authorLinks = frontmatter.authors?.map((author: string) => authors[author].socialLink); return (
diff --git a/packages/docs/src/routes/docs/(qwik)/core/state/index.mdx b/packages/docs/src/routes/docs/(qwik)/core/state/index.mdx index 8cf428f5cda..3c23c03febd 100644 --- a/packages/docs/src/routes/docs/(qwik)/core/state/index.mdx +++ b/packages/docs/src/routes/docs/(qwik)/core/state/index.mdx @@ -352,20 +352,18 @@ As we see in the example above, `useAsync$()` returns an `AsyncSignal` object #### Channel example In this example, we use `useAsync$()` to get updates from a server using Server-Sent Events (SSE). Note that it writes to its own value, updating its subscribers. -To be able to refer to itself, the signal needs to be in an object. ```tsx import { component$, useAsync$ } from '@qwik.dev/core'; export default component$(() => { - const _ref = {} as { state: AsyncSignal }; - _ref.state = useAsync$( + const state = useAsync$( ({ track, abortSignal }) => { const url = new URL('/api/state-channel'); const eventSource = new EventSource(url); eventSource.onmessage = (event) => { - _ref.state.value = event.data; + state.value = event.data; }; abortSignal.addEventListener('abort', () => { @@ -377,7 +375,6 @@ export default component$(() => { // Close the channel as soon as there are no subscribers { eagerCleanup: true } ); - const state = _ref.state; return
Current state is: {state.value}
; }); diff --git a/packages/qwik/src/core/client/vnode-diff.ts b/packages/qwik/src/core/client/vnode-diff.ts index 78d06685123..fc086bff398 100644 --- a/packages/qwik/src/core/client/vnode-diff.ts +++ b/packages/qwik/src/core/client/vnode-diff.ts @@ -543,7 +543,7 @@ function descendContentToProject( ) { const projectionChildren = Array.isArray(children) ? children : [children]; const createProjectionJSXNode = (slotName: string) => { - return new JSXNodeImpl(Projection, null, null, [], slotName); + return new JSXNodeImpl(Projection, null, null, [], 0, slotName); }; const projections: Array = []; diff --git a/packages/qwik/src/core/reactive-primitives/cleanup.unit.tsx b/packages/qwik/src/core/reactive-primitives/cleanup.unit.tsx index c1e250bee0f..29735420ecf 100644 --- a/packages/qwik/src/core/reactive-primitives/cleanup.unit.tsx +++ b/packages/qwik/src/core/reactive-primitives/cleanup.unit.tsx @@ -307,7 +307,7 @@ describe('cleanup', () => { const vnode = vnode_newVirtual(); vnode_setProp(vnode, ELEMENT_SEQ, []); - const jsxNode = new JSXNodeImpl('div', { name: 'John', age: 30 }, null, null, 0, false); + const jsxNode = new JSXNodeImpl('div', { name: 'John', age: 30 }, null, null, 0, 0, false); const handler = new PropsProxyHandler(jsxNode); const props = new Proxy({}, handler); const effect = new EffectSubscription(vnode, EffectProperty.VNODE); @@ -335,7 +335,7 @@ describe('cleanup', () => { const vnode = vnode_newVirtual(); vnode_setProp(vnode, ELEMENT_SEQ, []); - const jsxNode = new JSXNodeImpl('div', { name: 'John' }, null, null, 0, false); + const jsxNode = new JSXNodeImpl('div', { name: 'John' }, null, null, 0, 0, false); const props = new Proxy({}, new PropsProxyHandler(jsxNode)); const effect = new EffectSubscription(vnode, EffectProperty.VNODE); diff --git a/packages/qwik/src/core/shared/component-execution.ts b/packages/qwik/src/core/shared/component-execution.ts index cba3aa62d1d..23ead5d723a 100644 --- a/packages/qwik/src/core/shared/component-execution.ts +++ b/packages/qwik/src/core/shared/component-execution.ts @@ -329,5 +329,5 @@ function injectPlaceholderElement( /** @returns An empty "&<'"0`} + isSSR ? ( + // @ts-expect-error q:p is not typed + + ) : ( + + ) ); await trigger(document.body, 'button', 'click'); @@ -957,7 +967,12 @@ describe.each([ ); await expect(document.querySelector('button')).toMatchDOM( - + isSSR ? ( + // @ts-expect-error q:p is not typed + + ) : ( + + ) ); }); @@ -1597,7 +1612,7 @@ describe.each([ ); - expect(document.querySelector('#container')).toMatchDOM( + await expect(document.querySelector('#container')).toMatchDOM(
Item 1
Item 2
@@ -2494,10 +2509,10 @@ describe.each([ ); - expect(document.querySelector('main')).toMatchDOM( -
- -
+ const isSsr = render === ssrRenderToDom; + await expect(document.querySelector('main')).toMatchDOM( + // @ts-expect-error q:p is not typed +
{isSsr ? : }
); }); @@ -2505,41 +2520,46 @@ describe.each([ const Cmp = component$(() => { const list = useSignal([1, 2, 3]); return ( -
+ <> -
- {list.value.map((item) => ( -
{item}
- ))} -
-
+
+
+ {list.value.map((item) => ( +
{item}
+ ))} +
+
+ ); }); const { vNode, document } = await render(, { debug }); expect(vNode).toMatchVDOM( -
+ -
-
1
-
2
-
3
-
-
+
+
+
1
+
2
+
3
+
+
+
); await trigger(document.body, 'button', 'click'); expect(vNode).toMatchVDOM( -
+ -
-
+
+
+
+
); - expect(document.querySelector('main')).toMatchDOM( + await expect(document.querySelector('main')).toMatchDOM(
-
); @@ -2560,10 +2580,17 @@ describe.each([ ); }); const { vNode, document } = await render(, { debug }); + const isSsr = render === ssrRenderToDom; + const btn = isSsr ? ( + // @ts-expect-error q:p is not typed + + ) : ( + + ); expect(vNode).toMatchVDOM(
- + {btn}
1
2
@@ -2581,11 +2608,7 @@ describe.each([
); - await expect(document.querySelector('main')).toMatchDOM( -
- -
- ); + await expect(document.querySelector('main')).toMatchDOM(
{btn}
); }); it('should rerun props subscribers', async () => { @@ -3290,9 +3313,16 @@ describe.each([ }); const { document, container } = await render(, { debug }); const qContainerAttr = { [QContainerAttr]: QContainerValue.HTML }; + const isSsr = render === ssrRenderToDom; + const btn = isSsr ? ( + // @ts-expect-error q:p is not typed + + ) : ( + + ); await expect(document.querySelector('main')).toMatchDOM(
- + {btn}
Hello
@@ -3305,7 +3335,7 @@ describe.each([ await trigger(container.element, 'button', 'click'); await expect(document.querySelector('main')).toMatchDOM(
- + {btn}
{/* TODO: q:container is const and div is reused, is it ok? */}
World
@@ -3319,7 +3349,7 @@ describe.each([ await trigger(container.element, 'button', 'click'); await expect(document.querySelector('main')).toMatchDOM(
- + {btn}
Hello
@@ -3332,7 +3362,7 @@ describe.each([ await trigger(container.element, 'button', 'click'); await expect(document.querySelector('main')).toMatchDOM(
- + {btn}
World
@@ -3345,7 +3375,7 @@ describe.each([ await trigger(container.element, 'button', 'click'); await expect(document.querySelector('main')).toMatchDOM(
- + {btn}
Hello
diff --git a/packages/qwik/src/core/tests/container.spec.tsx b/packages/qwik/src/core/tests/container.spec.tsx index 72587f8fefc..c0e3079d5d7 100644 --- a/packages/qwik/src/core/tests/container.spec.tsx +++ b/packages/qwik/src/core/tests/container.spec.tsx @@ -493,13 +493,13 @@ describe('serializer v2', () => { describe('PropsProxySerializer, //// ' + TypeIds.PropsProxy, () => { it('should serialize and deserialize', async () => { const obj = createPropsProxy( - new JSXNodeImpl('div', { number: 1, text: 'abc' }, { n: 2, t: 'test' }, null, null) + new JSXNodeImpl('div', { number: 1, text: 'abc' }, { n: 2, t: 'test' }, null, 0, null) ); expect((await withContainer((ssr) => ssr.addRoot(obj))).$getObjectById$(0)).toEqual(obj); }); it('should serialize and deserialize with null const props', async () => { const obj = createPropsProxy( - new JSXNodeImpl('div', { number: 1, text: 'abc' }, null, null, null) + new JSXNodeImpl('div', { number: 1, text: 'abc' }, null, null, 0, null) ); expect((await withContainer((ssr) => ssr.addRoot(obj))).$getObjectById$(0)).toEqual(obj); }); diff --git a/packages/qwik/src/core/tests/projection.spec.tsx b/packages/qwik/src/core/tests/projection.spec.tsx index c20d75d9715..63e93a428c2 100644 --- a/packages/qwik/src/core/tests/projection.spec.tsx +++ b/packages/qwik/src/core/tests/projection.spec.tsx @@ -17,6 +17,7 @@ import { useVisibleTask$, type JSXNode, type Signal, + $, } from '@qwik.dev/core'; import { domRender, ssrRenderToDom, trigger } from '@qwik.dev/core/testing'; import { cleanupAttrs } from 'packages/qwik/src/testing/element-fixture'; @@ -1366,9 +1367,12 @@ describe.each([ const Parent = component$(() => { const toggle = useSignal(true); + const handler = $(() => { + toggle.value = !toggle.value; + }); return (
- + @@ -1458,14 +1462,12 @@ describe.each([ const Child = component$<{ show: boolean }>((props) => { (globalThis as any).log.push('render:Child'); const show = useSignal(props.show); + const handler = $(() => { + (globalThis as any).log.push('click:Child'); + show.value = !show.value; + }); return ( - { - (globalThis as any).log.push('click:Child'); - show.value = !show.value; - }} - > + {show.value && } ); @@ -1473,14 +1475,12 @@ describe.each([ const Parent = component$<{ content: boolean; slot: boolean }>((props) => { (globalThis as any).log.push('render:Parent'); const show = useSignal(props.content); + const handler = $(() => { + (globalThis as any).log.push('click:Parent'); + show.value = !show.value; + }); return ( -
{ - (globalThis as any).log.push('click:Parent'); - show.value = !show.value; - }} - > +
{show.value && 'child-content'}
); @@ -2706,13 +2706,12 @@ describe.each([ )); const Issue1630 = component$(() => { const store = useStore({ open: true }); + const handler = $(() => { + store.open = !store.open; + }); return (
- + {store.open && }
diff --git a/packages/qwik/src/core/tests/render-api.spec.tsx b/packages/qwik/src/core/tests/render-api.spec.tsx index 842de236c70..fa266c865ec 100644 --- a/packages/qwik/src/core/tests/render-api.spec.tsx +++ b/packages/qwik/src/core/tests/render-api.spec.tsx @@ -105,16 +105,16 @@ const Counter = componentQrl( ); - }, 's_counter') + }, 's_counter1') ); const renderToStringAndSetPlatform = async (jsx: JSXOutput, opts: RenderToStringOptions = {}) => { @@ -217,9 +217,9 @@ describe('render api', () => { ); }); @@ -288,7 +288,7 @@ describe('render api', () => { {JSON.stringify(obj)}
); - }, 's_counter') + }, 's_counter2') ); const result = await renderToStringAndSetPlatform(, { containerTagName: 'div', @@ -520,7 +520,9 @@ describe('render api', () => { const CounterDerived = component$((props: { initial: number }) => { const count = useSignal(props.initial); return ( - ); diff --git a/packages/qwik/src/core/tests/render-namespace.spec.tsx b/packages/qwik/src/core/tests/render-namespace.spec.tsx index e20086b3b8f..7a8b7780bdf 100644 --- a/packages/qwik/src/core/tests/render-namespace.spec.tsx +++ b/packages/qwik/src/core/tests/render-namespace.spec.tsx @@ -96,7 +96,7 @@ describe.each([ ); - await expect(container.document.querySelector('button')).toMatchDOM(); + expect(container.document.querySelector('button')?.innerHTML).toEqual(''); await trigger(container.element, 'button', 'click'); expect(vNode).toMatchVDOM( @@ -123,7 +123,7 @@ describe.each([ ); - await expect(container.document.body.querySelector('button')).toMatchDOM(); + expect(container.document.body.querySelector('button')?.innerHTML).toEqual(''); }); it('should rerender svg nested children', async () => { diff --git a/packages/qwik/src/core/tests/use-signal.spec.tsx b/packages/qwik/src/core/tests/use-signal.spec.tsx index 84edddcbfef..5fc0c469714 100644 --- a/packages/qwik/src/core/tests/use-signal.spec.tsx +++ b/packages/qwik/src/core/tests/use-signal.spec.tsx @@ -2,6 +2,7 @@ import { Fragment as Awaited, Fragment as Component, Fragment, + jsx, Fragment as Projection, Fragment as Signal, useVisibleTask$, @@ -157,7 +158,10 @@ describe.each([ ); - await expect(document.querySelector('button')).toMatchDOM(); + const isSsr = render === ssrRenderToDom; + await expect(document.querySelector('button')).toMatchDOM( + jsx('button', { key: '0', children: 'const 0', ...(isSsr ? { 'q:p': 0 } : {}) }) + ); await trigger(container.element, 'button', 'click'); expect(vNode).toMatchVDOM( @@ -169,7 +173,9 @@ describe.each([ ); - await expect(document.querySelector('button')).toMatchDOM(); + await expect(document.querySelector('button')).toMatchDOM( + jsx('button', { key: '0', children: 'const 1', ...(isSsr ? { 'q:p': 0 } : {}) }) + ); }); it('should handle all ClassList cases', async () => { const Cmp = component$(() => { diff --git a/packages/qwik/src/core/tests/use-task.spec.tsx b/packages/qwik/src/core/tests/use-task.spec.tsx index 85959cb82f3..660de13449a 100644 --- a/packages/qwik/src/core/tests/use-task.spec.tsx +++ b/packages/qwik/src/core/tests/use-task.spec.tsx @@ -724,8 +724,12 @@ describe.each([ await vi.advanceTimersToNextTimerAsync(); const { document } = await renderPromise; + const isSsr = render === ssrRenderToDom; // Initial render - await expect(document.body.firstChild).toMatchDOM(); + await expect(document.body.firstChild).toMatchDOM( + // @ts-expect-error q:p is not typed + isSsr ? : + ); // FIRST CLICK @@ -735,7 +739,10 @@ describe.each([ // Advance timers but not enough to complete the delay await vi.advanceTimersByTimeAsync(99); // Should be still old value - await expect(document.body.firstChild).toMatchDOM(); + await expect(document.body.firstChild).toMatchDOM( + // @ts-expect-error q:p is not typed + isSsr ? : + ); // Advance timers to complete the delay await vi.advanceTimersByTimeAsync(1); // Wait for the trigger to complete @@ -743,7 +750,10 @@ describe.each([ await triggerPromise; // Should have the new value - await expect(document.body.firstChild).toMatchDOM(); + await expect(document.body.firstChild).toMatchDOM( + // @ts-expect-error q:p is not typed + isSsr ? : + ); // SECOND CLICK @@ -753,7 +763,10 @@ describe.each([ // Advance timers but not enough to complete the delay await vi.advanceTimersByTimeAsync(99); // Should be still old value - await expect(document.body.firstChild).toMatchDOM(); + await expect(document.body.firstChild).toMatchDOM( + // @ts-expect-error q:p is not typed + isSsr ? : + ); // Advance timers to complete the delay await vi.advanceTimersByTimeAsync(1); // Wait for the trigger to complete @@ -761,7 +774,10 @@ describe.each([ await triggerPromise; // Should have the new value - await expect(document.body.firstChild).toMatchDOM(); + await expect(document.body.firstChild).toMatchDOM( + // @ts-expect-error q:p is not typed + isSsr ? : + ); vi.useRealTimers(); }); @@ -804,8 +820,12 @@ describe.each([ await vi.advanceTimersToNextTimerAsync(); const { document } = await renderPromise; + const isSsr = render === ssrRenderToDom; // Initial render - await expect(document.body.firstChild).toMatchDOM(); + await expect(document.body.firstChild).toMatchDOM( + // @ts-expect-error q:p is not typed + isSsr ? : + ); // FIRST CLICK @@ -815,14 +835,20 @@ describe.each([ // Advance timers but not enough to complete the delay await vi.advanceTimersByTimeAsync(99); // Should have the new value - await expect(document.body.firstChild).toMatchDOM(); + await expect(document.body.firstChild).toMatchDOM( + // @ts-expect-error q:p is not typed + isSsr ? : + ); // Advance timers to complete the delay await vi.advanceTimersByTimeAsync(1); // Wait for the trigger to complete await triggerPromise; // Should have the new value - await expect(document.body.firstChild).toMatchDOM(); + await expect(document.body.firstChild).toMatchDOM( + // @ts-expect-error q:p is not typed + isSsr ? : + ); // SECOND CLICK @@ -832,14 +858,20 @@ describe.each([ // Advance timers but not enough to complete the delay await vi.advanceTimersByTimeAsync(99); // Should have the new value - await expect(document.body.firstChild).toMatchDOM(); + await expect(document.body.firstChild).toMatchDOM( + // @ts-expect-error q:p is not typed + isSsr ? : + ); // Advance timers to complete the delay await vi.advanceTimersByTimeAsync(1); // Wait for the trigger to complete await triggerPromise; // Should have the new value - await expect(document.body.firstChild).toMatchDOM(); + await expect(document.body.firstChild).toMatchDOM( + // @ts-expect-error q:p is not typed + isSsr ? : + ); vi.useRealTimers(); }); diff --git a/packages/qwik/src/optimizer/core/Cargo.toml b/packages/qwik/src/optimizer/core/Cargo.toml index 125c9062bd2..595773617f1 100644 --- a/packages/qwik/src/optimizer/core/Cargo.toml +++ b/packages/qwik/src/optimizer/core/Cargo.toml @@ -28,6 +28,7 @@ anyhow = "1.0.70" derivative = "2.2.0" rayon = "1.7.0" path-slash="0.2.1" +indexmap = "2.7.1" [dev-dependencies] insta = "1.29.0" diff --git a/packages/qwik/src/optimizer/core/README.md b/packages/qwik/src/optimizer/core/README.md index 0ebecc5b4e8..1ad5cc1914e 100644 --- a/packages/qwik/src/optimizer/core/README.md +++ b/packages/qwik/src/optimizer/core/README.md @@ -1,7 +1,377 @@ # Qwik Optimizer -See the contributing guide for more install information. If you want to updat the tests, run `pnpm run test.rust.update`. If you want to run a single test with dbg output: +The Qwik optimizer is an SWC-based AST transform that processes TypeScript/JavaScript/JSX source files. Its job is to enable **resumability** — the ability for Qwik applications to serialize their state during SSR and resume on the client without re-executing component code. + +It does this by extracting closures marked with `$` into separate lazy-loadable modules ("segments"), transforming JSX into Qwik's internal representation, capturing lexical scope for serialization, and applying platform-specific dead code elimination. + +## Core Concepts + +### The `$` Marker + +Any function call whose name ends with `$` (e.g., `component$`, `useTask$`, `onClick$`, `$()`) marks a **QRL boundary**. The closure argument is extracted into a separate module (a "segment") that can be lazy-loaded. The call is rewritten to use a **QRL** (Qwik Resource Locator) — a reference containing the import path, symbol name, and captured variables. + +```ts +// Input +useTask$(() => { + console.log(state.count); +}); + +// Output (root module) +useTaskQrl(qrl(() => import('./myFile_useTask_abc123'), 's_abc123', [state])); + +// Output (segment module: myFile_useTask_abc123.js) +import { _captures } from '@qwik.dev/core'; +export const s_abc123 = () => { + const state = _captures[0]; + console.log(state.count); +}; +``` + +### Segments + +A segment is an extracted closure with metadata. Each segment becomes a separate ES module file (in non-inline strategies). The segment module contains: + +1. Imports for all externally-referenced identifiers +2. A `_captures` import if the closure captures lexical variables +3. The closure body as a named export + +### Captures (Scoped Identifiers) + +When a `$`-closure references variables from its enclosing lexical scope (not imports, not module-level declarations), those variables are **captured**. The optimizer: + +1. Identifies captured variables by walking the closure body and checking each identifier against the lexical scope stack +2. Passes them as an array argument to `qrl()`: `qrl(import, "name", [var1, var2])` +3. In the segment module, rewrites the function to read captures from `_captures`: `const var1 = _captures[0]` + +**Exception — event handlers on native elements:** For `$`-props on native elements (e.g., `onClick$` on `; + }); + +============================= test.js == + +import { componentQrl } from "@qwik.dev/core"; +import { qrl } from "@qwik.dev/core"; +// +const _qrl_Test_component_qJXYteHpGTQ = /*#__PURE__*/ qrl(()=>import("./test.tsx_Test_component_qJXYteHpGTQ"), "Test_component_qJXYteHpGTQ"); +// +export const Test = /*#__PURE__*/ componentQrl(_qrl_Test_component_qJXYteHpGTQ); + + +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGE,OAAO,MAAM,qBAAO,8CAKjB\"}") +============================= test.tsx_Test_component_qJXYteHpGTQ.js (ENTRY POINT)== + +import { _jsxSorted } from "@qwik.dev/core"; +import { qrl } from "@qwik.dev/core"; +import { useSignal } from "@qwik.dev/core"; +// +const _qrl_Test_component_button_q_e_click_SvzH9HBZLMQ = /*#__PURE__*/ qrl(()=>import("./test.tsx_Test_component_button_q_e_click_SvzH9HBZLMQ"), "Test_component_button_q_e_click_SvzH9HBZLMQ"); +const _qrl_Test_component_button_q_e_dblclick_dxOdkqiOleU = /*#__PURE__*/ qrl(()=>import("./test.tsx_Test_component_button_q_e_dblclick_dxOdkqiOleU"), "Test_component_button_q_e_dblclick_dxOdkqiOleU"); +const _qrl_Test_component_button_q_e_hover_IVVGOMV4FJ4 = /*#__PURE__*/ qrl(()=>import("./test.tsx_Test_component_button_q_e_hover_IVVGOMV4FJ4"), "Test_component_button_q_e_hover_IVVGOMV4FJ4"); +// +export const Test_component_qJXYteHpGTQ = ()=>{ + const sig = useSignal(0); + const foo = useSignal('foo'); + const bar = useSignal('bar'); + return /*#__PURE__*/ _jsxSorted("button", { + "q:ps": [ + bar, + foo, + sig + ] + }, { + "q-e:click": _qrl_Test_component_button_q_e_click_SvzH9HBZLMQ, + "q-e:dblclick": _qrl_Test_component_button_q_e_dblclick_dxOdkqiOleU, + "q-e:hover": _qrl_Test_component_button_q_e_hover_IVVGOMV4FJ4 + }, sig, 7, "u6_0"); +}; + + +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;;0CAGiC;IAC9B,MAAM,MAAM,UAAU;IACtB,MAAM,MAAM,UAAU;IACtB,MAAM,MAAM,UAAU;IACtB,qBAAO,WAAC;;;;;;;QAAO,WAAQ;QAAqB,cAAW;QAA8B,WAAQ;OAA+B;AAC7H\"}") +/* +{ + "origin": "test.tsx", + "name": "Test_component_qJXYteHpGTQ", + "entry": null, + "displayName": "test.tsx_Test_component", + "hash": "qJXYteHpGTQ", + "canonicalFilename": "test.tsx_Test_component_qJXYteHpGTQ", + "path": "", + "extension": "js", + "parent": null, + "ctxKind": "function", + "ctxName": "component$", + "captures": false, + "loc": [ + 97, + 345 + ] +} +*/ +============================= test.tsx_Test_component_button_q_e_hover_IVVGOMV4FJ4.js (ENTRY POINT)== + +export const Test_component_button_q_e_hover_IVVGOMV4FJ4 = (_, _1, bar, _3, sig)=>sig.value += bar.value; + + +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"2DAOkG,uBAAM,IAAI,KAAK,IAAE,IAAI,KAAK\"}") +/* +{ + "origin": "test.tsx", + "name": "Test_component_button_q_e_hover_IVVGOMV4FJ4", + "entry": null, + "displayName": "test.tsx_Test_component_button_q_e_hover", + "hash": "IVVGOMV4FJ4", + "canonicalFilename": "test.tsx_Test_component_button_q_e_hover_IVVGOMV4FJ4", + "path": "", + "extension": "js", + "parent": "Test_component_qJXYteHpGTQ", + "ctxKind": "eventHandler", + "ctxName": "onHover$", + "captures": false, + "loc": [ + 298, + 324 + ], + "paramNames": [ + "_", + "_1", + "bar", + "_3", + "sig" + ] +} +*/ +============================= test.tsx_Test_component_button_q_e_click_SvzH9HBZLMQ.js (ENTRY POINT)== + +export const Test_component_button_q_e_click_SvzH9HBZLMQ = (_, _1, _2, _3, sig)=>sig.value++; + + +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"2DAO4B,sBAAM,IAAI,KAAK\"}") +/* +{ + "origin": "test.tsx", + "name": "Test_component_button_q_e_click_SvzH9HBZLMQ", + "entry": null, + "displayName": "test.tsx_Test_component_button_q_e_click", + "hash": "SvzH9HBZLMQ", + "canonicalFilename": "test.tsx_Test_component_button_q_e_click_SvzH9HBZLMQ", + "path": "", + "extension": "js", + "parent": "Test_component_qJXYteHpGTQ", + "ctxKind": "eventHandler", + "ctxName": "onClick$", + "captures": false, + "loc": [ + 228, + 245 + ], + "paramNames": [ + "_", + "_1", + "_2", + "_3", + "sig" + ] +} +*/ +============================= test.tsx_Test_component_button_q_e_dblclick_dxOdkqiOleU.js (ENTRY POINT)== + +export const Test_component_button_q_e_dblclick_dxOdkqiOleU = (_, _1, _2, foo, sig)=>foo.value += sig.value; + + +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"8DAO4D,uBAAM,IAAI,KAAK,IAAE,IAAI,KAAK\"}") +/* +{ + "origin": "test.tsx", + "name": "Test_component_button_q_e_dblclick_dxOdkqiOleU", + "entry": null, + "displayName": "test.tsx_Test_component_button_q_e_dblclick", + "hash": "dxOdkqiOleU", + "canonicalFilename": "test.tsx_Test_component_button_q_e_dblclick_dxOdkqiOleU", + "path": "", + "extension": "js", + "parent": "Test_component_qJXYteHpGTQ", + "ctxKind": "eventHandler", + "ctxName": "onDblClick$", + "captures": false, + "loc": [ + 260, + 286 + ], + "paramNames": [ + "_", + "_1", + "_2", + "foo", + "sig" + ] +} +*/ +== DIAGNOSTICS == + +[] diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__noop_empty_body.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__noop_empty_body.snap new file mode 100644 index 00000000000..58a8dd2c5cc --- /dev/null +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__noop_empty_body.snap @@ -0,0 +1,75 @@ +--- +source: packages/qwik/src/optimizer/core/src/test.rs +assertion_line: 6241 +expression: output +--- +==INPUT== + + + import { component$, isServer, $, inlinedQrl } from "@qwik.dev/core"; + + export const test1 = $(() => { + if (isServer) { + // no-op + } + }); + export const test2 = $(() => { + // no-op + }); + export const test3 = $(function() { + }); + export const test4 = $(() => undefined); + export const test5 = $(() => void 0); + export const test5 = $(() => isServer ? 5 : undefined); + export const test6 = inlinedQrl(() => { + if (isServer) { + // no-op + } + }, '_test6'); + +============================= test.tsx == + +import { _noopQrlDEV } from "@qwik.dev/core"; +// +export const test1 = /*#__PURE__*/ _noopQrlDEV("test1_ZUBkW4dA8WM", { + file: "/user/qwik/src/test.tsx", + lo: 100, + hi: 148, + displayName: "test.tsx_test1" +}, true); +export const test2 = /*#__PURE__*/ _noopQrlDEV("test2_nGoxYIFmFHk", { + file: "/user/qwik/src/test.tsx", + lo: 176, + hi: 199, + displayName: "test.tsx_test2" +}, true); +export const test3 = /*#__PURE__*/ _noopQrlDEV("test3_0B4I8rVZdZw", { + file: "/user/qwik/src/test.tsx", + lo: 227, + hi: 243, + displayName: "test.tsx_test3" +}, true); +export const test4 = /*#__PURE__*/ _noopQrlDEV("test4_lka0Opdt3Nk", { + file: "/user/qwik/src/test.tsx", + lo: 271, + hi: 286, + displayName: "test.tsx_test4" +}, true); +export const test5 = /*#__PURE__*/ _noopQrlDEV("test5_opUEX0KqODU", { + file: "/user/qwik/src/test.tsx", + lo: 314, + hi: 326, + displayName: "test.tsx_test5" +}, true); +export const test6 = /*#__PURE__*/ _noopQrlDEV("_test6", { + file: "/user/qwik/src/test.tsx", + lo: 421, + hi: 469, + displayName: "test.tsx_" +}, true); + + +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;AAGE,OAAO,MAAM;;;;;SAIV;AACH,OAAO,MAAM;;;;;SAEV;AACH,OAAO,MAAM;;;;;SACV;AACH,OAAO,MAAM;;;;;SAA2B;AACxC,OAAO,MAAM;;;;;SAAwB;AAErC,OAAO,MAAM;;;;;SAIA\"}") +== DIAGNOSTICS == + +[] diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__relative_paths.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__relative_paths.snap index 86b52b21f2a..2c5fe6d84fe 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__relative_paths.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__relative_paths.snap @@ -1,18 +1,19 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 3417 +assertion_line: 3454 expression: output --- ============================= ../../node_modules/dep/dist/lib.mjs_App_component_div_p_button_onClick_8dWUa0cJAr4.js (ENTRY POINT)== import { useLexicalScope } from "@qwik.dev/core"; +// export const App_component_div_p_button_onClick_8dWUa0cJAr4 = ()=>{ const [store] = useLexicalScope(); return store.count++; }; -Some("{\"version\":3,\"sources\":[\"node_modules/dep/dist/lib.mjs\"],\"sourceRoot\":\"/path/to/app/\",\"names\":[],\"mappings\":\";8DAuB0B;IACpB,MAAM,CAAC,MAAM,GAAG;IAChB,OAAO,MAAM,KAAK;AACnB\"}") +Some("{\"version\":3,\"sources\":[\"node_modules/dep/dist/lib.mjs\"],\"sourceRoot\":\"/path/to/app/\",\"names\":[],\"mappings\":\";;8DAuB0B;IACpB,MAAM,CAAC,MAAM,GAAG;IAChB,OAAO,MAAM,KAAK;AACnB\"}") /* { "origin": "../../node_modules/dep/dist/lib.mjs", @@ -41,8 +42,16 @@ Some("{\"version\":3,\"sources\":[\"node_modules/dep/dist/lib.mjs\"],\"sourceRoo import { _jsxSorted } from "@qwik.dev/core"; import { _wrapProp } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -import { _auto_useData as useData } from "./lib.mjs"; +import { useStore } from "@qwik.dev/core"; +// +const useData = ()=>{ + return useStore({ + count: 0 + }); +}; +// const i_8dWUa0cJAr4 = ()=>import("./lib.mjs_App_component_div_p_button_onClick_8dWUa0cJAr4.js"); +// export const App_component_AkbU84a8zes = ()=>{ const store = useData(); return /*#__PURE__*/ _jsxSorted("div", null, null, [ @@ -59,7 +68,7 @@ export const App_component_AkbU84a8zes = ()=>{ }; -Some("{\"version\":3,\"sources\":[\"node_modules/dep/dist/lib.mjs\"],\"sourceRoot\":\"/path/to/app/\",\"names\":[],\"mappings\":\";;;;;yCAWyD;IACxD,MAAM,QAAQ;IACd,OAAO,WAAW,GAAG,WAAK,mBACf;QACT,WAAW,GAAG,WAAK,iBACR;YACT;sBACA;SACA;QAEF,WAAW,GAAG,WAAI,iBACP,WAAW,GAAG,WAAI;YAC3B,WAAQ;;;iBAME;KAGZ;AAEH\"}") +Some("{\"version\":3,\"sources\":[\"node_modules/dep/dist/lib.mjs\"],\"sourceRoot\":\"/path/to/app/\",\"names\":[],\"mappings\":\";;;;;MAKM,UAAU;IACf,OAAO,SAAS;QACf,OAAO;IACR;AACD;;;;yCAEyD;IACxD,MAAM,QAAQ;IACd,OAAO,WAAW,GAAG,WAAK,mBACf;QACT,WAAW,GAAG,WAAK,iBACR;YACT;sBACA;SACA;QAEF,WAAW,GAAG,WAAI,iBACP,WAAW,GAAG,WAAI;YAC3B,WAAQ;;;iBAME;KAGZ;AAEH\"}") /* { "origin": "../../node_modules/dep/dist/lib.mjs", @@ -83,28 +92,23 @@ Some("{\"version\":3,\"sources\":[\"node_modules/dep/dist/lib.mjs\"],\"sourceRoo ============================= ../../node_modules/dep/dist/lib.mjs == import { qrl } from "@qwik.dev/core"; -const i_AkbU84a8zes = ()=>import("./lib.mjs_App_component_AkbU84a8zes.js"); -import { componentQrl, useStore } from "@qwik.dev/core"; -const useData = ()=>{ - return useStore({ - count: 0 - }); -}; -export const App = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_AkbU84a8zes, "App_component_AkbU84a8zes")); -export { useData as _auto_useData }; +import { componentQrl } from "@qwik.dev/core"; +// +export const App = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(()=>import("./lib.mjs_App_component_AkbU84a8zes.js"), "App_component_AkbU84a8zes")); -Some("{\"version\":3,\"sources\":[\"node_modules/dep/dist/lib.mjs\"],\"sourceRoot\":\"/path/to/app/\",\"names\":[],\"mappings\":\";;AACA,SAAS,YAAY,EAAc,QAAQ,QAAyB,iBAAiB;AAIrF,MAAM,UAAU;IACf,OAAO,SAAS;QACf,OAAO;IACR;AACD;AAEA,OAAO,MAAM,MAAM,WAAW,GAAG,4EAuBA\"}") +Some("{\"version\":3,\"sources\":[\"node_modules/dep/dist/lib.mjs\"],\"sourceRoot\":\"/path/to/app/\",\"names\":[],\"mappings\":\";AACA,SAAS,YAAY,QAA+C,iBAAiB;;AAUrF,OAAO,MAAM,MAAM,WAAW,GAAG,mHAuBA\"}") ============================= components/main.tsx_Local_component_jJ0v28bs0p8.js (ENTRY POINT)== import { _jsxSorted } from "@qwik.dev/core"; import { state } from "./sibling"; +// export const Local_component_jJ0v28bs0p8 = ()=>{ return /*#__PURE__*/ _jsxSorted("div", null, null, state, 3, "zp_0"); }; -Some("{\"version\":3,\"sources\":[\"src/thing/components/main.tsx\"],\"sourceRoot\":\"/path/to/app/\",\"names\":[],\"mappings\":\";;2CAIgC;IAC/B,qBACC,WAAC,mBAAK;AAER\"}") +Some("{\"version\":3,\"sources\":[\"src/thing/components/main.tsx\"],\"sourceRoot\":\"/path/to/app/\",\"names\":[],\"mappings\":\";;;2CAIgC;IAC/B,qBACC,WAAC,mBAAK;AAER\"}") /* { "origin": "components/main.tsx", @@ -129,11 +133,13 @@ Some("{\"version\":3,\"sources\":[\"src/thing/components/main.tsx\"],\"sourceRoo import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_jJ0v28bs0p8 = ()=>import("./main.tsx_Local_component_jJ0v28bs0p8.js"); -export const Local = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_jJ0v28bs0p8, "Local_component_jJ0v28bs0p8")); +// +const _qrl_Local_component_jJ0v28bs0p8 = /*#__PURE__*/ qrl(()=>import("./main.tsx_Local_component_jJ0v28bs0p8.js"), "Local_component_jJ0v28bs0p8"); +// +export const Local = /*#__PURE__*/ componentQrl(_qrl_Local_component_jJ0v28bs0p8); -Some("{\"version\":3,\"sources\":[\"src/thing/components/main.tsx\"],\"sourceRoot\":\"/path/to/app/\",\"names\":[],\"mappings\":\";;;AAIA,OAAO,MAAM,sBAAQ,8EAIlB\"}") +Some("{\"version\":3,\"sources\":[\"src/thing/components/main.tsx\"],\"sourceRoot\":\"/path/to/app/\",\"names\":[],\"mappings\":\";;;;;AAIA,OAAO,MAAM,sBAAQ,+CAIlB\"}") == DIAGNOSTICS == [] diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__rename_builder_io.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__rename_builder_io.snap index 907f40a9d73..749adcf81f4 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__rename_builder_io.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__rename_builder_io.snap @@ -1,8 +1,7 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 3948 +assertion_line: 3986 expression: output -snapshot_kind: text --- ==INPUT== @@ -86,6 +85,7 @@ import { isDev } from "@qwik.dev/core/build"; import { moreStuff } from "@qwik.dev/router/more/here"; import sdk from "@builder.io/sdk"; import { stuff } from "@qwik.dev/router"; +// export const App_component_ckEPmXZlub0 = ()=>{ sdk.hello(); if (isDev) stuff(); @@ -94,7 +94,7 @@ export const App_component_ckEPmXZlub0 = ()=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;yCAYgC;IAC7B,IAAI,KAAK;IACT,IAAI,OACH;SAEA;IAED,OAAO;AACR\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;yCAYgC;IAC7B,IAAI,KAAK;IACT,IAAI,OACH;SAEA;IAED,OAAO;AACR\"}") /* { "origin": "test.tsx", @@ -120,15 +120,16 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { qwikifyQrl } from "@qwik.dev/react"; import { qrl } from "@qwik.dev/core"; import { componentQrl } from "@qwik.dev/core"; -const i_0Yoy9qA0SC0 = ()=>import("./test.tsx_Foo_qwikify_0Yoy9qA0SC0"); -const i_GXXnVUtURSw = ()=>import("./test.tsx_Bar_GXXnVUtURSw"); -const i_ckEPmXZlub0 = ()=>import("./test.tsx_App_component_ckEPmXZlub0"); -export const Foo = qwikifyQrl(/*#__PURE__*/ qrl(i_0Yoy9qA0SC0, "Foo_qwikify_0Yoy9qA0SC0")); -export const Bar = /*#__PURE__*/ qrl(i_GXXnVUtURSw, "Bar_GXXnVUtURSw"); -export const App = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_ckEPmXZlub0, "App_component_ckEPmXZlub0")); +// +const _qrl_App_component_ckEPmXZlub0 = /*#__PURE__*/ qrl(()=>import("./test.tsx_App_component_ckEPmXZlub0"), "App_component_ckEPmXZlub0"); +const _qrl_Foo_qwikify_0Yoy9qA0SC0 = /*#__PURE__*/ qrl(()=>import("./test.tsx_Foo_qwikify_0Yoy9qA0SC0"), "Foo_qwikify_0Yoy9qA0SC0"); +// +export const Foo = qwikifyQrl(_qrl_Foo_qwikify_0Yoy9qA0SC0); +export const Bar = /*#__PURE__*/ qrl(()=>import("./test.tsx_Bar_GXXnVUtURSw"), "Bar_GXXnVUtURSw"); +export const App = /*#__PURE__*/ componentQrl(_qrl_App_component_ckEPmXZlub0); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;AAQE,OAAO,MAAM,MAAM,wEAA2B;AAE9C,OAAO,MAAM,0DAAmB;AAEhC,OAAO,MAAM,oBAAM,4EAQhB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;AAQE,OAAO,MAAM,MAAM,yCAA2B;AAE9C,OAAO,MAAM,qFAAmB;AAEhC,OAAO,MAAM,oBAAM,6CAQhB\"}") == DIAGNOSTICS == [] diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__root_level_self_referential_qrl.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__root_level_self_referential_qrl.snap new file mode 100644 index 00000000000..1123a05442a --- /dev/null +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__root_level_self_referential_qrl.snap @@ -0,0 +1,75 @@ +--- +source: packages/qwik/src/optimizer/core/src/test.rs +assertion_line: 5842 +expression: output +--- +==INPUT== + + +import { component$ } from '@qwik.dev/core'; + +// Root-level self-referential component +// The QRL should NOT be hoisted before the component function is defined +// or should use two-phase emission to avoid forward reference +export const Tree = component$((props) => { + return ( +
+ {props.label} + {props.children && props.children.map((child) => )} +
+ ); +}); + +============================= test.tsx_Tree_component_T0k10EAlawU.tsx (ENTRY POINT)== + +import { Tree } from "./test"; +// +export const Tree_component_T0k10EAlawU = (props)=>{ + return
+ {props.label} + {props.children && props.children.map((child)=>)} +
; +}; + + +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;0CAM+B,CAAC;IAC/B,QACE,IAAI;GACJ,CAAC,MAAM,KAAK,CAAC;GACb,CAAC,MAAM,QAAQ,IAAI,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAW,MAAM,GAAG,KAAK,KAAM;EACvE,EAAE;AAEJ\"}") +/* +{ + "origin": "test.tsx", + "name": "Tree_component_T0k10EAlawU", + "entry": null, + "displayName": "test.tsx_Tree_component", + "hash": "T0k10EAlawU", + "canonicalFilename": "test.tsx_Tree_component_T0k10EAlawU", + "path": "", + "extension": "tsx", + "parent": null, + "ctxKind": "function", + "ctxName": "component$", + "captures": false, + "loc": [ + 257, + 393 + ], + "paramNames": [ + "props" + ] +} +*/ +============================= test.tsx == + +import { componentQrl } from "@qwik.dev/core"; +import { qrl } from "@qwik.dev/core"; +// +const _qrl_Tree_component_T0k10EAlawU = /*#__PURE__*/ qrl(()=>import("./test.tsx_Tree_component_T0k10EAlawU"), "Tree_component_T0k10EAlawU"); +// Root-level self-referential component +// The QRL should NOT be hoisted before the component function is defined +// or should use two-phase emission to avoid forward reference +// +export const Tree = /*#__PURE__*/ componentQrl(_qrl_Tree_component_T0k10EAlawU); + + +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;AAGA,wCAAwC;AACxC,yEAAyE;AACzE,8DAA8D;;AAC9D,OAAO,MAAM,qBAAO,8CAOjB\"}") +== DIAGNOSTICS == + +[] diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__root_level_self_referential_qrl_inline.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__root_level_self_referential_qrl_inline.snap new file mode 100644 index 00000000000..9eedb0fca7f --- /dev/null +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__root_level_self_referential_qrl_inline.snap @@ -0,0 +1,63 @@ +--- +source: packages/qwik/src/optimizer/core/src/test.rs +assertion_line: 5865 +expression: output +--- +==INPUT== + + +import { component$ } from '@qwik.dev/core'; + +// Root-level self-referential component +// The QRL should NOT be hoisted before the component function is defined +// or should use two-phase emission to avoid forward reference +export const Tree = component$((props) => { + return ( +
+ {props.label} + {props.children && props.children.map((child) => )} +
+ ); +}); + +============================= ./node_modules/qwik-tree/index.qwik.js == + +import { componentQrl } from "@qwik.dev/core"; +import { _wrapProp } from "@qwik.dev/core"; +import { _getVarProps } from "@qwik.dev/core"; +import { _getConstProps } from "@qwik.dev/core"; +import { _jsxSplit } from "@qwik.dev/core"; +import { _jsxSorted } from "@qwik.dev/core"; +import { inlinedQrlDEV } from "@qwik.dev/core"; +// +const Tree_component_XMEiO6Rrd3Y = (props)=>{ + return /*#__PURE__*/ _jsxSorted("div", null, null, [ + _wrapProp(props, "label"), + props.children && props.children.map((child)=>/*#__PURE__*/ _jsxSplit(Tree, { + ..._getVarProps(child) + }, _getConstProps(child), null, 0, "zi_0", { + fileName: "./node_modules/qwik-tree/index.qwik.jsx", + lineNumber: 11, + columnNumber: 53 + })) + ], 1, "zi_1", { + fileName: "./node_modules/qwik-tree/index.qwik.jsx", + lineNumber: 9, + columnNumber: 3 + }); +}; +// Root-level self-referential component +// The QRL should NOT be hoisted before the component function is defined +// or should use two-phase emission to avoid forward reference +export const Tree = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrlDEV(Tree_component_XMEiO6Rrd3Y, "Tree_component_XMEiO6Rrd3Y", { + file: "/user/qwik/src/node_modules/qwik-tree/index.qwik.jsx", + lo: 257, + hi: 393, + displayName: "index.qwik.jsx_Tree_component" +})); + + +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/node_modules/qwik-tree/index.qwik.jsx\"],\"names\":[],\"mappings\":\";;;;;;;;mCAM+B,CAAC;IAC/B,qBACC,WAAC;kBACC;QACA,MAAM,QAAQ,IAAI,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC,sBAAU,UAAC;gCAAS;8BAAA;;;;;;;;;;AAG9D;AAVA,wCAAwC;AACxC,yEAAyE;AACzE,8DAA8D;AAC9D,OAAO,MAAM,qBAAO;;;;;IAOjB\"}") +== DIAGNOSTICS == + +[] diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_convert_jsx_events.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_convert_jsx_events.snap index 344376a11fd..a2b47466442 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_convert_jsx_events.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_convert_jsx_events.snap @@ -1,6 +1,5 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4706 expression: output --- ==INPUT== @@ -34,118 +33,44 @@ expression: output import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_ndbrzxiyG3g = ()=>import("./test.tsx_ManyEventsComponent_component_ndbrzxiyG3g"); -/*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_ndbrzxiyG3g, "ManyEventsComponent_component_ndbrzxiyG3g")); +// +const _qrl_ManyEventsComponent_component_ndbrzxiyG3g = /*#__PURE__*/ qrl(()=>import("./test.tsx_ManyEventsComponent_component_ndbrzxiyG3g"), "ManyEventsComponent_component_ndbrzxiyG3g"); +// +/*#__PURE__*/ componentQrl(_qrl_ManyEventsComponent_component_ndbrzxiyG3g); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;cAG8B\"}") -============================= test.tsx_ManyEventsComponent_component_div_button_q_e_click_1_BOulU3QpiyA.js (ENTRY POINT)== - -export const ManyEventsComponent_component_div_button_q_e_click_1_BOulU3QpiyA = ()=>{}; - - -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"gFAagB,KAAO\"}") -/* -{ - "origin": "test.tsx", - "name": "ManyEventsComponent_component_div_button_q_e_click_1_BOulU3QpiyA", - "entry": null, - "displayName": "test.tsx_ManyEventsComponent_component_div_button_q_e_click_1", - "hash": "BOulU3QpiyA", - "canonicalFilename": "test.tsx_ManyEventsComponent_component_div_button_q_e_click_1_BOulU3QpiyA", - "path": "", - "extension": "js", - "parent": "ManyEventsComponent_component_ndbrzxiyG3g", - "ctxKind": "eventHandler", - "ctxName": "onClick$", - "captures": false, - "loc": [ - 252, - 260 - ] -} -*/ -============================= test.tsx_ManyEventsComponent_component_div_button_q_d_focus_fR03UCeyKSs.js (ENTRY POINT)== - -export const ManyEventsComponent_component_div_button_q_d_focus_fR03UCeyKSs = ()=>{}; - - -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"8EAgByB,KAAO\"}") -/* -{ - "origin": "test.tsx", - "name": "ManyEventsComponent_component_div_button_q_d_focus_fR03UCeyKSs", - "entry": null, - "displayName": "test.tsx_ManyEventsComponent_component_div_button_q_d_focus", - "hash": "fR03UCeyKSs", - "canonicalFilename": "test.tsx_ManyEventsComponent_component_div_button_q_d_focus_fR03UCeyKSs", - "path": "", - "extension": "js", - "parent": "ManyEventsComponent_component_ndbrzxiyG3g", - "ctxKind": "eventHandler", - "ctxName": "document:onFocus$", - "captures": false, - "loc": [ - 347, - 355 - ] -} -*/ -============================= test.tsx_ManyEventsComponent_component_div_button_q_e_blur_LVmlrV6TsTY.js (ENTRY POINT)== - -export const ManyEventsComponent_component_div_button_q_e_blur_LVmlrV6TsTY = ()=>{}; - - -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"6EAce,KAAO\"}") -/* -{ - "origin": "test.tsx", - "name": "ManyEventsComponent_component_div_button_q_e_blur_LVmlrV6TsTY", - "entry": null, - "displayName": "test.tsx_ManyEventsComponent_component_div_button_q_e_blur", - "hash": "LVmlrV6TsTY", - "canonicalFilename": "test.tsx_ManyEventsComponent_component_div_button_q_e_blur_LVmlrV6TsTY", - "path": "", - "extension": "js", - "parent": "ManyEventsComponent_component_ndbrzxiyG3g", - "ctxKind": "eventHandler", - "ctxName": "onBlur$", - "captures": false, - "loc": [ - 277, - 285 - ] -} -*/ +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;cAG8B\"}") ============================= test.tsx_ManyEventsComponent_component_ndbrzxiyG3g.js (ENTRY POINT)== +import { _noopQrl } from "@qwik.dev/core"; import { _jsxSorted } from "@qwik.dev/core"; -import { qrl } from "@qwik.dev/core"; -const i_BOulU3QpiyA = ()=>import("./test.tsx_ManyEventsComponent_component_div_button_q_e_click_1_BOulU3QpiyA"); -const i_DjpgJ0bcgJs = ()=>import("./test.tsx_ManyEventsComponent_component_div_button_q_w_click_DjpgJ0bcgJs"); -const i_LVmlrV6TsTY = ()=>import("./test.tsx_ManyEventsComponent_component_div_button_q_e_blur_LVmlrV6TsTY"); -const i_VZGqMEVFles = ()=>import("./test.tsx_ManyEventsComponent_component_div_button_q_e_dblclick_VZGqMEVFles"); -const i_ZC5Gt2v0qH0 = ()=>import("./test.tsx_ManyEventsComponent_component_div_button_q_e_another_custom_ZC5Gt2v0qH0"); -const i_fR03UCeyKSs = ()=>import("./test.tsx_ManyEventsComponent_component_div_button_q_d_focus_fR03UCeyKSs"); -const i_z0X12CPQocg = ()=>import("./test.tsx_ManyEventsComponent_component_div_button_q_e_click_z0X12CPQocg"); +// +const _qrl_ManyEventsComponent_component_div_button_q_d_focus_fR03UCeyKSs = /*#__PURE__*/ _noopQrl("ManyEventsComponent_component_div_button_q_d_focus_fR03UCeyKSs", true); +const _qrl_ManyEventsComponent_component_div_button_q_e_another_custom_ZC5Gt2v0qH0 = /*#__PURE__*/ _noopQrl("ManyEventsComponent_component_div_button_q_e_another_custom_ZC5Gt2v0qH0", true); +const _qrl_ManyEventsComponent_component_div_button_q_e_blur_LVmlrV6TsTY = /*#__PURE__*/ _noopQrl("ManyEventsComponent_component_div_button_q_e_blur_LVmlrV6TsTY", true); +const _qrl_ManyEventsComponent_component_div_button_q_e_click_1_BOulU3QpiyA = /*#__PURE__*/ _noopQrl("ManyEventsComponent_component_div_button_q_e_click_1_BOulU3QpiyA", true); +const _qrl_ManyEventsComponent_component_div_button_q_e_click_z0X12CPQocg = /*#__PURE__*/ _noopQrl("ManyEventsComponent_component_div_button_q_e_click_z0X12CPQocg", true); +const _qrl_ManyEventsComponent_component_div_button_q_e_dblclick_VZGqMEVFles = /*#__PURE__*/ _noopQrl("ManyEventsComponent_component_div_button_q_e_dblclick_VZGqMEVFles", true); +const _qrl_ManyEventsComponent_component_div_button_q_w_click_DjpgJ0bcgJs = /*#__PURE__*/ _noopQrl("ManyEventsComponent_component_div_button_q_w_click_DjpgJ0bcgJs", true); +// export const ManyEventsComponent_component_ndbrzxiyG3g = ()=>{ return /*#__PURE__*/ _jsxSorted("div", null, null, [ /*#__PURE__*/ _jsxSorted("button", null, { - "q-e:click": /*#__PURE__*/ qrl(i_z0X12CPQocg, "ManyEventsComponent_component_div_button_q_e_click_z0X12CPQocg"), - "q-e:dblclick": /*#__PURE__*/ qrl(i_VZGqMEVFles, "ManyEventsComponent_component_div_button_q_e_dblclick_VZGqMEVFles") + "q-e:click": _qrl_ManyEventsComponent_component_div_button_q_e_click_z0X12CPQocg, + "q-e:dblclick": _qrl_ManyEventsComponent_component_div_button_q_e_dblclick_VZGqMEVFles }, "click", 3, null), /*#__PURE__*/ _jsxSorted("button", null, { - "q-e:click": /*#__PURE__*/ qrl(i_BOulU3QpiyA, "ManyEventsComponent_component_div_button_q_e_click_1_BOulU3QpiyA"), - "q-e:blur": /*#__PURE__*/ qrl(i_LVmlrV6TsTY, "ManyEventsComponent_component_div_button_q_e_blur_LVmlrV6TsTY"), - "q-e:another-custom": /*#__PURE__*/ qrl(i_ZC5Gt2v0qH0, "ManyEventsComponent_component_div_button_q_e_another_custom_ZC5Gt2v0qH0"), - "q-d:focus": /*#__PURE__*/ qrl(i_fR03UCeyKSs, "ManyEventsComponent_component_div_button_q_d_focus_fR03UCeyKSs"), - "q-w:click": /*#__PURE__*/ qrl(i_DjpgJ0bcgJs, "ManyEventsComponent_component_div_button_q_w_click_DjpgJ0bcgJs") + "q-e:click": _qrl_ManyEventsComponent_component_div_button_q_e_click_1_BOulU3QpiyA, + "q-e:blur": _qrl_ManyEventsComponent_component_div_button_q_e_blur_LVmlrV6TsTY, + "q-e:another-custom": _qrl_ManyEventsComponent_component_div_button_q_e_another_custom_ZC5Gt2v0qH0, + "q-d:focus": _qrl_ManyEventsComponent_component_div_button_q_d_focus_fR03UCeyKSs, + "q-w:click": _qrl_ManyEventsComponent_component_div_button_q_w_click_DjpgJ0bcgJs }, "click", 3, null) ], 3, "u6_0"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;;;yDAGyC;IACtC,qBACC,WAAC;sBACA,WAAC;YACA,WAAQ;YACR,cAAW;WACX;sBAGD,WAAC;YACA,WAAQ;YACR,UAAO;YACP,oBAAiB;YAHlB,WAQS;YART,WAQS;WAFR;;AAKJ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;;;;;yDAGyC;IACtC,qBACC,WAAC;sBACA,WAAC;YACA,WAAQ;YACR,cAAW;WACX;sBAGD,WAAC;YACA,WAAQ;YACR,UAAO;YACP,oBAAiB;YAHlB,WAQS;YART,WAQS;WAFR;;AAKJ\"}") /* { "origin": "test.tsx", @@ -166,110 +91,6 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma ] } */ -============================= test.tsx_ManyEventsComponent_component_div_button_q_e_another_custom_ZC5Gt2v0qH0.js (ENTRY POINT)== - -export const ManyEventsComponent_component_div_button_q_e_another_custom_ZC5Gt2v0qH0 = ()=>{}; - - -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"uFAeyB,KAAO\"}") -/* -{ - "origin": "test.tsx", - "name": "ManyEventsComponent_component_div_button_q_e_another_custom_ZC5Gt2v0qH0", - "entry": null, - "displayName": "test.tsx_ManyEventsComponent_component_div_button_q_e_another_custom", - "hash": "ZC5Gt2v0qH0", - "canonicalFilename": "test.tsx_ManyEventsComponent_component_div_button_q_e_another_custom_ZC5Gt2v0qH0", - "path": "", - "extension": "js", - "parent": "ManyEventsComponent_component_ndbrzxiyG3g", - "ctxKind": "eventHandler", - "ctxName": "on-anotherCustom$", - "captures": false, - "loc": [ - 312, - 320 - ] -} -*/ -============================= test.tsx_ManyEventsComponent_component_div_button_q_w_click_DjpgJ0bcgJs.js (ENTRY POINT)== - -export const ManyEventsComponent_component_div_button_q_w_click_DjpgJ0bcgJs = ()=>{}; - - -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"8EAiBuB,KAAO\"}") -/* -{ - "origin": "test.tsx", - "name": "ManyEventsComponent_component_div_button_q_w_click_DjpgJ0bcgJs", - "entry": null, - "displayName": "test.tsx_ManyEventsComponent_component_div_button_q_w_click", - "hash": "DjpgJ0bcgJs", - "canonicalFilename": "test.tsx_ManyEventsComponent_component_div_button_q_w_click_DjpgJ0bcgJs", - "path": "", - "extension": "js", - "parent": "ManyEventsComponent_component_ndbrzxiyG3g", - "ctxKind": "eventHandler", - "ctxName": "window:onClick$", - "captures": false, - "loc": [ - 380, - 388 - ] -} -*/ -============================= test.tsx_ManyEventsComponent_component_div_button_q_e_click_z0X12CPQocg.js (ENTRY POINT)== - -export const ManyEventsComponent_component_div_button_q_e_click_z0X12CPQocg = ()=>{}; - - -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"8EAOgB,KAAO\"}") -/* -{ - "origin": "test.tsx", - "name": "ManyEventsComponent_component_div_button_q_e_click_z0X12CPQocg", - "entry": null, - "displayName": "test.tsx_ManyEventsComponent_component_div_button_q_e_click", - "hash": "z0X12CPQocg", - "canonicalFilename": "test.tsx_ManyEventsComponent_component_div_button_q_e_click_z0X12CPQocg", - "path": "", - "extension": "js", - "parent": "ManyEventsComponent_component_ndbrzxiyG3g", - "ctxKind": "eventHandler", - "ctxName": "onClick$", - "captures": false, - "loc": [ - 150, - 158 - ] -} -*/ -============================= test.tsx_ManyEventsComponent_component_div_button_q_e_dblclick_VZGqMEVFles.js (ENTRY POINT)== - -export const ManyEventsComponent_component_div_button_q_e_dblclick_VZGqMEVFles = ()=>{}; - - -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"iFAQmB,KAAO\"}") -/* -{ - "origin": "test.tsx", - "name": "ManyEventsComponent_component_div_button_q_e_dblclick_VZGqMEVFles", - "entry": null, - "displayName": "test.tsx_ManyEventsComponent_component_div_button_q_e_dblclick", - "hash": "VZGqMEVFles", - "canonicalFilename": "test.tsx_ManyEventsComponent_component_div_button_q_e_dblclick_VZGqMEVFles", - "path": "", - "extension": "js", - "parent": "ManyEventsComponent_component_ndbrzxiyG3g", - "ctxKind": "eventHandler", - "ctxName": "onDblClick$", - "captures": false, - "loc": [ - 179, - 187 - ] -} -*/ == DIAGNOSTICS == [] diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_convert_rest_props.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_convert_rest_props.snap index 7124de2e24e..2d9689c1ebe 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_convert_rest_props.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_convert_rest_props.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4579 +assertion_line: 4616 expression: output --- ==INPUT== @@ -20,21 +20,24 @@ expression: output import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGE,6BAAe,6EAMb\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGE,6BAAe,8CAMb\"}") ============================= test.tsx_test_component_useTask_jewzFYh3XmQ.js (ENTRY POINT)== import { _captures } from "@qwik.dev/core"; +// export const test_component_useTask_jewzFYh3XmQ = ()=>{ const props = _captures[0]; props.checked; }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";kDAIW;;IACR,MAAM,OAAO\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;kDAIW;;IACR,MAAM,OAAO\"}") /* { "origin": "test.tsx", @@ -63,7 +66,9 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { _restProps } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useTaskQrl } from "@qwik.dev/core"; +// const i_jewzFYh3XmQ = ()=>import("./test.tsx_test_component_useTask_jewzFYh3XmQ"); +// export const test_component_LUXeXe0DQrg = (_rawProps)=>{ const props = _restProps(_rawProps); useTaskQrl(/*#__PURE__*/ qrl(i_jewzFYh3XmQ, "test_component_useTask_jewzFYh3XmQ", [ @@ -73,7 +78,7 @@ export const test_component_LUXeXe0DQrg = (_rawProps)=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;0CAGiC;;IAC/B;;;IAIA,OAAO;AACP\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;0CAGiC;;IAC/B;;;IAIA,OAAO;AACP\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_destructure_args.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_destructure_args.snap index b4708283199..ac8334b3828 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_destructure_args.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_destructure_args.snap @@ -1,8 +1,7 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 3621 +assertion_line: 3659 expression: output -snapshot_kind: text --- ==INPUT== @@ -30,13 +29,15 @@ snapshot_kind: text import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); // the count results in _fnSignal because of the rename // would be nice to consider it a prop too -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGE,uDAAuD;AACvD,0CAA0C;AAC1C,6BAAe,6EAab\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;AAGE,uDAAuD;AACvD,0CAA0C;;AAC1C,6BAAe,8CAab\"}") ============================= test.tsx_test_component_LUXeXe0DQrg.js (ENTRY POINT)== import { _getConstProps } from "@qwik.dev/core"; @@ -45,6 +46,7 @@ import { _jsxSorted } from "@qwik.dev/core"; import { _jsxSplit } from "@qwik.dev/core"; import { _restProps } from "@qwik.dev/core"; import { _wrapProp } from "@qwik.dev/core"; +// export const test_component_LUXeXe0DQrg = (_rawProps)=>{ const rest = _restProps(_rawProps, [ "message", @@ -75,7 +77,7 @@ export const test_component_LUXeXe0DQrg = (_rawProps)=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;0CAK4B;;;;;;IACzB,MAAM,UAAU,SAAS;QAAE,SAAS;IAAE,GAAG;QAAE,UAAU;IAAM;IAC3D,QAAQ,OAAO;IACf,MAAM,YAAY,QAAQ,OAAO,GAAG;IACpC,qBACC,WAAC;QAAI,EAAE;;sBACN,UAAC;4BAAS;0BAAA;;YACD;;;sBAET,WAAC;YAAI,OAAM;WAAW;;AAGzB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;0CAK4B;;;;;;IACzB,MAAM,UAAU,SAAS;QAAE,SAAS;IAAE,GAAG;QAAE,UAAU;IAAM;IAC3D,QAAQ,OAAO;IACf,MAAM,YAAY,QAAQ,OAAO,GAAG;IACpC,qBACC,WAAC;QAAI,EAAE;;sBACN,UAAC;4BAAS;0BAAA;;YACD;;;sBAET,WAAC;YAAI,OAAM;WAAW;;AAGzB\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_multiple_qrls_with_item_and_index.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_multiple_qrls_with_item_and_index.snap index a4520bbc308..dea60d71d23 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_multiple_qrls_with_item_and_index.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_multiple_qrls_with_item_and_index.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5004 +assertion_line: 5041 expression: output --- ==INPUT== @@ -23,11 +23,13 @@ export default component$(() => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGA,6BAAe,6EASZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGA,6BAAe,8CASZ\"}") ============================= test.tsx_test_component_div_div_q_e_hover_2iHUE4xtgo8.js (ENTRY POINT)== export const test_component_div_div_q_e_hover_2iHUE4xtgo8 = (_, _1, _2, index)=>console.log(index); @@ -95,29 +97,29 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_2iHUE4xtgo8 = ()=>import("./test.tsx_test_component_div_div_q_e_hover_2iHUE4xtgo8"); -const i_Mc600uqO6ps = ()=>import("./test.tsx_test_component_div_div_q_e_click_Mc600uqO6ps"); +// +const _qrl_test_component_div_div_q_e_click_Mc600uqO6ps = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_div_div_q_e_click_Mc600uqO6ps"), "test_component_div_div_q_e_click_Mc600uqO6ps"); +const _qrl_test_component_div_div_q_e_hover_2iHUE4xtgo8 = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_div_div_q_e_hover_2iHUE4xtgo8"), "test_component_div_div_q_e_hover_2iHUE4xtgo8"); +// export const test_component_LUXeXe0DQrg = ()=>{ const loop = [ 'abcd', 'xyz' ]; - const test_component_div_div_q_e_click_Mc600uqO6ps = /*#__PURE__*/ qrl(i_Mc600uqO6ps, "test_component_div_div_q_e_click_Mc600uqO6ps"); - const test_component_div_div_q_e_hover_2iHUE4xtgo8 = /*#__PURE__*/ qrl(i_2iHUE4xtgo8, "test_component_div_div_q_e_hover_2iHUE4xtgo8"); return /*#__PURE__*/ _jsxSorted("div", null, null, loop.map((item, index)=>{ return /*#__PURE__*/ _jsxSorted("div", { - "q-e:click": test_component_div_div_q_e_click_Mc600uqO6ps, - "q-e:hover": test_component_div_div_q_e_hover_2iHUE4xtgo8, + "q-e:click": _qrl_test_component_div_div_q_e_click_Mc600uqO6ps, + "q-e:hover": _qrl_test_component_div_div_q_e_hover_2iHUE4xtgo8, "q:ps": [ item, index ] - }, null, item, 0, "u6_0"); + }, null, item, 4, "u6_0"); }), 1, "u6_1"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;0CAG0B;IACxB,MAAM,OAAiB;QAAC;QAAQ;KAAM;;;IACtC,qBACE,WAAC,mBACE,KAAK,GAAG,CAAC,CAAC,MAAM;QACf,qBAAO,WAAC;YAAI,WAAQ;YAA2B,WAAQ;;gBAD9C;gBAAM;;iBACqE;IACtF;AAGN\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;0CAG0B;IACxB,MAAM,OAAiB;QAAC;QAAQ;KAAM;IACtC,qBACE,WAAC,mBACE,KAAK,GAAG,CAAC,CAAC,MAAM;QACf,qBAAO,WAAC;YAAI,WAAQ;YAA2B,WAAQ;;gBAD9C;gBAAM;;iBACqE;IACtF;AAGN\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_multiple_qrls_with_item_and_index_and_capture_ref.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_multiple_qrls_with_item_and_index_and_capture_ref.snap index 0ca5f8348f6..19a06f439b6 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_multiple_qrls_with_item_and_index_and_capture_ref.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_multiple_qrls_with_item_and_index_and_capture_ref.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5028 +assertion_line: 5065 expression: output --- ==INPUT== @@ -26,21 +26,24 @@ export default component$(() => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGA,6BAAe,6EAWZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGA,6BAAe,8CAWZ\"}") ============================= test.tsx_test_component_div_div_q_e_hover_2iHUE4xtgo8.js (ENTRY POINT)== import { _captures } from "@qwik.dev/core"; +// export const test_component_div_div_q_e_hover_2iHUE4xtgo8 = (_, _1, _2, index)=>{ const bar = _captures[0]; return console.log(bar.value, index); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";4DAU4E,YADrD;;WAC2D,QAAQ,GAAG,CAAC,IAAI,KAAK,EAAE\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;4DAU4E,YADrD;;WAC2D,QAAQ,GAAG,CAAC,IAAI,KAAK,EAAE\"}") /* { "origin": "test.tsx", @@ -73,13 +76,14 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma ============================= test.tsx_test_component_div_div_q_e_click_Mc600uqO6ps.js (ENTRY POINT)== import { _captures } from "@qwik.dev/core"; +// export const test_component_div_div_q_e_click_Mc600uqO6ps = (_, _1, item)=>{ const foo = _captures[0]; return console.log(item, foo.value); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";4DAU8B,QADb;;WACmB,QAAQ,GAAG,CAAC,MAAM,IAAI,KAAK\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;4DAU8B,QADb;;WACmB,QAAQ,GAAG,CAAC,MAAM,IAAI,KAAK\"}") /* { "origin": "test.tsx", @@ -113,8 +117,10 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; +// const i_2iHUE4xtgo8 = ()=>import("./test.tsx_test_component_div_div_q_e_hover_2iHUE4xtgo8"); const i_Mc600uqO6ps = ()=>import("./test.tsx_test_component_div_div_q_e_click_Mc600uqO6ps"); +// export const test_component_LUXeXe0DQrg = ()=>{ const foo = useSignal('hi'); const bar = useSignal('ho'); @@ -136,12 +142,12 @@ export const test_component_LUXeXe0DQrg = ()=>{ item, index ] - }, null, item, 0, "u6_0"); + }, null, item, 4, "u6_0"); }), 1, "u6_1"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;0CAG0B;IACxB,MAAM,MAAM,UAAU;IACtB,MAAM,MAAM,UAAU;IACtB,MAAM,OAAiB;QAAC;QAAQ;KAAM;;;;;;;IACtC,qBACE,WAAC,mBACE,KAAK,GAAG,CAAC,CAAC,MAAM;QACf,qBAAO,WAAC;YAAI,WAAQ;YAAsC,WAAQ;;gBADzD;gBAAM;;iBAC2F;IAC5G;AAGN\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;0CAG0B;IACxB,MAAM,MAAM,UAAU;IACtB,MAAM,MAAM,UAAU;IACtB,MAAM,OAAiB;QAAC;QAAQ;KAAM;;;;;;;IACtC,qBACE,WAAC,mBACE,KAAK,GAAG,CAAC,CAAC,MAAM;QACf,qBAAO,WAAC;YAAI,WAAQ;YAAsC,WAAQ;;gBADzD;gBAAM;;iBAC2F;IAC5G;AAGN\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_single_qrl.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_single_qrl.snap index 2b834c36a28..dd93b055baf 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_single_qrl.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_single_qrl.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4849 +assertion_line: 4886 expression: output --- ==INPUT== @@ -55,14 +55,17 @@ export const App = component$(() => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_ckEPmXZlub0 = ()=>import("./test.tsx_App_component_ckEPmXZlub0"); -export const App = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_ckEPmXZlub0, "App_component_ckEPmXZlub0")); +// +const _qrl_App_component_ckEPmXZlub0 = /*#__PURE__*/ qrl(()=>import("./test.tsx_App_component_ckEPmXZlub0"), "App_component_ckEPmXZlub0"); +// +export const App = /*#__PURE__*/ componentQrl(_qrl_App_component_ckEPmXZlub0); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAEA,OAAO,MAAM,oBAAM,4EA0CZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAEA,OAAO,MAAM,oBAAM,6CA0CZ\"}") ============================= test.tsx_App_component_div_tr_td_a_q_e_click_1_40fnSAlYI48.js (ENTRY POINT)== import { _captures } from "@qwik.dev/core"; +// export const App_component_div_tr_td_a_q_e_click_1_40fnSAlYI48 = (_, _1, row)=>{ const data = _captures[0]; const dataValue = untrack(()=>data.value); @@ -70,7 +73,7 @@ export const App_component_div_tr_td_a_q_e_click_1_40fnSAlYI48 = (_, _1, row)=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";iEA4B8B,QArBH;;IAsBL,MAAM,YAAY,QAAQ,IAAM,KAAK,KAAK;IAC1C,KAAK,KAAK,GAAG,UAAU,SAAS,CAC9B,UAAU,SAAS,CAAC,CAAC,IAAM,EAAE,KAAK,CAAC,EAAE,KAAK,IAAI,KAAK,CAAC,EAAE,GACtD\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;iEA4B8B,QArBH;;IAsBL,MAAM,YAAY,QAAQ,IAAM,KAAK,KAAK;IAC1C,KAAK,KAAK,GAAG,UAAU,SAAS,CAC9B,UAAU,SAAS,CAAC,CAAC,IAAM,EAAE,KAAK,CAAC,EAAE,KAAK,IAAI,KAAK,CAAC,EAAE,GACtD\"}") /* { "origin": "test.tsx", @@ -105,14 +108,17 @@ import { _fnSignal } from "@qwik.dev/core"; import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; +// const _hf0 = (p0)=>p0.value.selected.value ? "danger" : ""; const _hf0_str = 'p0.value.selected.value?"danger":""'; const _hf1 = (p0)=>p0.value.id; const _hf1_str = "p0.value.id"; const _hf2 = (p0)=>p0.value.label.value; const _hf2_str = "p0.value.label.value"; +// const i_40fnSAlYI48 = ()=>import("./test.tsx_App_component_div_tr_td_a_q_e_click_1_40fnSAlYI48"); const i_lgbZkJXyLtg = ()=>import("./test.tsx_App_component_div_tr_td_a_q_e_click_lgbZkJXyLtg"); +// export const App_component_ckEPmXZlub0 = ()=>{ const data = useSignal([]); const selectedItem = useSignal(null); @@ -139,7 +145,7 @@ export const App_component_ckEPmXZlub0 = ()=>{ "q:p": row }, null, _fnSignal(_hf2, [ row - ], _hf2_str), 0, null), 1, null), + ], _hf2_str), 4, null), 1, null), /*#__PURE__*/ _jsxSorted("td", null, { class: "col-md-1" }, /*#__PURE__*/ _jsxSorted("a", { @@ -147,7 +153,7 @@ export const App_component_ckEPmXZlub0 = ()=>{ "q:p": row }, null, /*#__PURE__*/ _jsxSorted("span", null, { "aria-hidden": "true" - }, "x", 3, null), 2, null), 1, null), + }, "x", 3, null), 6, null), 1, null), /*#__PURE__*/ _jsxSorted("td", null, { class: "col-md-6" }, null, 3, null) @@ -155,7 +161,7 @@ export const App_component_ckEPmXZlub0 = ()=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;mBAUuB,GAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,WAAW;;mBAEvB,GAAI,KAAK,CAAC,EAAE;;mBAW7B,GAAI,KAAK,CAAC,KAAK,CAAC,KAAK;;;;yCArBZ;IAC7B,MAAM,OAAO,UAAyB,EAAE;IACxC,MAAM,eAAe,UAAsB;;;;;;;IACxC,qBACI,WAAC,mBACE,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,oBACb,WAAC;YAEC,KAAK;;;;0BAEL,WAAC;gBAAG,OAAM;;;;0BACV,WAAC;gBAAG,OAAM;6BACR,WAAC;gBACC,WAAQ;uBARD;;;;0BAmBX,WAAC;gBAAG,OAAM;6BACR,WAAC;gBACC,WAAQ;uBArBD;mCA6BP,WAAC;gBAAK,eAAY;eAAO;0BAG7B,WAAC;gBAAG,OAAM;;cA9BL,QAAQ,IAAM,IAAI,KAAK,CAAC,EAAE;AAmC3C\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;mBAUuB,GAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,WAAW;;mBAEvB,GAAI,KAAK,CAAC,EAAE;;mBAW7B,GAAI,KAAK,CAAC,KAAK,CAAC,KAAK;;;;;;yCArBZ;IAC7B,MAAM,OAAO,UAAyB,EAAE;IACxC,MAAM,eAAe,UAAsB;;;;;;;IACxC,qBACI,WAAC,mBACE,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,oBACb,WAAC;YAEC,KAAK;;;;0BAEL,WAAC;gBAAG,OAAM;;;;0BACV,WAAC;gBAAG,OAAM;6BACR,WAAC;gBACC,WAAQ;uBARD;;;;0BAmBX,WAAC;gBAAG,OAAM;6BACR,WAAC;gBACC,WAAQ;uBArBD;mCA6BP,WAAC;gBAAK,eAAY;eAAO;0BAG7B,WAAC;gBAAG,OAAM;;cA9BL,QAAQ,IAAM,IAAI,KAAK,CAAC,EAAE;AAmC3C\"}") /* { "origin": "test.tsx", @@ -179,6 +185,7 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma ============================= test.tsx_App_component_div_tr_td_a_q_e_click_lgbZkJXyLtg.js (ENTRY POINT)== import { _captures } from "@qwik.dev/core"; +// export const App_component_div_tr_td_a_q_e_click_lgbZkJXyLtg = (_, _1, row)=>{ const selectedItem = _captures[0]; if (selectedItem.value) selectedItem.value.selected.value = false; @@ -187,7 +194,7 @@ export const App_component_div_tr_td_a_q_e_click_lgbZkJXyLtg = (_, _1, row)=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";+DAe8B,QARH;;IASL,IAAI,aAAa,KAAK,EACpB,aAAa,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG;IAEtC,aAAa,KAAK,GAAG,IAAI,KAAK;IAC9B,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;+DAe8B,QARH;;IASL,IAAI,aAAa,KAAK,EACpB,aAAa,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG;IAEtC,aAAa,KAAK,GAAG,IAAI,KAAK;IAC9B,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_single_qrl_2.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_single_qrl_2.snap index 13fe0b6e7ef..10ca4339d5a 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_single_qrl_2.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_single_qrl_2.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4905 +assertion_line: 4942 expression: output --- ==INPUT== @@ -38,17 +38,13 @@ expression: output ============================= test.tsx_Parent_component_div_button_q_e_click_5khsVRINUws.js (ENTRY POINT)== -import { _captures } from "@qwik.dev/core"; -export const Parent_component_div_button_q_e_click_5khsVRINUws = ()=>{ - const results = _captures[0]; - return results.value = [ +export const Parent_component_div_button_q_e_click_5khsVRINUws = (_, _1, results)=>results.value = [ 'item1', 'item2' ]; -}; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";iEAQuC;;WAAO,QAAQ,KAAK,GAAG;QAAC;QAAS;KAAQ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"iEAQuC,kBAAO,QAAQ,KAAK,GAAG;QAAC;QAAS;KAAQ\"}") /* { "origin": "test.tsx", @@ -62,12 +58,14 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma "parent": "Parent_component_0TaiDayHrlo", "ctxKind": "eventHandler", "ctxName": "onClick$", - "captures": true, + "captures": false, "loc": [ 268, 310 ], - "captureNames": [ + "paramNames": [ + "_", + "_1", "results" ] } @@ -76,19 +74,23 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_0TaiDayHrlo = ()=>import("./test.tsx_Parent_component_0TaiDayHrlo"); -/*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_0TaiDayHrlo, "Parent_component_0TaiDayHrlo")); +// +const _qrl_Parent_component_0TaiDayHrlo = /*#__PURE__*/ qrl(()=>import("./test.tsx_Parent_component_0TaiDayHrlo"), "Parent_component_0TaiDayHrlo"); +// +/*#__PURE__*/ componentQrl(_qrl_Parent_component_0TaiDayHrlo); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;cAEqB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;cAEqB\"}") ============================= test.tsx_Parent_component_0TaiDayHrlo.js (ENTRY POINT)== import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; import { useStore } from "@qwik.dev/core"; -const i_5khsVRINUws = ()=>import("./test.tsx_Parent_component_div_button_q_e_click_5khsVRINUws"); +// +const _qrl_Parent_component_div_button_q_e_click_5khsVRINUws = /*#__PURE__*/ qrl(()=>import("./test.tsx_Parent_component_div_button_q_e_click_5khsVRINUws"), "Parent_component_div_button_q_e_click_5khsVRINUws"); const i_rAeuW6OvuXM = ()=>import("./test.tsx_Parent_component_div_button_q_e_click_1_rAeuW6OvuXM"); +// export const Parent_component_0TaiDayHrlo = ()=>{ const cart = useStore([]); const results = useSignal([ @@ -99,23 +101,23 @@ export const Parent_component_0TaiDayHrlo = ()=>{ cart ]); return /*#__PURE__*/ _jsxSorted("div", null, null, [ - /*#__PURE__*/ _jsxSorted("button", null, { + /*#__PURE__*/ _jsxSorted("button", { + "q:p": results + }, { id: "first", - "q-e:click": /*#__PURE__*/ qrl(i_5khsVRINUws, "Parent_component_div_button_q_e_click_5khsVRINUws", [ - results - ]) - }, null, 3, null), + "q-e:click": _qrl_Parent_component_div_button_q_e_click_5khsVRINUws + }, null, 7, null), results.value.map((item, key)=>/*#__PURE__*/ _jsxSorted("button", { id: 'second-' + key, "q-e:click": Parent_component_div_button_q_e_click_1_rAeuW6OvuXM, "q:p": item - }, null, item, 0, "u6_0")), + }, null, item, 4, "u6_0")), /*#__PURE__*/ _jsxSorted("ul", null, null, cart.map((item)=>/*#__PURE__*/ _jsxSorted("li", null, null, /*#__PURE__*/ _jsxSorted("span", null, null, item, 1, null), 1, "u6_1")), 1, null) ], 1, "u6_2"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;4CAEgC;IAC1B,MAAM,OAAO,SAAe,EAAE;IAC9B,MAAM,UAAU,UAAU;QAAC;QAAO;KAAM;;;;IAExC,qBACE,WAAC;sBACC,WAAC;YAAO,IAAG;YAAQ,WAAQ;;;;QAE1B,QAAQ,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,oBACxB,WAAC;gBACC,IAAI,YAAY;gBAChB,WAAQ;uBAHQ;qBAOf;sBAGL,WAAC,kBACE,KAAK,GAAG,CAAC,CAAC,qBACT,WAAC,gCACC,WAAC,oBAAM;;AAMnB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;;4CAEgC;IAC1B,MAAM,OAAO,SAAe,EAAE;IAC9B,MAAM,UAAU,UAAU;QAAC;QAAO;KAAM;;;;IAExC,qBACE,WAAC;sBACC,WAAC;;;YAAO,IAAG;YAAQ,WAAQ;;QAE1B,QAAQ,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,oBACxB,WAAC;gBACC,IAAI,YAAY;gBAChB,WAAQ;uBAHQ;qBAOf;sBAGL,WAAC,kBACE,KAAK,GAAG,CAAC,CAAC,qBACT,WAAC,gCACC,WAAC,oBAAM;;AAMnB\"}") /* { "origin": "test.tsx", @@ -139,13 +141,14 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma ============================= test.tsx_Parent_component_div_button_q_e_click_1_rAeuW6OvuXM.js (ENTRY POINT)== import { _captures } from "@qwik.dev/core"; +// export const Parent_component_div_button_q_e_click_1_rAeuW6OvuXM = (_, _1, item)=>{ const cart = _captures[0]; cart.push(item); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";mEAawB,QAHM;;IAId,KAAK,IAAI,CAAC\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;mEAawB,QAHM;;IAId,KAAK,IAAI,CAAC\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_single_qrl_with_index.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_single_qrl_with_index.snap index e2af7105881..86af426929c 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_single_qrl_with_index.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_single_qrl_with_index.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4946 +assertion_line: 4983 expression: output --- ==INPUT== @@ -57,14 +57,17 @@ export const App = component$(() => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_ckEPmXZlub0 = ()=>import("./test.tsx_App_component_ckEPmXZlub0"); -export const App = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_ckEPmXZlub0, "App_component_ckEPmXZlub0")); +// +const _qrl_App_component_ckEPmXZlub0 = /*#__PURE__*/ qrl(()=>import("./test.tsx_App_component_ckEPmXZlub0"), "App_component_ckEPmXZlub0"); +// +export const App = /*#__PURE__*/ componentQrl(_qrl_App_component_ckEPmXZlub0); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAEA,OAAO,MAAM,oBAAM,4EA4CZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAEA,OAAO,MAAM,oBAAM,6CA4CZ\"}") ============================= test.tsx_App_component_div_tr_td_a_q_e_click_1_40fnSAlYI48.js (ENTRY POINT)== import { _captures } from "@qwik.dev/core"; +// export const App_component_div_tr_td_a_q_e_click_1_40fnSAlYI48 = (_, _1, row)=>{ const data = _captures[0]; const dataValue = untrack(()=>data.value); @@ -72,7 +75,7 @@ export const App_component_div_tr_td_a_q_e_click_1_40fnSAlYI48 = (_, _1, row)=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";iEA8B8B,QAtBH;;IAuBL,MAAM,YAAY,QAAQ,IAAM,KAAK,KAAK;IAC1C,KAAK,KAAK,GAAG,UAAU,SAAS,CAC9B,UAAU,SAAS,CAAC,CAAC,IAAM,EAAE,KAAK,CAAC,EAAE,KAAK,IAAI,KAAK,CAAC,EAAE,GACtD\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;iEA8B8B,QAtBH;;IAuBL,MAAM,YAAY,QAAQ,IAAM,KAAK,KAAK;IAC1C,KAAK,KAAK,GAAG,UAAU,SAAS,CAC9B,UAAU,SAAS,CAAC,CAAC,IAAM,EAAE,KAAK,CAAC,EAAE,KAAK,IAAI,KAAK,CAAC,EAAE,GACtD\"}") /* { "origin": "test.tsx", @@ -107,14 +110,17 @@ import { _fnSignal } from "@qwik.dev/core"; import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; +// const _hf0 = (p0)=>p0.value.selected.value ? "danger" : ""; const _hf0_str = 'p0.value.selected.value?"danger":""'; const _hf1 = (p0)=>p0.value.id; const _hf1_str = "p0.value.id"; const _hf2 = (p0)=>p0.value.label.value; const _hf2_str = "p0.value.label.value"; +// const i_40fnSAlYI48 = ()=>import("./test.tsx_App_component_div_tr_td_a_q_e_click_1_40fnSAlYI48"); const i_lgbZkJXyLtg = ()=>import("./test.tsx_App_component_div_tr_td_a_q_e_click_lgbZkJXyLtg"); +// export const App_component_ckEPmXZlub0 = ()=>{ const data = useSignal([]); const selectedItem = useSignal(null); @@ -146,7 +152,7 @@ export const App_component_ckEPmXZlub0 = ()=>{ ] }, null, _fnSignal(_hf2, [ row - ], _hf2_str), 0, null), 1, null), + ], _hf2_str), 4, null), 1, null), /*#__PURE__*/ _jsxSorted("td", null, { class: "col-md-1" }, /*#__PURE__*/ _jsxSorted("a", { @@ -154,7 +160,7 @@ export const App_component_ckEPmXZlub0 = ()=>{ "q:p": row }, null, /*#__PURE__*/ _jsxSorted("span", null, { "aria-hidden": "true" - }, "x", 3, null), 2, null), 1, null), + }, "x", 3, null), 6, null), 1, null), /*#__PURE__*/ _jsxSorted("td", null, { class: "col-md-6" }, null, 3, null) @@ -162,7 +168,7 @@ export const App_component_ckEPmXZlub0 = ()=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;mBAWuB,GAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,WAAW;;mBAEvB,GAAI,KAAK,CAAC,EAAE;;mBAY7B,GAAI,KAAK,CAAC,KAAK,CAAC,KAAK;;;;yCAvBZ;IAC7B,MAAM,OAAO,UAAyB,EAAE;IACxC,MAAM,eAAe,UAAsB;IAC3C,MAAM,eAAe,UAAyB;;;;;;;;IAC3C,qBACI,WAAC,mBACE,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,oBAClB,WAAC;YAEC,KAAK;;;;0BAEL,WAAC;gBAAG,OAAM;;;;0BACV,WAAC;gBAAG,OAAM;6BACR,WAAC;gBACC,WAAQ;;oBARD;oBAAK;;;;;0BAoBhB,WAAC;gBAAG,OAAM;6BACR,WAAC;gBACC,WAAQ;uBAtBD;mCA8BP,WAAC;gBAAK,eAAY;eAAO;0BAG7B,WAAC;gBAAG,OAAM;;cA/BL,QAAQ,IAAM,IAAI,KAAK,CAAC,EAAE;AAoC3C\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;mBAWuB,GAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,WAAW;;mBAEvB,GAAI,KAAK,CAAC,EAAE;;mBAY7B,GAAI,KAAK,CAAC,KAAK,CAAC,KAAK;;;;;;yCAvBZ;IAC7B,MAAM,OAAO,UAAyB,EAAE;IACxC,MAAM,eAAe,UAAsB;IAC3C,MAAM,eAAe,UAAyB;;;;;;;;IAC3C,qBACI,WAAC,mBACE,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,oBAClB,WAAC;YAEC,KAAK;;;;0BAEL,WAAC;gBAAG,OAAM;;;;0BACV,WAAC;gBAAG,OAAM;6BACR,WAAC;gBACC,WAAQ;;oBARD;oBAAK;;;;;0BAoBhB,WAAC;gBAAG,OAAM;6BACR,WAAC;gBACC,WAAQ;uBAtBD;mCA8BP,WAAC;gBAAK,eAAY;eAAO;0BAG7B,WAAC;gBAAG,OAAM;;cA/BL,QAAQ,IAAM,IAAI,KAAK,CAAC,EAAE;AAoC3C\"}") /* { "origin": "test.tsx", @@ -186,6 +192,7 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma ============================= test.tsx_App_component_div_tr_td_a_q_e_click_lgbZkJXyLtg.js (ENTRY POINT)== import { _captures } from "@qwik.dev/core"; +// export const App_component_div_tr_td_a_q_e_click_lgbZkJXyLtg = (_, _1, row, idx)=>{ const clickedIndex = _captures[0], selectedItem = _captures[1]; if (selectedItem.value) selectedItem.value.selected.value = false; @@ -195,7 +202,7 @@ export const App_component_div_tr_td_a_q_e_click_lgbZkJXyLtg = (_, _1, row, idx) }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";+DAgB8B,QARH,KAAK;;IASV,IAAI,aAAa,KAAK,EACpB,aAAa,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG;IAEtC,aAAa,KAAK,GAAG,IAAI,KAAK;IAC9B,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG;IAC1C,aAAa,KAAK,GAAG\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;+DAgB8B,QARH,KAAK;;IASV,IAAI,aAAa,KAAK,EACpB,aAAa,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG;IAEtC,aAAa,KAAK,GAAG,IAAI,KAAK;IAC9B,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG;IAC1C,aAAa,KAAK,GAAG\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_single_qrl_with_nested_components.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_single_qrl_with_nested_components.snap index ba5da9000e4..65903de5310 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_single_qrl_with_nested_components.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_extract_single_qrl_with_nested_components.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5028 +assertion_line: 5092 expression: output --- ==INPUT== @@ -20,28 +20,32 @@ const Foo = component$(() => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_HTDRsvUbLiE = ()=>import("./test.tsx_Foo_component_HTDRsvUbLiE"); -/*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_HTDRsvUbLiE, "Foo_component_HTDRsvUbLiE")); +// +const _qrl_Foo_component_HTDRsvUbLiE = /*#__PURE__*/ qrl(()=>import("./test.tsx_Foo_component_HTDRsvUbLiE"), "Foo_component_HTDRsvUbLiE"); +// +/*#__PURE__*/ componentQrl(_qrl_Foo_component_HTDRsvUbLiE); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;cAEY\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;cAEY\"}") ============================= test.tsx_Foo_component_HTDRsvUbLiE.js (ENTRY POINT)== import { _jsxSorted } from "@qwik.dev/core"; import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; -const i_AuJ9mTBx5YA = ()=>import("./test.tsx_Foo_component_Inner_component_AuJ9mTBx5YA"); +// +const _qrl_Foo_component_Inner_component_AuJ9mTBx5YA = /*#__PURE__*/ qrl(()=>import("./test.tsx_Foo_component_Inner_component_AuJ9mTBx5YA"), "Foo_component_Inner_component_AuJ9mTBx5YA"); +// export const Foo_component_HTDRsvUbLiE = ()=>{ const data = useSignal([]); - const Inner = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_AuJ9mTBx5YA, "Foo_component_Inner_component_AuJ9mTBx5YA")); + const Inner = /*#__PURE__*/ componentQrl(_qrl_Foo_component_Inner_component_AuJ9mTBx5YA); return /*#__PURE__*/ _jsxSorted(Inner, null, { data: data }, null, 3, "u6_2"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;yCAEuB;IACrB,MAAM,OAAO,UAAyB,EAAE;IACxC,MAAM,sBAAQ;IAId,qBAAO,WAAC;QAAM,MAAM;;AACtB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;yCAEuB;IACrB,MAAM,OAAO,UAAyB,EAAE;IACxC,MAAM,sBAAQ;IAId,qBAAO,WAAC;QAAM,MAAM;;AACtB\"}") /* { "origin": "test.tsx", @@ -67,22 +71,24 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { _fnSignal } from "@qwik.dev/core"; import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; +// const _hf0 = (p0)=>p0.value.id; const _hf0_str = "p0.value.id"; -const i_7oFgEhSmgvY = ()=>import("./test.tsx_Foo_component_Inner_component_div_p_q_e_click_7oFgEhSmgvY"); +// +const _qrl_Foo_component_Inner_component_div_p_q_e_click_7oFgEhSmgvY = /*#__PURE__*/ qrl(()=>import("./test.tsx_Foo_component_Inner_component_div_p_q_e_click_7oFgEhSmgvY"), "Foo_component_Inner_component_div_p_q_e_click_7oFgEhSmgvY"); +// export const Foo_component_Inner_component_AuJ9mTBx5YA = (props)=>{ const data = props.data; - const Foo_component_Inner_component_div_p_q_e_click_7oFgEhSmgvY = /*#__PURE__*/ qrl(i_7oFgEhSmgvY, "Foo_component_Inner_component_div_p_q_e_click_7oFgEhSmgvY"); return /*#__PURE__*/ _jsxSorted("div", null, null, data.value.map((item)=>/*#__PURE__*/ _jsxSorted("p", { - "q-e:click": Foo_component_Inner_component_div_p_q_e_click_7oFgEhSmgvY, + "q-e:click": _qrl_Foo_component_Inner_component_div_p_q_e_click_7oFgEhSmgvY, "q:p": item }, null, _fnSignal(_hf0, [ item - ], _hf0_str), 0, "u6_0")), 1, "u6_1"); + ], _hf0_str), 4, "u6_0")), 1, "u6_1"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;mBAMwF,GAAK,KAAK,CAAC,EAAE;;;yDAF1E,CAAC;IACxB,MAAM,OAAO,MAAM,IAAI;;IACvB,qBAAO,WAAC,mBAAK,KAAK,KAAK,CAAC,GAAG,CAAC,CAAA,qBAAQ,WAAC;YAAE,WAAQ;mBAAnB;;;;AAC9B\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;mBAMwF,GAAK,KAAK,CAAC,EAAE;;;;;yDAF1E,CAAC;IACxB,MAAM,OAAO,MAAM,IAAI;IACvB,qBAAO,WAAC,mBAAK,KAAK,KAAK,CAAC,GAAG,CAAC,CAAA,qBAAQ,WAAC;YAAE,WAAQ;mBAAnB;;;;AAC9B\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_handle_dangerously_set_inner_html.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_handle_dangerously_set_inner_html.snap index de146adbfe8..2fcd6190110 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_handle_dangerously_set_inner_html.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_handle_dangerously_set_inner_html.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 3781 +assertion_line: 3818 expression: output --- ==INPUT== @@ -33,21 +33,19 @@ expression: output import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_4ryKJTOKjWE = ()=>import("./test.tsx_Cmp_component_4ryKJTOKjWE"); -/*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_4ryKJTOKjWE, "Cmp_component_4ryKJTOKjWE")); +// +const _qrl_Cmp_component_4ryKJTOKjWE = /*#__PURE__*/ qrl(()=>import("./test.tsx_Cmp_component_4ryKJTOKjWE"), "Cmp_component_4ryKJTOKjWE"); +// +/*#__PURE__*/ componentQrl(_qrl_Cmp_component_4ryKJTOKjWE); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;cAEc\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;cAEc\"}") ============================= test.tsx_Cmp_component_div_div_button_q_e_click_kOQ2BgBVVS8.js (ENTRY POINT)== -import { _captures } from "@qwik.dev/core"; -export const Cmp_component_div_div_button_q_e_click_kOQ2BgBVVS8 = ()=>{ - const htmlSignal = _captures[0]; - return htmlSignal.value = "

I'm a updated signal value!

"; -}; +export const Cmp_component_div_div_button_q_e_click_kOQ2BgBVVS8 = (_, _1, htmlSignal)=>htmlSignal.value = "

I'm a updated signal value!

"; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";kEAeiB;;WACR,WAAW,KAAK,GAAG\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"kEAeiB,qBACR,WAAW,KAAK,GAAG\"}") /* { "origin": "test.tsx", @@ -61,12 +59,14 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma "parent": "Cmp_component_4ryKJTOKjWE", "ctxKind": "eventHandler", "ctxName": "onClick$", - "captures": true, + "captures": false, "loc": [ 510, 596 ], - "captureNames": [ + "paramNames": [ + "_", + "_1", "htmlSignal" ] } @@ -76,7 +76,9 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { _jsxSorted } from "@qwik.dev/core"; import { _wrapProp } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_kOQ2BgBVVS8 = ()=>import("./test.tsx_Cmp_component_div_div_button_q_e_click_kOQ2BgBVVS8"); +// +const _qrl_Cmp_component_div_div_button_q_e_click_kOQ2BgBVVS8 = /*#__PURE__*/ qrl(()=>import("./test.tsx_Cmp_component_div_div_button_q_e_click_kOQ2BgBVVS8"), "Cmp_component_div_div_button_q_e_click_kOQ2BgBVVS8"); +// export const Cmp_component_4ryKJTOKjWE = ()=>{ const htmlSignal = useSignal("

I'm a signal value!

"); return /*#__PURE__*/ _jsxSorted("div", null, null, [ @@ -95,17 +97,17 @@ export const Cmp_component_4ryKJTOKjWE = ()=>{ dangerouslySetInnerHTML: _wrapProp(htmlSignal), class: "after" }, null, 3, null), - /*#__PURE__*/ _jsxSorted("button", null, { - "q-e:click": /*#__PURE__*/ qrl(i_kOQ2BgBVVS8, "Cmp_component_div_div_button_q_e_click_kOQ2BgBVVS8", [ - htmlSignal - ]) - }, null, 3, null) - ], 3, null) - ], 3, "u6_0"); + /*#__PURE__*/ _jsxSorted("button", { + "q:p": htmlSignal + }, { + "q-e:click": _qrl_Cmp_component_div_div_button_q_e_click_kOQ2BgBVVS8 + }, null, 7, null) + ], 1, null) + ], 1, "u6_0"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;yCAEyB;IACtB,MAAM,aAAa,UAAU;IAC7B,qBACC,WAAC;sBACA,WAAC,iCACA,WAAC;YAAK,IAAG;YAAQ,yBAAwB;;sBAE1C,WAAC,iCACA,WAAC;YAAK,IAAG;YAAS,yBAAwB;YAAsB,OAAM;;sBAEvE,WAAC;0BACA,WAAC;gBAAK,IAAG;gBAAQ,uBAAuB,YAAE;gBAAkB,OAAM;;0BAClE,WAAC;gBACA,WAAQ;;;;;;AAOb\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;yCAEyB;IACtB,MAAM,aAAa,UAAU;IAC7B,qBACC,WAAC;sBACA,WAAC,iCACA,WAAC;YAAK,IAAG;YAAQ,yBAAwB;;sBAE1C,WAAC,iCACA,WAAC;YAAK,IAAG;YAAS,yBAAwB;YAAsB,OAAM;;sBAEvE,WAAC;0BACA,WAAC;gBAAK,IAAG;gBAAQ,uBAAuB,YAAE;gBAAkB,OAAM;;0BAClE,WAAC;;;gBACA,WAAQ;;;;AAOb\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_ignore_null_inlined_qrl.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_ignore_null_inlined_qrl.snap index 79d1dcdbb43..f0237d8e7d6 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_ignore_null_inlined_qrl.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_ignore_null_inlined_qrl.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4655 +assertion_line: 4692 expression: output --- ==INPUT== @@ -13,10 +13,11 @@ expression: output ============================= test.js == import { inlinedQrl } from '@qwik.dev/core'; +// inlinedQrl(null, 'some_hash'); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"AACE,SAAS,UAAU,QAAQ,iBAAiB;AAEhC,WAAW,MAAM\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"AACE,SAAS,UAAU,QAAQ,iBAAiB;;AAEhC,WAAW,MAAM\"}") == DIAGNOSTICS == [] diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_make_component_jsx_split_with_bind.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_make_component_jsx_split_with_bind.snap index 68932fe25bb..405fcc7581f 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_make_component_jsx_split_with_bind.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_make_component_jsx_split_with_bind.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5388 +assertion_line: 5425 expression: output --- ==INPUT== @@ -22,16 +22,19 @@ export default component$(() => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGA,6BAAe,6EAQZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGA,6BAAe,8CAQZ\"}") ============================= test.tsx_test_component_LUXeXe0DQrg.js (ENTRY POINT)== import { _jsxSorted } from "@qwik.dev/core"; import { _jsxSplit } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; +// export const test_component_LUXeXe0DQrg = ()=>{ const Cmp = Math.random() >= 0.5 ? 'button' : 'input'; const sig = useSignal(0); @@ -41,7 +44,7 @@ export const test_component_LUXeXe0DQrg = ()=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;0CAG0B;IACxB,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,WAAW;IAC9C,MAAM,MAAM,UAAU;IACtB,qBACE,WAAC,iCACC,UAAC;QAAD,cAAiB;;AAGvB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;0CAG0B;IACxB,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,WAAW;IAC9C,MAAM,MAAM,UAAU;IACtB,qBACE,WAAC,iCACC,UAAC;QAAD,cAAiB;;AAGvB\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_mark_props_as_var_props_for_inner_cmp.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_mark_props_as_var_props_for_inner_cmp.snap index 133573fad52..652eef5eeef 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_mark_props_as_var_props_for_inner_cmp.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_mark_props_as_var_props_for_inner_cmp.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4199 +assertion_line: 4236 expression: output --- ==INPUT== @@ -46,13 +46,15 @@ export const ModelImg = component$((props) => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_CS20HgBlRYI = ()=>import("./test.tsx_Image_component_CS20HgBlRYI"); -const i_iJe6ICWVnyA = ()=>import("./test.tsx_ModelImg_component_iJe6ICWVnyA"); -export const Image = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_CS20HgBlRYI, "Image_component_CS20HgBlRYI")); -export const ModelImg = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_iJe6ICWVnyA, "ModelImg_component_iJe6ICWVnyA")); +// +const _qrl_Image_component_CS20HgBlRYI = /*#__PURE__*/ qrl(()=>import("./test.tsx_Image_component_CS20HgBlRYI"), "Image_component_CS20HgBlRYI"); +const _qrl_ModelImg_component_iJe6ICWVnyA = /*#__PURE__*/ qrl(()=>import("./test.tsx_ModelImg_component_iJe6ICWVnyA"), "ModelImg_component_iJe6ICWVnyA"); +// +export const Image = /*#__PURE__*/ componentQrl(_qrl_Image_component_CS20HgBlRYI); +export const ModelImg = /*#__PURE__*/ componentQrl(_qrl_ModelImg_component_iJe6ICWVnyA); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;AAKA,OAAO,MAAM,sBAAQ,8EAMlB;AAEH,OAAO,MAAM,yBAAW,iFAsBrB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;AAKA,OAAO,MAAM,sBAAQ,+CAMlB;AAEH,OAAO,MAAM,yBAAW,kDAsBrB\"}") ============================= test.tsx_ModelImg_component_iJe6ICWVnyA.js (ENTRY POINT)== import { Image } from "./test"; @@ -61,7 +63,9 @@ import { Fragment as _Fragment } from "@qwik.dev/core/jsx-runtime"; import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useResourceQrl } from "@qwik.dev/core"; +// const i_Ogi9hEJvtmI = ()=>import("./test.tsx_ModelImg_component_imgLoc_useResource_Ogi9hEJvtmI"); +// export const ModelImg_component_iJe6ICWVnyA = (props)=>{ const imgLoc = useResourceQrl(/*#__PURE__*/ qrl(i_Ogi9hEJvtmI, "ModelImg_component_imgLoc_useResource_Ogi9hEJvtmI", [ props @@ -76,7 +80,7 @@ export const ModelImg_component_iJe6ICWVnyA = (props)=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;8CAa+C,CAAC;IAC9C,MAAM,SAAS;;;IAIf,qBACE,gDACE,WAAC;QACC,OAAO;QACP,YAAY,kBAAM,WAAC,iBAAE;QACrB,YAAY,CAAC,MACX,qBACE,gDACE,WAAC;gBACC,KAAK;;;AAQrB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;;;8CAa+C,CAAC;IAC9C,MAAM,SAAS;;;IAIf,qBACE,gDACE,WAAC;QACC,OAAO;QACP,YAAY,kBAAM,WAAC,iBAAE;QACrB,YAAY,CAAC,MACX,qBACE,gDACE,WAAC;gBACC,KAAK;;;AAQrB\"}") /* { "origin": "test.tsx", @@ -104,6 +108,7 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { _captures } from "@qwik.dev/core"; import { serverImg } from "~/routes/(authenticated)/layout"; +// export const ModelImg_component_imgLoc_useResource_Ogi9hEJvtmI = async (_rawProps)=>{ const props = _captures[0]; _rawProps.track(()=>props.store.model); @@ -111,7 +116,7 @@ export const ModelImg_component_imgLoc_useResource_Ogi9hEJvtmI = async (_rawProp }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;iEAc8B;;IAC1B,UADmC,MAC7B,IAAM,MAAM,KAAK,CAAC,KAAK;IAC7B,OAAO,MAAM,UAAU\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;iEAc8B;;IAC1B,UADmC,MAC7B,IAAM,MAAM,KAAK,CAAC,KAAK;IAC7B,OAAO,MAAM,UAAU\"}") /* { "origin": "test.tsx", @@ -142,6 +147,7 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { Fragment as _Fragment } from "@qwik.dev/core/jsx-runtime"; import { _jsxSorted } from "@qwik.dev/core"; +// export const Image_component_CS20HgBlRYI = (props)=>{ return /*#__PURE__*/ _jsxSorted(_Fragment, null, null, /*#__PURE__*/ _jsxSorted("img", { src: `${props.src}` @@ -149,7 +155,7 @@ export const Image_component_CS20HgBlRYI = (props)=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;2CAKgC,CAAC;IAC/B,qBACE,gDACE,WAAC;QAAI,KAAK,GAAG,MAAM,GAAG,EAAE;;AAG9B\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;2CAKgC,CAAC;IAC/B,qBACE,gDACE,WAAC;QAAI,KAAK,GAAG,MAAM,GAAG,EAAE;;AAG9B\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_attributes_with_spread_props.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_attributes_with_spread_props.snap index 3a89397c211..fef22676d94 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_attributes_with_spread_props.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_attributes_with_spread_props.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4600 +assertion_line: 4637 expression: output --- ==INPUT== @@ -16,17 +16,20 @@ expression: output import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGE,6BAAe,6EAEZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGE,6BAAe,8CAEZ\"}") ============================= test.tsx_test_component_LUXeXe0DQrg.js (ENTRY POINT)== import { _fnSignal } from "@qwik.dev/core"; import { _getConstProps } from "@qwik.dev/core"; import { _getVarProps } from "@qwik.dev/core"; import { _jsxSplit } from "@qwik.dev/core"; +// const _hf0 = (p0)=>[ p0.class, 'component' @@ -43,7 +46,7 @@ export const test_component_LUXeXe0DQrg = (props)=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;mBAIiC;QAAC,GAAM,KAAK;QAAE;KAAY;;0CAD/B,CAAC;IAC1B,qBAAO,UAAC;wBAAQ;0BAAA;QAAO,KAAK;;;;AAC7B\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;mBAIiC;QAAC,GAAM,KAAK;QAAE;KAAY;;0CAD/B,CAAC;IAC1B,qBAAO,UAAC;wBAAQ;0BAAA;QAAO,KAAK;;;;AAC7B\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_attributes_with_spread_props_before_and_after.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_attributes_with_spread_props_before_and_after.snap index aac4bb78784..06781d4e420 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_attributes_with_spread_props_before_and_after.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_attributes_with_spread_props_before_and_after.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4617 +assertion_line: 4654 expression: output --- ==INPUT== @@ -16,17 +16,20 @@ expression: output import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGE,6BAAe,6EAEZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGE,6BAAe,8CAEZ\"}") ============================= test.tsx_test_component_LUXeXe0DQrg.js (ENTRY POINT)== import { _fnSignal } from "@qwik.dev/core"; import { _getConstProps } from "@qwik.dev/core"; import { _getVarProps } from "@qwik.dev/core"; import { _jsxSplit } from "@qwik.dev/core"; +// const _hf0 = (p0)=>[ p0.class, 'component' @@ -44,7 +47,7 @@ export const test_component_LUXeXe0DQrg = (props)=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;mBAIiC;QAAC,GAAM,KAAK;QAAE;KAAY;;0CAD/B,CAAC;IAC1B,qBAAO,UAAC;wBAAQ;0BAAA;QAAO,KAAK;;;wBAAkC;sBAAA;AAC/D\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;mBAIiC;QAAC,GAAM,KAAK;QAAE;KAAY;;0CAD/B,CAAC;IAC1B,qBAAO,UAAC;wBAAQ;0BAAA;QAAO,KAAK;;;wBAAkC;sBAAA;AAC/D\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_bind_checked_and_on_input.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_bind_checked_and_on_input.snap index bc25c6ffafb..47ab9f5e4a5 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_bind_checked_and_on_input.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_bind_checked_and_on_input.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4823 +assertion_line: 4860 expression: output --- ==INPUT== @@ -25,11 +25,13 @@ export const FieldInput = component$(() => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_V4XAtJSTRKg = ()=>import("./test.tsx_FieldInput_component_V4XAtJSTRKg"); -export const FieldInput = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_V4XAtJSTRKg, "FieldInput_component_V4XAtJSTRKg")); +// +const _qrl_FieldInput_component_V4XAtJSTRKg = /*#__PURE__*/ qrl(()=>import("./test.tsx_FieldInput_component_V4XAtJSTRKg"), "FieldInput_component_V4XAtJSTRKg"); +// +export const FieldInput = /*#__PURE__*/ componentQrl(_qrl_FieldInput_component_V4XAtJSTRKg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGA,OAAO,MAAM,2BAAa,mFAWvB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGA,OAAO,MAAM,2BAAa,oDAWvB\"}") ============================= test.tsx_FieldInput_component_V4XAtJSTRKg.js (ENTRY POINT)== import { _chk } from "@qwik.dev/core"; @@ -37,13 +39,15 @@ import { _jsxSorted } from "@qwik.dev/core"; import { inlinedQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; -const i_wqR1xEjZjf4 = ()=>import("./test.tsx_FieldInput_component_input_q_e_input_wqR1xEjZjf4"); +// +const _qrl_FieldInput_component_input_q_e_input_wqR1xEjZjf4 = /*#__PURE__*/ qrl(()=>import("./test.tsx_FieldInput_component_input_q_e_input_wqR1xEjZjf4"), "FieldInput_component_input_q_e_input_wqR1xEjZjf4"); +// export const FieldInput_component_V4XAtJSTRKg = ()=>{ const localValue = useSignal(false); return /*#__PURE__*/ _jsxSorted("input", null, { "checked": localValue, "q-e:input": [ - /*#__PURE__*/ qrl(i_wqR1xEjZjf4, "FieldInput_component_input_q_e_input_wqR1xEjZjf4"), + _qrl_FieldInput_component_input_q_e_input_wqR1xEjZjf4, inlinedQrl(_chk, "_chk", [ localValue ]) @@ -52,7 +56,7 @@ export const FieldInput_component_V4XAtJSTRKg = ()=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;gDAGqC;IACnC,MAAM,aAAa,UAAU;IAE7B,qBACE,WAAC;mBAIe;;;;gBAAA;;;;AAGpB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;;gDAGqC;IACnC,MAAM,aAAa,UAAU;IAE7B,qBACE,WAAC;mBAIe;;;;gBAAA;;;;AAGpB\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_bind_value_and_on_input.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_bind_value_and_on_input.snap index a01007ccf65..323c8dbccc6 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_bind_value_and_on_input.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_bind_value_and_on_input.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4797 +assertion_line: 4834 expression: output --- ==INPUT== @@ -25,11 +25,13 @@ export const FieldInput = component$(() => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_V4XAtJSTRKg = ()=>import("./test.tsx_FieldInput_component_V4XAtJSTRKg"); -export const FieldInput = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_V4XAtJSTRKg, "FieldInput_component_V4XAtJSTRKg")); +// +const _qrl_FieldInput_component_V4XAtJSTRKg = /*#__PURE__*/ qrl(()=>import("./test.tsx_FieldInput_component_V4XAtJSTRKg"), "FieldInput_component_V4XAtJSTRKg"); +// +export const FieldInput = /*#__PURE__*/ componentQrl(_qrl_FieldInput_component_V4XAtJSTRKg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGA,OAAO,MAAM,2BAAa,mFAWvB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGA,OAAO,MAAM,2BAAa,oDAWvB\"}") ============================= test.tsx_FieldInput_component_V4XAtJSTRKg.js (ENTRY POINT)== import { _jsxSorted } from "@qwik.dev/core"; @@ -37,13 +39,15 @@ import { _val } from "@qwik.dev/core"; import { inlinedQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; -const i_wqR1xEjZjf4 = ()=>import("./test.tsx_FieldInput_component_input_q_e_input_wqR1xEjZjf4"); +// +const _qrl_FieldInput_component_input_q_e_input_wqR1xEjZjf4 = /*#__PURE__*/ qrl(()=>import("./test.tsx_FieldInput_component_input_q_e_input_wqR1xEjZjf4"), "FieldInput_component_input_q_e_input_wqR1xEjZjf4"); +// export const FieldInput_component_V4XAtJSTRKg = ()=>{ const localValue = useSignal(""); return /*#__PURE__*/ _jsxSorted("input", null, { "value": localValue, "q-e:input": [ - /*#__PURE__*/ qrl(i_wqR1xEjZjf4, "FieldInput_component_input_q_e_input_wqR1xEjZjf4"), + _qrl_FieldInput_component_input_q_e_input_wqR1xEjZjf4, inlinedQrl(_val, "_val", [ localValue ]) @@ -52,7 +56,7 @@ export const FieldInput_component_V4XAtJSTRKg = ()=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;gDAGqC;IACnC,MAAM,aAAa,UAAU;IAE7B,qBACE,WAAC;iBAIa;;;;gBAAA;;;;AAGlB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;;gDAGqC;IACnC,MAAM,aAAa,UAAU;IAE7B,qBACE,WAAC;iBAIa;;;;gBAAA;;;;AAGlB\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_on_input_and_bind_checked.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_on_input_and_bind_checked.snap index b197924c85c..7e666a41469 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_on_input_and_bind_checked.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_on_input_and_bind_checked.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5144 +assertion_line: 5232 expression: output --- ==INPUT== @@ -25,11 +25,13 @@ export const FieldInput = component$(() => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_V4XAtJSTRKg = ()=>import("./test.tsx_FieldInput_component_V4XAtJSTRKg"); -export const FieldInput = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_V4XAtJSTRKg, "FieldInput_component_V4XAtJSTRKg")); +// +const _qrl_FieldInput_component_V4XAtJSTRKg = /*#__PURE__*/ qrl(()=>import("./test.tsx_FieldInput_component_V4XAtJSTRKg"), "FieldInput_component_V4XAtJSTRKg"); +// +export const FieldInput = /*#__PURE__*/ componentQrl(_qrl_FieldInput_component_V4XAtJSTRKg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGA,OAAO,MAAM,2BAAa,mFAWvB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGA,OAAO,MAAM,2BAAa,oDAWvB\"}") ============================= test.tsx_FieldInput_component_V4XAtJSTRKg.js (ENTRY POINT)== import { _chk } from "@qwik.dev/core"; @@ -37,7 +39,9 @@ import { _jsxSorted } from "@qwik.dev/core"; import { inlinedQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; -const i_wqR1xEjZjf4 = ()=>import("./test.tsx_FieldInput_component_input_q_e_input_wqR1xEjZjf4"); +// +const _qrl_FieldInput_component_input_q_e_input_wqR1xEjZjf4 = /*#__PURE__*/ qrl(()=>import("./test.tsx_FieldInput_component_input_q_e_input_wqR1xEjZjf4"), "FieldInput_component_input_q_e_input_wqR1xEjZjf4"); +// export const FieldInput_component_V4XAtJSTRKg = ()=>{ const localValue = useSignal(false); return /*#__PURE__*/ _jsxSorted("input", null, { @@ -46,13 +50,13 @@ export const FieldInput_component_V4XAtJSTRKg = ()=>{ inlinedQrl(_chk, "_chk", [ localValue ]), - /*#__PURE__*/ qrl(i_wqR1xEjZjf4, "FieldInput_component_input_q_e_input_wqR1xEjZjf4") + _qrl_FieldInput_component_input_q_e_input_wqR1xEjZjf4 ] }, null, 3, "u6_0"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;gDAGqC;IACnC,MAAM,aAAa,UAAU;IAE7B,qBACE,WAAC;mBACe;;;gBAAA;;;;;AAMpB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;;gDAGqC;IACnC,MAAM,aAAa,UAAU;IAE7B,qBACE,WAAC;mBACe;;;gBAAA;;;;;AAMpB\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_on_input_and_bind_value.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_on_input_and_bind_value.snap index 0f24413b232..618fc4bba97 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_on_input_and_bind_value.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_merge_on_input_and_bind_value.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5118 +assertion_line: 5206 expression: output --- ==INPUT== @@ -25,11 +25,13 @@ export const FieldInput = component$(() => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_V4XAtJSTRKg = ()=>import("./test.tsx_FieldInput_component_V4XAtJSTRKg"); -export const FieldInput = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_V4XAtJSTRKg, "FieldInput_component_V4XAtJSTRKg")); +// +const _qrl_FieldInput_component_V4XAtJSTRKg = /*#__PURE__*/ qrl(()=>import("./test.tsx_FieldInput_component_V4XAtJSTRKg"), "FieldInput_component_V4XAtJSTRKg"); +// +export const FieldInput = /*#__PURE__*/ componentQrl(_qrl_FieldInput_component_V4XAtJSTRKg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGA,OAAO,MAAM,2BAAa,mFAWvB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGA,OAAO,MAAM,2BAAa,oDAWvB\"}") ============================= test.tsx_FieldInput_component_V4XAtJSTRKg.js (ENTRY POINT)== import { _jsxSorted } from "@qwik.dev/core"; @@ -37,7 +39,9 @@ import { _val } from "@qwik.dev/core"; import { inlinedQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; -const i_wqR1xEjZjf4 = ()=>import("./test.tsx_FieldInput_component_input_q_e_input_wqR1xEjZjf4"); +// +const _qrl_FieldInput_component_input_q_e_input_wqR1xEjZjf4 = /*#__PURE__*/ qrl(()=>import("./test.tsx_FieldInput_component_input_q_e_input_wqR1xEjZjf4"), "FieldInput_component_input_q_e_input_wqR1xEjZjf4"); +// export const FieldInput_component_V4XAtJSTRKg = ()=>{ const localValue = useSignal(""); return /*#__PURE__*/ _jsxSorted("input", null, { @@ -46,13 +50,13 @@ export const FieldInput_component_V4XAtJSTRKg = ()=>{ inlinedQrl(_val, "_val", [ localValue ]), - /*#__PURE__*/ qrl(i_wqR1xEjZjf4, "FieldInput_component_input_q_e_input_wqR1xEjZjf4") + _qrl_FieldInput_component_input_q_e_input_wqR1xEjZjf4 ] }, null, 3, "u6_0"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;gDAGqC;IACnC,MAAM,aAAa,UAAU;IAE7B,qBACE,WAAC;iBACa;;;gBAAA;;;;;AAMlB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;;gDAGqC;IACnC,MAAM,aAAa,UAAU;IAE7B,qBACE,WAAC;iBACa;;;gBAAA;;;;;AAMlB\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_move_bind_value_to_var_props.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_move_bind_value_to_var_props.snap index 417c1c2e86d..07a0a562692 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_move_bind_value_to_var_props.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_move_bind_value_to_var_props.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5268 +assertion_line: 5356 expression: output --- ==INPUT== @@ -30,11 +30,13 @@ export const FieldInput = component$( import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_V4XAtJSTRKg = ()=>import("./test.tsx_FieldInput_component_V4XAtJSTRKg"); -export const FieldInput = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_V4XAtJSTRKg, "FieldInput_component_V4XAtJSTRKg")); +// +const _qrl_FieldInput_component_V4XAtJSTRKg = /*#__PURE__*/ qrl(()=>import("./test.tsx_FieldInput_component_V4XAtJSTRKg"), "FieldInput_component_V4XAtJSTRKg"); +// +export const FieldInput = /*#__PURE__*/ componentQrl(_qrl_FieldInput_component_V4XAtJSTRKg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAIA,OAAO,MAAM,2BAAa,mFAexB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAIA,OAAO,MAAM,2BAAa,oDAexB\"}") ============================= test.tsx_FieldInput_component_V4XAtJSTRKg.js (ENTRY POINT)== import { _getConstProps } from "@qwik.dev/core"; @@ -42,7 +44,9 @@ import { _getVarProps } from "@qwik.dev/core"; import { _jsxSplit } from "@qwik.dev/core"; import { destructureBindings } from "./destructure-bindings"; import { qrl } from "@qwik.dev/core"; -const i_fZgZHYZXt60 = ()=>import("./test.tsx_FieldInput_component_input_q_e_click_fZgZHYZXt60"); +// +const _qrl_FieldInput_component_input_q_e_click_fZgZHYZXt60 = /*#__PURE__*/ qrl(()=>import("./test.tsx_FieldInput_component_input_q_e_click_fZgZHYZXt60"), "FieldInput_component_input_q_e_click_fZgZHYZXt60"); +// export const FieldInput_component_V4XAtJSTRKg = (props)=>{ const initialValues = { value: undefined @@ -53,12 +57,12 @@ export const FieldInput_component_V4XAtJSTRKg = (props)=>{ ..._getConstProps(rest), "bind:value": finalValue }, { - "q-e:click": /*#__PURE__*/ qrl(i_fZgZHYZXt60, "FieldInput_component_input_q_e_click_fZgZHYZXt60") + "q-e:click": _qrl_FieldInput_component_input_q_e_click_fZgZHYZXt60 }, null, 0, "u6_0"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;gDAKE,CAAC;IACC,MAAM,gBAAgB;QAAE,OAAO;IAAgC;IAC/D,MAAM,OAAO,oBAAoB,OAAO;IAExC,qBACE,UAAC;wBACK;0BAAA;QADN,cAEc;;QAClB,WAAQ;;AAKR\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;;gDAKE,CAAC;IACC,MAAM,gBAAgB;QAAE,OAAO;IAAgC;IAC/D,MAAM,OAAO,oBAAoB,OAAO;IAExC,qBACE,UAAC;wBACK;0BAAA;QADN,cAEc;;QAClB,WAAQ;;AAKR\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_move_props_related_to_iteration_variables_to_var_props.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_move_props_related_to_iteration_variables_to_var_props.snap index f81cac15840..e4d5256f15e 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_move_props_related_to_iteration_variables_to_var_props.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_move_props_related_to_iteration_variables_to_var_props.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5204 +assertion_line: 5387 expression: output --- ==INPUT== @@ -37,17 +37,20 @@ export const Child = component$(() => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_9GyF01GDKqw = ()=>import("./test.tsx_Child_component_9GyF01GDKqw"); -export const Child = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_9GyF01GDKqw, "Child_component_9GyF01GDKqw")); +// +const _qrl_Child_component_9GyF01GDKqw = /*#__PURE__*/ qrl(()=>import("./test.tsx_Child_component_9GyF01GDKqw"), "Child_component_9GyF01GDKqw"); +// +export const Child = /*#__PURE__*/ componentQrl(_qrl_Child_component_9GyF01GDKqw); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAIA,OAAO,MAAM,sBAAQ,8EAsBnB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAIA,OAAO,MAAM,sBAAQ,+CAsBnB\"}") ============================= test.tsx_Child_component_9GyF01GDKqw.js (ENTRY POINT)== import { TestComponent } from "./testComponent"; import { _fnSignal } from "@qwik.dev/core"; import { _jsxSorted } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; +// const _hf0 = (p0)=>p0.attributeInArray.counter; const _hf0_str = "p0.attributeInArray.counter"; export const Child_component_9GyF01GDKqw = ()=>{ @@ -79,7 +82,7 @@ export const Child_component_9GyF01GDKqw = ()=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;mBAkBuB,GAAK,gBAAgB,CAAC,OAAO;;2CAdpB;IAC9B,MAAM,wBAAwB,UAAU;QACxC,OAAO;YACH,MAAM;gBACJ;oBAAE,kBAAkB;wBAAE,SAAS,WAAW,YAAY;oBAAG;gBAAE;gBAC3D;oBAAE,kBAAkB;wBAAE,SAAS,WAAW,YAAY;oBAAC;gBAAE;aAC1D;QACH;IACF;IACA,qBACE,WAAC,mBACI,sBAAsB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM;QAC3C,qBACE,WAAC;YACC,OAAO;;;;YACP,WAAU;oBACL;IAGX;AAGR\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;mBAkBuB,GAAK,gBAAgB,CAAC,OAAO;;2CAdpB;IAC9B,MAAM,wBAAwB,UAAU;QACxC,OAAO;YACH,MAAM;gBACJ;oBAAE,kBAAkB;wBAAE,SAAS,WAAW,YAAY;oBAAG;gBAAE;gBAC3D;oBAAE,kBAAkB;wBAAE,SAAS,WAAW,YAAY;oBAAC;gBAAE;aAC1D;QACH;IACF;IACA,qBACE,WAAC,mBACI,sBAAsB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM;QAC3C,qBACE,WAAC;YACC,OAAO;;;;YACP,WAAU;oBACL;IAGX;AAGR\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_generate_conflicting_props_identifiers.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_generate_conflicting_props_identifiers.snap index d583a5dbf65..fb762980747 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_generate_conflicting_props_identifiers.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_generate_conflicting_props_identifiers.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4553 +assertion_line: 4590 expression: output --- ==INPUT== @@ -26,6 +26,7 @@ import { useComputedQrl } from "@qwik.dev/core"; import { _captures } from "@qwik.dev/core"; import { inlinedQrl } from "@qwik.dev/core"; import { useTaskQrl } from "@qwik.dev/core"; +// const test_component_useComputed_PYU291PvidQ = ()=>{ const _rawProps = _captures[0]; return _rawProps.color; @@ -49,7 +50,7 @@ const test_component_LUXeXe0DQrg = (_rawProps)=>{ export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl(test_component_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;+CAIe;;qBADgB;;2CAGpB;;IACR,MAAM,OAAO;;mCAJY;;;;IAC1B;;;IAEA;;;IAIA,OAAO;AACP;AARA,6BAAe,iGAQb\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;+CAIe;;qBADgB;;2CAGpB;;IACR,MAAM,OAAO;;mCAJY;;;;IAC1B;;;IAEA;;;IAIA,OAAO;AACP;AARA,6BAAe,iGAQb\"}") == DIAGNOSTICS == [] diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_move_over_side_effects.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_move_over_side_effects.snap index bfc3cdf9fe9..007a829b8b8 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_move_over_side_effects.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_move_over_side_effects.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4634 +assertion_line: 4671 expression: output --- ==INPUT== diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_transform_bind_checked_in_var_props_for_jsx_split.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_transform_bind_checked_in_var_props_for_jsx_split.snap index da6a45dd7f0..2dbd0dbd045 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_transform_bind_checked_in_var_props_for_jsx_split.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_transform_bind_checked_in_var_props_for_jsx_split.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5236 +assertion_line: 5324 expression: output --- ==INPUT== @@ -31,11 +31,13 @@ export const FieldInput = component$((props) => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_V4XAtJSTRKg = ()=>import("./test.tsx_FieldInput_component_V4XAtJSTRKg"); -export const FieldInput = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_V4XAtJSTRKg, "FieldInput_component_V4XAtJSTRKg")); +// +const _qrl_FieldInput_component_V4XAtJSTRKg = /*#__PURE__*/ qrl(()=>import("./test.tsx_FieldInput_component_V4XAtJSTRKg"), "FieldInput_component_V4XAtJSTRKg"); +// +export const FieldInput = /*#__PURE__*/ componentQrl(_qrl_FieldInput_component_V4XAtJSTRKg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGA,OAAO,MAAM,2BAAa,mFAiBvB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGA,OAAO,MAAM,2BAAa,oDAiBvB\"}") ============================= test.tsx_FieldInput_component_V4XAtJSTRKg.js (ENTRY POINT)== import { Fragment as _Fragment } from "@qwik.dev/core/jsx-runtime"; @@ -44,6 +46,7 @@ import { _getVarProps } from "@qwik.dev/core"; import { _jsxSorted } from "@qwik.dev/core"; import { _jsxSplit } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; +// export const FieldInput_component_V4XAtJSTRKg = (props)=>{ const input = useSignal(true); return /*#__PURE__*/ _jsxSorted(_Fragment, null, null, [ @@ -59,7 +62,7 @@ export const FieldInput_component_V4XAtJSTRKg = (props)=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;gDAGqC,CAAC;IACrC,MAAM,QAAQ,UAAU;IAEvB,qBACA;sBAEC,UAAC;YAAD,gBACe;4BACV;0BAAA;sBAGL,UAAC;4BACI;YADL,gBAEe;0BADV;;AAKR\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;gDAGqC,CAAC;IACrC,MAAM,QAAQ,UAAU;IAEvB,qBACA;sBAEC,UAAC;YAAD,gBACe;4BACV;0BAAA;sBAGL,UAAC;4BACI;YADL,gBAEe;0BADV;;AAKR\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_transform_bind_value_in_var_props_for_jsx_split.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_transform_bind_value_in_var_props_for_jsx_split.snap index 704a92c4551..48a7988a1a6 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_transform_bind_value_in_var_props_for_jsx_split.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_transform_bind_value_in_var_props_for_jsx_split.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5204 +assertion_line: 5292 expression: output --- ==INPUT== @@ -31,11 +31,13 @@ export const FieldInput = component$((props) => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_V4XAtJSTRKg = ()=>import("./test.tsx_FieldInput_component_V4XAtJSTRKg"); -export const FieldInput = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_V4XAtJSTRKg, "FieldInput_component_V4XAtJSTRKg")); +// +const _qrl_FieldInput_component_V4XAtJSTRKg = /*#__PURE__*/ qrl(()=>import("./test.tsx_FieldInput_component_V4XAtJSTRKg"), "FieldInput_component_V4XAtJSTRKg"); +// +export const FieldInput = /*#__PURE__*/ componentQrl(_qrl_FieldInput_component_V4XAtJSTRKg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGA,OAAO,MAAM,2BAAa,mFAiBvB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGA,OAAO,MAAM,2BAAa,oDAiBvB\"}") ============================= test.tsx_FieldInput_component_V4XAtJSTRKg.js (ENTRY POINT)== import { Fragment as _Fragment } from "@qwik.dev/core/jsx-runtime"; @@ -44,6 +46,7 @@ import { _getVarProps } from "@qwik.dev/core"; import { _jsxSorted } from "@qwik.dev/core"; import { _jsxSplit } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; +// export const FieldInput_component_V4XAtJSTRKg = (props)=>{ const input = useSignal(""); return /*#__PURE__*/ _jsxSorted(_Fragment, null, null, [ @@ -59,7 +62,7 @@ export const FieldInput_component_V4XAtJSTRKg = (props)=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;gDAGqC,CAAC;IACrC,MAAM,QAAQ,UAAU;IAEvB,qBACA;sBAEC,UAAC;YAAD,cACa;4BACR;0BAAA;sBAGL,UAAC;4BACI;YADL,cAEa;0BADR;;AAKR\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;gDAGqC,CAAC;IACrC,MAAM,QAAQ,UAAU;IAEvB,qBACA;sBAEC,UAAC;YAAD,cACa;4BACR;0BAAA;sBAGL,UAAC;4BACI;YADL,cAEa;0BADR;;AAKR\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_transform_events_on_non_elements.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_transform_events_on_non_elements.snap index ecfb8bb1bb6..e7a2de992fe 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_transform_events_on_non_elements.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_transform_events_on_non_elements.snap @@ -1,6 +1,5 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4770 expression: output --- ==INPUT== @@ -22,83 +21,35 @@ export const Greeter = component$(() => { }); -============================= test.tsx_Greeter_component_div_AnotherComponent_onClick_9BwXJW3s0yA.tsx (ENTRY POINT)== - -export const Greeter_component_div_AnotherComponent_onClick_9BwXJW3s0yA = ()=>{}; - - -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"0EAUgC,KAAO\"}") -/* -{ - "origin": "test.tsx", - "name": "Greeter_component_div_AnotherComponent_onClick_9BwXJW3s0yA", - "entry": null, - "displayName": "test.tsx_Greeter_component_div_AnotherComponent_onClick", - "hash": "9BwXJW3s0yA", - "canonicalFilename": "test.tsx_Greeter_component_div_AnotherComponent_onClick_9BwXJW3s0yA", - "path": "", - "extension": "tsx", - "parent": "Greeter_component_n7HuG2hhU0Q", - "ctxKind": "eventHandler", - "ctxName": "onClick$", - "captures": false, - "loc": [ - 319, - 327 - ] -} -*/ ============================= test.tsx == import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_n7HuG2hhU0Q = ()=>import("./test.tsx_Greeter_component_n7HuG2hhU0Q"); -export const Greeter = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_n7HuG2hhU0Q, "Greeter_component_n7HuG2hhU0Q")); - +// +const _qrl_Greeter_component_n7HuG2hhU0Q = /*#__PURE__*/ qrl(()=>import("./test.tsx_Greeter_component_n7HuG2hhU0Q"), "Greeter_component_n7HuG2hhU0Q"); +// +export const Greeter = /*#__PURE__*/ componentQrl(_qrl_Greeter_component_n7HuG2hhU0Q); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAKA,OAAO,MAAM,wBAAU,gFASpB\"}") -============================= test.tsx_Greeter_component_div_CustomComponent_onClick_6xTF8kMcS9w.tsx (ENTRY POINT)== -export const Greeter_component_div_CustomComponent_onClick_6xTF8kMcS9w = ()=>{}; - - -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"yEAQ8B,KAAO\"}") -/* -{ - "origin": "test.tsx", - "name": "Greeter_component_div_CustomComponent_onClick_6xTF8kMcS9w", - "entry": null, - "displayName": "test.tsx_Greeter_component_div_CustomComponent_onClick", - "hash": "6xTF8kMcS9w", - "canonicalFilename": "test.tsx_Greeter_component_div_CustomComponent_onClick_6xTF8kMcS9w", - "path": "", - "extension": "tsx", - "parent": "Greeter_component_n7HuG2hhU0Q", - "ctxKind": "eventHandler", - "ctxName": "onClick$", - "captures": false, - "loc": [ - 251, - 259 - ] -} -*/ +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAKA,OAAO,MAAM,wBAAU,iDASpB\"}") ============================= test.tsx_Greeter_component_n7HuG2hhU0Q.tsx (ENTRY POINT)== +import { _noopQrl } from "@qwik.dev/core"; import { AnotherComponent } from "./another-component"; import { CustomComponent } from "./custom-component"; -import { qrl } from "@qwik.dev/core"; -const i_6xTF8kMcS9w = ()=>import("./test.tsx_Greeter_component_div_CustomComponent_onClick_6xTF8kMcS9w"); -const i_9BwXJW3s0yA = ()=>import("./test.tsx_Greeter_component_div_AnotherComponent_onClick_9BwXJW3s0yA"); +// +const _qrl_Greeter_component_div_AnotherComponent_onClick_9BwXJW3s0yA = /*#__PURE__*/ _noopQrl("Greeter_component_div_AnotherComponent_onClick_9BwXJW3s0yA", true); +const _qrl_Greeter_component_div_CustomComponent_onClick_6xTF8kMcS9w = /*#__PURE__*/ _noopQrl("Greeter_component_div_CustomComponent_onClick_6xTF8kMcS9w", true); +// export const Greeter_component_n7HuG2hhU0Q = ()=>{ return
- - {array.map((item)=>)} + + {array.map((item)=>)}
; }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;6CAKkC;IACjC,QACE,IAAI;GACJ,CAAC,gBAAgB,0GAAqB;GACtC,CAAC,MAAM,GAAG,CAAC,CAAA,QACT,iBAAiB,6GAChB;EACJ,EAAE;AAEJ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;6CAKkC;IACjC,QACE,IAAI;GACJ,CAAC,gBAAgB,2EAAqB;GACtC,CAAC,MAAM,GAAG,CAAC,CAAA,QACT,iBAAiB,8EAChB;EACJ,EAAE;AAEJ\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_wrap_fn.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_wrap_fn.snap index 0fc195a2e9d..c540f66182f 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_wrap_fn.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_wrap_fn.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4246 +assertion_line: 4283 expression: output --- ==INPUT== @@ -29,11 +29,13 @@ export const Cmp = component$(() => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_4ryKJTOKjWE = ()=>import("./test.tsx_Cmp_component_4ryKJTOKjWE"); -export const Cmp = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_4ryKJTOKjWE, "Cmp_component_4ryKJTOKjWE")); +// +const _qrl_Cmp_component_4ryKJTOKjWE = /*#__PURE__*/ qrl(()=>import("./test.tsx_Cmp_component_4ryKJTOKjWE"), "Cmp_component_4ryKJTOKjWE"); +// +export const Cmp = /*#__PURE__*/ componentQrl(_qrl_Cmp_component_4ryKJTOKjWE); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAIA,OAAO,MAAM,oBAAM,4EAchB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAIA,OAAO,MAAM,oBAAM,6CAchB\"}") ============================= test.tsx_Cmp_component_4ryKJTOKjWE.js (ENTRY POINT)== import { A } from "./componentA"; @@ -41,7 +43,9 @@ import { Fragment as _Fragment } from "@qwik.dev/core/jsx-runtime"; import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; -const i_veAZ2ow0cnM = ()=>import("./test.tsx_Cmp_component_Fragment_button_q_e_click_veAZ2ow0cnM"); +// +const _qrl_Cmp_component_Fragment_button_q_e_click_veAZ2ow0cnM = /*#__PURE__*/ qrl(()=>import("./test.tsx_Cmp_component_Fragment_button_q_e_click_veAZ2ow0cnM"), "Cmp_component_Fragment_button_q_e_click_veAZ2ow0cnM"); +// export const Cmp_component_4ryKJTOKjWE = ()=>{ const currentStep = useSignal('STEP_1'); const currentType = useSignal('PREVIOUS'); @@ -49,11 +53,11 @@ export const Cmp_component_4ryKJTOKjWE = ()=>{ return step === 'STEP_1' ? 'STEP_2' : 'STEP_1'; }; return /*#__PURE__*/ _jsxSorted(_Fragment, null, null, [ - /*#__PURE__*/ _jsxSorted("button", null, { - "q-e:click": /*#__PURE__*/ qrl(i_veAZ2ow0cnM, "Cmp_component_Fragment_button_q_e_click_veAZ2ow0cnM", [ - currentType - ]) - }, "CLICK", 3, null), + /*#__PURE__*/ _jsxSorted("button", { + "q:p": currentType + }, { + "q-e:click": _qrl_Cmp_component_Fragment_button_q_e_click_veAZ2ow0cnM + }, "CLICK", 7, null), /*#__PURE__*/ _jsxSorted(A, { href: getStep(currentStep.value, currentType.value) }, null, null, 3, "u6_0") @@ -61,7 +65,7 @@ export const Cmp_component_4ryKJTOKjWE = ()=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;yCAI8B;IAC7B,MAAM,cAAc,UAAU;IAC9B,MAAM,cAAc,UAA+B;IAEnD,MAAM,UAAU,CAAC,MAAc;QAC9B,OAAO,SAAS,WAAW,WAAW;IACvC;IAEA,qBACC;sBACC,WAAC;YAAO,WAAQ;;;WAAsC;sBACtD,WAAC;YAAE,MAAM,QAAQ,YAAY,KAAK,EAAE,YAAY,KAAK;;;AAGxD\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;;yCAI8B;IAC7B,MAAM,cAAc,UAAU;IAC9B,MAAM,cAAc,UAA+B;IAEnD,MAAM,UAAU,CAAC,MAAc;QAC9B,OAAO,SAAS,WAAW,WAAW;IACvC;IAEA,qBACC;sBACC,WAAC;;;YAAO,WAAQ;WAAsC;sBACtD,WAAC;YAAE,MAAM,QAAQ,YAAY,KAAK,EAAE,YAAY,KAAK;;;AAGxD\"}") /* { "origin": "test.tsx", @@ -84,14 +88,10 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma */ ============================= test.tsx_Cmp_component_Fragment_button_q_e_click_veAZ2ow0cnM.js (ENTRY POINT)== -import { _captures } from "@qwik.dev/core"; -export const Cmp_component_Fragment_button_q_e_click_veAZ2ow0cnM = ()=>{ - const currentType = _captures[0]; - return currentType.value = 'NEXT'; -}; +export const Cmp_component_Fragment_button_q_e_click_veAZ2ow0cnM = (_, _1, currentType)=>currentType.value = 'NEXT'; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";mEAcqB;;WAAO,YAAY,KAAK,GAAG\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"mEAcqB,sBAAO,YAAY,KAAK,GAAG\"}") /* { "origin": "test.tsx", @@ -105,12 +105,14 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma "parent": "Cmp_component_4ryKJTOKjWE", "ctxKind": "eventHandler", "ctxName": "onClick$", - "captures": true, + "captures": false, "loc": [ 394, 428 ], - "captureNames": [ + "paramNames": [ + "_", + "_1", "currentType" ] } diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_wrap_ternary_function_operator_with_fn.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_wrap_ternary_function_operator_with_fn.snap index 663388dc0e0..11fa280931b 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_wrap_ternary_function_operator_with_fn.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_wrap_ternary_function_operator_with_fn.snap @@ -1,8 +1,7 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4405 +assertion_line: 4443 expression: output -snapshot_kind: text --- ==INPUT== @@ -29,15 +28,18 @@ snapshot_kind: text import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAIE,6BAAe,6EAaZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAIE,6BAAe,8CAaZ\"}") ============================= test.tsx_test_component_LUXeXe0DQrg.js (ENTRY POINT)== import { _jsxSorted } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; +// export const test_component_LUXeXe0DQrg = ()=>{ const toggle = useSignal(true); const t = (key)=>key; @@ -49,7 +51,7 @@ export const test_component_LUXeXe0DQrg = ()=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;0CAI4B;IAC1B,MAAM,SAAS,UAAU;IACzB,MAAM,IAAI,CAAC,MAAgB;IAC3B,qBACC,WAAC;QAEA,OACA,OAAO,KAAK,KAAK,KACd,EAAE,oDACF,EAAE;;QAJL,MAAK;;AAQP\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;0CAI4B;IAC1B,MAAM,SAAS,UAAU;IACzB,MAAM,IAAI,CAAC,MAAgB;IAC3B,qBACC,WAAC;QAEA,OACA,OAAO,KAAK,KAAK,KACd,EAAE,oDACF,EAAE;;QAJL,MAAK;;AAQP\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_wrap_var_template_string.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_wrap_var_template_string.snap index 0d31d37aa63..17c698ea230 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_wrap_var_template_string.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_not_wrap_var_template_string.snap @@ -1,8 +1,7 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4332 +assertion_line: 4370 expression: output -snapshot_kind: text --- ==INPUT== @@ -28,11 +27,13 @@ snapshot_kind: text import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAIE,6BAAe,6EAYZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAIE,6BAAe,8CAYZ\"}") ============================= test.tsx_test_component_productTitle_useComputed_ZVQVUkxqtiQ.js (ENTRY POINT)== export const test_component_productTitle_useComputed_ZVQVUkxqtiQ = ()=>{ @@ -67,10 +68,12 @@ import { _jsxSorted } from "@qwik.dev/core"; import { inlineTranslate } from "translate-lib"; import { qrl } from "@qwik.dev/core"; import { useComputedQrl } from "@qwik.dev/core"; -const i_ZVQVUkxqtiQ = ()=>import("./test.tsx_test_component_productTitle_useComputed_ZVQVUkxqtiQ"); +// +const _qrl_test_component_productTitle_useComputed_ZVQVUkxqtiQ = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_productTitle_useComputed_ZVQVUkxqtiQ"), "test_component_productTitle_useComputed_ZVQVUkxqtiQ"); +// export const test_component_LUXeXe0DQrg = ()=>{ const t = inlineTranslate(); - const productTitle = useComputedQrl(/*#__PURE__*/ qrl(i_ZVQVUkxqtiQ, "test_component_productTitle_useComputed_ZVQVUkxqtiQ")); + const productTitle = useComputedQrl(_qrl_test_component_productTitle_useComputed_ZVQVUkxqtiQ); return /*#__PURE__*/ _jsxSorted("img", { alt: `${t('home.imageAlt.founded-product:')} ${productTitle.value}`, attr: t('home.imageAlt.founded-product:') @@ -78,7 +81,7 @@ export const test_component_LUXeXe0DQrg = ()=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;0CAI4B;IACzB,MAAM,IAAI;IAEV,MAAM,eAAe;IAIrB,qBACC,WAAC;QAEA,KAAK,GAAG,EAAE,kCAAkC,CAAC,EAAE,aAAa,KAAK,EAAE;QADnE,MAAM,EAAE;;AAGX\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;0CAI4B;IACzB,MAAM,IAAI;IAEV,MAAM,eAAe;IAIrB,qBACC,WAAC;QAEA,KAAK,GAAG,EAAE,kCAAkC,CAAC,EAAE,aAAa,KAAK,EAAE;QADnE,MAAM,EAAE;;AAGX\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props.snap index 0bc1873997d..2f5a027ed48 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props.snap @@ -1,8 +1,7 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4434 +assertion_line: 4472 expression: output -snapshot_kind: text --- ==INPUT== @@ -19,16 +18,19 @@ snapshot_kind: text import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGE,6BAAe,6EAIZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGE,6BAAe,8CAIZ\"}") ============================= test.tsx_test_component_LUXeXe0DQrg.js (ENTRY POINT)== import { _getConstProps } from "@qwik.dev/core"; import { _getVarProps } from "@qwik.dev/core"; import { _jsxSplit } from "@qwik.dev/core"; +// export const test_component_LUXeXe0DQrg = (props)=>{ return /*#__PURE__*/ _jsxSplit("div", { ..._getVarProps(props) @@ -36,7 +38,7 @@ export const test_component_LUXeXe0DQrg = (props)=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;0CAG4B,CAAC;IAC1B,qBACC,UAAC;wBAAQ;sBAAA;AAEX\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;0CAG4B,CAAC;IAC1B,qBACC,UAAC;wBAAQ;sBAAA;AAEX\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props_with_additional_prop.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props_with_additional_prop.snap index 4a3a138635f..9abe4cfddee 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props_with_additional_prop.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props_with_additional_prop.snap @@ -1,8 +1,7 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4453 +assertion_line: 4491 expression: output -snapshot_kind: text --- ==INPUT== @@ -19,16 +18,19 @@ snapshot_kind: text import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGE,6BAAe,6EAIZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGE,6BAAe,8CAIZ\"}") ============================= test.tsx_test_component_LUXeXe0DQrg.js (ENTRY POINT)== import { _getConstProps } from "@qwik.dev/core"; import { _getVarProps } from "@qwik.dev/core"; import { _jsxSplit } from "@qwik.dev/core"; +// export const test_component_LUXeXe0DQrg = (props)=>{ return /*#__PURE__*/ _jsxSplit("div", { ..._getVarProps(props) @@ -39,7 +41,7 @@ export const test_component_LUXeXe0DQrg = (props)=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;0CAG4B,CAAC;IAC1B,qBACC,UAAC;wBAAQ;;0BAAA;QAAO,MAAK;;AAEvB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;0CAG4B,CAAC;IAC1B,qBACC,UAAC;wBAAQ;;0BAAA;QAAO,MAAK;;AAEvB\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props_with_additional_prop2.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props_with_additional_prop2.snap index fda211b66b9..5a4e43b361b 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props_with_additional_prop2.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props_with_additional_prop2.snap @@ -1,8 +1,7 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4472 +assertion_line: 4510 expression: output -snapshot_kind: text --- ==INPUT== @@ -19,16 +18,19 @@ snapshot_kind: text import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGE,6BAAe,6EAIZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGE,6BAAe,8CAIZ\"}") ============================= test.tsx_test_component_LUXeXe0DQrg.js (ENTRY POINT)== import { _getConstProps } from "@qwik.dev/core"; import { _getVarProps } from "@qwik.dev/core"; import { _jsxSplit } from "@qwik.dev/core"; +// export const test_component_LUXeXe0DQrg = (props)=>{ return /*#__PURE__*/ _jsxSplit("div", { test: "test", @@ -37,7 +39,7 @@ export const test_component_LUXeXe0DQrg = (props)=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;0CAG4B,CAAC;IAC1B,qBACC,UAAC;QAAI,MAAK;wBAAW;sBAAA;AAEvB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;0CAG4B,CAAC;IAC1B,qBACC,UAAC;QAAI,MAAK;wBAAW;sBAAA;AAEvB\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props_with_additional_prop3.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props_with_additional_prop3.snap index af2b2b48758..a73aadd7392 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props_with_additional_prop3.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props_with_additional_prop3.snap @@ -1,8 +1,7 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4491 +assertion_line: 4529 expression: output -snapshot_kind: text --- ==INPUT== @@ -20,17 +19,20 @@ snapshot_kind: text import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAIE,6BAAe,6EAIZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAIE,6BAAe,8CAIZ\"}") ============================= test.tsx_test_component_LUXeXe0DQrg.js (ENTRY POINT)== import { Foo } from "./foo"; import { _getConstProps } from "@qwik.dev/core"; import { _getVarProps } from "@qwik.dev/core"; import { _jsxSplit } from "@qwik.dev/core"; +// export const test_component_LUXeXe0DQrg = (props)=>{ return /*#__PURE__*/ _jsxSplit(Foo, { s: Math.random(), @@ -42,7 +44,7 @@ export const test_component_LUXeXe0DQrg = (props)=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;0CAI4B,CAAC;IAC1B,qBACC,UAAC;QAAI,GAAG,KAAK,MAAM;wBAAQ;0BAAA;QAAO,KAAK;QAAE,GAAG,WAAW,OAAO;;AAEhE\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;0CAI4B,CAAC;IAC1B,qBACC,UAAC;QAAI,GAAG,KAAK,MAAM;wBAAQ;0BAAA;QAAO,KAAK;QAAE,GAAG,WAAW,OAAO;;AAEhE\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props_with_additional_prop4.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props_with_additional_prop4.snap index f0bcaacb2df..79a8e40164c 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props_with_additional_prop4.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props_with_additional_prop4.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4512 +assertion_line: 4549 expression: output --- ==INPUT== @@ -16,21 +16,19 @@ expression: output import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGE,6BAAe,6EAEZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGE,6BAAe,8CAEZ\"}") ============================= test.tsx_test_component_button_q_e_click_qwSL5gM03T4.js (ENTRY POINT)== -import { _captures } from "@qwik.dev/core"; -export const test_component_button_q_e_click_qwSL5gM03T4 = ()=>{ - const props = _captures[0]; - return props.onClick$(); -}; +export const test_component_button_q_e_click_qwSL5gM03T4 = (_, _1, props)=>props.onClick$(); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";2DAIuC;;WAAM,MAAM,QAAQ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"2DAIuC,gBAAM,MAAM,QAAQ\"}") /* { "origin": "test.tsx", @@ -44,12 +42,14 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma "parent": "test_component_LUXeXe0DQrg", "ctxKind": "eventHandler", "ctxName": "onClick$", - "captures": true, + "captures": false, "loc": [ 135, 157 ], - "captureNames": [ + "paramNames": [ + "_", + "_1", "props" ] } @@ -60,18 +60,19 @@ import { _getConstProps } from "@qwik.dev/core"; import { _getVarProps } from "@qwik.dev/core"; import { _jsxSplit } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_qwSL5gM03T4 = ()=>import("./test.tsx_test_component_button_q_e_click_qwSL5gM03T4"); +// +const _qrl_test_component_button_q_e_click_qwSL5gM03T4 = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_button_q_e_click_qwSL5gM03T4"), "test_component_button_q_e_click_qwSL5gM03T4"); +// export const test_component_LUXeXe0DQrg = (props)=>{ return /*#__PURE__*/ _jsxSplit("button", { ..._getVarProps(props), - "q-e:click": /*#__PURE__*/ qrl(i_qwSL5gM03T4, "test_component_button_q_e_click_qwSL5gM03T4", [ - props - ]) - }, _getConstProps(props), null, 0, "u6_0"); + "q-e:click": _qrl_test_component_button_q_e_click_qwSL5gM03T4, + "q:p": props + }, _getConstProps(props), null, 4, "u6_0"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;0CAG4B,CAAC;IAC1B,qBAAO,UAAC;wBAAW;QAAO,WAAQ;;;sBAAf;AACpB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;0CAG4B,CAAC;IAC1B,qBAAO,UAAC;wBAAW;QAAO,WAAQ;;sBAAf;AACpB\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props_with_additional_prop5.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props_with_additional_prop5.snap index b38caeaed81..2cb92bb0256 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props_with_additional_prop5.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_split_spread_props_with_additional_prop5.snap @@ -1,8 +1,7 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4528 +assertion_line: 4566 expression: output -snapshot_kind: text --- ==INPUT== @@ -22,26 +21,27 @@ snapshot_kind: text ============================= test.js == -import { _getVarProps } from "@qwik.dev/core"; -import { _getConstProps } from "@qwik.dev/core"; -import { _jsxSplit } from "@qwik.dev/core"; import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -function Hola(props) { - return /*#__PURE__*/ _jsxSplit("div", { - ..._getVarProps(props) - }, _getConstProps(props), null, 0, "u6_0"); -} -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); -export { Hola as _auto_Hola }; +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;AAGE,SAAS,KAAK,KAAU;IACvB,qBAAO,UAAC;wBAAQ;sBAAA;AACjB;AAEA,6BAAe,6EAKZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAOE,6BAAe,8CAKZ\"}") ============================= test.tsx_test_component_LUXeXe0DQrg.js (ENTRY POINT)== -import { _auto_Hola as Hola } from "./test"; +import { _getConstProps } from "@qwik.dev/core"; +import { _getVarProps } from "@qwik.dev/core"; import { _jsxSorted } from "@qwik.dev/core"; +import { _jsxSplit } from "@qwik.dev/core"; +// +function Hola(props) { + return /*#__PURE__*/ _jsxSplit("div", { + ..._getVarProps(props) + }, _getConstProps(props), null, 0, "u6_0"); +} export const test_component_LUXeXe0DQrg = ()=>{ return /*#__PURE__*/ _jsxSorted(Hola, null, null, [ /*#__PURE__*/ _jsxSorted("div", null, null, "1", 3, null), @@ -50,7 +50,7 @@ export const test_component_LUXeXe0DQrg = ()=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;0CAO4B;IAC1B,qBAAO,WAAC;sBACP,WAAC,mBAAI;sBACL,WAAC,mBAAI;;AAEN\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGE,SAAS,KAAK,KAAU;IACvB,qBAAO,UAAC;wBAAQ;sBAAA;AACjB;0CAE0B;IAC1B,qBAAO,WAAC;sBACP,WAAC,mBAAI;sBACL,WAAC,mBAAI;;AAEN\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_block_scoped_variables_and_item_index_in_loop.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_block_scoped_variables_and_item_index_in_loop.snap index 02eca61d065..6e8e5a2ae13 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_block_scoped_variables_and_item_index_in_loop.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_block_scoped_variables_and_item_index_in_loop.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5439 +assertion_line: 5499 expression: output --- ==INPUT== @@ -24,11 +24,13 @@ export default component$(() => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGA,6BAAe,6EAUZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGA,6BAAe,8CAUZ\"}") ============================= test.tsx_test_component_div_div_q_e_click_Mc600uqO6ps.js (ENTRY POINT)== export const test_component_div_div_q_e_click_Mc600uqO6ps = (_, _1, val, i, index)=>console.log(val, i, index); @@ -67,28 +69,29 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; -const i_Mc600uqO6ps = ()=>import("./test.tsx_test_component_div_div_q_e_click_Mc600uqO6ps"); +// +const _qrl_test_component_div_div_q_e_click_Mc600uqO6ps = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_div_div_q_e_click_Mc600uqO6ps"), "test_component_div_div_q_e_click_Mc600uqO6ps"); +// export const test_component_LUXeXe0DQrg = ()=>{ const arr = useSignal([ 'a', 'b' ]); - const test_component_div_div_q_e_click_Mc600uqO6ps = /*#__PURE__*/ qrl(i_Mc600uqO6ps, "test_component_div_div_q_e_click_Mc600uqO6ps"); return /*#__PURE__*/ _jsxSorted("div", null, null, arr.value.map((val, i)=>{ const index = i + 1; return /*#__PURE__*/ _jsxSorted("div", { - "q-e:click": test_component_div_div_q_e_click_Mc600uqO6ps, + "q-e:click": _qrl_test_component_div_div_q_e_click_Mc600uqO6ps, "q:ps": [ val, i, index ] - }, null, val, 0, "u6_0"); + }, null, val, 4, "u6_0"); }), 1, "u6_1"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;0CAG0B;IACxB,MAAM,MAAM,UAAU;QAAC;QAAK;KAAI;;IAChC,qBACE,WAAC,mBACE,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;QACnB,MAAM,QAAQ,IAAE;QAChB,qBAAO,WAAC;YAAI,WAAQ;;gBAFN;gBAAK;gBACb;;iBACmD;IAC3D;AAGN\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;0CAG0B;IACxB,MAAM,MAAM,UAAU;QAAC;QAAK;KAAI;IAChC,qBACE,WAAC,mBACE,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;QACnB,MAAM,QAAQ,IAAE;QAChB,qBAAO,WAAC;YAAI,WAAQ;;gBAFN;gBAAK;gBACb;;iBACmD;IAC3D;AAGN\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_block_scoped_variables_in_loop.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_block_scoped_variables_in_loop.snap index 1f061969415..9265a92c074 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_block_scoped_variables_in_loop.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_block_scoped_variables_in_loop.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5388 +assertion_line: 5448 expression: output --- ==INPUT== @@ -24,11 +24,13 @@ export default component$(() => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGA,6BAAe,6EAUZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGA,6BAAe,8CAUZ\"}") ============================= test.tsx_test_component_div_div_q_e_click_Mc600uqO6ps.js (ENTRY POINT)== export const test_component_div_div_q_e_click_Mc600uqO6ps = (_, _1, index)=>console.log(index); @@ -65,24 +67,25 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; -const i_Mc600uqO6ps = ()=>import("./test.tsx_test_component_div_div_q_e_click_Mc600uqO6ps"); +// +const _qrl_test_component_div_div_q_e_click_Mc600uqO6ps = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_div_div_q_e_click_Mc600uqO6ps"), "test_component_div_div_q_e_click_Mc600uqO6ps"); +// export const test_component_LUXeXe0DQrg = ()=>{ const arr = useSignal([ 'a', 'b' ]); - const test_component_div_div_q_e_click_Mc600uqO6ps = /*#__PURE__*/ qrl(i_Mc600uqO6ps, "test_component_div_div_q_e_click_Mc600uqO6ps"); return /*#__PURE__*/ _jsxSorted("div", null, null, arr.value.map((val, i)=>{ const index = i + 1; return /*#__PURE__*/ _jsxSorted("div", { - "q-e:click": test_component_div_div_q_e_click_Mc600uqO6ps, + "q-e:click": _qrl_test_component_div_div_q_e_click_Mc600uqO6ps, "q:p": index - }, null, val, 0, "u6_0"); + }, null, val, 4, "u6_0"); }), 1, "u6_1"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;0CAG0B;IACxB,MAAM,MAAM,UAAU;QAAC;QAAK;KAAI;;IAChC,qBACE,WAAC,mBACE,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;QACnB,MAAM,QAAQ,IAAE;QAChB,qBAAO,WAAC;YAAI,WAAQ;mBADd;iBAC2C;IACnD;AAGN\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;0CAG0B;IACxB,MAAM,MAAM,UAAU;QAAC;QAAK;KAAI;IAChC,qBACE,WAAC,mBACE,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;QACnB,MAAM,QAAQ,IAAE;QAChB,qBAAO,WAAC;YAAI,WAAQ;mBADd;iBAC2C;IACnD;AAGN\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_component_with_normal_function.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_component_with_normal_function.snap index 93ac660be25..013c546df8e 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_component_with_normal_function.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_component_with_normal_function.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5049 +assertion_line: 5113 expression: output --- ==INPUT== @@ -20,28 +20,32 @@ const Foo = component$(function() { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_HTDRsvUbLiE = ()=>import("./test.tsx_Foo_component_HTDRsvUbLiE"); -/*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_HTDRsvUbLiE, "Foo_component_HTDRsvUbLiE")); +// +const _qrl_Foo_component_HTDRsvUbLiE = /*#__PURE__*/ qrl(()=>import("./test.tsx_Foo_component_HTDRsvUbLiE"), "Foo_component_HTDRsvUbLiE"); +// +/*#__PURE__*/ componentQrl(_qrl_Foo_component_HTDRsvUbLiE); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;cAEY\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;cAEY\"}") ============================= test.tsx_Foo_component_HTDRsvUbLiE.js (ENTRY POINT)== import { _jsxSorted } from "@qwik.dev/core"; import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; -const i_AuJ9mTBx5YA = ()=>import("./test.tsx_Foo_component_Inner_component_AuJ9mTBx5YA"); +// +const _qrl_Foo_component_Inner_component_AuJ9mTBx5YA = /*#__PURE__*/ qrl(()=>import("./test.tsx_Foo_component_Inner_component_AuJ9mTBx5YA"), "Foo_component_Inner_component_AuJ9mTBx5YA"); +// export const Foo_component_HTDRsvUbLiE = function() { const data = useSignal([]); - const Inner = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_AuJ9mTBx5YA, "Foo_component_Inner_component_AuJ9mTBx5YA")); + const Inner = /*#__PURE__*/ componentQrl(_qrl_Foo_component_Inner_component_AuJ9mTBx5YA); return /*#__PURE__*/ _jsxSorted(Inner, null, { data: data }, null, 3, "u6_2"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;yCAEuB;IACrB,MAAM,OAAO,UAAyB,EAAE;IACxC,MAAM,sBAAQ;IAId,qBAAO,WAAC;QAAM,MAAM;;AACtB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;yCAEuB;IACrB,MAAM,OAAO,UAAyB,EAAE;IACxC,MAAM,sBAAQ;IAId,qBAAO,WAAC;QAAM,MAAM;;AACtB\"}") /* { "origin": "test.tsx", @@ -67,22 +71,24 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { _fnSignal } from "@qwik.dev/core"; import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; +// const _hf0 = (p0)=>p0.value.id; const _hf0_str = "p0.value.id"; -const i_7oFgEhSmgvY = ()=>import("./test.tsx_Foo_component_Inner_component_div_p_q_e_click_7oFgEhSmgvY"); +// +const _qrl_Foo_component_Inner_component_div_p_q_e_click_7oFgEhSmgvY = /*#__PURE__*/ qrl(()=>import("./test.tsx_Foo_component_Inner_component_div_p_q_e_click_7oFgEhSmgvY"), "Foo_component_Inner_component_div_p_q_e_click_7oFgEhSmgvY"); +// export const Foo_component_Inner_component_AuJ9mTBx5YA = function(props) { const data = props.data; - const Foo_component_Inner_component_div_p_q_e_click_7oFgEhSmgvY = /*#__PURE__*/ qrl(i_7oFgEhSmgvY, "Foo_component_Inner_component_div_p_q_e_click_7oFgEhSmgvY"); return /*#__PURE__*/ _jsxSorted("div", null, null, data.value.map((item)=>/*#__PURE__*/ _jsxSorted("p", { - "q-e:click": Foo_component_Inner_component_div_p_q_e_click_7oFgEhSmgvY, + "q-e:click": _qrl_Foo_component_Inner_component_div_p_q_e_click_7oFgEhSmgvY, "q:p": item }, null, _fnSignal(_hf0, [ item - ], _hf0_str), 0, "u6_0")), 1, "u6_1"); + ], _hf0_str), 4, "u6_0")), 1, "u6_1"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;mBAMwF,GAAK,KAAK,CAAC,EAAE;;;yDAF1E,SAAS,KAAK;IACrC,MAAM,OAAO,MAAM,IAAI;;IACvB,qBAAO,WAAC,mBAAK,KAAK,KAAK,CAAC,GAAG,CAAC,CAAA,qBAAQ,WAAC;YAAE,WAAQ;mBAAnB;;;;AAC9B\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;mBAMwF,GAAK,KAAK,CAAC,EAAE;;;;;yDAF1E,SAAS,KAAK;IACrC,MAAM,OAAO,MAAM,IAAI;IACvB,qBAAO,WAAC,mBAAK,KAAK,KAAK,CAAC,GAAG,CAAC,CAAA,qBAAQ,WAAC;YAAE,WAAQ;mBAAnB;;;;AAC9B\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_event_names_without_jsx_transpile.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_event_names_without_jsx_transpile.snap index ae4cbb67355..fac217fe2dd 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_event_names_without_jsx_transpile.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_event_names_without_jsx_transpile.snap @@ -1,6 +1,5 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4741 expression: output --- ==INPUT== @@ -24,114 +23,40 @@ export const Greeter = component$(() => { }); -============================= test.tsx_Greeter_component_div_div_q_e_click_1_s7p0zjWZpqo.tsx (ENTRY POINT)== - -export const Greeter_component_div_div_q_e_click_1_s7p0zjWZpqo = ()=>{}; - - -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"iEAYkB,KAAO\"}") -/* -{ - "origin": "test.tsx", - "name": "Greeter_component_div_div_q_e_click_1_s7p0zjWZpqo", - "entry": null, - "displayName": "test.tsx_Greeter_component_div_div_q_e_click_1", - "hash": "s7p0zjWZpqo", - "canonicalFilename": "test.tsx_Greeter_component_div_div_q_e_click_1_s7p0zjWZpqo", - "path": "", - "extension": "tsx", - "parent": "Greeter_component_n7HuG2hhU0Q", - "ctxKind": "eventHandler", - "ctxName": "onClick$", - "captures": false, - "loc": [ - 263, - 271 - ] -} -*/ ============================= test.tsx == import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_n7HuG2hhU0Q = ()=>import("./test.tsx_Greeter_component_n7HuG2hhU0Q"); -export const Greeter = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_n7HuG2hhU0Q, "Greeter_component_n7HuG2hhU0Q")); - - -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAIA,OAAO,MAAM,wBAAU,gFAYpB\"}") -============================= test.tsx_Greeter_component_div_div_q_e_click_wYSPnQEGCbA.tsx (ENTRY POINT)== - -export const Greeter_component_div_div_q_e_click_wYSPnQEGCbA = ()=>{}; +// +const _qrl_Greeter_component_n7HuG2hhU0Q = /*#__PURE__*/ qrl(()=>import("./test.tsx_Greeter_component_n7HuG2hhU0Q"), "Greeter_component_n7HuG2hhU0Q"); +// +export const Greeter = /*#__PURE__*/ componentQrl(_qrl_Greeter_component_n7HuG2hhU0Q); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"+DAWkB,KAAO\"}") -/* -{ - "origin": "test.tsx", - "name": "Greeter_component_div_div_q_e_click_wYSPnQEGCbA", - "entry": null, - "displayName": "test.tsx_Greeter_component_div_div_q_e_click", - "hash": "wYSPnQEGCbA", - "canonicalFilename": "test.tsx_Greeter_component_div_div_q_e_click_wYSPnQEGCbA", - "path": "", - "extension": "tsx", - "parent": "Greeter_component_n7HuG2hhU0Q", - "ctxKind": "eventHandler", - "ctxName": "onClick$", - "captures": false, - "loc": [ - 233, - 241 - ] -} -*/ -============================= test.tsx_Greeter_component_div_div_q_e_click_2_B9tqzgApK9E.tsx (ENTRY POINT)== - -export const Greeter_component_div_div_q_e_click_2_B9tqzgApK9E = ()=>{}; - - -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"iEAakB,KAAO\"}") -/* -{ - "origin": "test.tsx", - "name": "Greeter_component_div_div_q_e_click_2_B9tqzgApK9E", - "entry": null, - "displayName": "test.tsx_Greeter_component_div_div_q_e_click_2", - "hash": "B9tqzgApK9E", - "canonicalFilename": "test.tsx_Greeter_component_div_div_q_e_click_2_B9tqzgApK9E", - "path": "", - "extension": "tsx", - "parent": "Greeter_component_n7HuG2hhU0Q", - "ctxKind": "eventHandler", - "ctxName": "onClick$", - "captures": false, - "loc": [ - 293, - 301 - ] -} -*/ +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAIA,OAAO,MAAM,wBAAU,iDAYpB\"}") ============================= test.tsx_Greeter_component_n7HuG2hhU0Q.tsx (ENTRY POINT)== +import { _noopQrl } from "@qwik.dev/core"; import mongo from "mongodb"; -import { qrl } from "@qwik.dev/core"; -const i_B9tqzgApK9E = ()=>import("./test.tsx_Greeter_component_div_div_q_e_click_2_B9tqzgApK9E"); -const i_s7p0zjWZpqo = ()=>import("./test.tsx_Greeter_component_div_div_q_e_click_1_s7p0zjWZpqo"); -const i_wYSPnQEGCbA = ()=>import("./test.tsx_Greeter_component_div_div_q_e_click_wYSPnQEGCbA"); +// +const _qrl_Greeter_component_div_div_q_e_click_1_s7p0zjWZpqo = /*#__PURE__*/ _noopQrl("Greeter_component_div_div_q_e_click_1_s7p0zjWZpqo", true); +const _qrl_Greeter_component_div_div_q_e_click_2_B9tqzgApK9E = /*#__PURE__*/ _noopQrl("Greeter_component_div_div_q_e_click_2_B9tqzgApK9E", true); +const _qrl_Greeter_component_div_div_q_e_click_wYSPnQEGCbA = /*#__PURE__*/ _noopQrl("Greeter_component_div_div_q_e_click_wYSPnQEGCbA", true); +// export const Greeter_component_n7HuG2hhU0Q = ()=>{ // Double count watch useTask$(async ()=>{ await mongo.users(); }); return
-
-
-
+
+
+
; }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;6CAIkC;IACjC,qBAAqB;IACrB,SAAS;QACR,MAAM,MAAM,KAAK;IAClB;IACA,QACE,IAAI;GACJ,CAAC,IAAI,iGAAqB;GAC1B,CAAC,IAAI,mGAAqB;GAC1B,CAAC,IAAI,mGAAqB;EAC3B,EAAE;AAEJ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;6CAIkC;IACjC,qBAAqB;IACrB,SAAS;QACR,MAAM,MAAM,KAAK;IAClB;IACA,QACE,IAAI;GACJ,CAAC,IAAI,kEAAqB;GAC1B,CAAC,IAAI,oEAAqB;GAC1B,CAAC,IAAI,oEAAqB;EAC3B,EAAE;AAEJ\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_handler_in_for_of_loop.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_handler_in_for_of_loop.snap index b9a0033f15d..d19d62ef8ce 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_handler_in_for_of_loop.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_handler_in_for_of_loop.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5664 +assertion_line: 5724 expression: output --- ==INPUT== @@ -23,11 +23,13 @@ export default component$(() => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGA,6BAAe,6EASZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGA,6BAAe,8CASZ\"}") ============================= test.tsx_test_component_div_q_e_click_omwK2O280Tk.js (ENTRY POINT)== export const test_component_div_q_e_click_omwK2O280Tk = (_, _1, val)=>console.log(val); @@ -64,23 +66,24 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; -const i_omwK2O280Tk = ()=>import("./test.tsx_test_component_div_q_e_click_omwK2O280Tk"); +// +const _qrl_test_component_div_q_e_click_omwK2O280Tk = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_div_q_e_click_omwK2O280Tk"), "test_component_div_q_e_click_omwK2O280Tk"); +// export const test_component_LUXeXe0DQrg = ()=>{ const arr = useSignal([ 'a', 'b' ]); const items = []; - const test_component_div_q_e_click_omwK2O280Tk = /*#__PURE__*/ qrl(i_omwK2O280Tk, "test_component_div_q_e_click_omwK2O280Tk"); for (const val of arr.value)items.push(/*#__PURE__*/ _jsxSorted("div", { - "q-e:click": test_component_div_q_e_click_omwK2O280Tk, + "q-e:click": _qrl_test_component_div_q_e_click_omwK2O280Tk, "q:p": val - }, null, val, 2, "u6_0")); + }, null, val, 6, "u6_0")); return /*#__PURE__*/ _jsxSorted("div", null, null, items, 1, "u6_1"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;0CAG0B;IACxB,MAAM,MAAM,UAAU;QAAC;QAAK;KAAI;IAChC,MAAM,QAAQ,EAAE;;IAChB,KAAK,MAAM,OAAO,IAAI,KAAK,CACzB,MAAM,IAAI,eACR,WAAC;QAAI,WAAQ;eAFN;aAEiC;IAG5C,qBAAO,WAAC,mBAAK;AACf\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;0CAG0B;IACxB,MAAM,MAAM,UAAU;QAAC;QAAK;KAAI;IAChC,MAAM,QAAQ,EAAE;IAChB,KAAK,MAAM,OAAO,IAAI,KAAK,CACzB,MAAM,IAAI,eACR,WAAC;QAAI,WAAQ;eAFN;aAEiC;IAG5C,qBAAO,WAAC,mBAAK;AACf\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_handlers_capturing_cross_scope_in_nested_loops.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_handlers_capturing_cross_scope_in_nested_loops.snap index 8d2dbf16a1f..0a55d1ac603 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_handlers_capturing_cross_scope_in_nested_loops.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_handlers_capturing_cross_scope_in_nested_loops.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5521 +assertion_line: 5581 expression: output --- ==INPUT== @@ -37,21 +37,24 @@ export default component$(() => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGA,6BAAe,6EAuBZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGA,6BAAe,8CAuBZ\"}") ============================= test.tsx_test_component_div_div_span_button_q_e_click_oBFNw2cK30o.js (ENTRY POINT)== import { _captures } from "@qwik.dev/core"; +// export const test_component_div_div_span_button_q_e_click_oBFNw2cK30o = (_, _1, cellIndex)=>{ const rowIndex = _captures[0]; return console.log(rowIndex, cellIndex); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";wEAgBoC,QAJhB;;WAIsB,QAAQ,GAAG,CAAC,UAAU\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;wEAgBoC,QAJhB;;WAIsB,QAAQ,GAAG,CAAC,UAAU\"}") /* { "origin": "test.tsx", @@ -83,13 +86,14 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma ============================= test.tsx_test_component_div_div_span_span_q_e_keydown_SBPovprktLQ.js (ENTRY POINT)== import { _captures } from "@qwik.dev/core"; +// export const test_component_div_div_span_span_q_e_keydown_SBPovprktLQ = (_, _1, j, cellKey)=>{ const i = _captures[0]; return console.log(cellKey, i, j); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";wEAiBoC,QANR,GAER;;WAIsB,QAAQ,GAAG,CAAC,SAAS,GAAG\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;wEAiBoC,QANR,GAER;;WAIsB,QAAQ,GAAG,CAAC,SAAS,GAAG\"}") /* { "origin": "test.tsx", @@ -124,8 +128,10 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; +// const i_SBPovprktLQ = ()=>import("./test.tsx_test_component_div_div_span_span_q_e_keydown_SBPovprktLQ"); const i_oBFNw2cK30o = ()=>import("./test.tsx_test_component_div_div_span_button_q_e_click_oBFNw2cK30o"); +// export const test_component_LUXeXe0DQrg = ()=>{ const matrix = useSignal([ [ @@ -152,21 +158,21 @@ export const test_component_LUXeXe0DQrg = ()=>{ /*#__PURE__*/ _jsxSorted("button", { "q-e:click": test_component_div_div_span_button_q_e_click_oBFNw2cK30o, "q:p": cellIndex - }, null, cell, 0, null), + }, null, cell, 4, null), /*#__PURE__*/ _jsxSorted("span", { "q-e:keydown": test_component_div_div_span_span_q_e_keydown_SBPovprktLQ, "q:ps": [ j, cellKey ] - }, null, cellKey, 0, null) + }, null, cellKey, 4, null) ], 1, j); }), 1, i); }), 1, "u6_0"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;0CAG0B;IACxB,MAAM,SAAS,UAAU;QAAC;YAAC;YAAK;SAAI;QAAE;YAAC;YAAK;SAAI;KAAC;IACjD,qBACE,WAAC,mBACE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;QACtB,MAAM,WAAW,IAAI;;;;;;;QACrB,qBACE,WAAC,mBACE,IAAI,GAAG,CAAC,CAAC,MAAM;YACd,MAAM,YAAY,IAAI;YACtB,MAAM,UAAU,WAAW,MAAM;YACjC,qBACE,WAAC;8BACC,WAAC;oBAAO,WAAQ;2BAJd;yBAIyD;8BAC3D,WAAC;oBAAK,aAAU;;wBANN;wBAER;;yBAImD;kBAF5C;QAKf,OAVQ;IAad;AAGN\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;0CAG0B;IACxB,MAAM,SAAS,UAAU;QAAC;YAAC;YAAK;SAAI;QAAE;YAAC;YAAK;SAAI;KAAC;IACjD,qBACE,WAAC,mBACE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;QACtB,MAAM,WAAW,IAAI;;;;;;;QACrB,qBACE,WAAC,mBACE,IAAI,GAAG,CAAC,CAAC,MAAM;YACd,MAAM,YAAY,IAAI;YACtB,MAAM,UAAU,WAAW,MAAM;YACjC,qBACE,WAAC;8BACC,WAAC;oBAAO,WAAQ;2BAJd;yBAIyD;8BAC3D,WAAC;oBAAK,aAAU;;wBANN;wBAER;;yBAImD;kBAF5C;QAKf,OAVQ;IAad;AAGN\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_loop_multiple_handler_with_different_captures.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_loop_multiple_handler_with_different_captures.snap index acab8176c4f..031f5fe0fef 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_loop_multiple_handler_with_different_captures.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_loop_multiple_handler_with_different_captures.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5711 +assertion_line: 5748 expression: output --- ==INPUT== @@ -33,11 +33,13 @@ export default component$(() => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGA,6BAAe,6EAmBZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGA,6BAAe,8CAmBZ\"}") ============================= test.tsx_test_component_div_div_q_e_keydown_a6RR59yQlXM.js (ENTRY POINT)== export const test_component_div_div_q_e_keydown_a6RR59yQlXM = (_, _1, _2, plusTwo, double)=>console.log(plusTwo, double); @@ -109,33 +111,33 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; -const i_Mc600uqO6ps = ()=>import("./test.tsx_test_component_div_div_q_e_click_Mc600uqO6ps"); -const i_a6RR59yQlXM = ()=>import("./test.tsx_test_component_div_div_q_e_keydown_a6RR59yQlXM"); +// +const _qrl_test_component_div_div_q_e_click_Mc600uqO6ps = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_div_div_q_e_click_Mc600uqO6ps"), "test_component_div_div_q_e_click_Mc600uqO6ps"); +const _qrl_test_component_div_div_q_e_keydown_a6RR59yQlXM = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_div_div_q_e_keydown_a6RR59yQlXM"), "test_component_div_div_q_e_keydown_a6RR59yQlXM"); +// export const test_component_LUXeXe0DQrg = ()=>{ const arr = useSignal([ 'a', 'b' ]); - const test_component_div_div_q_e_click_Mc600uqO6ps = /*#__PURE__*/ qrl(i_Mc600uqO6ps, "test_component_div_div_q_e_click_Mc600uqO6ps"); - const test_component_div_div_q_e_keydown_a6RR59yQlXM = /*#__PURE__*/ qrl(i_a6RR59yQlXM, "test_component_div_div_q_e_keydown_a6RR59yQlXM"); return /*#__PURE__*/ _jsxSorted("div", null, null, arr.value.map((val, i)=>{ const plusOne = i + 1; const plusTwo = i + 2; const double = i * 2; return /*#__PURE__*/ _jsxSorted("div", { - "q-e:click": test_component_div_div_q_e_click_Mc600uqO6ps, - "q-e:keydown": test_component_div_div_q_e_keydown_a6RR59yQlXM, + "q-e:click": _qrl_test_component_div_div_q_e_click_Mc600uqO6ps, + "q-e:keydown": _qrl_test_component_div_div_q_e_keydown_a6RR59yQlXM, "q:ps": [ plusOne, plusTwo, double ] - }, null, val, 0, "u6_0"); + }, null, val, 4, "u6_0"); }), 1, "u6_1"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;0CAG0B;IACxB,MAAM,MAAM,UAAU;QAAC;QAAK;KAAI;;;IAChC,qBACE,WAAC,mBACE,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;QACnB,MAAM,UAAU,IAAI;QACpB,MAAM,UAAU,IAAI;QACpB,MAAM,SAAS,IAAI;QACnB,qBACE,WAAC;YACC,WAAQ;YACR,aAAU;;gBANR;gBACA;gBACA;;iBAMD;IAGP;AAGN\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;0CAG0B;IACxB,MAAM,MAAM,UAAU;QAAC;QAAK;KAAI;IAChC,qBACE,WAAC,mBACE,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;QACnB,MAAM,UAAU,IAAI;QACpB,MAAM,UAAU,IAAI;QACpB,MAAM,SAAS,IAAI;QACnB,qBACE,WAAC;YACC,WAAQ;YACR,aAAU;;gBANR;gBACA;gBACA;;iBAMD;IAGP;AAGN\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_multiple_block_scoped_variables_and_item_index_in_loop.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_multiple_block_scoped_variables_and_item_index_in_loop.snap index 568db850bb7..9592a21cfcd 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_multiple_block_scoped_variables_and_item_index_in_loop.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_multiple_block_scoped_variables_and_item_index_in_loop.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5464 +assertion_line: 5524 expression: output --- ==INPUT== @@ -25,11 +25,13 @@ export default component$(() => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGA,6BAAe,6EAWZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGA,6BAAe,8CAWZ\"}") ============================= test.tsx_test_component_div_div_q_e_click_Mc600uqO6ps.js (ENTRY POINT)== export const test_component_div_div_q_e_click_Mc600uqO6ps = (_, _1, val, i, index, value)=>console.log(value, index, val, i); @@ -69,30 +71,31 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; -const i_Mc600uqO6ps = ()=>import("./test.tsx_test_component_div_div_q_e_click_Mc600uqO6ps"); +// +const _qrl_test_component_div_div_q_e_click_Mc600uqO6ps = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_div_div_q_e_click_Mc600uqO6ps"), "test_component_div_div_q_e_click_Mc600uqO6ps"); +// export const test_component_LUXeXe0DQrg = ()=>{ const arr = useSignal([ 'a', 'b' ]); - const test_component_div_div_q_e_click_Mc600uqO6ps = /*#__PURE__*/ qrl(i_Mc600uqO6ps, "test_component_div_div_q_e_click_Mc600uqO6ps"); return /*#__PURE__*/ _jsxSorted("div", null, null, arr.value.map((val, i)=>{ const index = i + 1; const value = val.toUpperCase(); return /*#__PURE__*/ _jsxSorted("div", { - "q-e:click": test_component_div_div_q_e_click_Mc600uqO6ps, + "q-e:click": _qrl_test_component_div_div_q_e_click_Mc600uqO6ps, "q:ps": [ val, i, index, value ] - }, null, val, 0, "u6_0"); + }, null, val, 4, "u6_0"); }), 1, "u6_1"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;0CAG0B;IACxB,MAAM,MAAM,UAAU;QAAC;QAAK;KAAI;;IAChC,qBACE,WAAC,mBACE,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;QACnB,MAAM,QAAQ,IAAE;QACtB,MAAM,QAAQ,IAAI,WAAW;QACvB,qBAAO,WAAC;YAAI,WAAQ;;gBAHN;gBAAK;gBACb;gBACN;;iBACgE;IAClE;AAGN\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;0CAG0B;IACxB,MAAM,MAAM,UAAU;QAAC;QAAK;KAAI;IAChC,qBACE,WAAC,mBACE,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;QACnB,MAAM,QAAQ,IAAE;QACtB,MAAM,QAAQ,IAAI,WAAW;QACvB,qBAAO,WAAC;YAAI,WAAQ;;gBAHN;gBAAK;gBACb;gBACN;;iBACgE;IAClE;AAGN\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_multiple_block_scoped_variables_in_loop.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_multiple_block_scoped_variables_in_loop.snap index abb0dcc6207..fdf8885f218 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_multiple_block_scoped_variables_in_loop.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_multiple_block_scoped_variables_in_loop.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5413 +assertion_line: 5473 expression: output --- ==INPUT== @@ -25,11 +25,13 @@ export default component$(() => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGA,6BAAe,6EAWZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGA,6BAAe,8CAWZ\"}") ============================= test.tsx_test_component_div_div_q_e_click_Mc600uqO6ps.js (ENTRY POINT)== export const test_component_div_div_q_e_click_Mc600uqO6ps = (_, _1, index, value)=>console.log(value, index); @@ -67,28 +69,29 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; -const i_Mc600uqO6ps = ()=>import("./test.tsx_test_component_div_div_q_e_click_Mc600uqO6ps"); +// +const _qrl_test_component_div_div_q_e_click_Mc600uqO6ps = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_div_div_q_e_click_Mc600uqO6ps"), "test_component_div_div_q_e_click_Mc600uqO6ps"); +// export const test_component_LUXeXe0DQrg = ()=>{ const arr = useSignal([ 'a', 'b' ]); - const test_component_div_div_q_e_click_Mc600uqO6ps = /*#__PURE__*/ qrl(i_Mc600uqO6ps, "test_component_div_div_q_e_click_Mc600uqO6ps"); return /*#__PURE__*/ _jsxSorted("div", null, null, arr.value.map((val, i)=>{ const index = i + 1; const value = val.toUpperCase(); return /*#__PURE__*/ _jsxSorted("div", { - "q-e:click": test_component_div_div_q_e_click_Mc600uqO6ps, + "q-e:click": _qrl_test_component_div_div_q_e_click_Mc600uqO6ps, "q:ps": [ index, value ] - }, null, val, 0, "u6_0"); + }, null, val, 4, "u6_0"); }), 1, "u6_1"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;0CAG0B;IACxB,MAAM,MAAM,UAAU;QAAC;QAAK;KAAI;;IAChC,qBACE,WAAC,mBACE,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;QACnB,MAAM,QAAQ,IAAE;QACtB,MAAM,QAAQ,IAAI,WAAW;QACvB,qBAAO,WAAC;YAAI,WAAQ;;gBAFd;gBACN;;iBACwD;IAC1D;AAGN\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;0CAG0B;IACxB,MAAM,MAAM,UAAU;QAAC;QAAK;KAAI;IAChC,qBACE,WAAC,mBACE,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;QACnB,MAAM,QAAQ,IAAE;QACtB,MAAM,QAAQ,IAAI,WAAW;QACvB,qBAAO,WAAC;YAAI,WAAQ;;gBAFd;gBACN;;iBACwD;IAC1D;AAGN\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_multiple_event_handlers.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_multiple_event_handlers.snap index 305d0125a50..04fb5b580e2 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_multiple_event_handlers.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_multiple_event_handlers.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5096 +assertion_line: 5160 expression: output --- ==INPUT== @@ -22,36 +22,37 @@ const Foo = component$(function() { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_HTDRsvUbLiE = ()=>import("./test.tsx_Foo_component_HTDRsvUbLiE"); -/*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_HTDRsvUbLiE, "Foo_component_HTDRsvUbLiE")); +// +const _qrl_Foo_component_HTDRsvUbLiE = /*#__PURE__*/ qrl(()=>import("./test.tsx_Foo_component_HTDRsvUbLiE"), "Foo_component_HTDRsvUbLiE"); +// +/*#__PURE__*/ componentQrl(_qrl_Foo_component_HTDRsvUbLiE); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;cAEY\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;cAEY\"}") ============================= test.tsx_Foo_component_HTDRsvUbLiE.js (ENTRY POINT)== import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; -const i_P9F6Osn3X6Y = ()=>import("./test.tsx_Foo_component_div_div_q_e_mouseover_P9F6Osn3X6Y"); -const i_PjMbeUzoAMk = ()=>import("./test.tsx_Foo_component_div_div_p_q_e_click_PjMbeUzoAMk"); -const i_vKrX4PmH2aM = ()=>import("./test.tsx_Foo_component_div_div_q_e_click_vKrX4PmH2aM"); +// +const _qrl_Foo_component_div_div_p_q_e_click_PjMbeUzoAMk = /*#__PURE__*/ qrl(()=>import("./test.tsx_Foo_component_div_div_p_q_e_click_PjMbeUzoAMk"), "Foo_component_div_div_p_q_e_click_PjMbeUzoAMk"); +const _qrl_Foo_component_div_div_q_e_click_vKrX4PmH2aM = /*#__PURE__*/ qrl(()=>import("./test.tsx_Foo_component_div_div_q_e_click_vKrX4PmH2aM"), "Foo_component_div_div_q_e_click_vKrX4PmH2aM"); +const _qrl_Foo_component_div_div_q_e_mouseover_P9F6Osn3X6Y = /*#__PURE__*/ qrl(()=>import("./test.tsx_Foo_component_div_div_q_e_mouseover_P9F6Osn3X6Y"), "Foo_component_div_div_q_e_mouseover_P9F6Osn3X6Y"); +// export const Foo_component_HTDRsvUbLiE = function() { const data = useSignal([]); - const Foo_component_div_div_q_e_click_vKrX4PmH2aM = /*#__PURE__*/ qrl(i_vKrX4PmH2aM, "Foo_component_div_div_q_e_click_vKrX4PmH2aM"); - const Foo_component_div_div_q_e_mouseover_P9F6Osn3X6Y = /*#__PURE__*/ qrl(i_P9F6Osn3X6Y, "Foo_component_div_div_q_e_mouseover_P9F6Osn3X6Y"); - const Foo_component_div_div_p_q_e_click_PjMbeUzoAMk = /*#__PURE__*/ qrl(i_PjMbeUzoAMk, "Foo_component_div_div_p_q_e_click_PjMbeUzoAMk"); return /*#__PURE__*/ _jsxSorted("div", null, null, data.value.map((row)=>/*#__PURE__*/ _jsxSorted("div", { - "q-e:click": Foo_component_div_div_q_e_click_vKrX4PmH2aM, - "q-e:mouseover": Foo_component_div_div_q_e_mouseover_P9F6Osn3X6Y, + "q-e:click": _qrl_Foo_component_div_div_q_e_click_vKrX4PmH2aM, + "q-e:mouseover": _qrl_Foo_component_div_div_q_e_mouseover_P9F6Osn3X6Y, "q:p": row }, null, /*#__PURE__*/ _jsxSorted("p", { - "q-e:click": Foo_component_div_div_p_q_e_click_PjMbeUzoAMk, + "q-e:click": _qrl_Foo_component_div_div_p_q_e_click_PjMbeUzoAMk, "q:p": row - }, null, item.value.id, 0, null), 0, "u6_0")), 1, "u6_1"); + }, null, item.value.id, 4, null), 4, "u6_0")), 1, "u6_1"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;yCAEuB;IACrB,MAAM,OAAO,UAAyB,EAAE;;;;IACxC,qBAAO,WAAC,mBACR,KAAK,KAAK,CAAC,GAAG,CAAC,CAAA,oBACd,WAAC;YAAI,WAAQ;YAAmC,eAAY;mBAD9C;+BAEf,WAAC;YAAE,WAAQ;mBAFI;iBAE0C,KAAK,KAAK,CAAC,EAAE;AAIxE\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;;yCAEuB;IACrB,MAAM,OAAO,UAAyB,EAAE;IACxC,qBAAO,WAAC,mBACR,KAAK,KAAK,CAAC,GAAG,CAAC,CAAA,oBACd,WAAC;YAAI,WAAQ;YAAmC,eAAY;mBAD9C;+BAEf,WAAC;YAAE,WAAQ;mBAFI;iBAE0C,KAAK,KAAK,CAAC,EAAE;AAIxE\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_multiple_event_handlers_case2.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_multiple_event_handlers_case2.snap index a2aa1dea029..15ffbbc6a1c 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_multiple_event_handlers_case2.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_multiple_event_handlers_case2.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5119 +assertion_line: 5183 expression: output --- ==INPUT== @@ -22,39 +22,40 @@ const Foo = component$(function() { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_HTDRsvUbLiE = ()=>import("./test.tsx_Foo_component_HTDRsvUbLiE"); -/*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_HTDRsvUbLiE, "Foo_component_HTDRsvUbLiE")); +// +const _qrl_Foo_component_HTDRsvUbLiE = /*#__PURE__*/ qrl(()=>import("./test.tsx_Foo_component_HTDRsvUbLiE"), "Foo_component_HTDRsvUbLiE"); +// +/*#__PURE__*/ componentQrl(_qrl_Foo_component_HTDRsvUbLiE); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;cAEY\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;cAEY\"}") ============================= test.tsx_Foo_component_HTDRsvUbLiE.js (ENTRY POINT)== import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; -const i_P9F6Osn3X6Y = ()=>import("./test.tsx_Foo_component_div_div_q_e_mouseover_P9F6Osn3X6Y"); -const i_PjMbeUzoAMk = ()=>import("./test.tsx_Foo_component_div_div_p_q_e_click_PjMbeUzoAMk"); -const i_vKrX4PmH2aM = ()=>import("./test.tsx_Foo_component_div_div_q_e_click_vKrX4PmH2aM"); +// +const _qrl_Foo_component_div_div_p_q_e_click_PjMbeUzoAMk = /*#__PURE__*/ qrl(()=>import("./test.tsx_Foo_component_div_div_p_q_e_click_PjMbeUzoAMk"), "Foo_component_div_div_p_q_e_click_PjMbeUzoAMk"); +const _qrl_Foo_component_div_div_q_e_click_vKrX4PmH2aM = /*#__PURE__*/ qrl(()=>import("./test.tsx_Foo_component_div_div_q_e_click_vKrX4PmH2aM"), "Foo_component_div_div_q_e_click_vKrX4PmH2aM"); +const _qrl_Foo_component_div_div_q_e_mouseover_P9F6Osn3X6Y = /*#__PURE__*/ qrl(()=>import("./test.tsx_Foo_component_div_div_q_e_mouseover_P9F6Osn3X6Y"), "Foo_component_div_div_q_e_mouseover_P9F6Osn3X6Y"); +// export const Foo_component_HTDRsvUbLiE = function() { const data = useSignal([]); - const Foo_component_div_div_q_e_click_vKrX4PmH2aM = /*#__PURE__*/ qrl(i_vKrX4PmH2aM, "Foo_component_div_div_q_e_click_vKrX4PmH2aM"); - const Foo_component_div_div_q_e_mouseover_P9F6Osn3X6Y = /*#__PURE__*/ qrl(i_P9F6Osn3X6Y, "Foo_component_div_div_q_e_mouseover_P9F6Osn3X6Y"); - const Foo_component_div_div_p_q_e_click_PjMbeUzoAMk = /*#__PURE__*/ qrl(i_PjMbeUzoAMk, "Foo_component_div_div_p_q_e_click_PjMbeUzoAMk"); return /*#__PURE__*/ _jsxSorted("div", null, null, data.value.map((row, idx)=>/*#__PURE__*/ _jsxSorted("div", { - "q-e:click": Foo_component_div_div_q_e_click_vKrX4PmH2aM, - "q-e:mouseover": Foo_component_div_div_q_e_mouseover_P9F6Osn3X6Y, + "q-e:click": _qrl_Foo_component_div_div_q_e_click_vKrX4PmH2aM, + "q-e:mouseover": _qrl_Foo_component_div_div_q_e_mouseover_P9F6Osn3X6Y, "q:ps": [ row, idx ] }, null, /*#__PURE__*/ _jsxSorted("p", { - "q-e:click": Foo_component_div_div_p_q_e_click_PjMbeUzoAMk, + "q-e:click": _qrl_Foo_component_div_div_p_q_e_click_PjMbeUzoAMk, "q:p": row - }, null, item.value.id, 0, null), 0, "u6_0")), 1, "u6_1"); + }, null, item.value.id, 4, null), 4, "u6_0")), 1, "u6_1"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;yCAEuB;IACrB,MAAM,OAAO,UAAyB,EAAE;;;;IACxC,qBAAO,WAAC,mBACR,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,oBACpB,WAAC;YAAI,WAAQ;YAAwC,eAAY;;gBADlD;gBAAK;;+BAErB,WAAC;YAAE,WAAQ;mBAFK;iBAEyC,KAAK,KAAK,CAAC,EAAE;AAIxE\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;;yCAEuB;IACrB,MAAM,OAAO,UAAyB,EAAE;IACxC,qBAAO,WAAC,mBACR,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,oBACpB,WAAC;YAAI,WAAQ;YAAwC,eAAY;;gBADlD;gBAAK;;+BAErB,WAAC;YAAE,WAAQ;mBAFK;iBAEyC,KAAK,KAAK,CAAC,EAAE;AAIxE\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_nested_loops.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_nested_loops.snap index aae17d2d646..8d443e9bc76 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_nested_loops.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_nested_loops.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5097 +assertion_line: 5134 expression: output --- ==INPUT== @@ -25,31 +25,35 @@ const Foo = component$(function() { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_HTDRsvUbLiE = ()=>import("./test.tsx_Foo_component_HTDRsvUbLiE"); -/*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_HTDRsvUbLiE, "Foo_component_HTDRsvUbLiE")); +// +const _qrl_Foo_component_HTDRsvUbLiE = /*#__PURE__*/ qrl(()=>import("./test.tsx_Foo_component_HTDRsvUbLiE"), "Foo_component_HTDRsvUbLiE"); +// +/*#__PURE__*/ componentQrl(_qrl_Foo_component_HTDRsvUbLiE); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;cAEY\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;cAEY\"}") ============================= test.tsx_Foo_component_HTDRsvUbLiE.js (ENTRY POINT)== import { _fnSignal } from "@qwik.dev/core"; import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; +// const _hf0 = (p0)=>p0.value.id; const _hf0_str = "p0.value.id"; +// +const _qrl_Foo_component_div_div_q_e_click_vKrX4PmH2aM = /*#__PURE__*/ qrl(()=>import("./test.tsx_Foo_component_div_div_q_e_click_vKrX4PmH2aM"), "Foo_component_div_div_q_e_click_vKrX4PmH2aM"); const i_PjMbeUzoAMk = ()=>import("./test.tsx_Foo_component_div_div_p_q_e_click_PjMbeUzoAMk"); -const i_vKrX4PmH2aM = ()=>import("./test.tsx_Foo_component_div_div_q_e_click_vKrX4PmH2aM"); +// export const Foo_component_HTDRsvUbLiE = function() { const data = useSignal([]); const data2 = useSignal([]); - const Foo_component_div_div_q_e_click_vKrX4PmH2aM = /*#__PURE__*/ qrl(i_vKrX4PmH2aM, "Foo_component_div_div_q_e_click_vKrX4PmH2aM"); return /*#__PURE__*/ _jsxSorted("div", null, null, data.value.map((row)=>{ const Foo_component_div_div_p_q_e_click_PjMbeUzoAMk = /*#__PURE__*/ qrl(i_PjMbeUzoAMk, "Foo_component_div_div_p_q_e_click_PjMbeUzoAMk", [ row ]); return /*#__PURE__*/ _jsxSorted("div", { - "q-e:click": Foo_component_div_div_q_e_click_vKrX4PmH2aM, + "q-e:click": _qrl_Foo_component_div_div_q_e_click_vKrX4PmH2aM, "q:p": row }, null, data2.value.map((item)=>/*#__PURE__*/ _jsxSorted("p", { "q-e:click": Foo_component_div_div_p_q_e_click_PjMbeUzoAMk, @@ -62,12 +66,12 @@ export const Foo_component_HTDRsvUbLiE = function() { _fnSignal(_hf0, [ item ], _hf0_str) - ], 0, "u6_0")), 0, "u6_1"); + ], 4, "u6_0")), 4, "u6_1"); }), 1, "u6_2"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;mBASkE,GAAI,KAAK,CAAC,EAAE;;;;yCAPvD;IACrB,MAAM,OAAO,UAAyB,EAAE;IACxC,MAAM,QAAQ,UAAyB,EAAE;;IACzC,qBAAO,WAAC,mBACR,KAAK,KAAK,CAAC,GAAG,CAAC,CAAA;;;;6BACd,WAAC;YAAI,WAAQ;mBADC;iBAEd,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA,qBACf,WAAC;gBAAE,WAAQ;uBADI;;;;;gBAC4D;;;;;;AAK/E\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;mBASkE,GAAI,KAAK,CAAC,EAAE;;;;;;yCAPvD;IACrB,MAAM,OAAO,UAAyB,EAAE;IACxC,MAAM,QAAQ,UAAyB,EAAE;IACzC,qBAAO,WAAC,mBACR,KAAK,KAAK,CAAC,GAAG,CAAC,CAAA;;;;6BACd,WAAC;YAAI,WAAQ;mBADC;iBAEd,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA,qBACf,WAAC;gBAAE,WAAQ;uBADI;;;;;gBAC4D;;;;;;AAK/E\"}") /* { "origin": "test.tsx", @@ -122,13 +126,14 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma ============================= test.tsx_Foo_component_div_div_p_q_e_click_PjMbeUzoAMk.js (ENTRY POINT)== import { _captures } from "@qwik.dev/core"; +// export const Foo_component_div_div_p_q_e_click_PjMbeUzoAMk = (_, _1, item)=>{ const row = _captures[0]; return console.log(row.value.id, item.value.id); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";6DASiB,QADE;;WACI,QAAQ,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,EAAE\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;6DASiB,QADE;;WACI,QAAQ,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,EAAE\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_nested_loops_handler_captures_only_inner_scope.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_nested_loops_handler_captures_only_inner_scope.snap index 454c580672b..97631dfc9a4 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_nested_loops_handler_captures_only_inner_scope.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_nested_loops_handler_captures_only_inner_scope.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5591 +assertion_line: 5651 expression: output --- ==INPUT== @@ -32,11 +32,13 @@ export default component$(() => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGA,6BAAe,6EAkBZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGA,6BAAe,8CAkBZ\"}") ============================= test.tsx_test_component_div_div_span_button_q_e_click_oBFNw2cK30o.js (ENTRY POINT)== export const test_component_div_div_span_button_q_e_click_oBFNw2cK30o = (_, _1, cellKey)=>console.log(cellKey); @@ -73,7 +75,9 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; -const i_oBFNw2cK30o = ()=>import("./test.tsx_test_component_div_div_span_button_q_e_click_oBFNw2cK30o"); +// +const _qrl_test_component_div_div_span_button_q_e_click_oBFNw2cK30o = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_div_div_span_button_q_e_click_oBFNw2cK30o"), "test_component_div_div_span_button_q_e_click_oBFNw2cK30o"); +// export const test_component_LUXeXe0DQrg = ()=>{ const matrix = useSignal([ [ @@ -85,18 +89,17 @@ export const test_component_LUXeXe0DQrg = ()=>{ 'd' ] ]); - const test_component_div_div_span_button_q_e_click_oBFNw2cK30o = /*#__PURE__*/ qrl(i_oBFNw2cK30o, "test_component_div_div_span_button_q_e_click_oBFNw2cK30o"); return /*#__PURE__*/ _jsxSorted("div", null, null, matrix.value.map((row, i)=>/*#__PURE__*/ _jsxSorted("div", null, null, row.map((cell, j)=>{ const cellKey = cell + '-' + j; return /*#__PURE__*/ _jsxSorted("span", null, null, /*#__PURE__*/ _jsxSorted("button", { - "q-e:click": test_component_div_div_span_button_q_e_click_oBFNw2cK30o, + "q-e:click": _qrl_test_component_div_div_span_button_q_e_click_oBFNw2cK30o, "q:p": cellKey - }, null, cell, 0, null), 1, j); + }, null, cell, 4, null), 1, j); }), 1, i)), 1, "u6_0"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;0CAG0B;IACxB,MAAM,SAAS,UAAU;QAAC;YAAC;YAAK;SAAI;QAAE;YAAC;YAAK;SAAI;KAAC;;IACjD,qBACE,WAAC,mBACE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,kBACtB,WAAC,mBACE,IAAI,GAAG,CAAC,CAAC,MAAM;YACd,MAAM,UAAU,OAAO,MAAM;YAC7B,qBACE,WAAC,kCACC,WAAC;gBAAO,WAAQ;uBAHd;qBAG6C,mBADtC;QAIf,OARQ;AAalB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;0CAG0B;IACxB,MAAM,SAAS,UAAU;QAAC;YAAC;YAAK;SAAI;QAAE;YAAC;YAAK;SAAI;KAAC;IACjD,qBACE,WAAC,mBACE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,kBACtB,WAAC,mBACE,IAAI,GAAG,CAAC,CAAC,MAAM;YACd,MAAM,UAAU,OAAO,MAAM;YAC7B,qBACE,WAAC,kCACC,WAAC;gBAAO,WAAQ;uBAHd;qBAG6C,mBADtC;QAIf,OARQ;AAalB\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_qrls_in_ternary_expression.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_qrls_in_ternary_expression.snap index db65776f84f..57f81d92ea2 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_qrls_in_ternary_expression.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_qrls_in_ternary_expression.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5170 +assertion_line: 5258 expression: output --- ==INPUT== @@ -31,14 +31,12 @@ export const FieldInput = component$(() => { ============================= test.tsx_FieldInput_component_input_q_e_focus_Sgf3MDWzexI.js (ENTRY POINT)== -import { _captures } from "@qwik.dev/core"; -export const FieldInput_component_input_q_e_focus_Sgf3MDWzexI = ()=>{ - const enabled = _captures[0]; +export const FieldInput_component_input_q_e_focus_Sgf3MDWzexI = (_, _1, enabled)=>{ enabled.value = true; }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";gEAiBY;;IACT,QAAQ,KAAK,GAAG\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"gEAiBY;IACT,QAAQ,KAAK,GAAG;AACjB\"}") /* { "origin": "test.tsx", @@ -52,12 +50,14 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma "parent": "FieldInput_component_V4XAtJSTRKg", "ctxKind": "eventHandler", "ctxName": "onFocus$", - "captures": true, + "captures": false, "loc": [ 324, 360 ], - "captureNames": [ + "paramNames": [ + "_", + "_1", "enabled" ] } @@ -66,35 +66,38 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_V4XAtJSTRKg = ()=>import("./test.tsx_FieldInput_component_V4XAtJSTRKg"); -export const FieldInput = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_V4XAtJSTRKg, "FieldInput_component_V4XAtJSTRKg")); +// +const _qrl_FieldInput_component_V4XAtJSTRKg = /*#__PURE__*/ qrl(()=>import("./test.tsx_FieldInput_component_V4XAtJSTRKg"), "FieldInput_component_V4XAtJSTRKg"); +// +export const FieldInput = /*#__PURE__*/ componentQrl(_qrl_FieldInput_component_V4XAtJSTRKg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGA,OAAO,MAAM,2BAAa,mFAmBvB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGA,OAAO,MAAM,2BAAa,oDAmBvB\"}") ============================= test.tsx_FieldInput_component_V4XAtJSTRKg.js (ENTRY POINT)== import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; -const i_Sgf3MDWzexI = ()=>import("./test.tsx_FieldInput_component_input_q_e_focus_Sgf3MDWzexI"); +// +const _qrl_FieldInput_component_input_q_e_focus_Sgf3MDWzexI = /*#__PURE__*/ qrl(()=>import("./test.tsx_FieldInput_component_input_q_e_focus_Sgf3MDWzexI"), "FieldInput_component_input_q_e_focus_Sgf3MDWzexI"); const i_wqR1xEjZjf4 = ()=>import("./test.tsx_FieldInput_component_input_q_e_input_wqR1xEjZjf4"); +// export const FieldInput_component_V4XAtJSTRKg = ()=>{ const enabled = useSignal(false); const input = useSignal(""); return /*#__PURE__*/ _jsxSorted("input", { "q-e:input": enabled.value ? /*#__PURE__*/ qrl(i_wqR1xEjZjf4, "FieldInput_component_input_q_e_input_wqR1xEjZjf4", [ input - ]) : undefined + ]) : undefined, + "q:p": enabled }, { id: "input", - "q-e:focus": /*#__PURE__*/ qrl(i_Sgf3MDWzexI, "FieldInput_component_input_q_e_focus_Sgf3MDWzexI", [ - enabled - ]) - }, null, 2, "u6_0"); + "q-e:focus": _qrl_FieldInput_component_input_q_e_focus_Sgf3MDWzexI + }, null, 6, "u6_0"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;gDAGqC;IACpC,MAAM,UAAU,UAAU;IAC1B,MAAM,QAAQ,UAAU;IAEvB,qBACG,WAAC;qBAGJ,QAAQ,KAAK;;aAIV;;QANH,IAAG;QAQH,WAAQ;;;;AAKV\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;gDAGqC;IACpC,MAAM,UAAU,UAAU;IAC1B,MAAM,QAAQ,UAAU;IAEvB,qBACG,WAAC;qBAGJ,QAAQ,KAAK;;aAIV;;;QANH,IAAG;QAQH,WAAQ;;AAKV\"}") /* { "origin": "test.tsx", @@ -118,13 +121,14 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma ============================= test.tsx_FieldInput_component_input_q_e_input_wqR1xEjZjf4.js (ENTRY POINT)== import { _captures } from "@qwik.dev/core"; +// export const FieldInput_component_input_q_e_input_wqR1xEjZjf4 = (ev, el)=>{ const input = _captures[0]; input.value = el.value; }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";gEAYO,CAAC,IAAI;;IACR,MAAM,KAAK,GAAG,GAAG,KAAK\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;gEAYO,CAAC,IAAI;;IACR,MAAM,KAAK,GAAG,GAAG,KAAK\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_same_element_one_handler_with_captures_one_without.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_same_element_one_handler_with_captures_one_without.snap index 5ae323f9440..38047991fe4 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_same_element_one_handler_with_captures_one_without.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_same_element_one_handler_with_captures_one_without.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5559 +assertion_line: 5619 expression: output --- ==INPUT== @@ -31,11 +31,13 @@ export default component$(() => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGA,6BAAe,6EAiBZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGA,6BAAe,8CAiBZ\"}") ============================= test.tsx_test_component_div_div_q_e_keydown_a6RR59yQlXM.js (ENTRY POINT)== export const test_component_div_div_q_e_keydown_a6RR59yQlXM = (_, _1)=>console.log('no capture'); @@ -102,28 +104,28 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; -const i_Mc600uqO6ps = ()=>import("./test.tsx_test_component_div_div_q_e_click_Mc600uqO6ps"); -const i_a6RR59yQlXM = ()=>import("./test.tsx_test_component_div_div_q_e_keydown_a6RR59yQlXM"); +// +const _qrl_test_component_div_div_q_e_click_Mc600uqO6ps = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_div_div_q_e_click_Mc600uqO6ps"), "test_component_div_div_q_e_click_Mc600uqO6ps"); +const _qrl_test_component_div_div_q_e_keydown_a6RR59yQlXM = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_div_div_q_e_keydown_a6RR59yQlXM"), "test_component_div_div_q_e_keydown_a6RR59yQlXM"); +// export const test_component_LUXeXe0DQrg = ()=>{ const arr = useSignal([ 'a', 'b' ]); - const test_component_div_div_q_e_click_Mc600uqO6ps = /*#__PURE__*/ qrl(i_Mc600uqO6ps, "test_component_div_div_q_e_click_Mc600uqO6ps"); - const test_component_div_div_q_e_keydown_a6RR59yQlXM = /*#__PURE__*/ qrl(i_a6RR59yQlXM, "test_component_div_div_q_e_keydown_a6RR59yQlXM"); return /*#__PURE__*/ _jsxSorted("div", null, null, arr.value.map((val, i)=>{ const index = i + 1; return /*#__PURE__*/ _jsxSorted("div", { - "q-e:click": test_component_div_div_q_e_click_Mc600uqO6ps, + "q-e:click": _qrl_test_component_div_div_q_e_click_Mc600uqO6ps, "q:p": index }, { - "q-e:keydown": test_component_div_div_q_e_keydown_a6RR59yQlXM - }, val, 0, "u6_0"); + "q-e:keydown": _qrl_test_component_div_div_q_e_keydown_a6RR59yQlXM + }, val, 4, "u6_0"); }), 1, "u6_1"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;0CAG0B;IACxB,MAAM,MAAM,UAAU;QAAC;QAAK;KAAI;;;IAChC,qBACE,WAAC,mBACE,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;QACnB,MAAM,QAAQ,IAAI;QAClB,qBACE,WAAC;YACC,WAAQ;mBAHN;;YAIF,aAAU;WAET;IAGP;AAGN\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;0CAG0B;IACxB,MAAM,MAAM,UAAU;QAAC;QAAK;KAAI;IAChC,qBACE,WAAC,mBACE,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;QACnB,MAAM,QAAQ,IAAI;QAClB,qBACE,WAAC;YACC,WAAQ;mBAHN;;YAIF,aAAU;WAET;IAGP;AAGN\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_three_nested_loops_handler_captures_outer_only.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_three_nested_loops_handler_captures_outer_only.snap index a0b67efcd8a..f25acc9ca25 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_three_nested_loops_handler_captures_outer_only.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_three_nested_loops_handler_captures_outer_only.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5624 +assertion_line: 5684 expression: output --- ==INPUT== @@ -39,21 +39,24 @@ export default component$(() => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGA,6BAAe,6EAyBZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGA,6BAAe,8CAyBZ\"}") ============================= test.tsx_test_component_div_div_div_button_q_e_click_7fyCCEiYKFo.js (ENTRY POINT)== import { _captures } from "@qwik.dev/core"; +// export const test_component_div_div_div_button_q_e_click_7fyCCEiYKFo = ()=>{ const planeId = _captures[0]; return console.log(planeId); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";uEAiB6C;;WAAM,QAAQ,GAAG,CAAC\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;uEAiB6C;;WAAM,QAAQ,GAAG,CAAC\"}") /* { "origin": "test.tsx", @@ -82,7 +85,9 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; +// const i_7fyCCEiYKFo = ()=>import("./test.tsx_test_component_div_div_div_button_q_e_click_7fyCCEiYKFo"); +// export const test_component_LUXeXe0DQrg = ()=>{ const data = useSignal([ [ @@ -118,7 +123,7 @@ export const test_component_LUXeXe0DQrg = ()=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;0CAG0B;IACxB,MAAM,OAAO,UAAU;QACrB;YAAC;gBAAC;gBAAK;aAAI;YAAE;gBAAC;gBAAK;aAAI;SAAC;QACxB;YAAC;gBAAC;gBAAK;aAAI;YAAE;gBAAC;gBAAK;aAAI;SAAC;KACzB;IACD,qBACE,WAAC,mBACE,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO;QACtB,MAAM,UAAU,MAAM;;;;QACtB,qBACE,WAAC,mBACE,MAAM,GAAG,CAAC,CAAC,KAAK,mBACf,WAAC,mBACE,IAAI,GAAG,CAAC,CAAC,MAAM,mBACd,WAAC;oBAAgB,WAAQ;yBACtB,SADU,SAFP,SAFJ;IAYd;AAGN\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;0CAG0B;IACxB,MAAM,OAAO,UAAU;QACrB;YAAC;gBAAC;gBAAK;aAAI;YAAE;gBAAC;gBAAK;aAAI;SAAC;QACxB;YAAC;gBAAC;gBAAK;aAAI;YAAE;gBAAC;gBAAK;aAAI;SAAC;KACzB;IACD,qBACE,WAAC,mBACE,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO;QACtB,MAAM,UAAU,MAAM;;;;QACtB,qBACE,WAAC,mBACE,MAAM,GAAG,CAAC,CAAC,KAAK,mBACf,WAAC,mBACE,IAAI,GAAG,CAAC,CAAC,MAAM,mBACd,WAAC;oBAAgB,WAAQ;yBACtB,SADU,SAFP,SAFJ;IAYd;AAGN\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_two_handlers_capturing_different_block_scope_in_loop.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_two_handlers_capturing_different_block_scope_in_loop.snap index 6b09e1e5523..46602ba0615 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_two_handlers_capturing_different_block_scope_in_loop.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_transform_two_handlers_capturing_different_block_scope_in_loop.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 5490 +assertion_line: 5550 expression: output --- ==INPUT== @@ -30,11 +30,13 @@ export default component$(() => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGA,6BAAe,6EAgBZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGA,6BAAe,8CAgBZ\"}") ============================= test.tsx_test_component_div_div_button_q_e_click_hCFE1Zqizzw.js (ENTRY POINT)== export const test_component_div_div_button_q_e_click_hCFE1Zqizzw = (_, _1, index)=>console.log(index); @@ -102,33 +104,33 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; -const i_JMCQrlWndWA = ()=>import("./test.tsx_test_component_div_div_span_q_e_keydown_JMCQrlWndWA"); -const i_hCFE1Zqizzw = ()=>import("./test.tsx_test_component_div_div_button_q_e_click_hCFE1Zqizzw"); +// +const _qrl_test_component_div_div_button_q_e_click_hCFE1Zqizzw = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_div_div_button_q_e_click_hCFE1Zqizzw"), "test_component_div_div_button_q_e_click_hCFE1Zqizzw"); +const _qrl_test_component_div_div_span_q_e_keydown_JMCQrlWndWA = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_div_div_span_q_e_keydown_JMCQrlWndWA"), "test_component_div_div_span_q_e_keydown_JMCQrlWndWA"); +// export const test_component_LUXeXe0DQrg = ()=>{ const arr = useSignal([ 'a', 'b' ]); - const test_component_div_div_button_q_e_click_hCFE1Zqizzw = /*#__PURE__*/ qrl(i_hCFE1Zqizzw, "test_component_div_div_button_q_e_click_hCFE1Zqizzw"); - const test_component_div_div_span_q_e_keydown_JMCQrlWndWA = /*#__PURE__*/ qrl(i_JMCQrlWndWA, "test_component_div_div_span_q_e_keydown_JMCQrlWndWA"); return /*#__PURE__*/ _jsxSorted("div", null, null, arr.value.map((val, i)=>{ const index = i + 1; const label = val.toUpperCase(); return /*#__PURE__*/ _jsxSorted("div", null, null, [ /*#__PURE__*/ _jsxSorted("button", { - "q-e:click": test_component_div_div_button_q_e_click_hCFE1Zqizzw, + "q-e:click": _qrl_test_component_div_div_button_q_e_click_hCFE1Zqizzw, "q:p": index - }, null, val, 0, null), + }, null, val, 4, null), /*#__PURE__*/ _jsxSorted("span", { - "q-e:keydown": test_component_div_div_span_q_e_keydown_JMCQrlWndWA, + "q-e:keydown": _qrl_test_component_div_div_span_q_e_keydown_JMCQrlWndWA, "q:p": label - }, null, label, 0, null) + }, null, label, 4, null) ], 1, "u6_0"); }), 1, "u6_1"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;0CAG0B;IACxB,MAAM,MAAM,UAAU;QAAC;QAAK;KAAI;;;IAChC,qBACE,WAAC,mBACE,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;QACnB,MAAM,QAAQ,IAAI;QAClB,MAAM,QAAQ,IAAI,WAAW;QAC7B,qBACE,WAAC;0BACC,WAAC;gBAAO,WAAQ;uBAJd;qBAI2C;0BAC7C,WAAC;gBAAK,aAAU;uBAJd;qBAI2C;;IAGnD;AAGN\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;0CAG0B;IACxB,MAAM,MAAM,UAAU;QAAC;QAAK;KAAI;IAChC,qBACE,WAAC,mBACE,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;QACnB,MAAM,QAAQ,IAAI;QAClB,MAAM,QAAQ,IAAI,WAAW;QAC7B,qBACE,WAAC;0BACC,WAAC;gBAAO,WAAQ;uBAJd;qBAI2C;0BAC7C,WAAC;gBAAK,aAAU;uBAJd;qBAI2C;;IAGnD;AAGN\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_inner_inline_component_prop.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_inner_inline_component_prop.snap index f06700c3967..e92b72450da 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_inner_inline_component_prop.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_inner_inline_component_prop.snap @@ -1,8 +1,7 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4088 +assertion_line: 4126 expression: output -snapshot_kind: text --- ==INPUT== @@ -30,17 +29,20 @@ export default component$((props: { id: number }) => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAEA,6BAAe,6EAgBR\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAEA,6BAAe,8CAgBR\"}") ============================= test.tsx_test_component_LUXeXe0DQrg.js (ENTRY POINT)== import { Fragment as _Fragment } from "@qwik.dev/core/jsx-runtime"; import { _jsxSorted } from "@qwik.dev/core"; import { _wrapProp } from "@qwik.dev/core"; import { useStore } from "@qwik.dev/core"; +// export const test_component_LUXeXe0DQrg = (props)=>{ const renders = useStore({ count: 0 @@ -62,7 +64,7 @@ export const test_component_LUXeXe0DQrg = (props)=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;0CAE0B,CAAC;IACrB,MAAM,UAAU,SACd;QACE,OAAO;IACT,GACA;QAAE,UAAU;IAAM;IAEpB,QAAQ,KAAK;IACb,MAAM,YAAY,QAAQ,KAAK,GAAG;IAClC,MAAM,KAAK,CAAC,sBAAe,WAAC;YAAI;sBAAK;;IACrC,qBACE;sBACE,WAAC;YAAG,EAAE,YAAE;;QACP;;AAGP\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;0CAE0B,CAAC;IACrB,MAAM,UAAU,SACd;QACE,OAAO;IACT,GACA;QAAE,UAAU;IAAM;IAEpB,QAAQ,KAAK;IACb,MAAM,YAAY,QAAQ,KAAK,GAAG;IAClC,MAAM,KAAK,CAAC,sBAAe,WAAC;YAAI;sBAAK;;IACrC,qBACE;sBACE,WAAC;YAAG,EAAE,YAAE;;QACP;;AAGP\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_logical_expression_in_template.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_logical_expression_in_template.snap index 41f13b0a144..9eb2459b3ba 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_logical_expression_in_template.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_logical_expression_in_template.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4383 +assertion_line: 4420 expression: output --- ==INPUT== @@ -22,16 +22,19 @@ expression: output import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGE,6BAAe,6EAQZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGE,6BAAe,8CAQZ\"}") ============================= test.tsx_test_component_LUXeXe0DQrg.js (ENTRY POINT)== import { _fnSignal } from "@qwik.dev/core"; import { _jsxSorted } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; +// const _hf0 = (p0, p1)=>(p0 || p1).value; const _hf0_str = "(p0||p1).value"; export const test_component_LUXeXe0DQrg = ()=>{ @@ -44,7 +47,7 @@ export const test_component_LUXeXe0DQrg = ()=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;uBAQM,CAAC,QAAe,EAAE,KAAK;;0CALD;IACzB,MAAM,QAAQ,UAAU;IACxB,MAAM,SAAS,UAAU;IACzB,qBACC,WAAC;;;;AAIH\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;uBAQM,CAAC,QAAe,EAAE,KAAK;;0CALD;IACzB,MAAM,QAAQ,UAAU;IACxB,MAAM,SAAS,UAAU;IACzB,qBACC,WAAC;;;;AAIH\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_object_with_fn_signal.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_object_with_fn_signal.snap index 3ef92d41df0..eee537b2cb0 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_object_with_fn_signal.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_object_with_fn_signal.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4177 +assertion_line: 4214 expression: output --- ==INPUT== @@ -21,16 +21,19 @@ export default component$((props) => { import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAEA,6BAAe,6EAQZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAEA,6BAAe,8CAQZ\"}") ============================= test.tsx_test_component_LUXeXe0DQrg.js (ENTRY POINT)== import { Fragment as _Fragment } from "@qwik.dev/core/jsx-runtime"; import { _fnSignal } from "@qwik.dev/core"; import { _jsxSorted } from "@qwik.dev/core"; +// const _hf0 = (p0)=>p0.myobj.id + "test"; const _hf0_str = 'p0.myobj.id+"test"'; export const test_component_LUXeXe0DQrg = (props)=>{ @@ -45,7 +48,7 @@ export const test_component_LUXeXe0DQrg = (props)=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;mBAOyD,GAAM,KAAK,CAAC,EAAE,GAAG;;0CALhD,CAAC;IAC1B,yCAAyC;IACzC,MAAM,OAAO,MAAM,SAAS,CAAC,KAAK;IAClC,qBACC,gDACC,WAAC;QAAI,gBAAc,OAAO,OAAO,IAAI;QAAM,WAAS;;;;AAGvD\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;mBAOyD,GAAM,KAAK,CAAC,EAAE,GAAG;;0CALhD,CAAC;IAC1B,yCAAyC;IACzC,MAAM,OAAO,MAAM,SAAS,CAAC,KAAK;IAClC,qBACC,gDACC,WAAC;QAAI,gBAAc,OAAO,OAAO,IAAI;QAAM,WAAS;;;;AAGvD\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_prop_from_destructured_array.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_prop_from_destructured_array.snap index 0cdf9de541d..0daf0cd2288 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_prop_from_destructured_array.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_prop_from_destructured_array.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4119 +assertion_line: 4156 expression: output --- ==INPUT== @@ -57,23 +57,23 @@ expression: output import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_9metqqaxlN8 = ()=>import("./test.tsx_Input_component_9metqqaxlN8"); -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export const Input = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_9metqqaxlN8, "Input_component_9metqqaxlN8")); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_Input_component_9metqqaxlN8 = /*#__PURE__*/ qrl(()=>import("./test.tsx_Input_component_9metqqaxlN8"), "Input_component_9metqqaxlN8"); +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export const Input = /*#__PURE__*/ componentQrl(_qrl_Input_component_9metqqaxlN8); +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;AAIE,OAAO,MAAM,sBAAQ,8EAanB;AAEF,6BAAe,6EA2BZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;AAIE,OAAO,MAAM,sBAAQ,+CAanB;AAEF,6BAAe,8CA2BZ\"}") ============================= test.tsx_test_component_div_button_q_e_click_2TvarUvNGmU.js (ENTRY POINT)== -import { _captures } from "@qwik.dev/core"; -export const test_component_div_button_q_e_click_2TvarUvNGmU = ()=>{ - const store = _captures[0]; +export const test_component_div_button_q_e_click_2TvarUvNGmU = (_, _1, store)=>{ store.errors.test = store.errors.test ? undefined : 'ERROR TEST'; }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";+DA8BuB;;IACjB,MAAM,MAAM,CAAC,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,GAAG,YAAY\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"+DA8BuB;IACjB,MAAM,MAAM,CAAC,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,GAAG,YAAY;AACrD\"}") /* { "origin": "test.tsx", @@ -87,12 +87,14 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma "parent": "test_component_LUXeXe0DQrg", "ctxKind": "eventHandler", "ctxName": "onClick$", - "captures": true, + "captures": false, "loc": [ 835, 921 ], - "captureNames": [ + "paramNames": [ + "_", + "_1", "store" ] } @@ -106,11 +108,14 @@ import { qrl } from "@qwik.dev/core"; import { useForm } from "./some-file.ts"; import { useForm2 } from "./some-file.ts"; import { useStore } from "@qwik.dev/core"; +// const _hf0 = (p0)=>p0.errors.test; const _hf0_str = "p0.errors.test"; const _hf1 = (p0)=>p0.store5.errors.test; const _hf1_str = "p0.store5.errors.test"; -const i_2TvarUvNGmU = ()=>import("./test.tsx_test_component_div_button_q_e_click_2TvarUvNGmU"); +// +const _qrl_test_component_div_button_q_e_click_2TvarUvNGmU = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_div_button_q_e_click_2TvarUvNGmU"), "test_component_div_button_q_e_click_2TvarUvNGmU"); +// export const test_component_LUXeXe0DQrg = ()=>{ const [store, math] = [ useStore({ @@ -140,11 +145,11 @@ export const test_component_LUXeXe0DQrg = ()=>{ const [store4] = useForm(); const form2 = useForm2(); return /*#__PURE__*/ _jsxSorted("div", null, null, [ - /*#__PURE__*/ _jsxSorted("button", null, { - "q-e:click": /*#__PURE__*/ qrl(i_2TvarUvNGmU, "test_component_div_button_q_e_click_2TvarUvNGmU", [ - store - ]) - }, "click", 3, null), + /*#__PURE__*/ _jsxSorted("button", { + "q:p": store + }, { + "q-e:click": _qrl_test_component_div_button_q_e_click_2TvarUvNGmU + }, "click", 7, null), /*#__PURE__*/ _jsxSorted(Input, { math: math, math2: math2, @@ -171,7 +176,7 @@ export const test_component_LUXeXe0DQrg = ()=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;mBAkCa,GAAM,MAAM,CAAC,IAAI;;mBAIhB,GAZJ,OAYW,MAAM,CAAC,IAAI;;;0CAnBJ;IACzB,MAAM,CAAC,OAAO,KAAK,GAAG;QAAC,SAAS;YAAC,QAAQ,CAAC;QAAC;QAAI,KAAK,MAAM;KAAG;IAC7D,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG;QAAC;YAAC,SAAS;gBAAC,QAAQ,CAAC;YAAC;SAAG;KAAC;IAC7C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;QAAE,QAAQ,SAAS;YAAC,QAAQ,CAAC;QAAC;QAAI,OAAO,KAAK,MAAM;IAAG;IACjF,MAAM,QAAQ;QAAC,KAAK,MAAM;KAAG;IAC7B,MAAM,EAAE,KAAK,EAAE,GAAG;QAAE,OAAO,KAAK,MAAM;IAAG;IACzC,MAAM,CAAC,OAAO,GAAG;IACjB,MAAM,QAAW;IAEjB,qBACC,WAAC;sBACA,WAAC;YAAO,WAAQ;;;WAEb;sBACH,WAAC;YAMA,MAAM;YACN,OAAO;YACP,OAAO;YACP,OAAO;;YARP,KAAK;;;YACL,MAAM;;;YACN,MAAM;;;YACN,MAAM;;;YACN,MAAM;;;;;AAQV\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;;mBAkCa,GAAM,MAAM,CAAC,IAAI;;mBAIhB,GAZJ,OAYW,MAAM,CAAC,IAAI;;;;;0CAnBJ;IACzB,MAAM,CAAC,OAAO,KAAK,GAAG;QAAC,SAAS;YAAC,QAAQ,CAAC;QAAC;QAAI,KAAK,MAAM;KAAG;IAC7D,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG;QAAC;YAAC,SAAS;gBAAC,QAAQ,CAAC;YAAC;SAAG;KAAC;IAC7C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;QAAE,QAAQ,SAAS;YAAC,QAAQ,CAAC;QAAC;QAAI,OAAO,KAAK,MAAM;IAAG;IACjF,MAAM,QAAQ;QAAC,KAAK,MAAM;KAAG;IAC7B,MAAM,EAAE,KAAK,EAAE,GAAG;QAAE,OAAO,KAAK,MAAM;IAAG;IACzC,MAAM,CAAC,OAAO,GAAG;IACjB,MAAM,QAAW;IAEjB,qBACC,WAAC;sBACA,WAAC;;;YAAO,WAAQ;WAEb;sBACH,WAAC;YAMA,MAAM;YACN,OAAO;YACP,OAAO;YACP,OAAO;;YARP,KAAK;;;YACL,MAAM;;;YACN,MAAM;;;YACN,MAAM;;;YACN,MAAM;;;;;AAQV\"}") /* { "origin": "test.tsx", @@ -195,6 +200,7 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma ============================= test.tsx_Input_component_useTask_Sbgs9Wtfkt0.js (ENTRY POINT)== import { _captures } from "@qwik.dev/core"; +// export const Input_component_useTask_Sbgs9Wtfkt0 = ({ track })=>{ const props = _captures[0]; track(()=>props.error); @@ -203,7 +209,7 @@ export const Input_component_useTask_Sbgs9Wtfkt0 = ({ track })=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";mDAMa,CAAC,EAAE,KAAK,EAAE;;IAClB,MAAM,IAAM,MAAM,KAAK;IACvB,MAAM,IAAM,MAAM,MAAM;IACxB,MAAM,IAAM,MAAM,MAAM\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;mDAMa,CAAC,EAAE,KAAK,EAAE;;IAClB,MAAM,IAAM,MAAM,KAAK;IACvB,MAAM,IAAM,MAAM,MAAM;IACxB,MAAM,IAAM,MAAM,MAAM\"}") /* { "origin": "test.tsx", @@ -236,7 +242,9 @@ import { Fragment as _Fragment } from "@qwik.dev/core/jsx-runtime"; import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useTaskQrl } from "@qwik.dev/core"; +// const i_Sbgs9Wtfkt0 = ()=>import("./test.tsx_Input_component_useTask_Sbgs9Wtfkt0"); +// export const Input_component_9metqqaxlN8 = (props)=>{ useTaskQrl(/*#__PURE__*/ qrl(i_Sbgs9Wtfkt0, "Input_component_useTask_Sbgs9Wtfkt0", [ props @@ -245,7 +253,7 @@ export const Input_component_9metqqaxlN8 = (props)=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;2CAKG,CAAC;IACA;;;IAMA,qBACC;AAGF\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;;2CAKG,CAAC;IACA;;;IAMA,qBACC;AAGF\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_store_expression.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_store_expression.snap index 11b641e4bce..227c11ae77a 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_store_expression.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_store_expression.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4300 +assertion_line: 4337 expression: output --- ==INPUT== @@ -32,8 +32,10 @@ expression: output import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); export const PANELS = [ 'Examples', 'Input', @@ -42,13 +44,14 @@ export const PANELS = [ ]; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGE,6BAAe,6EAiBZ;AACH,OAAO,MAAM,SAAwB;IAAC;IAAY;IAAS;IAAU;CAAU,CAAC\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGE,6BAAe,8CAiBZ;AACH,OAAO,MAAM,SAAwB;IAAC;IAAY;IAAS;IAAU;CAAU,CAAC\"}") ============================= test.tsx_test_component_LUXeXe0DQrg.js (ENTRY POINT)== import { PANELS } from "./test"; import { _fnSignal } from "@qwik.dev/core"; import { _jsxSorted } from "@qwik.dev/core"; import { useStore } from "@qwik.dev/core"; +// const _hf0 = (p0)=>p0.active ? 'yes' : 'no'; const _hf0_str = 'p0.active?"yes":"no"'; export const test_component_LUXeXe0DQrg = ()=>{ @@ -71,7 +74,7 @@ export const test_component_LUXeXe0DQrg = ()=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;mBAWY,GAAW,MAAM,GAAG,QAAQ;;0CARZ;IACzB,MAAM,aAAa,SAAS,IAAM,CAAC;YAClC,QAAQ;YACR,MAAM;QACP,CAAC;IAED,qBACC,WAAC;QAEA,OAAO;YACN,oBAAoB;YACpB,wBAAwB,WAAW,MAAM,KAAK;YAC9C,yBAAyB,WAAW,MAAM,KAAK;YAC/C,0BAA0B,WAAW,MAAM,KAAK;QACjD;;QANA,KAAK;;;;AASR\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;mBAWY,GAAW,MAAM,GAAG,QAAQ;;0CARZ;IACzB,MAAM,aAAa,SAAS,IAAM,CAAC;YAClC,QAAQ;YACR,MAAM;QACP,CAAC;IAED,qBACC,WAAC;QAEA,OAAO;YACN,oBAAoB;YACpB,wBAAwB,WAAW,MAAM,KAAK;YAC9C,yBAAyB,WAAW,MAAM,KAAK;YAC/C,0BAA0B,WAAW,MAAM,KAAK;QACjD;;QANA,KAAK;;;;AASR\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_type_asserted_variables_in_template.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_type_asserted_variables_in_template.snap index 0e37f88b0c3..3691fa55492 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_type_asserted_variables_in_template.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__should_wrap_type_asserted_variables_in_template.snap @@ -1,8 +1,7 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 4360 +assertion_line: 4398 expression: output -snapshot_kind: text --- ==INPUT== @@ -22,23 +21,26 @@ snapshot_kind: text import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_LUXeXe0DQrg = ()=>import("./test.tsx_test_component_LUXeXe0DQrg"); -export default /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_LUXeXe0DQrg, "test_component_LUXeXe0DQrg")); +// +const _qrl_test_component_LUXeXe0DQrg = /*#__PURE__*/ qrl(()=>import("./test.tsx_test_component_LUXeXe0DQrg"), "test_component_LUXeXe0DQrg"); +// +export default /*#__PURE__*/ componentQrl(_qrl_test_component_LUXeXe0DQrg); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAGE,6BAAe,6EAOZ\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAGE,6BAAe,8CAOZ\"}") ============================= test.tsx_test_component_LUXeXe0DQrg.js (ENTRY POINT)== import { _jsxSorted } from "@qwik.dev/core"; import { _wrapProp } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; +// export const test_component_LUXeXe0DQrg = ()=>{ const count = useSignal(0); return /*#__PURE__*/ _jsxSorted("div", null, null, _wrapProp(count), 3, "u6_0"); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;0CAG4B;IACzB,MAAM,QAAQ,UAAU;IACxB,qBACC,WAAC,6BACE;AAGL\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;0CAG4B;IACzB,MAAM,QAAQ,UAAU;IACxB,qBACC,WAAC,6BACE;AAGL\"}") /* { "origin": "test.tsx", diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__special_jsx.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__special_jsx.snap index 75704630ed2..743249a5471 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__special_jsx.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__special_jsx.snap @@ -1,8 +1,7 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 2280 +assertion_line: 2282 expression: output -snapshot_kind: text --- ==INPUT== @@ -19,13 +18,14 @@ export const App = () => { // don't transpile jsx with non-plain-object props import { jsx } from '@qwik.dev/core'; +// export const App = ()=>{ const props = {}; return jsx('div', props, 'Hello Qwik'); }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"AACA,kDAAkD;AAClD,SAAS,GAAG,QAAQ,iBAAiB;AAErC,OAAO,MAAM,MAAM;IACf,MAAM,QAAQ,CAAC;IACf,OAAO,IAAI,OAAO,OAAO;AAC7B,EAAC\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\"AACA,kDAAkD;AAClD,SAAS,GAAG,QAAQ,iBAAiB;;AAErC,OAAO,MAAM,MAAM;IACf,MAAM,QAAQ,CAAC;IACf,OAAO,IAAI,OAAO,OAAO;AAC7B,EAAC\"}") == DIAGNOSTICS == [] diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__support_windows_paths.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__support_windows_paths.snap index 846ca56b9b5..122ac1ea053 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__support_windows_paths.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__support_windows_paths.snap @@ -1,8 +1,7 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 2061 +assertion_line: 2063 expression: output -snapshot_kind: text --- ==INPUT== @@ -13,10 +12,11 @@ export const Greeter = component$(() =>
) ============================= components/apps/apps.tsx_Greeter_component_0jjOvx068y0.ts (ENTRY POINT)== import { _jsxSorted } from "@qwik.dev/core"; +// export const Greeter_component_0jjOvx068y0 = ()=>/*#__PURE__*/ _jsxSorted("div", null, null, null, 3, "KD_0"); -Some("{\"version\":3,\"sources\":[\"C:\\\\users\\\\apps/components/apps/apps.tsx\"],\"names\":[],\"mappings\":\";6CAEkC,kBAAM,WAAC\"}") +Some("{\"version\":3,\"sources\":[\"C:\\\\users\\\\apps/components/apps/apps.tsx\"],\"names\":[],\"mappings\":\";;6CAEkC,kBAAM,WAAC\"}") /* { "origin": "components/apps/apps.tsx", @@ -41,11 +41,13 @@ Some("{\"version\":3,\"sources\":[\"C:\\\\users\\\\apps/components/apps/apps.tsx import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_0jjOvx068y0 = ()=>import("./apps.tsx_Greeter_component_0jjOvx068y0"); -export const Greeter = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_0jjOvx068y0, "Greeter_component_0jjOvx068y0")); +// +const _qrl_Greeter_component_0jjOvx068y0 = /*#__PURE__*/ qrl(()=>import("./apps.tsx_Greeter_component_0jjOvx068y0"), "Greeter_component_0jjOvx068y0"); +// +export const Greeter = /*#__PURE__*/ componentQrl(_qrl_Greeter_component_0jjOvx068y0); -Some("{\"version\":3,\"sources\":[\"C:\\\\users\\\\apps/components/apps/apps.tsx\"],\"names\":[],\"mappings\":\";;;AAEA,OAAO,MAAM,wBAAU,gFAAwB\"}") +Some("{\"version\":3,\"sources\":[\"C:\\\\users\\\\apps/components/apps/apps.tsx\"],\"names\":[],\"mappings\":\";;;;;AAEA,OAAO,MAAM,wBAAU,iDAAwB\"}") == DIAGNOSTICS == [] diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__ternary_prop.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__ternary_prop.snap index 7a73bbb4e63..c74e2e4b470 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__ternary_prop.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__ternary_prop.snap @@ -1,6 +1,6 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 3878 +assertion_line: 3915 expression: output --- ==INPUT== @@ -24,13 +24,14 @@ expression: output ============================= test.tsx_Cmp_component_handleClick_WawHV3HwS1A.ts (ENTRY POINT)== import { _captures } from "@qwik.dev/core"; +// export const Cmp_component_handleClick_WawHV3HwS1A = ()=>{ const toggleSig = _captures[0]; toggleSig.value = !toggleSig.value; }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";qDAK0B;;IACtB,UAAU,KAAK,GAAG,CAAC,UAAU,KAAK\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;qDAK0B;;IACtB,UAAU,KAAK,GAAG,CAAC,UAAU,KAAK\"}") /* { "origin": "test.tsx", @@ -60,9 +61,12 @@ import { _fnSignal } from "@qwik.dev/core"; import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; import { useSignal } from "@qwik.dev/core"; +// const _hf0 = (p0)=>p0.value ? true : undefined; const _hf0_str = "p0.value?true:undefined"; +// const i_WawHV3HwS1A = ()=>import("./test.tsx_Cmp_component_handleClick_WawHV3HwS1A"); +// export const Cmp_component_4ryKJTOKjWE = ()=>{ const toggleSig = useSignal(false); const handleClick$ = /*#__PURE__*/ qrl(i_WawHV3HwS1A, "Cmp_component_handleClick_WawHV3HwS1A", [ @@ -77,7 +81,7 @@ export const Cmp_component_4ryKJTOKjWE = ()=>{ }; -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;mBAU+C,GAAU,KAAK,GAAG,OAAO;;;yCARxC;IAC7B,MAAM,YAAY,UAAU;IAE5B,MAAM;;;IAIN,qBACC,WAAC;QAAO,aAAU;QAAc,WAAS;;;OAAsC;AAIjF\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;mBAU+C,GAAU,KAAK,GAAG,OAAO;;;;;yCARxC;IAC7B,MAAM,YAAY,UAAU;IAE5B,MAAM;;;IAIN,qBACC,WAAC;QAAO,aAAU;QAAc,WAAS;;;OAAsC;AAIjF\"}") /* { "origin": "test.tsx", @@ -102,11 +106,13 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_4ryKJTOKjWE = ()=>import("./test.tsx_Cmp_component_4ryKJTOKjWE"); -export const Cmp = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_4ryKJTOKjWE, "Cmp_component_4ryKJTOKjWE")); +// +const _qrl_Cmp_component_4ryKJTOKjWE = /*#__PURE__*/ qrl(()=>import("./test.tsx_Cmp_component_4ryKJTOKjWE"), "Cmp_component_4ryKJTOKjWE"); +// +export const Cmp = /*#__PURE__*/ componentQrl(_qrl_Cmp_component_4ryKJTOKjWE); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAEE,OAAO,MAAM,oBAAM,4EAYhB\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAEE,OAAO,MAAM,oBAAM,6CAYhB\"}") == DIAGNOSTICS == [] diff --git a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__transform_qrl_in_regular_prop.snap b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__transform_qrl_in_regular_prop.snap index c58253c10be..b19ae37dfad 100644 --- a/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__transform_qrl_in_regular_prop.snap +++ b/packages/qwik/src/optimizer/core/src/snapshots/qwik_core__test__transform_qrl_in_regular_prop.snap @@ -1,8 +1,7 @@ --- source: packages/qwik/src/optimizer/core/src/test.rs -assertion_line: 3902 +assertion_line: 3940 expression: output -snapshot_kind: text --- ==INPUT== @@ -16,13 +15,15 @@ snapshot_kind: text import { Cmp } from "./test"; import { _jsxSorted } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_iPpdemxi0uE = ()=>import("./test.tsx_Cmp_component_Cmp_foo_iPpdemxi0uE"); +// +const _qrl_Cmp_component_Cmp_foo_iPpdemxi0uE = /*#__PURE__*/ qrl(()=>import("./test.tsx_Cmp_component_Cmp_foo_iPpdemxi0uE"), "Cmp_component_Cmp_foo_iPpdemxi0uE"); +// export const Cmp_component_4ryKJTOKjWE = ()=>/*#__PURE__*/ _jsxSorted(Cmp, { - foo: /*#__PURE__*/ qrl(i_iPpdemxi0uE, "Cmp_component_Cmp_foo_iPpdemxi0uE") + foo: _qrl_Cmp_component_Cmp_foo_iPpdemxi0uE }, null, "Hello Qwik", 3, "u6_0"); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;yCAEgC,kBAC7B,WAAC;QAAI,GAAG;aAAoC\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;;yCAEgC,kBAC7B,WAAC;QAAI,GAAG;aAAoC\"}") /* { "origin": "test.tsx", @@ -73,11 +74,13 @@ Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"ma import { componentQrl } from "@qwik.dev/core"; import { qrl } from "@qwik.dev/core"; -const i_4ryKJTOKjWE = ()=>import("./test.tsx_Cmp_component_4ryKJTOKjWE"); -export const Cmp = /*#__PURE__*/ componentQrl(/*#__PURE__*/ qrl(i_4ryKJTOKjWE, "Cmp_component_4ryKJTOKjWE")); +// +const _qrl_Cmp_component_4ryKJTOKjWE = /*#__PURE__*/ qrl(()=>import("./test.tsx_Cmp_component_4ryKJTOKjWE"), "Cmp_component_4ryKJTOKjWE"); +// +export const Cmp = /*#__PURE__*/ componentQrl(_qrl_Cmp_component_4ryKJTOKjWE); -Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;AAEE,OAAO,MAAM,oBAAM,4EAC4C\"}") +Some("{\"version\":3,\"sources\":[\"/user/qwik/src/test.tsx\"],\"names\":[],\"mappings\":\";;;;;AAEE,OAAO,MAAM,oBAAM,6CAC4C\"}") == DIAGNOSTICS == [] diff --git a/packages/qwik/src/optimizer/core/src/test.rs b/packages/qwik/src/optimizer/core/src/test.rs index bdf692b656e..750ef74a649 100644 --- a/packages/qwik/src/optimizer/core/src/test.rs +++ b/packages/qwik/src/optimizer/core/src/test.rs @@ -93,12 +93,12 @@ fn example_1() { code: r#" import { $, component, onRender } from '@qwik.dev/core'; -export const renderHeader = $(() => { +export const renderHeader1 = $(() => { return (
console.log(ctx))}/> ); }); -const renderHeader = component($(() => { +const renderHeader2 = component($(() => { console.log("mount"); return render; })); @@ -871,7 +871,7 @@ export const Works = component$((props) => { const text = 'hola'; return ( <> -
console.log('in server', text))}>
+
server$(() => console.log('in server', text))}>
foo()}>
); @@ -1843,10 +1843,10 @@ export const Parent = component$(() => { serverStuff$(async () => { // should be removed too const a = $(() => { - // from $(), should not be removed + dontRemoveThisDollar(); }); const b = client$(() => { - // from clien$(), should not be removed + dontRemoveThisClient(); }); return [a,b]; }) @@ -1854,7 +1854,7 @@ export const Parent = component$(() => { serverLoader$(handler); useTask$(() => { - // Code + runSomething(); }); return ( @@ -1950,6 +1950,7 @@ export const Parent = component$(() => { useTask$(() => { // Code + runSomething(); }); return ( @@ -2770,6 +2771,44 @@ export const App = component$(() => { }); } +#[test] +fn example_post_dce_noop_segment() { + test_input!(TestInput { + code: r#" +import { component$, useTask$, useStore } from '@qwik.dev/core'; +import { isServer } from '@qwik.dev/core/build'; + +export const App = component$(() => { + const state = useStore({ count: 0 }); + + // This task only runs on server; on client build it becomes empty after DCE + useTask$(() => { + if (isServer) { + state.count = 42; + } + }); + + // This task has both server and client code; should NOT become noop + useTask$(() => { + if (isServer) { + state.count = 99; + } + console.log('always runs'); + }); + + return
{state.count}
; +}); +"# + .to_string(), + is_server: Some(false), + transpile_jsx: true, + transpile_ts: true, + entry_strategy: EntryStrategy::Segment, + mode: EmitMode::Prod, + ..TestInput::default() + }); +} + #[test] fn example_derived_signals_div() { test_input!(TestInput { @@ -3322,13 +3361,11 @@ export { qwikify$, qwikifyQrl, renderToString }; } #[test] -fn example_qwik_router_inline() { +fn example_qwik_router_client() { test_input!(TestInput { code: include_str!("fixtures/index.qwik.mjs").to_string(), filename: "../node_modules/@qwik.dev/router/index.qwik.mjs".to_string(), - entry_strategy: EntryStrategy::Smart, explicit_extensions: true, - mode: EmitMode::Lib, ..TestInput::default() }); } @@ -5767,6 +5804,490 @@ struct TestInput { pub is_server: Option, } +#[test] +fn example_segment_variable_migration() { + test_input!(TestInput { + code: r#" +import { component$ } from '@qwik.dev/core'; + +// This helper is only used by App component, so it should be migrated to its segment +const helperFn = (msg) => { + console.log('Helper: ' + msg); + return msg.toUpperCase(); +}; + +// This shared variable is used by multiple segments, so it should stay at root +const SHARED_CONFIG = { value: 42 }; + +// This is an export, so it must stay at root +export const publicHelper = () => console.log('public'); + +export const App = component$(() => { + const result = helperFn('hello'); + return
{result} {SHARED_CONFIG.value}
; +}); + +export const Other = component$(() => { + return
{SHARED_CONFIG.value}
; +}); +"# + .to_string(), + snapshot: true, + ..TestInput::default() + }); +} + +#[test] +fn root_level_self_referential_qrl() { + test_input!(TestInput { + code: r#" +import { component$ } from '@qwik.dev/core'; + +// Root-level self-referential component +// The QRL should NOT be hoisted before the component function is defined +// or should use two-phase emission to avoid forward reference +export const Tree = component$((props) => { + return ( +
+ {props.label} + {props.children && props.children.map((child) => )} +
+ ); +}); +"# + .to_string(), + ..TestInput::default() + }); +} + +#[test] +fn root_level_self_referential_qrl_inline() { + test_input!(TestInput { + code: r#" +import { component$ } from '@qwik.dev/core'; + +// Root-level self-referential component +// The QRL should NOT be hoisted before the component function is defined +// or should use two-phase emission to avoid forward reference +export const Tree = component$((props) => { + return ( +
+ {props.label} + {props.children && props.children.map((child) => )} +
+ ); +}); +"# + .to_string(), + filename: "./node_modules/qwik-tree/index.qwik.jsx".to_string(), + transpile_jsx: true, + is_server: Some(true), + entry_strategy: EntryStrategy::Inline, + mode: EmitMode::Dev, + ..TestInput::default() + }); +} + +#[test] +fn component_level_self_referential_qrl() { + test_input!(TestInput { + code: r#" +import { component$, useAsync$ } from '@qwik.dev/core'; + +// Component-level self-referential component +export const Foo = component$((props) => { + const sig = useAsync$(async ({cleanup}) => { + const timer = setInterval(() => { + sig.value++; + }, 1000); + cleanup(() => clearInterval(timer)); + return 0; + }); + const other = useAsync$(async ({cleanup}) => { + const timer = setInterval(() => { + other.value++; + }, 900); + cleanup(() => clearInterval(timer)); + return 0; + }); + return ( +
+ {other.value} +
+ ); +}); +"# + .to_string(), + ..TestInput::default() + }); +} + +#[test] +fn example_self_referential_component_migration() { + test_input!(TestInput { + code: r#" +import { component$ } from '@qwik.dev/core'; + +// Self-referential component: the Nested component references itself in its JSX +// This should be migrated to its segment using two-phase emission (let + assign) +// to avoid Temporal Dead Zone errors +export const Nested = component$(() => { + return ( +
+ +
+ ); +}); + +// Another self-referential component with conditional rendering +export const RecursiveList = component$((props) => { + if (props.depth === 0) return
End
; + return ( +
+ Level {props.depth} + +
+ ); +}); + +// Mutually recursive components: A references B, B references A +const ComponentA = component$(() => { + return ( +
+ A + +
+ ); +}); + +const ComponentB = component$(() => { + return ( +
+ B + +
+ ); +}); + +export const MutualExample = component$(() => { + return ; +}); +"# + .to_string(), + snapshot: true, + transpile_jsx: true, + ..TestInput::default() + }); +} + +// Non-snapshot tests for robust import resolution +#[test] +fn import_collision_with_renaming() { + // Test that imports are correctly resolved from global context without fallback + // This verifies the fix for SyntaxContext mismatch issues + let res = test_input!(TestInput { + code: r#" +import { component$ } from '@qwik.dev/core'; + +export const Test = component$(() => { + return
Test
; +}); +"# + .to_string(), + snapshot: false, + ..TestInput::default() + }); + + assert!( + res.is_ok(), + "Transform should succeed without fallback errors" + ); + let output = res.unwrap(); + + // Verify the entry module was created + let entry = output.modules.iter().find(|m| m.is_entry); + assert!(entry.is_some(), "Should have entry module"); + + // Verify output modules contain generated code + assert!( + !output.modules.is_empty(), + "Should generate at least one module" + ); +} + +#[test] +fn explicit_imports_for_dev_qrls() { + // Test that dev mode transform succeeds with explicit imports for hoisted items + let res = test_input!(TestInput { + code: r#" +import { component$ } from '@qwik.dev/core'; + +export const Test = component$(() => { + const items = [1, 2, 3]; + return ( +
+ {items.map(item =>
{item}
)} +
+ ); +}); +"# + .to_string(), + mode: EmitMode::Dev, + snapshot: false, + ..TestInput::default() + }); + + assert!(res.is_ok(), "Transform should succeed in dev mode"); + let output = res.unwrap(); + + // Verify all modules have valid import structure + for module in &output.modules { + // Each module's code should be valid (contain component or segment code) + assert!( + !module.code.is_empty(), + "Module {} should have code", + module.path + ); + } +} + +#[test] +fn inlined_qrl_uses_identifier_reference_when_hoisted() { + let res = test_input!(TestInput { + code: r#" +import { component$ } from '@qwik.dev/core'; + +export const App = component$(() => { + return
Hello
; +}); +"# + .to_string(), + entry_strategy: EntryStrategy::Hoist, + transpile_ts: true, + transpile_jsx: true, + snapshot: false, + ..TestInput::default() + }); + + assert!(res.is_ok(), "Transform should succeed"); + let output = res.unwrap(); + + let combined_code = output + .modules + .iter() + .map(|module| module.code.as_str()) + .collect::>() + .join("\n"); + let compact_code: String = combined_code + .chars() + .filter(|c| !c.is_whitespace()) + .collect(); + + assert!( + compact_code.contains("inlinedQrl(App_component_"), + "Expected inlinedQrl to reference a hoisted identifier (inlinedQrl(App_component_...)).\nGenerated code:\n{}", + combined_code + ); + assert!( + !compact_code.contains("inlinedQrl(("), + "Expected inlinedQrl first arg to be an identifier reference, not an embedded function.\nGenerated code:\n{}", + combined_code + ); +} + +#[test] +fn inlined_qrl_uses_identifier_reference_when_hoisted_snapshot() { + test_input!(TestInput { + code: r#" +import { component$ } from '@qwik.dev/core'; + +export const App = component$(() => { + return
Hello
; +}); +"# + .to_string(), + entry_strategy: EntryStrategy::Hoist, + transpile_ts: true, + transpile_jsx: true, + snapshot: true, + ..TestInput::default() + }); +} + +#[test] +fn inlined_qrl_after_ref_identifiers_forward_ref() { + // Test that inlinedQrl items are moved to come AFTER their referenced identifiers + // even in cases where they might initially appear before them (e.g., third-party libs) + let res = test_input!(TestInput { + code: r#" +import { component$ } from '@qwik.dev/core'; +import { useAsyncQrl } from '@qwik.dev/core'; + +export const TestComponent = component$(() => { + // This should be hoisted with an identifier + const asyncSig = useAsyncQrl$(async () => { + return 42; + }); + return
{asyncSig}
; +}); +"# + .to_string(), + entry_strategy: EntryStrategy::Hoist, + transpile_ts: true, + transpile_jsx: true, + snapshot: false, + ..TestInput::default() + }); + + assert!(res.is_ok(), "Transform should succeed"); + let output = res.unwrap(); + + let combined_code = output + .modules + .iter() + .map(|module| module.code.as_str()) + .collect::>() + .join("\n"); + + // Verify that inlinedQrl uses an identifier reference + let compact_code: String = combined_code + .chars() + .filter(|c| !c.is_whitespace()) + .collect(); + + assert!( + compact_code.contains("inlinedQrl(TestComponent_component_") + || compact_code.contains("inlinedQrlDEV(TestComponent_component_"), + "Expected inlinedQrl to reference the hoisted component identifier.\nGenerated code:\n{}", + combined_code + ); +} + +// Non-snapshot tests for generalized q:p/q:ps +#[test] +fn loop_iteration_vars_with_params() { + // Test that loop iteration variables with event handlers work correctly + let res = test_input!(TestInput { + code: r#" +import { component$ } from '@qwik.dev/core'; + +export const Test = component$(() => { + return ( +
+ {['a', 'b', 'c'].map((item, index) => ( + + ))} +
+ ); +}); +"# + .to_string(), + snapshot: false, + ..TestInput::default() + }); + + assert!( + res.is_ok(), + "Transform should succeed for loop with handlers" + ); + let output = res.unwrap(); + + // Verify modules were generated + assert!(!output.modules.is_empty(), "Should have generated modules"); + + // The transform should produce valid output without errors + let entry_module = output.modules.iter().find(|m| m.is_entry); + assert!(entry_module.is_some(), "Should have entry module"); +} + +#[test] +fn import_resolution_without_fallback() { + // Test that imports are resolved correctly from explicit_imports without symbol-only fallbacks + let res = test_input!(TestInput { + code: r#" +import { signal, component$ } from '@qwik.dev/core'; + +export const Test = component$(() => { + const sig = signal(0); + return
{sig}
; +}); +"# + .to_string(), + snapshot: false, + ..TestInput::default() + }); + + assert!( + res.is_ok(), + "Transform should succeed with proper import resolution" + ); + let output = res.unwrap(); + + // Verify all generated modules are valid + for module in &output.modules { + assert!( + !module.code.is_empty(), + "Module {} should have code", + module.path + ); + // Should not have symbol-only import mismatches that cause no-op fallbacks + } +} + +#[test] +fn noop_empty_body() { + test_input!(TestInput { + code: r#" + import { component$, isServer, $, inlinedQrl } from "@qwik.dev/core"; + + export const test1 = $(() => { + if (isServer) { + // no-op + } + }); + export const test2 = $(() => { + // no-op + }); + export const test3 = $(function() { + }); + export const test4 = $(() => undefined); + export const test5 = $(() => void 0); + export const test5 = $(() => isServer ? 5 : undefined); + export const test6 = inlinedQrl(() => { + if (isServer) { + // no-op + } + }, '_test6'); + "# + .to_string(), + is_server: Some(false), + mode: EmitMode::Dev, + ..TestInput::default() + }); +} + +#[test] +fn moves_captures_when_possible() { + test_input!(TestInput { + code: r#" + import { component$, useSignal, $ } from "@qwik.dev/core"; + + export const Test = component$(() => { + const sig = useSignal(0); + const foo = useSignal('foo'); + const bar = useSignal('bar'); + return ; + }); + "# + .to_string(), + transpile_ts: true, + transpile_jsx: true, + ..TestInput::default() + }); +} + impl TestInput { pub fn default() -> Self { Self { diff --git a/packages/qwik/src/optimizer/core/src/transform.rs b/packages/qwik/src/optimizer/core/src/transform.rs index 005b2074fa0..e2de0945041 100644 --- a/packages/qwik/src/optimizer/core/src/transform.rs +++ b/packages/qwik/src/optimizer/core/src/transform.rs @@ -75,6 +75,7 @@ pub struct SegmentData { pub display_name: Atom, pub hash: Atom, pub need_transform: bool, + pub migrated_root_vars: Vec, } #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] @@ -131,6 +132,9 @@ pub struct QwikTransform<'a> { /// Depths that are component boundaries (not loop callbacks). Used to hoist QRLs with captures to the current component's top. component_depths: Vec, in_callback: bool, + /// Stores post-fold const initializers for inlining into segments when + /// a $ call receives a simple identifier referencing a local const. + const_initializers: HashMap>, } pub struct QwikTransformOptions<'a> { @@ -171,7 +175,7 @@ impl<'a> QwikTransform<'a> { } } - for id in options.global_collect.exports.keys() { + for id in options.global_collect.export_local_ids() { if id.0.ends_with(QRL_SUFFIX) { marker_functions.insert(id.clone(), id.0.clone()); } @@ -278,6 +282,7 @@ impl<'a> QwikTransform<'a> { hoisting_scope_decl_indices: Vec::new(), component_depths: Vec::new(), in_callback: false, + const_initializers: HashMap::new(), options, } } @@ -462,14 +467,15 @@ impl<'a> QwikTransform<'a> { display_name, need_transform: false, hash, + migrated_root_vars: Vec::new(), }; let should_emit = self.should_emit_segment(&segment_data); if should_emit { for id in &segment_data.local_idents { - if !self.options.global_collect.exports.contains_key(id) - && self.options.global_collect.root.contains_key(id) - { - self.ensure_export(id); + // Check if root-defined; if so, ensure it's exported so segments can import it. + // Imported symbols don't need re-exporting — segments import them from the original source. + if let Some(root_id) = self.options.global_collect.root_id_for_symbol(&id.0) { + self.ensure_export(&root_id); } } } @@ -667,6 +673,19 @@ impl<'a> QwikTransform<'a> { ctx_name: Atom, custom_symbol: Option, ) -> (ast::CallExpr, bool) { + // Inline const initializer if first_arg is a simple ident referencing a local const. + // This fixes cases like `const style = \`${css1}${css2}\`; useStyles$(style);` + // where the segment would otherwise get an undefined identifier. + let first_arg = if let ast::Expr::Ident(ref ident) = first_arg { + if let Some(init) = self.const_initializers.get(&id!(ident)) { + *init.clone() + } else { + first_arg + } + } else { + first_arg + }; + let can_capture = can_capture_scope(&first_arg); let first_arg_span = first_arg.span(); @@ -730,13 +749,14 @@ impl<'a> QwikTransform<'a> { display_name, need_transform: true, hash, + migrated_root_vars: Vec::new(), }; let should_emit = self.should_emit_segment(&segment_data); if should_emit { for id in &segment_data.local_idents { - if !self.options.global_collect.exports.contains_key(id) { - if self.options.global_collect.root.contains_key(id) { - self.ensure_export(id); + if !self.options.global_collect.has_export_symbol(&id.0) { + if let Some(root_id) = self.options.global_collect.root_id_for_symbol(&id.0) { + self.ensure_export(&root_id); } if invalid_decl.iter().any(|entry| entry.0 == *id) { HANDLER.with(|handler| { @@ -794,7 +814,16 @@ impl<'a> QwikTransform<'a> { let use_h = collector.use_h; let use_fragment = collector.use_fragment; + // Collect identifiers declared locally within this expression + // This prevents shadowed names (like currentScrollState in spa-init.ts) + // from being treated as external dependencies + let mut locally_declared = HashSet::new(); + collect_local_declarations_from_expr(expr, &mut locally_declared); + let mut idents = collector.get_words(); + // Filter out locally-declared identifiers + idents.retain(|id| !locally_declared.contains(id)); + if use_h { if let Some(id) = &self.h_fn { idents.push(id.clone()); @@ -941,11 +970,11 @@ impl<'a> QwikTransform<'a> { } else { SegmentKind::JSXProp }; + let qrl = self.create_synthetic_qsegment(*expr, segment_kind, ctx_name, None); + let hoisted = self.hoist_qrl_to_module_scope_if_no_captures(qrl); Some(ast::JSXAttrValue::JSXExprContainer(ast::JSXExprContainer { span: DUMMY_SP, - expr: ast::JSXExpr::Expr(Box::new(ast::Expr::Call( - self.create_synthetic_qsegment(*expr, segment_kind, ctx_name, None), - ))), + expr: ast::JSXExpr::Expr(Box::new(hoisted)), })) } else { Some(ast::JSXAttrValue::JSXExprContainer(ast::JSXExprContainer { @@ -972,17 +1001,44 @@ impl<'a> QwikTransform<'a> { } fn ensure_export(&mut self, id: &Id) { - let exported_name: Option = Some(format!("_auto_{}", id.0).into()); + let canonical_id = self.options.global_collect.canonical_id_for(id); + let exported_name: Option = Some(format!("_auto_{}", canonical_id.0).into()); if self .options .global_collect - .add_export(id.clone(), exported_name.clone()) + .add_export(canonical_id.clone(), exported_name.clone()) { - self.extra_bottom_items - .insert(id.clone(), create_synthetic_named_export(id, exported_name)); + self.extra_bottom_items.insert( + canonical_id.clone(), + create_synthetic_named_export(&canonical_id, exported_name), + ); } } + /// Pre-compute captures for an event handler expression without folding it. + /// Returns the set of captured identifiers (variables from enclosing scope). + fn compute_handler_captures(&self, handler: &ast::Expr) -> Vec { + let descendent_idents = { + let mut collector = IdentCollector::new(); + handler.visit_with(&mut collector); + collector.get_words() + }; + + let (decl_collect, _): (Vec<_>, Vec<_>) = self + .decl_stack + .iter() + .flat_map(|v| v.iter()) + .cloned() + .partition(|(_, t)| matches!(t, IdentType::Var(_))); + + let (mut scoped, _) = compute_scoped_idents(&descendent_idents, &decl_collect); + + let params = get_function_params(handler); + scoped.retain(|id| !params.contains(id)); + + scoped + } + /// Chooses which hoisting scope (0 = root component, 1 = first callback or nested component, …) /// should receive a QRL's const declaration. Uses the segment just pushed in create_segment (segments.last()). /// @@ -1047,6 +1103,13 @@ impl<'a> QwikTransform<'a> { /// Hoist QRL creation if inside a loop, or return the call expression as-is fn hoist_qrl_if_needed(&mut self, converted_expr: ast::CallExpr, is_fn: bool) -> ast::Expr { + let module_hoisted = self.hoist_qrl_to_module_scope_if_no_captures(converted_expr); + let converted_expr = match module_hoisted { + ast::Expr::Call(call_expr) => call_expr, + expr => { + return expr; + } + }; // Hoist QRLs only when inside a loop (for, while, .map(), etc.) // This creates a single QRL declaration outside the loop for efficiency // Don't hoist component$ QRLs (is_fn = true) @@ -1116,6 +1179,69 @@ impl<'a> QwikTransform<'a> { } } + fn hoist_qrl_to_module_scope_if_no_captures(&mut self, call_expr: ast::CallExpr) -> ast::Expr { + let mut call_expr = call_expr; + let has_capture_array = call_expr + .args + .iter() + .any(|arg| matches!(&*arg.expr, ast::Expr::Array(_))); + if has_capture_array { + return ast::Expr::Call(call_expr); + } + let is_inlined_qrl = + if let ast::Callee::Expr(box ast::Expr::Ident(ref ident)) = call_expr.callee { + ident.sym == *_INLINED_QRL || ident.sym == *_INLINED_QRL_DEV + } else { + false + }; + + if is_inlined_qrl { + if let Some(first_arg) = call_expr.args.first() { + if matches!(&*first_arg.expr, ast::Expr::Ident(_)) { + return ast::Expr::Call(call_expr); + } + } + } + + if let Some(comments) = self.options.comments { + let span = Span::dummy_with_cmt(); + comments.add_pure_comment(span.lo); + call_expr.span = span; + } + + let symbol_name = call_expr + .args + .get(1) + .and_then(|arg| match &*arg.expr { + ast::Expr::Lit(ast::Lit::Str(s)) => Some(s.value.to_string()), + _ => None, + }) + .unwrap_or_else(|| format!("qrl_{}", call_expr.span.lo.0)); + let ident_name = Atom::from(format!("_qrl_{}", symbol_name)); + let id: Id = (ident_name, SyntaxContext::empty()); + + if !self.extra_top_items.contains_key(&id) { + let declarator = ast::VarDeclarator { + span: DUMMY_SP, + name: ast::Pat::Ident(ast::BindingIdent::from(new_ident_from_id(&id))), + init: Some(Box::new(ast::Expr::Call(call_expr))), + definite: false, + }; + self.extra_top_items.insert( + id.clone(), + ast::ModuleItem::Stmt(ast::Stmt::Decl(ast::Decl::Var(Box::new(ast::VarDecl { + span: DUMMY_SP, + kind: ast::VarDeclKind::Const, + declare: false, + ctxt: SyntaxContext::empty(), + decls: vec![declarator], + })))), + ); + } + + ast::Expr::Ident(new_ident_from_id(&id)) + } + /// Helper function to merge an event handler with an existing one in the props list. /// If a handler with the same key already exists, they are merged into an array. /// Otherwise, the new handler is simply added. @@ -1341,8 +1467,6 @@ impl<'a> QwikTransform<'a> { segment_data: &SegmentData, span: &Span, ) -> ast::CallExpr { - // Put the QRL import function in module scope - let import_fn_name = private_ident!(format!("i_{}", segment_data.hash)); let import_fn = ast::Expr::Arrow(ast::ArrowExpr { body: Box::new(ast::BlockStmtOrExpr::Expr(Box::new(ast::Expr::Call( ast::CallExpr { @@ -1364,23 +1488,33 @@ impl<'a> QwikTransform<'a> { )))), ..Default::default() }); - self.extra_top_items.insert( - id!(import_fn_name), - ast::ModuleItem::Stmt(ast::Stmt::Decl(ast::Decl::Var(Box::new(ast::VarDecl { - kind: ast::VarDeclKind::Const, - decls: vec![ast::VarDeclarator { - name: ast::Pat::Ident(ast::BindingIdent::from(import_fn_name.clone())), - init: Some(Box::new(import_fn)), - definite: false, - span: DUMMY_SP, - }], - ..Default::default() - })))), - ); - // Create the qrl arguments + // When there are captures, the qrl() call stays in a function body, + // so keep the import function as a separate module-level const to avoid + // recreating it on every call. When no captures, the qrl() call itself + // gets hoisted to module scope, so we can inline the import arrow. + let import_arg = if segment_data.scoped_idents.is_empty() { + import_fn + } else { + let import_fn_name = private_ident!(format!("i_{}", segment_data.hash)); + self.extra_top_items.insert( + id!(import_fn_name), + ast::ModuleItem::Stmt(ast::Stmt::Decl(ast::Decl::Var(Box::new(ast::VarDecl { + kind: ast::VarDeclKind::Const, + decls: vec![ast::VarDeclarator { + name: ast::Pat::Ident(ast::BindingIdent::from(import_fn_name.clone())), + init: Some(Box::new(import_fn)), + definite: false, + span: DUMMY_SP, + }], + ..Default::default() + })))), + ); + ast::Expr::Ident(import_fn_name) + }; + let mut args = vec![ - ast::Expr::Ident(import_fn_name), + import_arg, ast::Expr::Lit(ast::Lit::Str(ast::Str { span: DUMMY_SP, value: symbol.into(), @@ -1433,7 +1567,38 @@ impl<'a> QwikTransform<'a> { || matches!(expr, ast::Expr::Ident(_)); let param_names = Self::extract_param_names(&expr); let inlined_expr = if should_inline { - expr + match expr { + ast::Expr::Ident(_) | ast::Expr::Lit(ast::Lit::Null(_)) => expr, + other_expr => { + let lifted_id: Id = (symbol_name.clone(), SyntaxContext::empty()); + + if !self.extra_top_items.contains_key(&lifted_id) { + let declarator = ast::VarDeclarator { + span: DUMMY_SP, + name: ast::Pat::Ident(ast::BindingIdent::from(new_ident_from_id( + &lifted_id, + ))), + init: Some(Box::new(other_expr)), + definite: false, + }; + + self.extra_top_items.insert( + lifted_id.clone(), + ast::ModuleItem::Stmt(ast::Stmt::Decl(ast::Decl::Var(Box::new( + ast::VarDecl { + span: DUMMY_SP, + kind: ast::VarDeclKind::Const, + declare: false, + ctxt: SyntaxContext::empty(), + decls: vec![declarator], + }, + )))), + ); + } + + ast::Expr::Ident(new_ident_from_id(&lifted_id)) + } + } } else { let new_ident = private_ident!(symbol_name.clone()); self.segments.push(Segment { @@ -1657,14 +1822,50 @@ impl<'a> QwikTransform<'a> { let should_runtime_sort = has_spread_props || has_component_bind_props; let mut static_listeners = !has_spread_props; let mut static_subtree = !has_spread_props; - let mut added_iter_var_prop = false; // Track if we've already added q:p or q:ps - - // Collect all iteration variables used by any handler on this element (in loop order) - let element_iter_vars: Vec = if !self.iteration_var_stack.is_empty() - && !is_fn - { - if let Some(iter_vars) = self.iteration_var_stack.last() { - let mut used_syms: HashSet<(Atom, SyntaxContext)> = HashSet::new(); + let mut moved_captures = false; // Track if we've already added q:p or q:ps + + // Collect parameters to lift via q:p/q:ps: + // Priority 1: iteration variables (loop context) - collected from iteration_var_stack + // Priority 2: extra inline handler params (beyond event, element) - collected from handler signatures + let element_lifted_params: Vec = if !is_fn { + // Check if we're in a loop context + if !self.iteration_var_stack.is_empty() { + // Use iteration variables (existing loop behavior) + if let Some(iter_vars) = self.iteration_var_stack.last() { + let mut used_syms: HashSet<(Atom, SyntaxContext)> = HashSet::new(); + for prop in props.iter() { + if let ast::PropOrSpread::Prop(box ast::Prop::KeyValue(ref node)) = + prop + { + let key = match &node.key { + ast::PropName::Ident(ref ident) => Some(ident.sym.clone()), + ast::PropName::Str(ref s) => Some(s.value.clone()), + _ => None, + }; + if key.as_ref().and_then(convert_qrl_word).is_some() + && matches!( + *node.value, + ast::Expr::Arrow(_) | ast::Expr::Fn(_) + ) { + for var in iter_vars { + if expr_uses_ident(&node.value, &id!(var)) { + used_syms.insert((var.sym.clone(), var.ctxt)); + } + } + } + } + } + iter_vars + .iter() + .filter(|var| used_syms.contains(&(var.sym.clone(), var.ctxt))) + .cloned() + .collect() + } else { + Vec::new() + } + } else { + // No loop context - collect union of captures from all event handlers + let mut all_captures: Vec = Vec::new(); for prop in props.iter() { if let ast::PropOrSpread::Prop(box ast::Prop::KeyValue(ref node)) = prop { @@ -1676,21 +1877,20 @@ impl<'a> QwikTransform<'a> { if key.as_ref().and_then(convert_qrl_word).is_some() && matches!(*node.value, ast::Expr::Arrow(_) | ast::Expr::Fn(_)) { - for var in iter_vars { - if expr_uses_ident(&node.value, &id!(var)) { - used_syms.insert((var.sym.clone(), var.ctxt)); + let captures = self.compute_handler_captures(&node.value); + for cap in captures { + if !all_captures.contains(&cap) { + all_captures.push(cap); } } } } } - iter_vars + all_captures.sort(); + all_captures .iter() - .filter(|var| used_syms.contains(&(var.sym.clone(), var.ctxt))) - .cloned() + .map(|id| ast::Ident::new(id.0.clone(), DUMMY_SP, id.1)) .collect() - } else { - Vec::new() } } else { Vec::new() @@ -1806,11 +2006,20 @@ impl<'a> QwikTransform<'a> { { if matches!(*node.value, ast::Expr::Arrow(_) | ast::Expr::Fn(_)) { - // Transform event handler with element's full iteration var list (so param order matches q:ps) - let transformed_value = if !element_iter_vars.is_empty() { + // Use element_lifted_params for both loop iteration vars + // and non-loop captures (computed in pre-pass above) + let params_to_lift: Vec = + if !element_lifted_params.is_empty() && !is_fn { + element_lifted_params.clone() + } else { + Vec::new() + }; + + // Inject lifted params as extra function params + let transformed_value = if !params_to_lift.is_empty() { transform_event_handler_with_iter_var( *node.value.clone(), - &element_iter_vars, + ¶ms_to_lift, ) } else { *node.value.clone() @@ -1850,18 +2059,16 @@ impl<'a> QwikTransform<'a> { &mut const_props, ); - // Add q:p (single) or q:ps (multiple) prop for all iteration vars used on this element - // Only add it once per element, even if multiple handlers use different iteration variables - if !element_iter_vars.is_empty() - && !is_fn && !added_iter_var_prop - { + // Add q:p (single) or q:ps (multiple) prop for lifted params + // Apply to both loop-based iteration vars AND non-loop inline handler params + if !params_to_lift.is_empty() && !is_fn && !moved_captures { let (prop_name, row_value): (&str, Box) = - if element_iter_vars.len() == 1 { + if params_to_lift.len() == 1 { // Single parameter: use q:p without array ( "q:p", Box::new(ast::Expr::Ident( - element_iter_vars[0].clone(), + params_to_lift[0].clone(), )), ) } else { @@ -1870,7 +2077,7 @@ impl<'a> QwikTransform<'a> { "q:ps", Box::new(ast::Expr::Array(ast::ArrayLit { span: DUMMY_SP, - elems: element_iter_vars + elems: params_to_lift .iter() .map(|ident| { Some(ast::ExprOrSpread { @@ -1897,7 +2104,7 @@ impl<'a> QwikTransform<'a> { value: row_value, }), ))); - added_iter_var_prop = true; + moved_captures = true; } } else { let const_prop = is_const_expr( @@ -2042,6 +2249,9 @@ impl<'a> QwikTransform<'a> { if static_subtree { flags |= 1 << 1; } + if moved_captures { + flags |= 1 << 2; + } if !should_runtime_sort { var_props.sort_by(|a: &ast::PropOrSpread, b: &ast::PropOrSpread| { match (a, b) { @@ -2370,12 +2580,31 @@ impl<'a> QwikTransform<'a> { true } - // TODO export segment data for the noop qrl + // Noop segments are now added to the segments collection for manifest generation fn create_noop_qrl( &mut self, symbol_name: &swc_atoms::Atom, segment_data: SegmentData, ) -> ast::CallExpr { + // Add the noop segment to the segments collection for manifest generation + let canonical_filename = get_canonical_filename(&segment_data.display_name, symbol_name); + let param_names = None; // Noop segments don't have parameter names since they're not actual functions + + // Create a dummy expression for the noop segment + let dummy_expr = ast::Expr::Lit(ast::Lit::Null(ast::Null { span: DUMMY_SP })); + + // Add the segment to the collection with entry set to None to indicate it's a noop + self.segments.push(Segment { + entry: None, // Noop segments don't have an entry file + span: DUMMY_SP, + canonical_filename, + name: symbol_name.clone(), + data: segment_data.clone(), + expr: Box::new(dummy_expr), + hash: 0, // Noop segments don't need a hash since they're not actual code + param_names, + }); + let mut args = vec![ast::Expr::Lit(ast::Lit::Str(ast::Str { span: DUMMY_SP, value: symbol_name.clone(), @@ -2689,7 +2918,7 @@ impl<'a> Fold for QwikTransform<'a> { fn fold_module(&mut self, node: ast::Module) -> ast::Module { let mut body = Vec::with_capacity(node.body.len() + 10); - let mut module_body = node + let module_body: Vec<_> = node .body .into_iter() .flat_map(|i| { @@ -2736,8 +2965,61 @@ impl<'a> Fold for QwikTransform<'a> { create_synthetic_named_import(new_local, &import.source) }), ); - body.extend(self.extra_top_items.values().cloned()); - body.append(&mut module_body); + let extra_top_items = collect_needed_extra_top_items( + &self.extra_top_items, + &module_body, + &self.extra_bottom_items, + ); + + // Separate imports from non-imports to ensure all imports stay at the top + let (extra_imports, extra_non_imports): (Vec<_>, Vec<_>) = + extra_top_items.into_iter().partition(|item| { + matches!( + item, + ast::ModuleItem::ModuleDecl(ast::ModuleDecl::Import(_)) + ) + }); + + let (module_imports, module_non_imports): (Vec<_>, Vec<_>) = + module_body.into_iter().partition(|item| { + matches!( + item, + ast::ModuleItem::ModuleDecl(ast::ModuleDecl::Import(_)) + ) + }); + + // Assemble in proper order: all imports first, then non-imports + body.extend(extra_imports); + body.extend(module_imports); + let non_imports = order_items_by_dependency( + extra_non_imports + .into_iter() + .chain(module_non_imports) + .collect(), + ); + + // Deduplicate declarations by symbol name before adding to body + // Use symbol name (Atom) for comparison since SyntaxContext can vary across transformations + let mut seen_syms: HashSet = HashSet::new(); + let deduplicated_non_imports: Vec = non_imports + .into_iter() + .filter(|item| { + let mut item_defined_idents = HashSet::new(); + collect_declared_idents(item, &mut item_defined_idents); + + let is_duplicate = item_defined_idents + .iter() + .any(|id| seen_syms.contains(&id.0)); + if !is_duplicate { + seen_syms.extend(item_defined_idents.iter().map(|id| id.0.clone())); + true + } else { + false + } + }) + .collect(); + + body.extend(deduplicated_non_imports); body.extend(self.extra_bottom_items.values().cloned()); ast::Module { body, ..node } @@ -2760,7 +3042,26 @@ impl<'a> Fold for QwikTransform<'a> { } } } - node.fold_children_with(self) + let is_const = node.kind == ast::VarDeclKind::Const; + let folded = node.fold_children_with(self); + + // Store post-fold const initializers for potential inlining into segments. + // When a $ call receives a simple identifier (e.g. useStyles$(style)), + // we can replace it with the actual initializer expression. + if is_const { + for decl in &folded.decls { + if let ast::Pat::Ident(ident) = &decl.name { + if let Some(init) = &decl.init { + // Skip simple Ident inits (e.g. hoisted QRL references like _qrl_...) + if !matches!(**init, ast::Expr::Ident(_)) { + self.const_initializers.insert(id!(ident.id), init.clone()); + } + } + } + } + } + + folded } fn fold_var_declarator(&mut self, node: ast::VarDeclarator) -> ast::VarDeclarator { @@ -3329,8 +3630,7 @@ impl<'a> Fold for QwikTransform<'a> { convert_qrl_word(&ident.sym).expect("Specifier ends with $"); global_collect .exports - .keys() - .find(|id| id.0 == new_specifier) + .get(&new_specifier) .map_or_else( || { HANDLER.with(|handler| { @@ -3343,8 +3643,9 @@ impl<'a> Fold for QwikTransform<'a> { .emit(); }); }, - |new_local| { - replace_callee = Some(new_ident_from_id(new_local).as_callee()); + |export_info| { + replace_callee = + Some(new_ident_from_id(&export_info.local_id).as_callee()); }, ); } @@ -3367,14 +3668,15 @@ impl<'a> Fold for QwikTransform<'a> { .enumerate() .map(|(i, arg)| { if convert_qrl && i == 0 { + let qrl = self.create_synthetic_qsegment( + *arg.expr, + SegmentKind::Function, + ctx_name.clone(), + None, + ); + let hoisted = self.hoist_qrl_to_module_scope_if_no_captures(qrl); ast::ExprOrSpread { - expr: Box::new(ast::Expr::Call(self.create_synthetic_qsegment( - *arg.expr, - SegmentKind::Function, - ctx_name.clone(), - None, - ))) - .fold_with(self), + expr: Box::new(hoisted.fold_with(self)), ..arg } } else { @@ -3401,6 +3703,374 @@ impl<'a> Fold for QwikTransform<'a> { } } +fn collect_needed_extra_top_items( + extra_top_items: &BTreeMap, + module_body: &[ast::ModuleItem], + extra_bottom_items: &BTreeMap, +) -> Vec { + if extra_top_items.is_empty() { + return Vec::new(); + } + + let mut needed: HashSet = HashSet::new(); + for item in module_body { + collect_module_item_idents(item, &mut needed); + } + for item in extra_bottom_items.values() { + collect_module_item_idents(item, &mut needed); + } + let mut needed_syms: HashSet = needed.iter().map(|id| id.0.clone()).collect(); + + let mut included: HashSet = HashSet::new(); + let mut changed = true; + while changed { + changed = false; + for (id, item) in extra_top_items.iter() { + if (needed.contains(id) || needed_syms.contains(&id.0)) && included.insert(id.clone()) { + let mut item_used = HashSet::new(); + collect_module_item_idents(item, &mut item_used); + for used in item_used { + if needed.insert(used.clone()) { + needed_syms.insert(used.0.clone()); + changed = true; + } + } + } + } + } + + let mut result: Vec<_> = extra_top_items + .iter() + .filter(|&(id, _)| included.contains(id)) + .map(|(_, item)| item.clone()) + .collect(); + + // Sort by source position to preserve original declaration order + result.sort_by_key(|item| match item { + ast::ModuleItem::Stmt(stmt) => stmt.span().lo, + ast::ModuleItem::ModuleDecl(decl) => match decl { + ast::ModuleDecl::Import(d) => d.span.lo, + ast::ModuleDecl::ExportDecl(d) => d.span.lo, + ast::ModuleDecl::ExportNamed(d) => d.span.lo, + ast::ModuleDecl::ExportDefaultDecl(d) => d.span.lo, + ast::ModuleDecl::ExportDefaultExpr(d) => d.span.lo, + ast::ModuleDecl::ExportAll(d) => d.span.lo, + ast::ModuleDecl::TsImportEquals(d) => d.span.lo, + ast::ModuleDecl::TsExportAssignment(d) => d.span.lo, + ast::ModuleDecl::TsNamespaceExport(d) => d.span.lo, + }, + }); + + result +} + +fn collect_module_item_idents(item: &ast::ModuleItem, out: &mut HashSet) { + let mut collector = AnyIdentCollector::new(); + item.visit_with(&mut collector); + out.extend(collector.local_idents); +} + +fn order_items_by_dependency(items: Vec) -> Vec { + if items.len() < 2 { + return items; + } + + let mut defines_by_item: Vec> = Vec::with_capacity(items.len()); + for item in items.iter() { + let mut defines = HashSet::new(); + collect_declared_idents(item, &mut defines); + defines_by_item.push(defines); + } + + let mut deps_by_item: Vec> = vec![HashSet::new(); items.len()]; + for (idx, item) in items.iter().enumerate() { + let mut used = HashSet::new(); + collect_module_item_idents(item, &mut used); + for id in &defines_by_item[idx] { + used.remove(id); + } + for used_id in used { + let def_idx_opt = defines_by_item + .iter() + .enumerate() + .find_map(|(def_idx, defs)| { + if def_idx != idx && defs.iter().any(|def_id| def_id.0 == used_id.0) { + Some(def_idx) + } else { + None + } + }); + + if let Some(def_idx) = def_idx_opt { + deps_by_item[idx].insert(def_idx); + } + } + } + + let mut in_degree = vec![0usize; items.len()]; + let mut dependents: Vec> = vec![Vec::new(); items.len()]; + for (idx, deps) in deps_by_item.iter().enumerate() { + in_degree[idx] = deps.len(); + for dep_idx in deps { + dependents[*dep_idx].push(idx); + } + } + + let mut ready: Vec = (0..items.len()).filter(|i| in_degree[*i] == 0).collect(); + ready.sort_unstable(); + let mut ordered: Vec = Vec::with_capacity(items.len()); + while let Some(idx) = ready.first().copied() { + ready.remove(0); + ordered.push(idx); + for dependent in &dependents[idx] { + in_degree[*dependent] = in_degree[*dependent].saturating_sub(1); + if in_degree[*dependent] == 0 { + ready.push(*dependent); + } + } + ready.sort_unstable(); + } + + if ordered.len() < items.len() { + let mut seen = vec![false; items.len()]; + for idx in &ordered { + seen[*idx] = true; + } + for (i, _) in seen.iter().enumerate() { + if !seen[i] { + ordered.push(i); + } + } + } + + ordered.into_iter().map(|idx| items[idx].clone()).collect() +} + +fn collect_declared_idents(item: &ast::ModuleItem, out: &mut HashSet) { + match item { + ast::ModuleItem::Stmt(ast::Stmt::Decl(decl)) => { + collect_declared_idents_from_decl(decl, out) + } + ast::ModuleItem::ModuleDecl(ast::ModuleDecl::ExportDecl(decl)) => { + collect_declared_idents_from_decl(&decl.decl, out); + } + ast::ModuleItem::ModuleDecl(ast::ModuleDecl::ExportDefaultDecl(decl)) => { + if let ast::DefaultDecl::Fn(fn_decl) = &decl.decl { + if let Some(ident) = &fn_decl.ident { + out.insert(id!(ident)); + } + } + if let ast::DefaultDecl::Class(class_decl) = &decl.decl { + if let Some(ident) = &class_decl.ident { + out.insert(id!(ident)); + } + } + } + _ => {} + } +} + +fn collect_declared_idents_from_decl(decl: &ast::Decl, out: &mut HashSet) { + match decl { + ast::Decl::Var(var) => { + for decl in &var.decls { + let mut identifiers: Vec<(Id, Span)> = Vec::new(); + collect_from_pat(&decl.name, &mut identifiers); + out.extend(identifiers.into_iter().map(|(id, _)| id)); + } + } + ast::Decl::Fn(func) => { + out.insert(id!(func.ident)); + } + ast::Decl::Class(class) => { + out.insert(id!(class.ident)); + } + _ => {} + } +} + +/// Collects identifiers declared locally within an expression (arrow functions, function expressions, etc.) +/// This is used to filter out shadowed names from external dependency collection. +fn collect_local_declarations_from_expr(expr: &ast::Expr, out: &mut HashSet) { + match expr { + ast::Expr::Arrow(arrow) => { + // Collect parameter names + for param in &arrow.params { + let mut identifiers: Vec<(Id, Span)> = Vec::new(); + collect_from_pat(param, &mut identifiers); + out.extend(identifiers.into_iter().map(|(id, _)| id)); + } + // Collect declarations from body if it's a block + if let ast::BlockStmtOrExpr::BlockStmt(block) = &*arrow.body { + collect_block_declarations(block, out); + } + } + ast::Expr::Fn(func) => { + // Collect function name if present + if let Some(ident) = &func.ident { + out.insert(id!(ident)); + } + // Collect parameter names + for param in &func.function.params { + let mut identifiers: Vec<(Id, Span)> = Vec::new(); + collect_from_pat(¶m.pat, &mut identifiers); + out.extend(identifiers.into_iter().map(|(id, _)| id)); + } + // Collect declarations from body + if let Some(body) = &func.function.body { + collect_block_declarations(body, out); + } + } + _ => {} + } +} + +/// Collects variable and function declarations from a block statement +fn collect_block_declarations(block: &ast::BlockStmt, out: &mut HashSet) { + for stmt in &block.stmts { + match stmt { + ast::Stmt::Decl(decl) => { + collect_declared_idents_from_decl(decl, out); + } + // Handle nested blocks, if statements, etc. + ast::Stmt::Block(block_stmt) => { + collect_block_declarations(block_stmt, out); + } + ast::Stmt::If(if_stmt) => { + if let ast::Stmt::Block(block) = &*if_stmt.cons { + collect_block_declarations(block, out); + } + if let Some(alt) = &if_stmt.alt { + if let ast::Stmt::Block(block) = &**alt { + collect_block_declarations(block, out); + } + } + } + ast::Stmt::While(while_stmt) => { + if let ast::Stmt::Block(block) = &*while_stmt.body { + collect_block_declarations(block, out); + } + } + ast::Stmt::For(for_stmt) => { + // Collect loop variable if present + if let Some(ast::VarDeclOrExpr::VarDecl(var_decl)) = &for_stmt.init { + for decl in &var_decl.decls { + let mut identifiers: Vec<(Id, Span)> = Vec::new(); + collect_from_pat(&decl.name, &mut identifiers); + out.extend(identifiers.into_iter().map(|(id, _)| id)); + } + } + if let ast::Stmt::Block(block) = &*for_stmt.body { + collect_block_declarations(block, out); + } + } + ast::Stmt::ForIn(for_in) => { + if let ast::ForHead::VarDecl(var_decl) = &for_in.left { + for decl in &var_decl.decls { + let mut identifiers: Vec<(Id, Span)> = Vec::new(); + collect_from_pat(&decl.name, &mut identifiers); + out.extend(identifiers.into_iter().map(|(id, _)| id)); + } + } + if let ast::Stmt::Block(block) = &*for_in.body { + collect_block_declarations(block, out); + } + } + ast::Stmt::ForOf(for_of) => { + if let ast::ForHead::VarDecl(var_decl) = &for_of.left { + for decl in &var_decl.decls { + let mut identifiers: Vec<(Id, Span)> = Vec::new(); + collect_from_pat(&decl.name, &mut identifiers); + out.extend(identifiers.into_iter().map(|(id, _)| id)); + } + } + if let ast::Stmt::Block(block) = &*for_of.body { + collect_block_declarations(block, out); + } + } + _ => {} + } + } +} + +#[derive(Debug)] +enum ExprOrSkip { + Expr, + Skip, +} + +#[derive(Debug)] +struct AnyIdentCollector { + local_idents: HashSet, + expr_ctxt: Vec, +} + +impl AnyIdentCollector { + fn new() -> Self { + Self { + local_idents: HashSet::new(), + expr_ctxt: Vec::with_capacity(32), + } + } +} + +impl Visit for AnyIdentCollector { + noop_visit_type!(); + + fn visit_expr(&mut self, node: &ast::Expr) { + self.expr_ctxt.push(ExprOrSkip::Expr); + node.visit_children_with(self); + self.expr_ctxt.pop(); + } + + fn visit_stmt(&mut self, node: &ast::Stmt) { + self.expr_ctxt.push(ExprOrSkip::Skip); + node.visit_children_with(self); + self.expr_ctxt.pop(); + } + + fn visit_jsx_element_name(&mut self, node: &ast::JSXElementName) { + if let ast::JSXElementName::Ident(ref ident) = node { + let ident_name = ident.sym.as_ref().chars().next(); + if let Some('A'..='Z') = ident_name { + } else { + return; + } + } + + node.visit_children_with(self); + } + + fn visit_jsx_attr(&mut self, node: &ast::JSXAttr) { + self.expr_ctxt.push(ExprOrSkip::Skip); + node.visit_children_with(self); + self.expr_ctxt.pop(); + } + + fn visit_ident(&mut self, node: &ast::Ident) { + if matches!(self.expr_ctxt.last(), Some(ExprOrSkip::Expr)) + && (node.sym != *"undefined" + && node.sym != *"NaN" + && node.sym != *"Infinity" + && node.sym != *"null") + { + self.local_idents.insert(id!(node)); + } + } + + fn visit_key_value_prop(&mut self, node: &ast::KeyValueProp) { + self.expr_ctxt.push(ExprOrSkip::Skip); + node.visit_children_with(self); + self.expr_ctxt.pop(); + } + + fn visit_member_expr(&mut self, member: &ast::MemberExpr) { + self.expr_ctxt.push(ExprOrSkip::Skip); + member.visit_children_with(self); + self.expr_ctxt.pop(); + } +} + pub fn create_synthetic_named_export(local: &Id, exported: Option) -> ast::ModuleItem { ast::ModuleItem::ModuleDecl(ast::ModuleDecl::ExportNamed(ast::NamedExport { span: DUMMY_SP, @@ -3948,3 +4618,19 @@ fn process_node_props(pat: &ast::Pat) -> Vec { processed_scope_data } + +#[cfg(test)] +mod param_lifting_tests { + use super::*; + use swc_atoms::atom; + use swc_common::DUMMY_SP; + use swc_ecmascript::ast; + + /// Helper to create an arrow function param as an identifier pattern + fn make_param_ident(name: &str) -> ast::Pat { + ast::Pat::Ident(ast::BindingIdent { + id: ast::Ident::new(Atom::from(name), DUMMY_SP, Default::default()), + type_ann: None, + }) + } +} diff --git a/packages/qwik/src/optimizer/src/plugins/plugin.ts b/packages/qwik/src/optimizer/src/plugins/plugin.ts index 3add4e61d96..da84ac351b2 100644 --- a/packages/qwik/src/optimizer/src/plugins/plugin.ts +++ b/packages/qwik/src/optimizer/src/plugins/plugin.ts @@ -819,7 +819,6 @@ export function createQwikPlugin(optimizerOptions: OptimizerOptions = {}) { } const deps = new Set(); for (const mod of newOutput.modules) { - // TODO handle noop modules if (mod !== module) { const key = normalizePath(path.join(srcDir, mod.path)); debug(`transform(${count})`, `segment ${key}`, mod.segment!.displayName); diff --git a/packages/qwik/src/server/platform.unit.ts b/packages/qwik/src/server/platform.unit.ts index 2219ce6aba6..826cd8cf228 100644 --- a/packages/qwik/src/server/platform.unit.ts +++ b/packages/qwik/src/server/platform.unit.ts @@ -45,7 +45,7 @@ describe('server platform', () => { didThrow = true; // The error should be a QError with code for dynamic import failed expect(e.message).toMatch(/Code\(Q\d+\)/); - expect(e.message).toContain('Dynamic import not found'); + expect(e.message).toContain(`Dynamic import ${symbolName} not found`); } expect(didThrow).toBe(true); }); diff --git a/packages/qwik/src/server/ssr-container.ts b/packages/qwik/src/server/ssr-container.ts index 900b0eff930..11b453c798c 100644 --- a/packages/qwik/src/server/ssr-container.ts +++ b/packages/qwik/src/server/ssr-container.ts @@ -408,7 +408,8 @@ class SSRContainer extends _SharedContainer implements ISSRContainer { varAttrs: Props | null, constAttrs: Props | null = null, styleScopedId: string | null = null, - currentFile: string | null = null + currentFile: string | null = null, + hasMovedCaptures: boolean = true ): string | undefined { const isQwikStyle = isQwikStyleElement(elementName, varAttrs) || isQwikStyleElement(elementName, constAttrs); @@ -446,7 +447,14 @@ class SSRContainer extends _SharedContainer implements ISSRContainer { // create here for writeAttrs method to use it const lastNode = this.getOrCreateLastNode(); if (varAttrs) { - innerHTML = this.writeAttrs(elementName, varAttrs, false, styleScopedId, currentFile); + innerHTML = this.writeAttrs( + elementName, + varAttrs, + false, + styleScopedId, + currentFile, + hasMovedCaptures + ); } this.write(' ' + Q_PROPS_SEPARATOR); if (key !== null) { @@ -457,7 +465,14 @@ class SSRContainer extends _SharedContainer implements ISSRContainer { } if (constAttrs && !isObjectEmpty(constAttrs)) { innerHTML = - this.writeAttrs(elementName, constAttrs, true, styleScopedId, currentFile) || innerHTML; + this.writeAttrs( + elementName, + constAttrs, + true, + styleScopedId, + currentFile, + hasMovedCaptures + ) || innerHTML; } this.write(GT); @@ -1185,10 +1200,10 @@ class SSRContainer extends _SharedContainer implements ISSRContainer { attrs: Props, isConst: boolean, styleScopedId: string | null, - currentFile: string | null + currentFile: string | null, + hasMovedCaptures: boolean ): string | undefined { let innerHTML: string | undefined = undefined; - let isLoopElement = null; for (let key in attrs) { let value = attrs[key]; if (isSSRUnsafeAttr(key)) { @@ -1199,11 +1214,7 @@ class SSRContainer extends _SharedContainer implements ISSRContainer { } if (isHtmlAttributeAnEventName(key)) { - if (isLoopElement === null) { - // check this only once for the entire element - isLoopElement = attributesContainsIterationProp(attrs); - } - value = _setEvent(this.serializationCtx, key, value, isLoopElement); + value = _setEvent(this.serializationCtx, key, value, hasMovedCaptures); } else if (key === 'ref') { const lastNode = this.getOrCreateLastNode(); if (isSignal(value)) { @@ -1302,13 +1313,6 @@ const isQwikStyleElement = (tag: string, attrs: Props | null) => { return false; }; -const attributesContainsIterationProp = (attrs: Props): boolean => { - return ( - Object.prototype.hasOwnProperty.call(attrs, ITERATION_ITEM_SINGLE) || - Object.prototype.hasOwnProperty.call(attrs, ITERATION_ITEM_MULTI) - ); -}; - function newTagError(text: string) { return qError(QError.tagError, [text]); } diff --git a/packages/qwik/src/testing/rendering.unit-util.tsx b/packages/qwik/src/testing/rendering.unit-util.tsx index 527c98217c3..ae783fe888c 100644 --- a/packages/qwik/src/testing/rendering.unit-util.tsx +++ b/packages/qwik/src/testing/rendering.unit-util.tsx @@ -1,5 +1,5 @@ /* eslint-disable no-console */ -import { Slot, component$, render, type JSXOutput } from '@qwik.dev/core'; +import { Slot, componentQrl, inlinedQrl, render, type JSXOutput } from '@qwik.dev/core'; import { _getDomContainer } from '@qwik.dev/core/internal'; import type { _ContainerElement, @@ -355,10 +355,12 @@ function getHostVNode(vElement: _VNode | null) { } export const ErrorProvider = Object.assign( - component$(() => { - (ErrorProvider as any).error = null; - useContextProvider(ERROR_CONTEXT, ErrorProvider as any); - return ; - }), + componentQrl( + inlinedQrl(() => { + (ErrorProvider as any).error = null; + useContextProvider(ERROR_CONTEXT, ErrorProvider as any); + return ; + }, 's_ErrorProvider') + ), { error: null as any } ); diff --git a/scripts/submodule-insights.ts b/scripts/submodule-insights.ts index d687fe04138..8700c34ae24 100644 --- a/scripts/submodule-insights.ts +++ b/scripts/submodule-insights.ts @@ -23,7 +23,7 @@ async function buildComponents(config: BuildConfig) { outDir: distBase, emptyOutDir: false, target: 'es2022', - minify: true, + minify: false, rollupOptions: { external: (id) => /^(@|node:)/i.test(id), }, diff --git a/starters/dev-server.ts b/starters/dev-server.ts index d519ab54e06..e16bae90367 100644 --- a/starters/dev-server.ts +++ b/starters/dev-server.ts @@ -33,8 +33,25 @@ const escapeChars = (filePath: string) => { return isWindows ? filePath.replace(/\\/g, "\\\\") : filePath; }; +// Parse command line arguments +let buildTarget: string | undefined; +let port = 3300; + +for (let i = 2; i < process.argv.length; i++) { + const arg = process.argv[i]; + if (arg.startsWith("--build=")) { + buildTarget = arg.substring("--build=".length); + } else if (arg === "--build" && i + 1 < process.argv.length) { + buildTarget = process.argv[++i]; + } else { + const portNum = parseInt(arg, 10); + if (!isNaN(portNum)) { + port = portNum; + } + } +} + const app = express(); -const port = parseInt(process.argv[process.argv.length - 1], 10) || 3300; const address = `http://localhost:${port}/`; const __dirname = fileURLToPath(new URL(".", import.meta.url)); const startersDir = __dirname; @@ -337,7 +354,61 @@ function favicon(_: Request, res: Response) { res.sendFile(path); } +function printUsage() { + console.log(` +Qwik Dev Server - Starter Apps Builder + +Usage: node dev-server.ts [OPTIONS] [PORT] + +OPTIONS: + --build=APPNAME Build a specific app and exit (don't start server) + --build APPNAME Same as --build=APPNAME + +ARGUMENTS: + PORT Port number (default: 3300) + +Examples: + node dev-server.ts # Start server on port 3300 + node dev-server.ts 3400 # Start server on port 3400 + node dev-server.ts --build=qwikrouter-test # Build qwikrouter-test and exit + node dev-server.ts --build qwik-spa 3400 # Build qwik-spa and exit (port ignored) + +Available apps: +${appNames.map((a) => ` - ${a}`).join("\n")} + `); +} + async function main() { + // Handle build-and-exit mode + if (buildTarget) { + if (!appNames.includes(buildTarget)) { + console.error(`\n❌ Unknown app: "${buildTarget}"\n`); + printUsage(); + process.exit(1); + } + + console.log(`\n🏗️ Building ${buildTarget}...\n`); + const appDir = join(startersAppsDir, buildTarget); + try { + // Read package.json to determine if qwik-router should be enabled + const pkgPath = join(appDir, "package.json"); + const pkgJson: PackageJSON = JSON.parse(readFileSync(pkgPath, "utf-8")); + const enableRouterServer = !!pkgJson.__qwik__?.qwikRouter; + + await buildApp(appDir, buildTarget, enableRouterServer); + console.log(`\n✅ Successfully built ${buildTarget}\n`); + process.exit(0); + } catch (error: any) { + console.error( + `\n❌ Build failed for ${buildTarget}:\n`, + error.stack || error, + ); + process.exit(1); + } + } + + // Normal server mode + const app = express(); const partytownPath = resolve( startersDir, "..",