mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2025-07-19 01:16:40 +00:00
[jsinterp] Fix undefined variable name caching (#13677)
Fix b342d27f3f82d913976509ddf5bff539ad8567ec Authored by: bashonly
This commit is contained in:
parent
aa9f1f4d57
commit
805519bfaa
@ -536,6 +536,11 @@ class TestJSInterpreter(unittest.TestCase):
|
|||||||
}
|
}
|
||||||
''', 31)
|
''', 31)
|
||||||
|
|
||||||
|
def test_undefined_varnames(self):
|
||||||
|
jsi = JSInterpreter('function f(){ var a; return [a, b]; }')
|
||||||
|
self._test(jsi, [JS_Undefined, JS_Undefined])
|
||||||
|
self.assertEqual(jsi._undefined_varnames, {'b'})
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
@ -373,6 +373,10 @@ _NSIG_TESTS = [
|
|||||||
'https://www.youtube.com/s/player/e12fbea4/player_ias_tce.vflset/en_US/base.js',
|
'https://www.youtube.com/s/player/e12fbea4/player_ias_tce.vflset/en_US/base.js',
|
||||||
'kM5r52fugSZRAKHfo3', 'XkeRfXIPOkSwfg',
|
'kM5r52fugSZRAKHfo3', 'XkeRfXIPOkSwfg',
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
'https://www.youtube.com/s/player/ef259203/player_ias_tce.vflset/en_US/base.js',
|
||||||
|
'rPqBC01nJpqhhi2iA2U', 'hY7dbiKFT51UIA',
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -677,8 +677,9 @@ class JSInterpreter:
|
|||||||
# Set value as JS_Undefined or its pre-existing value
|
# Set value as JS_Undefined or its pre-existing value
|
||||||
local_vars.set_local(var, ret)
|
local_vars.set_local(var, ret)
|
||||||
else:
|
else:
|
||||||
ret = local_vars.get(var, JS_Undefined)
|
ret = local_vars.get(var, NO_DEFAULT)
|
||||||
if ret is JS_Undefined:
|
if ret is NO_DEFAULT:
|
||||||
|
ret = JS_Undefined
|
||||||
self._undefined_varnames.add(var)
|
self._undefined_varnames.add(var)
|
||||||
return ret, should_return
|
return ret, should_return
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user