[jsinterp] Fixing typos and code style

This commit is contained in:
sulyi 2018-06-02 05:26:32 +02:00
parent 1f40e3ef63
commit db0dc7b4ea
12 changed files with 91 additions and 90 deletions

View File

@ -9,8 +9,8 @@
# #
# code: If missing subtest is skipped, Otherwise it's value is used as code to initialize the tested class. # code: If missing subtest is skipped, Otherwise it's value is used as code to initialize the tested class.
# globals: Optional. Used only by `test_jsinterp`. If set used as argument `variables` initializing `JSInterperter`. # globals: Optional. Used only by `test_jsinterp`. If set used as argument `variables` initializing `JSInterperter`.
# asserts: Used only by `test_jsinterp`. If this is missing subtest is skipped, Should be a list of `dict`, each used # asserts: Used only by `test_jsinterp`. If this is missing subtest is skipped, Should be a list of `dict`, each
# as an assertion for the initialized `JSInterpreter`. Each `dict` may have the following keys: # used as an assertion for the initialized `JSInterpreter`. Each `dict` may have the following keys:
# value: If missing assertion is skipped. Otherwise it's value is used as expected value in # value: If missing assertion is skipped. Otherwise it's value is used as expected value in
# an `assertEqual` call. # an `assertEqual` call.
# call: Optional. If set used as arguments of a `call_function` call of the initialized `JSInterpreter` # call: Optional. If set used as arguments of a `call_function` call of the initialized `JSInterpreter`

View File

@ -6,77 +6,77 @@ from youtube_dl.jsinterp2.tstream import _ASSIGN_OPERATORS
tests = [ tests = [
{'code': 'function f() { var x = [1,2,3]; x[0] = 4; x[0] = 5; x[2] = 7; return x; }', {'code': 'function f() { var x = [1,2,3]; x[0] = 4; x[0] = 5; x[2] = 7; return x; }',
'asserts': [{'value': [5, 2, 7], 'call': ('f',)}], 'asserts': [{'value': [5, 2, 7], 'call': ('f',)}],
'ast': [ 'ast': [
(Token.FUNC, 'f', [], [ (Token.FUNC, 'f', [], [
(Token.VAR, (Token.VAR,
zip(['x'], zip(['x'],
[(Token.ASSIGN, [(Token.ASSIGN,
None, None,
(Token.OPEXPR, [ (Token.OPEXPR, [
(Token.MEMBER, (Token.ARRAY, [ (Token.MEMBER, (Token.ARRAY, [
(Token.ASSIGN, None, (Token.OPEXPR, [ (Token.ASSIGN, None, (Token.OPEXPR, [
(Token.MEMBER, (Token.INT, 1), None, None)]), None), (Token.MEMBER, (Token.INT, 1), None, None)]), None),
(Token.ASSIGN, None, (Token.OPEXPR, [ (Token.ASSIGN, None, (Token.OPEXPR, [
(Token.MEMBER, (Token.INT, 2), None, None)]), None), (Token.MEMBER, (Token.INT, 2), None, None)]), None),
(Token.ASSIGN, None, (Token.OPEXPR, [ (Token.ASSIGN, None, (Token.OPEXPR, [
(Token.MEMBER, (Token.INT, 3), None, None)]), None) (Token.MEMBER, (Token.INT, 3), None, None)]), None)
]), None, None), ]), None, None),
]),
None)
])
),
(Token.EXPR, [
(Token.ASSIGN,
_ASSIGN_OPERATORS['='][1],
(Token.OPEXPR, [
(Token.MEMBER, (Token.ID, 'x'),
None,
(Token.ELEM,
(Token.EXPR, [
(Token.ASSIGN,
None,
(Token.OPEXPR, [(Token.MEMBER, (Token.INT, 0), None, None)]),
None)
]), ]),
None) None))
]) ]),
), (Token.ASSIGN, None, (Token.OPEXPR, [(Token.MEMBER, (Token.INT, 4), None, None)]), None)
(Token.EXPR, [
(Token.ASSIGN,
_ASSIGN_OPERATORS['='][1],
(Token.OPEXPR, [
(Token.MEMBER, (Token.ID, 'x'),
None,
(Token.ELEM,
(Token.EXPR, [
(Token.ASSIGN,
None,
(Token.OPEXPR, [(Token.MEMBER, (Token.INT, 0), None, None)]),
None)
]),
None))
]),
(Token.ASSIGN, None, (Token.OPEXPR, [(Token.MEMBER, (Token.INT, 4), None, None)]), None)
)
]),
(Token.EXPR, [
(Token.ASSIGN,
_ASSIGN_OPERATORS['='][1],
(Token.OPEXPR, [(Token.MEMBER, (Token.ID, 'x'),
None,
(Token.ELEM, (Token.EXPR, [
(Token.ASSIGN,
None,
(Token.OPEXPR, [(Token.MEMBER, (Token.INT, 0), None, None)]),
None)
]), None))
]),
(Token.ASSIGN, None, (Token.OPEXPR, [(Token.MEMBER, (Token.INT, 5), None, None)]), None))
]),
(Token.EXPR, [
(Token.ASSIGN,
_ASSIGN_OPERATORS['='][1],
(Token.OPEXPR, [(Token.MEMBER, (Token.ID, 'x'),
None,
(Token.ELEM, (Token.EXPR, [
(Token.ASSIGN,
None,
(Token.OPEXPR, [(Token.MEMBER, (Token.INT, 2), None, None)]),
None)
]), None))
]),
(Token.ASSIGN, None, (Token.OPEXPR, [(Token.MEMBER, (Token.INT, 7), None, None)]), None))
]),
(Token.RETURN,
(Token.EXPR, [
(Token.ASSIGN, None, (Token.OPEXPR, [(Token.MEMBER, (Token.ID, 'x'), None, None)]), None)
])
) )
]) ]),
] (Token.EXPR, [
(Token.ASSIGN,
_ASSIGN_OPERATORS['='][1],
(Token.OPEXPR, [(Token.MEMBER, (Token.ID, 'x'),
None,
(Token.ELEM, (Token.EXPR, [
(Token.ASSIGN,
None,
(Token.OPEXPR, [(Token.MEMBER, (Token.INT, 0), None, None)]),
None)
]), None))
]),
(Token.ASSIGN, None, (Token.OPEXPR, [(Token.MEMBER, (Token.INT, 5), None, None)]), None))
]),
(Token.EXPR, [
(Token.ASSIGN,
_ASSIGN_OPERATORS['='][1],
(Token.OPEXPR, [(Token.MEMBER, (Token.ID, 'x'),
None,
(Token.ELEM, (Token.EXPR, [
(Token.ASSIGN,
None,
(Token.OPEXPR, [(Token.MEMBER, (Token.INT, 2), None, None)]),
None)
]), None))
]),
(Token.ASSIGN, None, (Token.OPEXPR, [(Token.MEMBER, (Token.INT, 7), None, None)]), None))
]),
(Token.RETURN,
(Token.EXPR, [
(Token.ASSIGN, None, (Token.OPEXPR, [(Token.MEMBER, (Token.ID, 'x'), None, None)]), None)
])
)
])
]
} }
] ]

View File

@ -24,7 +24,7 @@ tests = [
'ast': [(Token.FUNC, 'x', [], [None])] 'ast': [(Token.FUNC, 'x', [], [None])]
}, },
{ {
# FIXME: function expresiion needs to be implemented # FIXME: function expression needs to be implemented
'exclude': ('jsinterp2',), 'exclude': ('jsinterp2',),
'code': 'var x5 = function x5(){return 42;}', 'code': 'var x5 = function x5(){return 42;}',
'asserts': [{'value': 42, 'call': ('x5',)}] 'asserts': [{'value': 42, 'call': ('x5',)}]

View File

@ -9,7 +9,7 @@ tests = [
'ast': [ 'ast': [
(Token.FUNC, 'x4', ['a'], [ (Token.FUNC, 'x4', ['a'], [
(Token.RETURN, (Token.RETURN,
(Token.EXPR, [ (Token.EXPR, [
(Token.ASSIGN, (Token.ASSIGN,
None, None,
(Token.OPEXPR, [ (Token.OPEXPR, [
@ -21,8 +21,8 @@ tests = [
(Token.OP, _OPERATORS['+'][1]) (Token.OP, _OPERATORS['+'][1])
]), ]),
None) None)
]) ])
) )
]) ])
] ]
} }

View File

@ -42,7 +42,7 @@ tests = [
# FIXME built-in functions not yet implemented # FIXME built-in functions not yet implemented
'exclude': ('jsinterp2',), 'exclude': ('jsinterp2',),
'code': 'function x(a) { return a.split(""); }', 'code': 'function x(a) { return a.split(""); }',
'asserts': [{'value': ["a", "b", "c"], 'call': ('x',"abc")}], 'asserts': [{'value': ["a", "b", "c"], 'call': ('x', "abc")}],
'ast': [ 'ast': [
(Token.FUNC, 'x', ['a'], [ (Token.FUNC, 'x', ['a'], [
(Token.RETURN, (Token.EXPR, [ (Token.RETURN, (Token.EXPR, [

View File

@ -4,7 +4,7 @@ from youtube_dl.jsinterp2.jsgrammar import Token
from youtube_dl.jsinterp2.tstream import _ASSIGN_OPERATORS, _UNARY_OPERATORS, _RELATIONS from youtube_dl.jsinterp2.tstream import _ASSIGN_OPERATORS, _UNARY_OPERATORS, _RELATIONS
skip = { skip = {
'jsinterp': 'Do loop is not supportted', 'jsinterp': 'Do loop is not supported',
'interpret': 'Interpreting do loop not yet implemented' 'interpret': 'Interpreting do loop not yet implemented'
} }

View File

@ -5,7 +5,7 @@ from youtube_dl.jsinterp2.jsgrammar import Token
skip = { skip = {
'jsinterp': 'Label statement is not supported', 'jsinterp': 'Label statement is not supported',
'interpret': 'Interpreting label not yet implemented', 'interpret': 'Interpreting label not yet implemented',
'parse': 'Test not yet implemented: missing code and ast' 'parse': 'Test not yet implemented: missing code and ast'
} }
tests = [ tests = [

View File

@ -52,12 +52,13 @@ tests = [
(Token.MEMBER, (Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [ (Token.MEMBER, (Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [
(Token.MEMBER, (Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [ (Token.MEMBER, (Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [
(Token.MEMBER, (Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [ (Token.MEMBER, (Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [
(Token.MEMBER, (Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [ (Token.MEMBER,
(Token.MEMBER, (Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [
(Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [ (Token.MEMBER,
(Token.MEMBER, (Token.INT, 3), None, None) (Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [
]), None)]), None, None) (Token.MEMBER, (Token.INT, 3), None, None)
]), None)]), None, None) ]), None)]), None, None)
]), None)]), None, None)
]), None)]), None, None) ]), None)]), None, None)
]), None)]), None, None) ]), None)]), None, None)
]), None)]), None, None) ]), None)]), None, None)

View File

@ -1,7 +1,7 @@
from __future__ import unicode_literals from __future__ import unicode_literals
skip = { skip = {
'jsinterp': 'Unary opertations are not supported', 'jsinterp': 'Unary operations are not supported',
'parse': True 'parse': True
} }

View File

@ -5,7 +5,7 @@ from youtube_dl.jsinterp2.jsgrammar import Token
skip = { skip = {
'jsinterp': 'With statement is not supported', 'jsinterp': 'With statement is not supported',
'interpret': 'Interpreting with statement not yet implemented', 'interpret': 'Interpreting with statement not yet implemented',
'parse': 'Test not yet implemented: missing code and ast' 'parse': 'Test not yet implemented: missing code and ast'
} }
tests = [ tests = [

View File

@ -6,7 +6,7 @@ from .base import (
def _get_formal_args(func): def _get_formal_args(func):
return func.__code__.co_varnames[func.__code__.co_argcount - len((func.__defaults__))] return func.__code__.co_varnames[func.__code__.co_argcount - len(func.__defaults__)]
def to_js(o, name=None): def to_js(o, name=None):

View File

@ -156,7 +156,7 @@ class Parser(object):
elif token_value == 'debugger': elif token_value == 'debugger':
self.token_stream.pop() self.token_stream.pop()
statement = (Token.DEBUG) statement = (Token.DEBUG,)
peek_id, peek_value, peek_pos = self.token_stream.peek() peek_id, peek_value, peek_pos = self.token_stream.peek()
if peek_id is Token.END: if peek_id is Token.END:
self.token_stream.pop() self.token_stream.pop()
@ -164,7 +164,7 @@ class Parser(object):
# FIXME automatic end insertion # FIXME automatic end insertion
raise ExtractorError('Unexpected sequence at %d' % peek_pos) raise ExtractorError('Unexpected sequence at %d' % peek_pos)
else: # label else: # label
# XXX possible refactoring (this is the only branch not poping) # XXX possible refactoring (this is the only branch not popping)
token_id, token_value, token_pos = self.token_stream.peek(2) token_id, token_value, token_pos = self.token_stream.peek(2)
if token_id is Token.COLON: if token_id is Token.COLON:
token_id, label_name, token_pos = self.token_stream.pop(2) token_id, label_name, token_pos = self.token_stream.pop(2)