You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
725 B
29 lines
725 B
6 years ago
|
from ..conversions import *
|
||
|
from ..func_utils import *
|
||
|
|
||
|
|
||
|
def Array(this, args):
|
||
|
return ArrayConstructor(args, args.space)
|
||
|
|
||
|
|
||
|
def ArrayConstructor(args, space):
|
||
|
if len(args) == 1:
|
||
|
l = get_arg(args, 0)
|
||
|
if type(l) == float:
|
||
|
if to_uint32(l) == l:
|
||
|
return space.NewArray(l)
|
||
|
else:
|
||
|
raise MakeError(
|
||
|
'RangeError',
|
||
|
'Invalid length specified for Array constructor (must be uint32)'
|
||
|
)
|
||
|
else:
|
||
|
return space.ConstructArray([l])
|
||
|
else:
|
||
|
return space.ConstructArray(list(args))
|
||
|
|
||
|
|
||
|
def isArray(this, args):
|
||
|
x = get_arg(args, 0)
|
||
|
return is_object(x) and x.Class == u'Array'
|