# this is based on jsarray.py # todo check everything :) from ..base import * try: import numpy except: pass @Js def ArrayBuffer(): a = arguments[0] if isinstance(a, PyJsNumber): length = a.to_uint32() if length != a.value: raise MakeError('RangeError', 'Invalid array length') temp = Js(bytearray([0] * length)) return temp return Js(bytearray([0])) ArrayBuffer.create = ArrayBuffer ArrayBuffer.own['length']['value'] = Js(None) ArrayBuffer.define_own_property( 'prototype', { 'value': ArrayBufferPrototype, 'enumerable': False, 'writable': False, 'configurable': False }) ArrayBufferPrototype.define_own_property( 'constructor', { 'value': ArrayBuffer, 'enumerable': False, 'writable': False, 'configurable': True })