rc-js-util
Version:
A collection of TS and C++ utilities to help writing performant and correct applications, achieved through strict typing and (removable) invariant checking.
21 lines (19 loc) • 554 B
text/typescript
import { IWebAssemblyMemoryMemory } from "../../external/emscripten.js";
/**
* @internal
*/
export function shimWebAssemblyMemory
(
memory: IWebAssemblyMemoryMemory,
onGrowCallback: (newBuffer: ArrayBuffer, previousPageCount: number, requestedPagesToAdd: number) => void,
)
: void
{
const grow = memory.grow.bind(memory);
memory.grow = (pagesToAdd: number) =>
{
const previousPageCount = grow(pagesToAdd);
onGrowCallback(memory.buffer, previousPageCount, pagesToAdd);
return previousPageCount;
};
}