aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/test_jsinterp.py7
-rw-r--r--test/test_youtube_signature.py4
-rw-r--r--yt_dlp/jsinterp.py2
3 files changed, 12 insertions, 1 deletions
diff --git a/test/test_jsinterp.py b/test/test_jsinterp.py
index 4d44e6efe..b01477e6f 100644
--- a/test/test_jsinterp.py
+++ b/test/test_jsinterp.py
@@ -28,6 +28,13 @@ class TestJSInterpreter(unittest.TestCase):
def test_calc(self):
self._test('function f(a){return 2*a+1;}', 7, args=[3])
+ def test_div(self):
+ jsi = JSInterpreter('function f(a, b){return a / b;}')
+ self.assertTrue(math.isnan(jsi.call_function('f', 0, 0)))
+ self.assertTrue(math.isnan(jsi.call_function('f', JS_Undefined, 1)))
+ self.assertTrue(math.isinf(jsi.call_function('f', 2, 0)))
+ self.assertEqual(jsi.call_function('f', 0, 3), 0)
+
def test_empty_return(self):
self._test('function f(){return; y()}', None)
diff --git a/test/test_youtube_signature.py b/test/test_youtube_signature.py
index 13120d97f..01f09de88 100644
--- a/test/test_youtube_signature.py
+++ b/test/test_youtube_signature.py
@@ -150,6 +150,10 @@ _NSIG_TESTS = [
'https://www.youtube.com/s/player/cfa9e7cb/player_ias.vflset/en_US/base.js',
'aCi3iElgd2kq0bxVbQ', 'QX1y8jGb2IbZ0w',
),
+ (
+ 'https://www.youtube.com/s/player/8c7583ff/player_ias.vflset/en_US/base.js',
+ '1wWCVpRR96eAmMI87L', 'KSkWAVv1ZQxC3A',
+ ),
]
diff --git a/yt_dlp/jsinterp.py b/yt_dlp/jsinterp.py
index 7c7940efd..d6d555733 100644
--- a/yt_dlp/jsinterp.py
+++ b/yt_dlp/jsinterp.py
@@ -44,7 +44,7 @@ def _js_arith_op(op):
def _js_div(a, b):
- if JS_Undefined in (a, b) or not (a and b):
+ if JS_Undefined in (a, b) or not (a or b):
return float('nan')
return (a or 0) / b if b else float('inf')