[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.
# 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
# as an assertion for the initialized `JSInterpreter`. Each `dict` may have the following keys:
# asserts: Used only by `test_jsinterp`. If this is missing subtest is skipped, Should be a list of `dict`, each
# 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
# an `assertEqual` call.
# 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 = [
{'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',)}],
'ast': [
(Token.FUNC, 'f', [], [
(Token.VAR,
zip(['x'],
[(Token.ASSIGN,
None,
(Token.OPEXPR, [
(Token.MEMBER, (Token.ARRAY, [
(Token.ASSIGN, None, (Token.OPEXPR, [
(Token.MEMBER, (Token.INT, 1), None, None)]), None),
(Token.ASSIGN, None, (Token.OPEXPR, [
(Token.MEMBER, (Token.INT, 2), None, None)]), None),
(Token.ASSIGN, None, (Token.OPEXPR, [
(Token.MEMBER, (Token.INT, 3), None, None)]), None)
]), None, None),
'ast': [
(Token.FUNC, 'f', [], [
(Token.VAR,
zip(['x'],
[(Token.ASSIGN,
None,
(Token.OPEXPR, [
(Token.MEMBER, (Token.ARRAY, [
(Token.ASSIGN, None, (Token.OPEXPR, [
(Token.MEMBER, (Token.INT, 1), None, None)]), None),
(Token.ASSIGN, None, (Token.OPEXPR, [
(Token.MEMBER, (Token.INT, 2), None, None)]), None),
(Token.ASSIGN, None, (Token.OPEXPR, [
(Token.MEMBER, (Token.INT, 3), 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)
])
),
(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)
])
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)
])
)
])
]
}
]

View File

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

View File

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

View File

@ -42,7 +42,7 @@ tests = [
# FIXME built-in functions not yet implemented
'exclude': ('jsinterp2',),
'code': 'function x(a) { return a.split(""); }',
'asserts': [{'value': ["a", "b", "c"], 'call': ('x',"abc")}],
'asserts': [{'value': ["a", "b", "c"], 'call': ('x', "abc")}],
'ast': [
(Token.FUNC, 'x', ['a'], [
(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
skip = {
'jsinterp': 'Do loop is not supportted',
'jsinterp': 'Do loop is not supported',
'interpret': 'Interpreting do loop not yet implemented'
}

View File

@ -5,7 +5,7 @@ from youtube_dl.jsinterp2.jsgrammar import Token
skip = {
'jsinterp': 'Label statement is not supported',
'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 = [

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.INT, 3), None, None)
]), None)]), None, None)
]), None)]), None, None)
(Token.MEMBER,
(Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [
(Token.MEMBER,
(Token.EXPR, [(Token.ASSIGN, None, (Token.OPEXPR, [
(Token.MEMBER, (Token.INT, 3), 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
skip = {
'jsinterp': 'Unary opertations are not supported',
'jsinterp': 'Unary operations are not supported',
'parse': True
}

View File

@ -5,7 +5,7 @@ from youtube_dl.jsinterp2.jsgrammar import Token
skip = {
'jsinterp': 'With statement is not supported',
'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 = [

View File

@ -6,7 +6,7 @@ from .base import (
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):

View File

@ -156,7 +156,7 @@ class Parser(object):
elif token_value == 'debugger':
self.token_stream.pop()
statement = (Token.DEBUG)
statement = (Token.DEBUG,)
peek_id, peek_value, peek_pos = self.token_stream.peek()
if peek_id is Token.END:
self.token_stream.pop()
@ -164,7 +164,7 @@ class Parser(object):
# FIXME automatic end insertion
raise ExtractorError('Unexpected sequence at %d' % peek_pos)
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)
if token_id is Token.COLON:
token_id, label_name, token_pos = self.token_stream.pop(2)