// Create a little endian ArrayBuffer representation of something.
function toABHost(v, n, x) {
var a = new ArrayBuffer(n);
new window[v](a)[0] = x;
return a;
}
function toABSwap(v, n, x) {
var a = new ArrayBuffer(n);
new window[v](a)[0] = x;
var bs = new Uint8Array(a);
for(var i = 0, j = n-1; i < j; ++i, --j) {
var tmp = bs[i];
bs[i] = bs[j];
bs[j] = tmp;
}
return a;
}
window['toABle'] = toABHost;
window['toABbe'] = toABSwap;
// Swap byte order if host is not little endian.
var buffer = new ArrayBuffer(2);
new DataView(buffer).setInt16(0, 256, true);
if(new Int16Array(buffer)[0] !== 256) {
window['toABle'] = toABSwap;
window['toABbe'] = toABHost;
}