fix(runtime-core): support object syntax for class in templates #215
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.
Current logic in
vnode.ts
does not normalize classes for templates, because ofPatchFlags.CLASS
set on compiled VNode.Unfortunately, at least for browser build,
PatchFlags.CLASS
does not mean that any kind of compile-time optimization was applied to class (I'm not 100% sure, but it seems that it is handled byprocessExpression
code path, which is not taken in a browser)It results in
[object Object]
being displayed as a class name when:class = { foo: smthng, bar: smthng }
syntax is used.This PR removes that extra check and adds an integration test for this scenario.