Skip to content

Commit

Permalink
fix(html/codegen): Fix quotes in attributes (#4918)
Browse files Browse the repository at this point in the history
  • Loading branch information
alexander-akait committed Jun 10, 2022
1 parent a0f6437 commit 064e504
Show file tree
Hide file tree
Showing 4 changed files with 83 additions and 2 deletions.
4 changes: 2 additions & 2 deletions crates/swc_html_codegen/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -857,9 +857,9 @@ fn minify_attribute_value(value: &str) -> String {
}

if dq > sq {
format!("'{}'", minified)
format!("'{}'", minified.replace('\'', "'"))
} else {
format!("\"{}\"", minified)
format!("\"{}\"", minified.replace('"', """))
}
}

Expand Down
27 changes: 27 additions & 0 deletions crates/swc_html_codegen/tests/fixture/attribute/input.html
Original file line number Diff line number Diff line change
Expand Up @@ -150,5 +150,32 @@
&amposlash; &amposLash; &ampOslash;
</div>

<a b=`'&apos;<<==/`/></a>
<a b=`'&quot;<<==/`/></a>
<a b=`'"<<==/`/></a>
<a b=`'"""<<==/`/></a>
<a b='`"<<==/`/'></a>
<a b="`'<<==/`/"></a>

<a b="&quot;"></a>
<a b="&apos;"></a>
<a b='&apos;'></a>
<a b='&quot;'></a>

<a b='&apos;&apos;&apos;'></a>
<a b="&apos;&apos;&apos;"></a>

<a b='&quot;&quot;&quot;'></a>
<a b="&quot;&quot;&quot;"></a>

<a href=">"></a>
<a href="<"></a>
<a href="&lt;"></a>
<a href="&lt"></a>
<a href="&gt;"></a>
<a href="&gt"></a>
<a href="&#62;"></a>
<a href="&#62"></a>

</body>
</html>
27 changes: 27 additions & 0 deletions crates/swc_html_codegen/tests/fixture/attribute/output.html
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,33 @@
&amp;oslash; &amp;osLash; &amp;Oslash;
</div>

<a b="`''<<==/`/"></a>
<a b="`'&quot;<<==/`/"></a>
<a b="`'&quot;<<==/`/"></a>
<a b="`'&quot;&quot;&quot;<<==/`/"></a>
<a b="`&quot;<<==/`/"></a>
<a b="`'<<==/`/"></a>

<a b="&quot;"></a>
<a b="'"></a>
<a b="'"></a>
<a b="&quot;"></a>

<a b="'''"></a>
<a b="'''"></a>

<a b="&quot;&quot;&quot;"></a>
<a b="&quot;&quot;&quot;"></a>

<a href=">"></a>
<a href="<"></a>
<a href="<"></a>
<a href="<"></a>
<a href=">"></a>
<a href=">"></a>
<a href=">"></a>
<a href=">"></a>



</body></html>
27 changes: 27 additions & 0 deletions crates/swc_html_codegen/tests/fixture/attribute/output.min.html
Original file line number Diff line number Diff line change
Expand Up @@ -144,5 +144,32 @@
&amp;oslash; &osLash; &amp;Oslash;
</div>

<a b="`''<<==/`/"></a>
<a b="`'&quot;<<==/`/"></a>
<a b="`'&quot;<<==/`/"></a>
<a b='`&apos;"""<<==/`/'></a>
<a b='`"<<==/`/'></a>
<a b="`'<<==/`/"></a>

<a b='"'></a>
<a b="'"></a>
<a b="'"></a>
<a b='"'></a>

<a b="'''"></a>
<a b="'''"></a>

<a b='"""'></a>
<a b='"""'></a>

<a href=">"></a>
<a href="<"></a>
<a href="<"></a>
<a href="<"></a>
<a href=">"></a>
<a href=">"></a>
<a href=">"></a>
<a href=">"></a>



1 comment on commit 064e504

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Benchmark suite Current: 064e504 Previous: 299da10 Ratio
es/full/minify/libraries/antd 2493804130 ns/iter (± 36532669) 2250478377 ns/iter (± 26725013) 1.11
es/full/minify/libraries/d3 575342686 ns/iter (± 12537320) 554904785 ns/iter (± 14647294) 1.04
es/full/minify/libraries/echarts 2748400617 ns/iter (± 20164063) 2741896821 ns/iter (± 24737244) 1.00
es/full/minify/libraries/jquery 126721793 ns/iter (± 3241692) 131378170 ns/iter (± 3041649) 0.96
es/full/minify/libraries/lodash 178554566 ns/iter (± 2276458) 181295920 ns/iter (± 5172904) 0.98
es/full/minify/libraries/moment 74389372 ns/iter (± 843435) 75687713 ns/iter (± 2074789) 0.98
es/full/minify/libraries/react 24905094 ns/iter (± 421524) 23001035 ns/iter (± 365906) 1.08
es/full/minify/libraries/terser 801326409 ns/iter (± 15952977) 556984086 ns/iter (± 12980750) 1.44
es/full/minify/libraries/three 787026715 ns/iter (± 16467079) 781584551 ns/iter (± 21320332) 1.01
es/full/minify/libraries/typescript 5646260004 ns/iter (± 99068225) 5266872401 ns/iter (± 44653124) 1.07
es/full/minify/libraries/victory 1071395246 ns/iter (± 8308781) 980209190 ns/iter (± 11439204) 1.09
es/full/minify/libraries/vue 190305271 ns/iter (± 3550764) 188311680 ns/iter (± 3485928) 1.01
es/full/codegen/es3 41411 ns/iter (± 2266) 37365 ns/iter (± 1263) 1.11
es/full/codegen/es5 41143 ns/iter (± 2121) 37456 ns/iter (± 1240) 1.10
es/full/codegen/es2015 41080 ns/iter (± 3316) 38546 ns/iter (± 955) 1.07
es/full/codegen/es2016 40796 ns/iter (± 1644) 39083 ns/iter (± 770) 1.04
es/full/codegen/es2017 40926 ns/iter (± 1887) 38372 ns/iter (± 984) 1.07
es/full/codegen/es2018 40890 ns/iter (± 1746) 39234 ns/iter (± 709) 1.04
es/full/codegen/es2019 41014 ns/iter (± 3468) 37755 ns/iter (± 1285) 1.09
es/full/codegen/es2020 41379 ns/iter (± 1467) 38947 ns/iter (± 655) 1.06
es/full/all/es3 226631105 ns/iter (± 6726768) 219930357 ns/iter (± 7618920) 1.03
es/full/all/es5 217896549 ns/iter (± 6066948) 210414105 ns/iter (± 5125602) 1.04
es/full/all/es2015 171272775 ns/iter (± 4745120) 168018550 ns/iter (± 7150794) 1.02
es/full/all/es2016 169716274 ns/iter (± 4370032) 167899908 ns/iter (± 8005677) 1.01
es/full/all/es2017 169758324 ns/iter (± 5193042) 165496293 ns/iter (± 7023367) 1.03
es/full/all/es2018 168257810 ns/iter (± 4693601) 164327730 ns/iter (± 8646874) 1.02
es/full/all/es2019 165756890 ns/iter (± 5395821) 162092699 ns/iter (± 10726402) 1.02
es/full/all/es2020 158433219 ns/iter (± 4608595) 154274720 ns/iter (± 6282221) 1.03
es/full/parser 766149 ns/iter (± 48242) 661001 ns/iter (± 75891) 1.16
es/full/base/fixer 37023 ns/iter (± 1957) 31677 ns/iter (± 564) 1.17
es/full/base/resolver_and_hygiene 184427 ns/iter (± 7925) 165289 ns/iter (± 4050) 1.12
serialization of ast node 205 ns/iter (± 6) 210 ns/iter (± 3) 0.98
serialization of serde 208 ns/iter (± 7) 209 ns/iter (± 5) 1.00

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.