mirror of
https://github.com/evilhero/mylar
synced 2024-12-27 18:16:52 +00:00
38 lines
No EOL
1.3 KiB
Python
38 lines
No EOL
1.3 KiB
Python
from ..base import *
|
|
|
|
@Js
|
|
def Array():
|
|
if len(arguments)==0 or len(arguments)>1:
|
|
return arguments.to_list()
|
|
a = arguments[0]
|
|
if isinstance(a, PyJsNumber):
|
|
length = a.to_uint32()
|
|
if length!=a.value:
|
|
raise MakeError('RangeError', 'Invalid array length')
|
|
temp = Js([])
|
|
temp.put('length', a)
|
|
return temp
|
|
return [a]
|
|
|
|
Array.create = Array
|
|
Array.own['length']['value'] = Js(1)
|
|
|
|
@Js
|
|
def isArray(arg):
|
|
return arg.Class=='Array'
|
|
|
|
|
|
Array.define_own_property('isArray', {'value': isArray,
|
|
'enumerable': False,
|
|
'writable': True,
|
|
'configurable': True})
|
|
|
|
Array.define_own_property('prototype', {'value': ArrayPrototype,
|
|
'enumerable': False,
|
|
'writable': False,
|
|
'configurable': False})
|
|
|
|
ArrayPrototype.define_own_property('constructor', {'value': Array,
|
|
'enumerable': False,
|
|
'writable': True,
|
|
'configurable': True}) |