Skip to content

Commit

Permalink
Merge branch 'jsparser-fix'
Browse files Browse the repository at this point in the history
  • Loading branch information
kolsys committed May 29, 2017
2 parents 102b877 + 4f62df1 commit e7a099f
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions Contents/Services/Shared Code/jsinterp.pys
Original file line number Diff line number Diff line change
Expand Up @@ -146,11 +146,14 @@ class JSInterpreter(object):
pass

m = re.match(
r'(?P<var>%s)\.(?P<member>[^(]+)(?:\(+(?P<args>[^()]*)\))?$' % NAME_RE,
# r'(?P<var>%s)\.(?P<member>[^(]+)(?:\(+(?P<args>[^()]*)\))?$' % NAME_RE,
r'(?P<var>%s)(?:\.(?P<member>[^(]+)|\[[\'\"](?P<member_str>[^(]+)[\'\"]\])(?:\(+(?P<args>[^()]*)\))?$' % NAME_RE,
expr)
if m:
variable = m.group('var')
member = m.group('member')
if not member:
member = m.group('member_str')
arg_str = m.group('args')

if variable in local_vars:
Expand Down Expand Up @@ -239,13 +242,13 @@ class JSInterpreter(object):
obj = {}
obj_m = re.search(
(r'(?:var\s+)?%s\s*=\s*\{' % re.escape(objname)) +
r'\s*(?P<fields>([a-zA-Z$0-9]+\s*:\s*function\(.*?\)\s*\{.*?\}\s*,*\s*)*)' +
r'\s*(?P<fields>[\'\"]?([a-zA-Z$0-9]+[\'\"]?\s*:\s*function\(.*?\)\s*\{.*?\}\s*,*\s*)*)' +
r'\}\s*;',
self.code)
fields = obj_m.group('fields')
# Currently, it only supports function definitions
fields_m = re.finditer(
r'(?P<key>[a-zA-Z$0-9]+)\s*:\s*function'
r'[\'\"]?(?P<key>[a-zA-Z$0-9]+)[\'\"]?\s*:\s*function'
r'\((?P<args>[a-z,]+)\){(?P<code>[^}]+)}',
fields)
for f in fields_m:
Expand Down

0 comments on commit e7a099f

Please sign in to comment.