Skip to content

Commit

Permalink
Update to ytdl-commit-07af47
Browse files Browse the repository at this point in the history
[YouTube] Improve fix for ae8ba2c
ytdl-org/youtube-dl@07af479
  • Loading branch information
pukkandan committed Jun 21, 2023
1 parent 1619ab3 commit 42f2d40
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 1 deletion.
26 changes: 26 additions & 0 deletions test/test_jsinterp.py
Expand Up @@ -35,13 +35,39 @@ def test_basic(self):
self._test('function f(){42}', None)
self._test('var f = function(){return 42;}', 42)

def test_add(self):
self._test('function f(){return 42 + 7;}', 49)
self._test('function f(){return 42 + undefined;}', NaN)
self._test('function f(){return 42 + null;}', 42)

def test_sub(self):
self._test('function f(){return 42 - 7;}', 35)
self._test('function f(){return 42 - undefined;}', NaN)
self._test('function f(){return 42 - null;}', 42)

def test_mul(self):
self._test('function f(){return 42 * 7;}', 294)
self._test('function f(){return 42 * undefined;}', NaN)
self._test('function f(){return 42 * null;}', 0)

def test_div(self):
jsi = JSInterpreter('function f(a, b){return a / b;}')
self._test(jsi, NaN, args=(0, 0))
self._test(jsi, NaN, args=(JS_Undefined, 1))
self._test(jsi, float('inf'), args=(2, 0))
self._test(jsi, 0, args=(0, 3))

def test_mod(self):
self._test('function f(){return 42 % 7;}', 0)
self._test('function f(){return 42 % 0;}', NaN)
self._test('function f(){return 42 % undefined;}', NaN)

def test_exp(self):
self._test('function f(){return 42 ** 2;}', 1764)
self._test('function f(){return 42 ** undefined;}', NaN)
self._test('function f(){return 42 ** null;}', 1)
self._test('function f(){return undefined ** 42;}', NaN)

def test_calc(self):
self._test('function f(a){return 2*a+1;}', 7, args=[3])

Expand Down
5 changes: 5 additions & 0 deletions yt_dlp/casefold.py
@@ -0,0 +1,5 @@
import warnings

warnings.warn(DeprecationWarning(f'{__name__} is deprecated'))

casefold = str.casefold
2 changes: 1 addition & 1 deletion yt_dlp/jsinterp.py
Expand Up @@ -812,9 +812,9 @@ def extract_function_code(self, funcname):
\((?P<args>[^)]*)\)\s*
(?P<code>{.+})''' % {'name': re.escape(funcname)},
self.code)
code, _ = self._separate_at_paren(func_m.group('code'))
if func_m is None:
raise self.Exception(f'Could not find JS function "{funcname}"')
code, _ = self._separate_at_paren(func_m.group('code'))
return [x.strip() for x in func_m.group('args').split(',')], code

def extract_function(self, funcname):
Expand Down

0 comments on commit 42f2d40

Please sign in to comment.