Handle ternary operator in arrays and objects.#921
Open
antoineveldhoven wants to merge 1 commit intotwigjs:masterfrom
Open
Handle ternary operator in arrays and objects.#921antoineveldhoven wants to merge 1 commit intotwigjs:masterfrom
antoineveldhoven wants to merge 1 commit intotwigjs:masterfrom
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR fixes issue #853 by implementing proper handling of shorthand ternary operators (a ? b) within arrays and objects. The key improvement is using an explicit hasColon flag to differentiate between full ternary operators (a ? b : c) and shorthand ternary operators (a ? b), replacing the previous fragile approach that relied on checking for undefined values.
Key Changes:
- Added
hasColonflag tracking during expression compilation to distinguish full vs shorthand ternary operators - Refactored ternary operator parsing to explicitly handle shorthand and full ternary cases separately
- Added test coverage for shorthand ternary operators in both objects and arrays
Reviewed Changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| test/test.expressions.js | Adds two new test cases for shorthand ternary operators inside objects and arrays |
| src/twig.expression.operator.js | Updates operator.parse to accept token parameter and handle shorthand ternary logic explicitly based on hasColon flag |
| src/twig.expression.js | Sets hasColon flag when : follows ? operator, and updates all operator.parse calls to pass token parameter |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Aiming to fix #853
Copilot assisted commit.