Merge remote-tracking branch 'David-Development/rtl2.py'
[youtube-dl] / youtube_dl / jsinterp.py
index 95e6948ff3ab518e6cd36f9e7423d1cc71cb5785..b4617fbad0fc40323a129ce1218f9f97590c89bb 100644 (file)
@@ -61,7 +61,7 @@ class JSInterpreter(object):
             pass
 
         m = re.match(
-            r'^(?P<var>[a-z]+)\.(?P<member>[^(]+)(?:\(+(?P<args>[^()]*)\))?$',
+            r'^(?P<var>[$a-zA-Z0-9_]+)\.(?P<member>[^(]+)(?:\(+(?P<args>[^()]*)\))?$',
             expr)
         if m:
             variable = m.group('var')
@@ -108,7 +108,7 @@ class JSInterpreter(object):
                 index, howMany = argvals
                 res = []
                 for i in range(index, min(index + howMany, len(obj))):
-                    res.append(obj.pop(i))
+                    res.append(obj.pop(index))
                 return res
 
             return obj[member](argvals)
@@ -130,7 +130,7 @@ class JSInterpreter(object):
             return a % b
 
         m = re.match(
-            r'^(?P<func>[.a-zA-Z$]+)\((?P<args>[a-z0-9,]+)\)$', expr)
+            r'^(?P<func>[a-zA-Z$]+)\((?P<args>[a-z0-9,]+)\)$', expr)
         if m:
             fname = m.group('func')
             argvals = tuple([