diff options
| -rw-r--r-- | test/test_utils.py | 3 | ||||
| -rw-r--r-- | youtube_dl/utils.py | 4 | 
2 files changed, 5 insertions, 2 deletions
| diff --git a/test/test_utils.py b/test/test_utils.py index a74d59f34..954bb7d8b 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -791,6 +791,9 @@ class TestUtil(unittest.TestCase):          on = js_to_json('{ 0: /* " \n */ ",]" , }')          self.assertEqual(json.loads(on), {'0': ',]'}) +        on = js_to_json('{ 0: // comment\n1 }') +        self.assertEqual(json.loads(on), {'0': 1}) +          on = js_to_json(r'["<p>x<\/p>"]')          self.assertEqual(json.loads(on), ['<p>x</p>']) diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index cf46711b9..6c462625b 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -2107,7 +2107,7 @@ def js_to_json(code):          v = m.group(0)          if v in ('true', 'false', 'null'):              return v -        elif v.startswith('/*') or v == ',': +        elif v.startswith('/*') or v.startswith('//') or v == ',':              return ""          if v[0] in ("'", '"'): @@ -2134,7 +2134,7 @@ def js_to_json(code):      return re.sub(r'''(?sx)          "(?:[^"\\]*(?:\\\\|\\['"nurtbfx/\n]))*[^"\\]*"|          '(?:[^'\\]*(?:\\\\|\\['"nurtbfx/\n]))*[^'\\]*'| -        /\*.*?\*/|,(?=\s*[\]}])| +        /\*.*?\*/|//[^\n]*|,(?=\s*[\]}])|          [a-zA-Z_][.a-zA-Z_0-9]*|          \b(?:0[xX][0-9a-fA-F]+|0+[0-7]+)(?:\s*:)?|          [0-9]+(?=\s*:) | 
