aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl/jsinterp.py
diff options
context:
space:
mode:
authordirkf <fieldhouse@gmx.net>2023-05-19 13:09:18 +0100
committerdirkf <fieldhouse@gmx.net>2023-05-23 16:50:25 +0100
commitd89c2137ba4c1def185358a9ff48642e05ac65a2 (patch)
treee46ecc14fa3ae45233cb037f1ac3abb108607615 /youtube_dl/jsinterp.py
parentd1c6c5c4d618fa950813c0c71aede34a5ac851e9 (diff)
downloadyoutube-dl-d89c2137ba4c1def185358a9ff48642e05ac65a2.tar.xz
[jsinterp] Small updates for a85a875
* update signature tests * clarify NaN handling
Diffstat (limited to 'youtube_dl/jsinterp.py')
-rw-r--r--youtube_dl/jsinterp.py12
1 files changed, 5 insertions, 7 deletions
diff --git a/youtube_dl/jsinterp.py b/youtube_dl/jsinterp.py
index f837865c4..dc580943e 100644
--- a/youtube_dl/jsinterp.py
+++ b/youtube_dl/jsinterp.py
@@ -2,7 +2,6 @@ from __future__ import unicode_literals
import itertools
import json
-import math
import operator
import re
@@ -52,6 +51,10 @@ def wraps_op(op):
return update_and_rename_wrapper
+# NB In principle NaN cannot be checked by membership.
+# Here all NaN values are actually this one, so _NaN is _NaN,
+# although _NaN != _NaN.
+
_NaN = float('nan')
@@ -126,13 +129,8 @@ def _js_comp_op(op):
def _js_ternary(cndn, if_true=True, if_false=False):
"""Simulate JS's ternary operator (cndn?if_true:if_false)"""
- if cndn in (False, None, 0, '', JS_Undefined):
+ if cndn in (False, None, 0, '', JS_Undefined, _NaN):
return if_false
- try:
- if math.isnan(cndn): # NB: NaN cannot be checked by membership
- return if_false
- except TypeError:
- pass
return if_true