-
Notifications
You must be signed in to change notification settings - Fork 4
/
function.js
26 lines (24 loc) · 836 Bytes
/
function.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
let ENDIANNESS_CACHED = ''
const getEndianness = () => {
if (ENDIANNESS_CACHED === '') {
ENDIANNESS_CACHED = 'unknown'
try {
const uint8Array = new Uint8Array(new ArrayBuffer(2))
const uint16array = new Uint16Array(uint8Array.buffer)
uint8Array[ 0 ] = 0xa1 // set first byte
uint8Array[ 1 ] = 0xb2 // set second byte
if (uint16array[ 0 ] === 0xb2a1) ENDIANNESS_CACHED = 'little'
if (uint16array[ 0 ] === 0xa1b2) ENDIANNESS_CACHED = 'big'
} catch (error) { console.error('[getEndianness]', error) }
}
return ENDIANNESS_CACHED
}
const assert = (assertion, ...args) => { // always Error throw (console.assert in Browser do not throw)
if (assertion) return
console.error('[ASSERT]', ...args)
throw new Error(`[ASSERT] ${args.join(', ')}`)
}
export {
getEndianness,
assert
}