[jsinterp] Adding error handling to global variable init
This commit is contained in:
parent
171680120d
commit
fce572294a
@ -2,6 +2,7 @@ from __future__ import unicode_literals
|
|||||||
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
from compat import compat_str
|
||||||
from ..utils import ExtractorError
|
from ..utils import ExtractorError
|
||||||
from .tstream import TokenStream, convert_to_unary
|
from .tstream import TokenStream, convert_to_unary
|
||||||
from .jsgrammar import Token, token_keys
|
from .jsgrammar import Token, token_keys
|
||||||
@ -70,12 +71,14 @@ class JSInterpreter(object):
|
|||||||
o = {}
|
o = {}
|
||||||
for k, v in value.items():
|
for k, v in value.items():
|
||||||
o[k] = self.create_reference(v, (o, k))
|
o[k] = self.create_reference(v, (o, k))
|
||||||
elif isinstance(value, list):
|
elif isinstance(value, (list, tuple, set)):
|
||||||
o = []
|
o = []
|
||||||
for k, v in enumerate(value):
|
for k, v in enumerate(value):
|
||||||
o[k] = self.create_reference(v, (o, k))
|
o[k] = self.create_reference(v, (o, k))
|
||||||
else:
|
elif isinstance(value, (int, float, compat_str, bool, re._pattern_type)) or value is None:
|
||||||
o = value
|
o = value
|
||||||
|
else:
|
||||||
|
raise ExtractorError('Unsupported type, %s in variables' % type(value))
|
||||||
|
|
||||||
return Reference(o, parent_key)
|
return Reference(o, parent_key)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user