Skip to content
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

synthetic shadow polyfill #1164

Open
6 of 17 tasks
caridy opened this issue Apr 9, 2019 · 0 comments
Open
6 of 17 tasks

synthetic shadow polyfill #1164

caridy opened this issue Apr 9, 2019 · 0 comments
Labels
Synthetic Shadow Synthetic shadow DOM polyfill

Comments

@caridy
Copy link
Contributor

caridy commented Apr 9, 2019

Tasks

  • (in-progress) moving all shadow dom related polyfills into @lwc/synthetic-shadow new pkg
  • refactor patch.ts to completely disconnect from polyfill. This includes:
    • enabling appendChild and co in ShadowRoot
    • change engine to use dot notation for the diffing algo instead of cached low level operations (this will represent a perf regression for sure turns out that it doesn't)
    • implement slotting manually in situ instead of the pre-allocation that we use today (that will make things slower as well... but will solve all the issues that we have with the connect/disconnect non-sense for slotted content.
    • refactor patching of node protos to be done in the polyfill instead of part of the diffing algo.
    • need a different mechanism to allow lwc:dom=manual, the current one is a hard connecting between engine and polyfill.
  • change the distribution of the engine to NOT include the synthetic shadow out of the box, instead it should be included manually ahead of time.
  • consider removing the mutation observer in favor of a different mechanism to detect insertion and removal of non-registered custom elements across the board:
    • refactor upgrade.ts and wc.ts to rely on a different mechanism to detect insertion/removal
    • this will probably be another perf regression (review), but might help on the overall picture.
  • some other cleanup
    • the presumption that compiler could provide specific hooks when detecting no-attribute, no-events, etc... seems wrong after some perf tests in the past, maybe we can remove that provision all together from engine/diffing
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Synthetic Shadow Synthetic shadow DOM polyfill
Projects
None yet
Development

No branches or pull requests

2 participants