Files
clash-proxy/src/polyfills/RegExp.js

41 lines
874 B
JavaScript
Raw Normal View History

2024-05-30 20:27:12 +08:00
(function () {
if (typeof window.RegExp === "undefined") {
return;
}
2024-05-29 09:39:26 +08:00
2024-05-30 20:27:12 +08:00
const originalRegExp = window.RegExp;
2024-05-29 09:39:26 +08:00
2024-05-30 20:27:12 +08:00
window.RegExp = function (pattern, flags) {
if (pattern instanceof originalRegExp && flags === undefined) {
flags = pattern.flags;
}
2024-05-29 09:39:26 +08:00
2024-05-30 20:27:12 +08:00
if (flags) {
if (
!Object.prototype.hasOwnProperty.call(
originalRegExp.prototype,
"unicodeSets",
)
) {
2024-05-30 20:27:12 +08:00
if (flags.includes("v")) {
flags = flags.replace("v", "u");
}
}
2024-05-29 09:39:26 +08:00
if (
!Object.prototype.hasOwnProperty.call(
originalRegExp.prototype,
"hasIndices",
)
) {
2024-05-30 20:27:12 +08:00
if (flags.includes("d")) {
flags = flags.replace("d", "");
}
}
2024-05-29 09:39:26 +08:00
}
2024-05-30 20:27:12 +08:00
return new originalRegExp(pattern, flags);
};
window.RegExp.prototype = originalRegExp.prototype;
})();