server-islands: only encode ETAGO delimiter + opening HTML comment syntax #11513
+16
−5
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.
Changes
As per https://mathiasbynens.be/notes/etago, to make JSON safe inside a
<script>
literal, you need to only encode end-open tag (ETAGO) delimiters and<!--
. Thus, we can avoid some work. I've also hoisted the regexps so that we only initialize them once.Regarding the removal of 0x2029 and 0x2028 added in #11508, to me it does not seem security related to escape those, jsesc notes:
Which does not seem relevant in the server-islands case. Did I miss anything here?
Testing
I used the following snippet by @ascorbic:
Docs
Only a small perf related change, so no further docs needed.