]> source.dussan.org Git - jquery.git/commit
Manipulation: Don't remove HTML comments from scripts
authorMichał Gołębiowski-Owczarek <m.goleb@gmail.com>
Mon, 19 Jul 2021 17:15:27 +0000 (19:15 +0200)
committerGitHub <noreply@github.com>
Mon, 19 Jul 2021 17:15:27 +0000 (19:15 +0200)
commit924b515dd3f33fff3e5122408fcccecc2d775425
tree90fa72a0ae988e51d38f862c65c9efd864b12422
parentf12cac6075ebce3e2b0ee4cfa58c24c559ce6a6a
Manipulation: Don't remove HTML comments from scripts

When evaluating scripts, jQuery strips out the possible wrapping HTML comment
and a CDATA section. However, all supported browsers are already doing that
when loading JS via appending a script tag to the DOM which is how we've been
doing `jQuery.globalEval` since jQuery 3.0.0. jQuery logic was imperfect, e.g.
it just stripped the `<!--` and `-->` markers, respectively at the beginning or
the end of the script contents. However, browsers are also stripping everything
following those markers in the same line, treating them as single-line comments
delimiters; this is now also mandated by ECMAScript 2015 in Annex B. Instead
of fixing the jQuery logic, just let the browser do its thing.

We still need to strip CDATA sections for backwards compatibility. This
shouldn't be needed as in XML documents they're already not visible when
inspecting element contents and in HTML documents they have no meaning but
we're preserving that logic for backwards compatibility. This will be removed
completely in 4.0.

Fixes gh-4904
Closes gh-4905
Ref gh-4906
src/manipulation.js
test/unit/manipulation.js