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