-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
[DO NOT MERGE] Glimmer 2 Final Countdown #13316
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
7a06196 to
e877cf7
Compare
FINAL_COUNTDOWN.md
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Complete all test migration described in [Pls send halp!] The Ultimate Glimmer 2 Test Porting Guide #13127
FINAL_COUNTDOWN.md
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Not usable in a block: Failing test
e877cf7 to
1560357
Compare
FINAL_COUNTDOWN.md
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Implement
{{action}}
|
There are a few |
57262af to
d7682b6
Compare
|
I will implement |
c0564c9 to
a6bc888
Compare
FINAL_COUNTDOWN.md
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
htmlSafe is not actually supported in double-curlies from what I can tell. The PR mentioned here only fixes the tests to make it possible to compare HTMLBars and Glimmer2 behavior side-by-side. The feature is still missing (and I'm trying to implement it).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You should look here: https://github.com/tildeio/glimmer/blob/master/packages/glimmer-runtime/lib/compiled/opcodes/content.ts
- The
AppendOpcodeis responsible for inserting the content during "initial render" (but this also applies to things like an{{#if}}changing from true to false, thus tearing down the block and rendering a different one). It needs to be updated to handle both safe and non-safe strings. - The
AppendOpcodeemits anUpdateAppendOpcodethat is responsible for keeping the curlies up-to-date when the content changes. It needs to remember which "mode" it was in previously and do the right thing. (Handling safe <-> non-safe strings, etc). - You can look at how the "Trusting" versions of opcodes, which are for triple-curlies. You can probably refactor things to share more code.
- Keep in mind the "const reference optimization" as you do this: Implement
ConstReferenceoptimization glimmerjs/glimmer-vm#109 - Future work: we also need to support appending DOM nodes into the curlies (helpers etc can return DOM nodes to be inserted). But we can tackle that separately.
- Ideally, we would like to minimize the "mode switching" stuff by emitting specialized opcodes, but I couldn't think of any cases where we can know these information ahead of time (other than the const case, which simply does not emit updating opcodes).
|
I'm investigating |
FINAL_COUNTDOWN.md
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm going to take a stab at this
EDIT: #13337
a6bc888 to
aafb356
Compare
|
Bump. Just want to notify everyone in this thread on the way we are going to track things going forward. Please read the initial comment for an update. |
|
Closing in favor of #13644 |
Update
Markdown file did not pan out. There was much confusion on what tasks were taken. So what is the plan? I have migrated all of the tasks and relevant information to a Trello board 😱 . No worries you do not need to signup for Trello or any of that nonsense. Please continue 🔒 ing things by just commenting on this PR along with the link to the trello board. Example:
I will then personally go move the card to "In Progress". Hopefully this is not too much burden and will actually result in clear direction of "what needs to be done".
Thanks everyone!
Board
https://trello.com/b/6C6i3eGV/glimmer-2
This is the 🔥 🔥 🔥 burn down 🔥 🔥 🔥 issue to ship Glimmer 2. While there are still in flight PRs, this is known state of the world at SHA b418b95.
We are experimenting on using a temporary Markdown instead of a regular checklist so that we can add line comments for each item. Do not merge this pull request.