Ensure dynamic component invocations follow splattribute rules. #847
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When the
DynamicComponent
opcode was initial introduce, it did not properly replicate theSetComponentAttrs
toggling system thatOps.Component
has. This has the unfortunate result of making dynamic component invocations not follow the established rules for splattributes (invocation "wins" for all attributes other thanclass
andclass
is merged). The implementation here for attrs block created here, is directly taken from theOps.Component
opcode just below...In this context
DynamicComponent
is specifically referring to angle bracket invocation with either a named argument or path.Once merged, this needs to be backported into the version of glimmer-vm in use by Ember 3.4.x to fix the bug reported by @cibernox in emberjs/ember.js#16933 and rwjblue/sparkles-component#7.