1
0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2025-07-12 00:08:30 +00:00

[jsinterp] Cache undefined variable names (#13639)

Authored by: bashonly
This commit is contained in:
bashonly 2025-07-05 16:59:33 -05:00 committed by bashonly
parent b6328ca050
commit b342d27f3f

View File

@ -279,6 +279,7 @@ class JSInterpreter:
def __init__(self, code, objects=None):
self.code, self._functions = code, {}
self._objects = {} if objects is None else objects
self._undefined_varnames = set()
class Exception(ExtractorError): # noqa: A001
def __init__(self, msg, expr=None, *args, **kwargs):
@ -677,6 +678,8 @@ def dict_item(key, val):
local_vars.set_local(var, ret)
else:
ret = local_vars.get(var, JS_Undefined)
if ret is JS_Undefined:
self._undefined_varnames.add(var)
return ret, should_return
with contextlib.suppress(ValueError):