Path: blob/main/src/lib/liblittle_endian_heap.js
4150 views
var LibraryLittleEndianHeap = {1$LE_HEAP_STORE_U16: (byteOffset, value) =>2HEAP_DATA_VIEW.setUint16(byteOffset, value, true),34$LE_HEAP_STORE_I16: (byteOffset, value) =>5HEAP_DATA_VIEW.setInt16(byteOffset, value, true),67$LE_HEAP_STORE_U32: (byteOffset, value) =>8HEAP_DATA_VIEW.setUint32(byteOffset, value, true),910$LE_HEAP_STORE_I32: (byteOffset, value) =>11HEAP_DATA_VIEW.setInt32(byteOffset, value, true),1213$LE_HEAP_STORE_U64: (byteOffset, value) =>14HEAP_DATA_VIEW.setBigUint64(byteOffset, value, true),1516$LE_HEAP_STORE_I64: (byteOffset, value) =>17HEAP_DATA_VIEW.setBigInt64(byteOffset, value, true),1819$LE_HEAP_STORE_F32: (byteOffset, value) =>20HEAP_DATA_VIEW.setFloat32(byteOffset, value, true),2122$LE_HEAP_STORE_F64: (byteOffset, value) =>23HEAP_DATA_VIEW.setFloat64(byteOffset, value, true),2425$LE_HEAP_LOAD_U16: (byteOffset) =>26HEAP_DATA_VIEW.getUint16(byteOffset, true),2728$LE_HEAP_LOAD_I16: (byteOffset) =>29HEAP_DATA_VIEW.getInt16(byteOffset, true),3031$LE_HEAP_LOAD_U32: (byteOffset) =>32HEAP_DATA_VIEW.getUint32(byteOffset, true),3334$LE_HEAP_LOAD_I32: (byteOffset) =>35HEAP_DATA_VIEW.getInt32(byteOffset, true),3637$LE_HEAP_LOAD_U64: (byteOffset) =>38HEAP_DATA_VIEW.getBigUint64(byteOffset, true),3940$LE_HEAP_LOAD_I64: (byteOffset) =>41HEAP_DATA_VIEW.getBigInt64(byteOffset, true),4243$LE_HEAP_LOAD_F32: (byteOffset) =>44HEAP_DATA_VIEW.getFloat32(byteOffset, true),4546$LE_HEAP_LOAD_F64: (byteOffset) =>47HEAP_DATA_VIEW.getFloat64(byteOffset, true),4849$LE_ATOMICS_NATIVE_BYTE_ORDER__postset: `50LE_ATOMICS_NATIVE_BYTE_ORDER = (new Int8Array(new Int16Array([1]).buffer)[0] === 1)51? [ /* little endian */52(x => x),53(x => x),54undefined,55(x => x),56]57: [ /* big endian */58(x => x),59(x => (((x & 0xff00) << 8) | ((x & 0xff) << 24)) >> 16),60undefined,61(x => ((x >> 24) & 0xff) | ((x >> 8) & 0xff00) | ((x & 0xff00) << 8) | ((x & 0xff) << 24)),62];63function LE_HEAP_UPDATE() {64HEAPU16.unsigned = (x => x & 0xffff);65HEAPU32.unsigned = (x => x >>> 0);66}67`,68$LE_ATOMICS_NATIVE_BYTE_ORDER: [],6970$LE_ATOMICS_ADD: (heap, offset, value) => {71const order = LE_ATOMICS_NATIVE_BYTE_ORDER[heap.BYTES_PER_ELEMENT - 1];72const res = order(Atomics.add(heap, offset, order(value)));73return heap.unsigned ? heap.unsigned(res) : res;74},75$LE_ATOMICS_AND: (heap, offset, value) => {76const order = LE_ATOMICS_NATIVE_BYTE_ORDER[heap.BYTES_PER_ELEMENT - 1];77const res = order(Atomics.and(heap, offset, order(value)));78return heap.unsigned ? heap.unsigned(res) : res;79},80$LE_ATOMICS_COMPAREEXCHANGE: (heap, offset, expected, replacement) => {81const order = LE_ATOMICS_NATIVE_BYTE_ORDER[heap.BYTES_PER_ELEMENT - 1];82const res = order(Atomics.compareExchange(heap, offset, order(expected), order(replacement)));83return heap.unsigned ? heap.unsigned(res) : res;84},85$LE_ATOMICS_EXCHANGE: (heap, offset, value) => {86const order = LE_ATOMICS_NATIVE_BYTE_ORDER[heap.BYTES_PER_ELEMENT - 1];87const res = order(Atomics.exchange(heap, offset, order(value)));88return heap.unsigned ? heap.unsigned(res) : res;89},90$LE_ATOMICS_ISLOCKFREE: (size) => Atomics.isLockFree(size),91$LE_ATOMICS_LOAD: (heap, offset) => {92const order = LE_ATOMICS_NATIVE_BYTE_ORDER[heap.BYTES_PER_ELEMENT - 1];93const res = order(Atomics.load(heap, offset));94return heap.unsigned ? heap.unsigned(res) : res;95},96$LE_ATOMICS_NOTIFY: (heap, offset, count) => Atomics.notify(heap, offset, count),97$LE_ATOMICS_OR: (heap, offset, value) => {98const order = LE_ATOMICS_NATIVE_BYTE_ORDER[heap.BYTES_PER_ELEMENT - 1];99const res = order(Atomics.or(heap, offset, order(value)));100return heap.unsigned ? heap.unsigned(res) : res;101},102$LE_ATOMICS_STORE: (heap, offset, value) => {103const order = LE_ATOMICS_NATIVE_BYTE_ORDER[heap.BYTES_PER_ELEMENT - 1];104Atomics.store(heap, offset, order(value));105},106$LE_ATOMICS_SUB: (heap, offset, value) => {107const order = LE_ATOMICS_NATIVE_BYTE_ORDER[heap.BYTES_PER_ELEMENT - 1];108const res = order(Atomics.sub(heap, offset, order(value)));109return heap.unsigned ? heap.unsigned(res) : res;110},111$LE_ATOMICS_WAIT: (heap, offset, value, timeout) => {112const order = LE_ATOMICS_NATIVE_BYTE_ORDER[heap.BYTES_PER_ELEMENT - 1];113return Atomics.wait(heap, offset, order(value), timeout);114},115$LE_ATOMICS_WAITASYNC: (heap, offset, value, timeout) => {116const order = LE_ATOMICS_NATIVE_BYTE_ORDER[heap.BYTES_PER_ELEMENT - 1];117return Atomics.waitAsync(heap, offset, order(value), timeout);118},119$LE_ATOMICS_XOR: (heap, offset, value) => {120const order = LE_ATOMICS_NATIVE_BYTE_ORDER[heap.BYTES_PER_ELEMENT - 1];121const res = order(Atomics.xor(heap, offset, order(value)));122return heap.unsigned ? heap.unsigned(res) : res;123},124}125126addToLibrary(LibraryLittleEndianHeap);127128129