From b1fe437c9e0c59d367b8c49e09e4d42ef8628ace Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Thu, 19 Aug 2021 23:14:51 -0400 Subject: [PATCH] perf: PermitScrubber#scrub checks node.element? before node.comment? Assuming elements are more common than comments, this is going to be one less method call per node. --- CHANGELOG.md | 8 ++++++++ lib/rails/html/scrubbers.rb | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 58ae8ff..ca593b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## next / unreleased + +* Slightly improve performance. + + Assuming elements are more common than comments, make one less method call per node. + + *Mike Dalessio* + ## 1.4.1 / 2021-08-18 * Fix regression in v1.4.0 that did not pass comment nodes to the scrubber. diff --git a/lib/rails/html/scrubbers.rb b/lib/rails/html/scrubbers.rb index 385d357..09cfe95 100644 --- a/lib/rails/html/scrubbers.rb +++ b/lib/rails/html/scrubbers.rb @@ -68,7 +68,7 @@ def scrub(node) end return CONTINUE if skip_node?(node) - unless (node.comment? || node.element?) && keep_node?(node) + unless (node.element? || node.comment?) && keep_node?(node) return STOP if scrub_node(node) == STOP end