From b342d27f3f82d913976509ddf5bff539ad8567ec Mon Sep 17 00:00:00 2001 From: bashonly Date: Sat, 5 Jul 2025 16:59:33 -0500 Subject: [PATCH] [jsinterp] Cache undefined variable names (#13639) Authored by: bashonly --- yt_dlp/jsinterp.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/yt_dlp/jsinterp.py b/yt_dlp/jsinterp.py index 5b3b33f45..f06d96832 100644 --- a/yt_dlp/jsinterp.py +++ b/yt_dlp/jsinterp.py @@ -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):