Compare commits
2 Commits
b4c26f8106
...
5265bcd77a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5265bcd77a | ||
|
|
4f2d462754 |
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "multi-hoster-uploader",
|
"name": "multi-hoster-uploader",
|
||||||
"version": "2.8.9",
|
"version": "2.9.0",
|
||||||
"description": "Upload files to doodstream, voe, vidmoly, byse simultaneously",
|
"description": "Upload files to doodstream, voe, vidmoly, byse simultaneously",
|
||||||
"main": "main.js",
|
"main": "main.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@ -3819,14 +3819,21 @@ function setupColumnResizing() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Single-pass escape instead of 4 chained .replace(/x/g, ...) calls.
|
||||||
|
// Hot path on large table rebuilds — every text cell runs through one of these.
|
||||||
|
const _HTML_ESC_MAP = { '&': '&', '<': '<', '>': '>', '"': '"' };
|
||||||
|
const _HTML_ESC_RE = /[&<>"]/g;
|
||||||
|
const _ATTR_ESC_MAP = { '&': '&', '"': '"', "'": ''' };
|
||||||
|
const _ATTR_ESC_RE = /[&"']/g;
|
||||||
|
|
||||||
function escapeHtml(str) {
|
function escapeHtml(str) {
|
||||||
if (!str) return '';
|
if (!str) return '';
|
||||||
return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
|
return String(str).replace(_HTML_ESC_RE, (c) => _HTML_ESC_MAP[c]);
|
||||||
}
|
}
|
||||||
|
|
||||||
function escapeAttr(str) {
|
function escapeAttr(str) {
|
||||||
if (!str) return '';
|
if (!str) return '';
|
||||||
return String(str).replace(/&/g, '&').replace(/"/g, '"').replace(/'/g, ''');
|
return String(str).replace(_ATTR_ESC_RE, (c) => _ATTR_ESC_MAP[c]);
|
||||||
}
|
}
|
||||||
|
|
||||||
function showCopyToast(msg) {
|
function showCopyToast(msg) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user