Conversation
| // This code exists for that, and as a fallback in IE11. In general, prefer | ||
| // `symbol` below when creating a new symbol. | ||
| export function enumerableSymbol(debugName: string): string { | ||
| // TODO: Investigate using platform symbols, but we do not |
Estimated Asset SizesDiff --- main/out.txt 2026-02-17 19:37:18.000000000 +0000
+++ pr/./pr-22263188055/out.txt 2026-02-21 19:48:52.000000000 +0000
@@ -1,46 +1,46 @@
╔═══════╤═══════════╤═══════════╗
║ │ Min │ Gzip ║
╟───────┼───────────┼───────────╢
-║ Total │ 351.99 KB │ 203.84 KB ║
+║ Total │ 351.71 KB │ 203.75 KB ║
╚═══════╧═══════════╧═══════════╝
╔══════════════════════╤═══════════╤═══════════╗
║ @ember/* │ Min │ Gzip ║
╟──────────────────────┼───────────┼───────────╢
-║ Total │ 313.39 KB │ 181.91 KB ║
+║ Total │ 313.12 KB │ 181.77 KB ║
╟──────────────────────┼───────────┼───────────╢
-║ -internals │ 36.65 KB │ 26.22 KB ║
+║ -internals │ 36.58 KB │ 26.05 KB ║
║ application │ 13.23 KB │ 8.05 KB ║
-║ array │ 13.01 KB │ 7.46 KB ║
+║ array │ 13.01 KB │ 7.58 KB ║
║ canary-features │ 304 B │ 389 B ║
-║ component │ 2.05 KB │ 1.64 KB ║
-║ controller │ 1.96 KB │ 1.41 KB ║
-║ debug │ 11.69 KB │ 8.12 KB ║
+║ component │ 2.05 KB │ 1.6 KB ║
+║ controller │ 1.9 KB │ 1.41 KB ║
+║ debug │ 11.69 KB │ 8.14 KB ║
║ deprecated-features │ 31 B │ 77 B ║
║ destroyable │ 561 B │ 383 B ║
║ enumerable │ 259 B │ 387 B ║
-║ helper │ 1.08 KB │ 811 B ║
+║ helper │ 1.08 KB │ 829 B ║
║ instrumentation │ 2.43 KB │ 1.79 KB ║
-║ modifier │ 1.22 KB │ 965 B ║
-║ object │ 35.94 KB │ 22.16 KB ║
+║ modifier │ 1.22 KB │ 963 B ║
+║ object │ 35.8 KB │ 21.98 KB ║
║ owner │ 159 B │ 178 B ║
-║ renderer │ 630 B │ 487 B ║
-║ routing │ 59.3 KB │ 34.12 KB ║
-║ runloop │ 2.36 KB │ 1.5 KB ║
-║ service │ 1 KB │ 845 B ║
-║ template │ 654 B │ 541 B ║
+║ renderer │ 630 B │ 500 B ║
+║ routing │ 59.3 KB │ 34.17 KB ║
+║ runloop │ 2.36 KB │ 1.45 KB ║
+║ service │ 1 KB │ 867 B ║
+║ template │ 654 B │ 537 B ║
║ template-compilation │ 429 B │ 366 B ║
-║ template-compiler │ 123.08 KB │ 59.45 KB ║
+║ template-compiler │ 123.08 KB │ 59.47 KB ║
║ template-factory │ 370 B │ 374 B ║
║ test │ 923 B │ 627 B ║
-║ utils │ 4.11 KB │ 3.6 KB ║
+║ utils │ 4.11 KB │ 3.62 KB ║
║ version │ 55 B │ 131 B ║
╚══════════════════════╧═══════════╧═══════════╝
╔═════════════════╤══════════╤══════════╗
║ @glimmer/* │ Min │ Gzip ║
╟─────────────────┼──────────┼──────────╢
-║ Total │ 38.6 KB │ 21.94 KB ║
+║ Total │ 38.6 KB │ 21.98 KB ║
╟─────────────────┼──────────┼──────────╢
║ destroyable │ 2.77 KB │ 1.39 KB ║
║ encoder │ 81 B │ 171 B ║
@@ -53,7 +53,7 @@
║ program │ 252 B │ 301 B ║
║ reference │ 548 B │ 531 B ║
║ runtime │ 10.32 KB │ 5.32 KB ║
-║ tracking │ 1.34 KB │ 1.16 KB ║
+║ tracking │ 1.34 KB │ 1.21 KB ║
║ util │ 1.94 KB │ 1.68 KB ║
║ validator │ 15.75 KB │ 6.96 KB ║
║ vm │ 495 B │ 569 B ║Details
|
packages/@ember/-internals/glimmer/lib/component-managers/curly.ts
Outdated
Show resolved
Hide resolved
| // Set whether this component was invoked with a block | ||
| // (`{{#my-component}}{{/my-component}}`) or without one | ||
| // (`{{my-component}}`). | ||
| props[HAS_BLOCK] = hasBlock; |
There was a problem hiding this comment.
As we discussed during RFC review call, let's see whether we really need to change the assignment behavior here, because this looks potentially visible to user code.
There was a problem hiding this comment.
looks like the commit history covered this:
NullVoxPopuli@3603790
as well as the comment on the new code.
As far as visibility to user code... maybe only about as much as the Symbol(OWNER) is
There was a problem hiding this comment.
There is another way to manage the args and has block info without causing prototype deopts (in recent commits)
Co-authored-by: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Co-authored-by: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
e668628 to
e00d6b4
Compare
|
@copilot pull in the missing changes from this https://github.com/NullVoxPopuli/ember.js/pull/11/changes around the curly component manager (and consumers of that new exported function) |
|
@NullVoxPopuli I've opened a new pull request, #21112, to work on those changes. Once the pull request is ready, I'll request review from you. |
…onent Co-authored-by: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
…manager Co-authored-by: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Use WeakMap for curly component capturedArgs instead of symbol-keyed instance properties
We dropped IE11 long ago, and forgot to clean this up
bench results are unchanged
artifact-2.pdf