// Functions for dealing with arrays.
function newArr(n, x) {
var arr = new Array(n);
for(var i = 0; i < n; ++i) {
arr[i] = x;
}
return arr;
}
// Create all views at once; perhaps it's wasteful, but it's better than having
// to check for the right view at each read or write.
function newByteArr(n) {
// Pad the thing to multiples of 8.
var padding = 8 - n % 8;
if(padding < 8) {
n += padding;
}
var buffer = new ArrayBuffer(n);
var views =
{ 'i8' : new Int8Array(buffer)
, 'i16': new Int16Array(buffer)
, 'i32': new Int32Array(buffer)
, 'w8' : new Uint8Array(buffer)
, 'w16': new Uint16Array(buffer)
, 'w32': new Uint32Array(buffer)
, 'f32': new Float32Array(buffer)
, 'f64': new Float64Array(buffer)
};
var arr =
{ 'b' : buffer
, 'v' : views
, 'off': 0
};
return arr;
}
window['newArr'] = newArr;
window['newByteArr'] = newByteArr;