-
Notifications
You must be signed in to change notification settings - Fork 24.5k
Comparing changes
Open a pull request
base repository: facebook/react-native
base: b2f698afcf4e3f063397f6952cf5e3a6525e9126
head repository: facebook/react-native
compare: 290ba820946361ce7e360ef4e67f494fdfc66169
- 5 commits
- 8 files changed
- 1 contributor
Commits on Jan 22, 2025
-
Simplify "rollback" on optional or invalid syntax (#48825)
Summary: Right now we preserve the state of the CSSSyntaxParser across multiple data type parse attempts, so long that a data type parser consumes an additional component value. This requires data type parsers to be careful to not consume additional forward tokens if it may lead to parse error. We can make this model a lot simpler by instead resetting the parser to original state on data type parse error. We also introduce `peekComponentValue`, and visitor-less `consumeComponentValue` as a convenience, to allow data type parsers to view future component values without advancing, even if the data type parser does return a value, without needing to manually clone the parser. Changelog: [Internal] Reviewed By: lenaic Differential Revision: D68357624
Configuration menu - View commit details
-
Copy full SHA for c780b38 - Browse repository at this point
Copy the full SHA c780b38View commit details -
Simplify consuming solidus separated component values (#48826)
Summary: This ends up being a not uncommon pattern, so lets make it a bit easier. Changelog: [Internal] Reviewed By: lenaic Differential Revision: D68359563
Configuration menu - View commit details
-
Copy full SHA for 197e3f3 - Browse repository at this point
Copy the full SHA 197e3f3View commit details -
Support parsing rgb() and rgba() functions into CSSColor (#48827)
Summary: This teaches the CSSColor parser how to handle these functions. There are a surprising amount of edge cases here, including many syntactic options added by the CSS Color Module 4 spec, and some technically invalid examples supported by normalize-color, sometimes working in Chrome. I used the combination of the spec, and existing functionality and tests for `normalize-color`, with the end result supporting a superset of the functionality of both, while being a bit more permissive than either. I still need to add support for the other color functions, and will probably want to share code here, but for now, just implemented everything for the rgb values as a start. Changelog: [Internal] Reviewed By: javache Differential Revision: D68362477
Configuration menu - View commit details
-
Copy full SHA for cd67302 - Browse repository at this point
Copy the full SHA cd67302View commit details -
Add CSSDelimeter::OptionalWhitespace and CSSDelimeter::CommaOrWhitesp…
…aceOrSolidus (#48828) Summary: 1. Rename `CSSComponentValueDelimeter` to `CSSDelimeter` bc the names are getting way too long. 2. Make the distinction between `Whitespace` and `OptionalWhitespace`. Note that for property values, and function blocks, the value parser will already remove trailing/leading whitespace, but it's weird that whitespace unlike others was not required to be present 3. Add `CSSDelimeter::CommaOrWhitespaceOrSolidus` for simpler parsing in the common pattern of alpha values, and move CSSColor function parsing to use that Changelog: [Internal] Reviewed By: lenaic Differential Revision: D68461968
Configuration menu - View commit details
-
Copy full SHA for 97c2e82 - Browse repository at this point
Copy the full SHA 97c2e82View commit details -
More spec compliant rgb function parsing (#48839)
Summary: In the last diff I mixed and matched `<legacy-rgb-syntax>` and `<modern-rgb-syntax>` a bit to keep compatiblity with `normalze-color`. Spec noncompliant values have only been allowed since #34600 with the main issue being that legacy syntax rgb functions are allowed to use the `/` based alpha syntax, and commas can be mixed with whitespace. This seems like an exceedingly rare real-world scenario (there are currently zero usages of slash syntax in RKJSModules validated by `rgb\([^\)]*/`), so I'm going to instead just follow the spec for more sanity. Another bit that I missed was that modern RGB functions allow individual components to be `<percentage>` or `<number>` compared to legacy functions which only allow the full function to accept one or the other (`normalize-color` doesn't support `<percentage>` at all), so I fixed that as well. I started sharing a little bit more of the logic here, to make things more readable when adding more functions. Changelog: [Internal] Differential Revision: D68468275
Configuration menu - View commit details
-
Copy full SHA for 290ba82 - Browse repository at this point
Copy the full SHA 290ba82View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff b2f698afcf4e3f063397f6952cf5e3a6525e9126...290ba820946361ce7e360ef4e67f494fdfc66169