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})