From 713e4f5274ce8561268e8348da21968be0350a99 Mon Sep 17 00:00:00 2001 From: Jane Chu <7559015+janechu@users.noreply.github.com> Date: Mon, 20 Apr 2026 13:25:37 -0700 Subject: [PATCH 01/11] chore: update webui to 0.0.10 (#7455) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Pull Request ## 📖 Description This change updates the `webui` dependency to 0.0.10. ## 📑 Test Plan This will allow for us to update our integration tests. ## ✅ Checklist ### General - [x] I have included a change request file using `$ npm run change` - [ ] I have added tests for my changes. - [x] I have tested my changes. - [ ] I have updated the project documentation to reflect my changes. - [x] I have read the [CONTRIBUTING](https://github.com/microsoft/fast/blob/main/CONTRIBUTING.md) documentation and followed the [standards](https://github.com/microsoft/fast/blob/main/CODE_OF_CONDUCT.md#our-standards) for this project. --- ...-ee5e1a5d-0ff4-46fe-96c9-ed982e93e391.json | 7 +++ package-lock.json | 56 +++++++++---------- packages/fast-html/package.json | 2 +- 3 files changed, 36 insertions(+), 29 deletions(-) create mode 100644 change/@microsoft-fast-html-ee5e1a5d-0ff4-46fe-96c9-ed982e93e391.json diff --git a/change/@microsoft-fast-html-ee5e1a5d-0ff4-46fe-96c9-ed982e93e391.json b/change/@microsoft-fast-html-ee5e1a5d-0ff4-46fe-96c9-ed982e93e391.json new file mode 100644 index 00000000000..293e17774d4 --- /dev/null +++ b/change/@microsoft-fast-html-ee5e1a5d-0ff4-46fe-96c9-ed982e93e391.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "chore: update webui to 0.0.10", + "packageName": "@microsoft/fast-html", + "email": "7559015+janechu@users.noreply.github.com", + "dependentChangeType": "none" +} diff --git a/package-lock.json b/package-lock.json index e47196b67a3..b24f9f73030 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1617,9 +1617,9 @@ } }, "node_modules/@microsoft/webui": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@microsoft/webui/-/webui-0.0.9.tgz", - "integrity": "sha512-jAV7GiTeICbuAhNmwc5Fyf07oNGcRqbsqrC8DqUM0P6yxqnFTt1PmB/VzTP8NhMVxufaqGcy2qY6QueG9Asypg==", + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/@microsoft/webui/-/webui-0.0.10.tgz", + "integrity": "sha512-lGj0PyVoYUOOJ1MWhseGSe5ZJQurp7KWvSgYtNMBiAb140rD2MXQsHwbwIPsqEPFPtqtCZcxuNzbDqJ7Bl8gRQ==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -1630,18 +1630,18 @@ "node": ">=18" }, "optionalDependencies": { - "@microsoft/webui-darwin-arm64": "0.0.9", - "@microsoft/webui-darwin-x64": "0.0.9", - "@microsoft/webui-linux-arm64": "0.0.9", - "@microsoft/webui-linux-x64": "0.0.9", - "@microsoft/webui-win32-arm64": "0.0.9", - "@microsoft/webui-win32-x64": "0.0.9" + "@microsoft/webui-darwin-arm64": "0.0.10", + "@microsoft/webui-darwin-x64": "0.0.10", + "@microsoft/webui-linux-arm64": "0.0.10", + "@microsoft/webui-linux-x64": "0.0.10", + "@microsoft/webui-win32-arm64": "0.0.10", + "@microsoft/webui-win32-x64": "0.0.10" } }, "node_modules/@microsoft/webui-darwin-arm64": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@microsoft/webui-darwin-arm64/-/webui-darwin-arm64-0.0.9.tgz", - "integrity": "sha512-91HprvaitU62IzdYgt22qMCiEXvr0Utg9vxUc6Mt3mh4KVfSsFVmN7Z6J7eXZQ858CEW4xXKSfpeiEXKkpNGSg==", + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/@microsoft/webui-darwin-arm64/-/webui-darwin-arm64-0.0.10.tgz", + "integrity": "sha512-ApVNle/cU++YYeSG1qiyyP6wC2B5lxPhoKUZI8KZlPLViTwgrJ9Th37HhPqvCPqLMnY06jYtAQlPXbjGZxCNsQ==", "cpu": [ "arm64" ], @@ -1653,9 +1653,9 @@ ] }, "node_modules/@microsoft/webui-darwin-x64": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@microsoft/webui-darwin-x64/-/webui-darwin-x64-0.0.9.tgz", - "integrity": "sha512-JDVmFki6CRRpj+F9CNTPI+b67fIQicLn3AmUQLFFCp0JQqaeGwpdUmXjzPy/Am+dQDCYVL4bKOeysmz4pHDDMA==", + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/@microsoft/webui-darwin-x64/-/webui-darwin-x64-0.0.10.tgz", + "integrity": "sha512-BfKIrhqNDFWA1UZPLccZGq1LEDbA8pNEAsJXaaidAFdzB6Mwhezk9tTKArATthctBOd8O9k5sx5rm7+5FnE15A==", "cpu": [ "x64" ], @@ -1667,9 +1667,9 @@ ] }, "node_modules/@microsoft/webui-linux-arm64": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@microsoft/webui-linux-arm64/-/webui-linux-arm64-0.0.9.tgz", - "integrity": "sha512-fGcSTZi3QfqtdTXsGkSVQ8JT8o4gLpx/32i10qCxf/FvVxkxs7DosgjXgl7lx+kJ2XuTqCOCbSrLLjIK8T/WdA==", + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/@microsoft/webui-linux-arm64/-/webui-linux-arm64-0.0.10.tgz", + "integrity": "sha512-D5gg78/s3QEph3zwcL7PxaHEp33r7EIX2/CpzVXhYq+nTE50Kx3MYQVkyVoSFCp80dz8NpgEB771/JeFGOQ3lQ==", "cpu": [ "arm64" ], @@ -1681,9 +1681,9 @@ ] }, "node_modules/@microsoft/webui-linux-x64": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@microsoft/webui-linux-x64/-/webui-linux-x64-0.0.9.tgz", - "integrity": "sha512-w4AtqZevHbf+AUSMuSq0388DPfZEDi0DoajxVdNas5NBZ8qEr4d/2iP0VSx1vMBcH7nIPHjzM7DJnr9rYnt4Mw==", + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/@microsoft/webui-linux-x64/-/webui-linux-x64-0.0.10.tgz", + "integrity": "sha512-RCnwb7F6Wf75LYDnva/vIN0sNEuKRAXS5BEL8Yg5LuoZtncTGctGxSvMoqhLbBAeD4nnlhTyLn/ZFQVRWJluGw==", "cpu": [ "x64" ], @@ -1695,9 +1695,9 @@ ] }, "node_modules/@microsoft/webui-win32-arm64": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@microsoft/webui-win32-arm64/-/webui-win32-arm64-0.0.9.tgz", - "integrity": "sha512-nNl7yvIu7uZ2y0/ViJ9tpOwflB0sqd1hHF0P53PK8dBfT7bqhby+UNv6tLAFjUYiu1xjnpTje8QIeQZKh2+Qow==", + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/@microsoft/webui-win32-arm64/-/webui-win32-arm64-0.0.10.tgz", + "integrity": "sha512-dFHzxCCOhEPX9kC64uWvw3gV5ldeVdlQ2QreAHt/ewlnOQQmUFWQpzJaSWwirEezWwE20+uakECSt65LBnRuxQ==", "cpu": [ "arm64" ], @@ -1709,9 +1709,9 @@ ] }, "node_modules/@microsoft/webui-win32-x64": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@microsoft/webui-win32-x64/-/webui-win32-x64-0.0.9.tgz", - "integrity": "sha512-FH4gprnUnNcEYgDkPHQS9D8h9gRQqYiy5Wswkgi75EgcELg2k8usGERexLOl/nmLMv4E3su7alhDKQm5oMXIJQ==", + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/@microsoft/webui-win32-x64/-/webui-win32-x64-0.0.10.tgz", + "integrity": "sha512-9nrveoR0Cu9ZRAlXdGh1SI6ljSRwhWSlDj2vAmf4XAWSA4P5nOwL7krQtX/QTbj3xjytTC5t6vxOvASJdqCnSg==", "cpu": [ "x64" ], @@ -8713,7 +8713,7 @@ "devDependencies": { "@microsoft/fast-build": "^0.4.0", "@microsoft/fast-element": "^2.10.4", - "@microsoft/webui": "0.0.9" + "@microsoft/webui": "0.0.10" }, "peerDependencies": { "@microsoft/fast-element": "^2.10.4" diff --git a/packages/fast-html/package.json b/packages/fast-html/package.json index f6aeba4ecb6..e6bf7594474 100644 --- a/packages/fast-html/package.json +++ b/packages/fast-html/package.json @@ -66,7 +66,7 @@ "devDependencies": { "@microsoft/fast-build": "^0.4.0", "@microsoft/fast-element": "^2.10.4", - "@microsoft/webui": "0.0.9" + "@microsoft/webui": "0.0.10" }, "beachball": { "disallowedChangeTypes": [ From 9e39b1a2c9bd2ffde847a61b6829dc984ee76fb5 Mon Sep 17 00:00:00 2001 From: Jane Chu <7559015+janechu@users.noreply.github.com> Date: Mon, 20 Apr 2026 15:02:03 -0700 Subject: [PATCH 02/11] chore: add an all benchmark (#7454) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Pull Request ## 📖 Description This change adds an "all" benchmark that includes all other benchmark components to allow for better performance benchmarking against multiple components. ### 🎫 Issues Further work on #7248 ## 👩‍💻 Reviewer Notes This fills a gap where instead of multiple of the same component being iterated on this is all of the components. This should show more meaningful results for performance checking against things like many different components on a page. ## ✅ Checklist ### General - [ ] I have included a change request file using `$ npm run change` - [ ] I have added tests for my changes. - [x] I have tested my changes. - [ ] I have updated the project documentation to reflect my changes. - [x] I have read the [CONTRIBUTING](https://github.com/microsoft/fast/blob/main/CONTRIBUTING.md) documentation and followed the [standards](https://github.com/microsoft/fast/blob/main/CODE_OF_CONDUCT.md#our-standards) for this project. --- .../bench/src/scenarios/all/csr/index.html | 13 +++ packages/bench/src/scenarios/all/csr/main.ts | 16 ++++ packages/bench/src/scenarios/all/element.ts | 80 +++++++++++++++++++ .../src/scenarios/all/hydration/index.html | 16 ++++ .../bench/src/scenarios/all/hydration/main.ts | 17 ++++ .../src/scenarios/attr-reflect/csr/main.ts | 11 +-- .../src/scenarios/attr-reflect/element.ts | 11 ++- .../scenarios/attr-reflect/hydration/main.ts | 2 +- .../attr-reflect/hydration/render.ts | 4 +- .../src/scenarios/attr-reflect/template.html | 2 +- .../bench/src/scenarios/basic/csr/main.ts | 11 +-- packages/bench/src/scenarios/basic/element.ts | 6 +- .../src/scenarios/basic/hydration/main.ts | 2 +- .../src/scenarios/basic/hydration/render.ts | 4 +- .../bench/src/scenarios/basic/template.html | 2 +- .../src/scenarios/bind-event/csr/main.ts | 11 +-- .../bench/src/scenarios/bind-event/element.ts | 6 +- .../scenarios/bind-event/hydration/main.ts | 2 +- .../scenarios/bind-event/hydration/render.ts | 4 +- .../src/scenarios/bind-event/template.html | 2 +- .../src/scenarios/dot-syntax/csr/main.ts | 8 +- .../scenarios/dot-syntax/hydration/main.ts | 4 +- .../scenarios/dot-syntax/hydration/render.ts | 4 +- .../src/scenarios/dot-syntax/template.html | 2 +- .../src/scenarios/ref-slotted/csr/main.ts | 12 +-- .../src/scenarios/ref-slotted/element.ts | 7 +- .../scenarios/ref-slotted/hydration/main.ts | 2 +- .../scenarios/ref-slotted/hydration/render.ts | 4 +- .../src/scenarios/ref-slotted/template.html | 2 +- .../bench/src/scenarios/repeat/csr/main.ts | 18 +---- .../bench/src/scenarios/repeat/element.ts | 13 ++- .../src/scenarios/repeat/hydration/main.ts | 2 +- .../src/scenarios/repeat/hydration/render.ts | 6 +- .../bench/src/scenarios/repeat/template.html | 2 +- packages/bench/src/scenarios/when/csr/main.ts | 22 +---- packages/bench/src/scenarios/when/element.ts | 17 +++- .../src/scenarios/when/hydration/main.ts | 2 +- .../src/scenarios/when/hydration/render.ts | 4 +- .../bench/src/scenarios/when/template.html | 2 +- packages/bench/vite.config.ts | 69 ++++++++++++---- 40 files changed, 309 insertions(+), 115 deletions(-) create mode 100644 packages/bench/src/scenarios/all/csr/index.html create mode 100644 packages/bench/src/scenarios/all/csr/main.ts create mode 100644 packages/bench/src/scenarios/all/element.ts create mode 100644 packages/bench/src/scenarios/all/hydration/index.html create mode 100644 packages/bench/src/scenarios/all/hydration/main.ts diff --git a/packages/bench/src/scenarios/all/csr/index.html b/packages/bench/src/scenarios/all/csr/index.html new file mode 100644 index 00000000000..91a37515abc --- /dev/null +++ b/packages/bench/src/scenarios/all/csr/index.html @@ -0,0 +1,13 @@ + + + + + + all / csr + + + +
+ + + diff --git a/packages/bench/src/scenarios/all/csr/main.ts b/packages/bench/src/scenarios/all/csr/main.ts new file mode 100644 index 00000000000..01d61076e34 --- /dev/null +++ b/packages/bench/src/scenarios/all/csr/main.ts @@ -0,0 +1,16 @@ +import { runBenchmark } from "../../harness.js"; +import { BenchElement, template } from "../element.js"; + +BenchElement.define({ + name: "all-bench-element", + template, +}); + +let id = 0; + +runBenchmark(() => { + const count = ++id; + const el = document.createElement("all-bench-element") as BenchElement; + el.count = count; + return el; +}); diff --git a/packages/bench/src/scenarios/all/element.ts b/packages/bench/src/scenarios/all/element.ts new file mode 100644 index 00000000000..29d57422db9 --- /dev/null +++ b/packages/bench/src/scenarios/all/element.ts @@ -0,0 +1,80 @@ +import { + attr, + FASTElement, + html, + nullableNumberConverter, +} from "@microsoft/fast-element"; +import { + BenchElement as AttrReflectBenchElement, + template as attrReflectTemplate, +} from "../attr-reflect/element.js"; +import { + BenchElement as BasicBenchElement, + template as basicTemplate, +} from "../basic/element.js"; +import { + BenchElement as BindEventBenchElement, + template as bindEventTemplate, +} from "../bind-event/element.js"; +import { BenchElement as DotSyntaxElement } from "../dot-syntax/element.js"; +import { + BenchElement as RefSlottedBenchElement, + template as refSlottedTemplate, +} from "../ref-slotted/element.js"; +import { + BenchElement as RepeatBenchElement, + template as repeatTemplate, +} from "../repeat/element.js"; +import { + BenchElement as WhenBenchElement, + template as whenTemplate, +} from "../when/element.js"; + +AttrReflectBenchElement.define({ + name: "attr-reflect-bench-element", + template: attrReflectTemplate, +}); + +BasicBenchElement.define({ + name: "basic-bench-element", + template: basicTemplate, +}); + +BindEventBenchElement.define({ + name: "bind-event-bench-element", + template: bindEventTemplate, +}); + +RefSlottedBenchElement.define({ + name: "ref-slotted-bench-element", + template: refSlottedTemplate, +}); + +RepeatBenchElement.define({ + name: "repeat-bench-element", + template: repeatTemplate, +}); + +WhenBenchElement.define({ + name: "when-bench-element", + template: whenTemplate, +}); + +DotSyntaxElement.define({ + name: "dot-syntax-bench-element", +}); + +export class BenchElement extends FASTElement { + @attr({ converter: nullableNumberConverter }) + count?: number; +} + +export const template = html` + + + + slotted content + + + +`; diff --git a/packages/bench/src/scenarios/all/hydration/index.html b/packages/bench/src/scenarios/all/hydration/index.html new file mode 100644 index 00000000000..a32384c7bba --- /dev/null +++ b/packages/bench/src/scenarios/all/hydration/index.html @@ -0,0 +1,16 @@ + + + + + + all / hydration + + + +
+ +
+ + + + diff --git a/packages/bench/src/scenarios/all/hydration/main.ts b/packages/bench/src/scenarios/all/hydration/main.ts new file mode 100644 index 00000000000..6559a23726f --- /dev/null +++ b/packages/bench/src/scenarios/all/hydration/main.ts @@ -0,0 +1,17 @@ +import { RenderableFASTElement, TemplateElement } from "@microsoft/fast-html"; +import { signalDone } from "../../harness.js"; +import { BenchElement } from "../element.js"; + +RenderableFASTElement(BenchElement).defineAsync({ + name: "all-bench-element", + templateOptions: "defer-and-hydrate", +}); + +performance.mark("bench-start"); + +TemplateElement.config({ + hydrationComplete() { + performance.mark("bench-end"); + signalDone(); + }, +}).define({ name: "f-template" }); diff --git a/packages/bench/src/scenarios/attr-reflect/csr/main.ts b/packages/bench/src/scenarios/attr-reflect/csr/main.ts index 258bb980ded..497eea9005b 100644 --- a/packages/bench/src/scenarios/attr-reflect/csr/main.ts +++ b/packages/bench/src/scenarios/attr-reflect/csr/main.ts @@ -1,19 +1,16 @@ -import { html } from "@microsoft/fast-element"; import { runBenchmark } from "../../harness.js"; -import { BenchElement } from "../element.js"; +import { BenchElement, template } from "../element.js"; BenchElement.define({ - name: "bench-element", - template: html` - ${x => x.label} (${x => x.count}) - `, + name: "attr-reflect-bench-element", + template, }); let id = 0; runBenchmark(() => { const count = ++id; - const el = document.createElement("bench-element") as BenchElement; + const el = document.createElement("attr-reflect-bench-element") as BenchElement; el.label = `item-${count}`; el.count = count; el.active = true; diff --git a/packages/bench/src/scenarios/attr-reflect/element.ts b/packages/bench/src/scenarios/attr-reflect/element.ts index f2406393c26..c3ead39418e 100644 --- a/packages/bench/src/scenarios/attr-reflect/element.ts +++ b/packages/bench/src/scenarios/attr-reflect/element.ts @@ -1,4 +1,9 @@ -import { attr, FASTElement, nullableNumberConverter } from "@microsoft/fast-element"; +import { + attr, + FASTElement, + html, + nullableNumberConverter, +} from "@microsoft/fast-element"; export class BenchElement extends FASTElement { @attr @@ -10,3 +15,7 @@ export class BenchElement extends FASTElement { @attr({ mode: "boolean" }) active?: boolean; } + +export const template = html` + ${x => x.label} (${x => x.count}) +`; diff --git a/packages/bench/src/scenarios/attr-reflect/hydration/main.ts b/packages/bench/src/scenarios/attr-reflect/hydration/main.ts index 17cbaddee9f..8a107a80e03 100644 --- a/packages/bench/src/scenarios/attr-reflect/hydration/main.ts +++ b/packages/bench/src/scenarios/attr-reflect/hydration/main.ts @@ -3,7 +3,7 @@ import { signalDone } from "../../harness.js"; import { BenchElement } from "../element.js"; RenderableFASTElement(BenchElement).defineAsync({ - name: "bench-element", + name: "attr-reflect-bench-element", templateOptions: "defer-and-hydrate", }); diff --git a/packages/bench/src/scenarios/attr-reflect/hydration/render.ts b/packages/bench/src/scenarios/attr-reflect/hydration/render.ts index 4f0ed4ffcf5..18a7391f300 100644 --- a/packages/bench/src/scenarios/attr-reflect/hydration/render.ts +++ b/packages/bench/src/scenarios/attr-reflect/hydration/render.ts @@ -2,13 +2,13 @@ export function render(index: number): string { const count = `${index + 1}`; const label = `item-${count}`; return /* html */ ` - + - + `; } diff --git a/packages/bench/src/scenarios/attr-reflect/template.html b/packages/bench/src/scenarios/attr-reflect/template.html index dcb945208c4..c02297339f3 100644 --- a/packages/bench/src/scenarios/attr-reflect/template.html +++ b/packages/bench/src/scenarios/attr-reflect/template.html @@ -1,4 +1,4 @@ - + diff --git a/packages/bench/src/scenarios/basic/csr/main.ts b/packages/bench/src/scenarios/basic/csr/main.ts index 7c5ffc5af7f..948c683dac1 100644 --- a/packages/bench/src/scenarios/basic/csr/main.ts +++ b/packages/bench/src/scenarios/basic/csr/main.ts @@ -1,16 +1,13 @@ -import { html } from "@microsoft/fast-element"; import { runBenchmark } from "../../harness.js"; -import { BenchElement } from "../element.js"; +import { BenchElement, template } from "../element.js"; BenchElement.define({ - name: "bench-element", - template: html` - - `, + name: "basic-bench-element", + template, }); runBenchmark(() => { - const el = document.createElement("bench-element"); + const el = document.createElement("basic-bench-element"); el.innerHTML = "hello"; return el; }); diff --git a/packages/bench/src/scenarios/basic/element.ts b/packages/bench/src/scenarios/basic/element.ts index 1247ab9e4ba..986d1346b2e 100644 --- a/packages/bench/src/scenarios/basic/element.ts +++ b/packages/bench/src/scenarios/basic/element.ts @@ -1,3 +1,7 @@ -import { FASTElement } from "@microsoft/fast-element"; +import { FASTElement, html } from "@microsoft/fast-element"; export class BenchElement extends FASTElement {} + +export const template = html` + +`; diff --git a/packages/bench/src/scenarios/basic/hydration/main.ts b/packages/bench/src/scenarios/basic/hydration/main.ts index 84c6f4629da..96607c01b96 100644 --- a/packages/bench/src/scenarios/basic/hydration/main.ts +++ b/packages/bench/src/scenarios/basic/hydration/main.ts @@ -3,7 +3,7 @@ import { signalDone } from "../../harness.js"; import { BenchElement } from "../element.js"; BenchElement.defineAsync({ - name: "bench-element", + name: "basic-bench-element", }); performance.mark("bench-start"); diff --git a/packages/bench/src/scenarios/basic/hydration/render.ts b/packages/bench/src/scenarios/basic/hydration/render.ts index 0d2d63c8299..0c13e232869 100644 --- a/packages/bench/src/scenarios/basic/hydration/render.ts +++ b/packages/bench/src/scenarios/basic/hydration/render.ts @@ -1,10 +1,10 @@ export function render(): string { return /* html */ ` - + hello - + `; } diff --git a/packages/bench/src/scenarios/basic/template.html b/packages/bench/src/scenarios/basic/template.html index c0be9263dff..6d7384de8a3 100644 --- a/packages/bench/src/scenarios/basic/template.html +++ b/packages/bench/src/scenarios/basic/template.html @@ -1,4 +1,4 @@ - + diff --git a/packages/bench/src/scenarios/bind-event/csr/main.ts b/packages/bench/src/scenarios/bind-event/csr/main.ts index 06d29b8d0f3..2bb1c18f7b7 100644 --- a/packages/bench/src/scenarios/bind-event/csr/main.ts +++ b/packages/bench/src/scenarios/bind-event/csr/main.ts @@ -1,12 +1,9 @@ -import { html } from "@microsoft/fast-element"; import { runBenchmark } from "../../harness.js"; -import { BenchElement } from "../element.js"; +import { BenchElement, template } from "../element.js"; BenchElement.define({ - name: "bench-element", - template: html` - - `, + name: "bind-event-bench-element", + template, }); -runBenchmark(() => document.createElement("bench-element")); +runBenchmark(() => document.createElement("bind-event-bench-element")); diff --git a/packages/bench/src/scenarios/bind-event/element.ts b/packages/bench/src/scenarios/bind-event/element.ts index 2cee5bcaf5b..098b12d4ad4 100644 --- a/packages/bench/src/scenarios/bind-event/element.ts +++ b/packages/bench/src/scenarios/bind-event/element.ts @@ -1,4 +1,4 @@ -import { attr, FASTElement } from "@microsoft/fast-element"; +import { attr, FASTElement, html } from "@microsoft/fast-element"; export class BenchElement extends FASTElement { @attr count: string = "0"; @@ -7,3 +7,7 @@ export class BenchElement extends FASTElement { this.count = String(parseInt(this.count, 10) + 1); } } + +export const template = html` + +`; diff --git a/packages/bench/src/scenarios/bind-event/hydration/main.ts b/packages/bench/src/scenarios/bind-event/hydration/main.ts index 17cbaddee9f..403a1513ed0 100644 --- a/packages/bench/src/scenarios/bind-event/hydration/main.ts +++ b/packages/bench/src/scenarios/bind-event/hydration/main.ts @@ -3,7 +3,7 @@ import { signalDone } from "../../harness.js"; import { BenchElement } from "../element.js"; RenderableFASTElement(BenchElement).defineAsync({ - name: "bench-element", + name: "bind-event-bench-element", templateOptions: "defer-and-hydrate", }); diff --git a/packages/bench/src/scenarios/bind-event/hydration/render.ts b/packages/bench/src/scenarios/bind-event/hydration/render.ts index c0856c6811c..cb8189b3fff 100644 --- a/packages/bench/src/scenarios/bind-event/hydration/render.ts +++ b/packages/bench/src/scenarios/bind-event/hydration/render.ts @@ -1,9 +1,9 @@ export function render(): string { return /* html */ ` - + - + `; } diff --git a/packages/bench/src/scenarios/bind-event/template.html b/packages/bench/src/scenarios/bind-event/template.html index 44cbfd5eb5b..922e7234649 100644 --- a/packages/bench/src/scenarios/bind-event/template.html +++ b/packages/bench/src/scenarios/bind-event/template.html @@ -1,4 +1,4 @@ - + diff --git a/packages/bench/src/scenarios/dot-syntax/csr/main.ts b/packages/bench/src/scenarios/dot-syntax/csr/main.ts index b2ff1d05e48..94d489c25da 100644 --- a/packages/bench/src/scenarios/dot-syntax/csr/main.ts +++ b/packages/bench/src/scenarios/dot-syntax/csr/main.ts @@ -3,14 +3,14 @@ import { runBenchmark } from "../../harness.js"; import { BenchElement } from "../element.js"; BenchElement.defineAsync({ - name: "bench-element", + name: "dot-syntax-bench-element", templateOptions: "defer-and-hydrate", }); TemplateElement.options({ - "bench-element": { observerMap: "all" }, + "dot-syntax-bench-element": { observerMap: "all" }, }).define({ name: "f-template" }); -await customElements.whenDefined("bench-element"); +await customElements.whenDefined("dot-syntax-bench-element"); -runBenchmark(() => document.createElement("bench-element")); +runBenchmark(() => document.createElement("dot-syntax-bench-element")); diff --git a/packages/bench/src/scenarios/dot-syntax/hydration/main.ts b/packages/bench/src/scenarios/dot-syntax/hydration/main.ts index b3190bfda4f..e3347057e6d 100644 --- a/packages/bench/src/scenarios/dot-syntax/hydration/main.ts +++ b/packages/bench/src/scenarios/dot-syntax/hydration/main.ts @@ -3,7 +3,7 @@ import { signalDone } from "../../harness.js"; import { BenchElement } from "../element.js"; RenderableFASTElement(BenchElement).defineAsync({ - name: "bench-element", + name: "dot-syntax-bench-element", templateOptions: "defer-and-hydrate", }); @@ -16,6 +16,6 @@ TemplateElement.config({ }, }) .options({ - "bench-element": { observerMap: "all" }, + "dot-syntax-bench-element": { observerMap: "all" }, }) .define({ name: "f-template" }); diff --git a/packages/bench/src/scenarios/dot-syntax/hydration/render.ts b/packages/bench/src/scenarios/dot-syntax/hydration/render.ts index 9baa2ab3b88..fcbc7566792 100644 --- a/packages/bench/src/scenarios/dot-syntax/hydration/render.ts +++ b/packages/bench/src/scenarios/dot-syntax/hydration/render.ts @@ -1,6 +1,6 @@ export function render(): string { return /* html */ ` - + - + `; } diff --git a/packages/bench/src/scenarios/dot-syntax/template.html b/packages/bench/src/scenarios/dot-syntax/template.html index 28dc743c5a7..f7d45a0a93c 100644 --- a/packages/bench/src/scenarios/dot-syntax/template.html +++ b/packages/bench/src/scenarios/dot-syntax/template.html @@ -1,4 +1,4 @@ - +