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.
42 lines
871 B
42 lines
871 B
6 years ago
|
# 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
|
||
|
})
|