Fix textareas only after preserved timing#941
Merged
Conversation
k0kubun
commented
Jul 11, 2017
| # @since Haml 4.0.1 | ||
| # @private | ||
| def fix_textareas!(input) | ||
| return input unless toplevel? && input.include?('<textarea'.freeze) |
Member
Author
There was a problem hiding this comment.
Note that toplevel? is considered to be added just for optimization, and it must be removed now to apply this in partial view (we didn't need to call in partial before because outside layout will render partial as ruby script and call fix_textareas! for it).
And this fix won't cause regression as this method is idempotent and safe to call multiple times.
Member
Author
|
As the original problem is heavily tested for both Rails and non-Rails templates and tests pass, I think this is safe to merge. @haml/committers Thoughts? |
Member
Author
|
Since this patch does not introduce any behavior change, merging this for now. Please fell free to add some feedback later. |
netbsd-srcmastr
pushed a commit
to NetBSD/pkgsrc
that referenced
this pull request
Sep 10, 2017
## 5.0.3 Released on September 7, 2017 ([diff](haml/haml@v5.0.2...v5.0.3)). * Use `String#dump` instead of `String#inspect` to generate string literal. (Takashi Kokubun) * Fix Erubi superclass mismatch error. [#952](haml/haml#952) (thanks [Robin Daugherty](https://github.com/RobinDaugherty)) ## 5.0.2 Released on August 1, 2017 ([diff](haml/haml@v5.0.1...v5.0.2)). * Let `haml -c` fail if generated Ruby code is syntax error. [#880](haml/haml#880) (Takashi Kokubun) * Fix `NoMethodError` bug caused with Sprockets 3 and :sass filter. [#930](haml/haml#930) (thanks [Gonzalez Maximiliano](https://github.com/emaxi)) * Fix `list_of` helper with multi-line content. [#933](haml/haml#933) (thanks [Benoit Larroque](https://github.com/zetaben)) * Optimize rendering performance by changing timing to fix textareas. [#941](haml/haml#941) (Takashi Kokubun) * Fix `TypeError` with empty :ruby filter. [#942](haml/haml#942) (Takashi Kokubun) * Fix inconsistent attribute sort order. (Takashi Kokubun)
msk
pushed a commit
to msk/pkgsrc
that referenced
this pull request
May 11, 2026
## 5.0.3 Released on September 7, 2017 ([diff](haml/haml@v5.0.2...v5.0.3)). * Use `String#dump` instead of `String#inspect` to generate string literal. (Takashi Kokubun) * Fix Erubi superclass mismatch error. [#952](haml/haml#952) (thanks [Robin Daugherty](https://github.com/RobinDaugherty)) ## 5.0.2 Released on August 1, 2017 ([diff](haml/haml@v5.0.1...v5.0.2)). * Let `haml -c` fail if generated Ruby code is syntax error. [#880](haml/haml#880) (Takashi Kokubun) * Fix `NoMethodError` bug caused with Sprockets 3 and :sass filter. [#930](haml/haml#930) (thanks [Gonzalez Maximiliano](https://github.com/emaxi)) * Fix `list_of` helper with multi-line content. [#933](haml/haml#933) (thanks [Benoit Larroque](https://github.com/zetaben)) * Optimize rendering performance by changing timing to fix textareas. [#941](haml/haml#941) (Takashi Kokubun) * Fix `TypeError` with empty :ruby filter. [#942](haml/haml#942) (Takashi Kokubun) * Fix inconsistent attribute sort order. (Takashi Kokubun)
jperkin
pushed a commit
to TritonDataCenter/pkgsrc
that referenced
this pull request
May 14, 2026
## 5.0.3 Released on September 7, 2017 ([diff](haml/haml@v5.0.2...v5.0.3)). * Use `String#dump` instead of `String#inspect` to generate string literal. (Takashi Kokubun) * Fix Erubi superclass mismatch error. [#952](haml/haml#952) (thanks [Robin Daugherty](https://github.com/RobinDaugherty)) ## 5.0.2 Released on August 1, 2017 ([diff](haml/haml@v5.0.1...v5.0.2)). * Let `haml -c` fail if generated Ruby code is syntax error. [#880](haml/haml#880) (Takashi Kokubun) * Fix `NoMethodError` bug caused with Sprockets 3 and :sass filter. [#930](haml/haml#930) (thanks [Gonzalez Maximiliano](https://github.com/emaxi)) * Fix `list_of` helper with multi-line content. [#933](haml/haml#933) (thanks [Benoit Larroque](https://github.com/zetaben)) * Optimize rendering performance by changing timing to fix textareas. [#941](haml/haml#941) (Takashi Kokubun) * Fix `TypeError` with empty :ruby filter. [#942](haml/haml#942) (Takashi Kokubun) * Fix inconsistent attribute sort order. (Takashi Kokubun)
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.
Description
We call
Haml::Buffer#fix_textareas!to rollback textarea content's first
, which is unexpectedly preserved from\nbyHaml::Helpers#preserve, to\nfor every script.But it means that we need to call
Haml::Buffer#fix_textareas!only after we callpreserve. So I fixed to do so.Benchmark
With Ruby 2.4.0 and k0kubun/haml_bench/templates/slim_bench.haml,
before
after
Now
_hamlout's dependency is only_hamlout.attributescall for Hash in that benchmark template. It means that we have new optimization chance to lazily initializeHaml::Bufferinstance, which is the current bottleneck of Haml.