[JSInterp] Handle undefined, etc, passed to JS_RegExp and Exception

This commit is contained in:
dirkf 2025-03-07 19:37:56 +00:00
parent 94849bc997
commit af049e309b
1 changed files with 2 additions and 0 deletions

View File

@ -408,6 +408,7 @@ class JSInterpreter(object):
class Exception(ExtractorError):
def __init__(self, msg, *args, **kwargs):
expr = kwargs.pop('expr', None)
msg = str_or_none(msg, default='"None"')
if expr is not None:
msg = '{0} in: {1!r:.100}'.format(msg.rstrip(), expr)
super(JSInterpreter.Exception, self).__init__(msg, *args, **kwargs)
@ -435,6 +436,7 @@ class JSInterpreter(object):
flags, _ = self.regex_flags(flags)
# First, avoid https://github.com/python/cpython/issues/74534
self.__self = None
pattern_txt = str_or_none(pattern_txt) or '(?:)'
self.__pattern_txt = pattern_txt.replace('[[', r'[\[')
self.__flags = flags