Compare commits
2 Commits
b4c26f8106
...
5265bcd77a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5265bcd77a | ||
|
|
4f2d462754 |
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "multi-hoster-uploader",
|
||||
"version": "2.8.9",
|
||||
"version": "2.9.0",
|
||||
"description": "Upload files to doodstream, voe, vidmoly, byse simultaneously",
|
||||
"main": "main.js",
|
||||
"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) {
|
||||
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) {
|
||||
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) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user