0.1.0 • Published 8 years ago
walloc v0.1.0
walloc
malloc() and free() bindings for WebAssembly in JavaScript.
Basic Usage
Pass an absolute filename to the walloc() function. The result is the exports property of a WebAssembly.Instance.
'use strict';
const Walloc = require('walloc');
const memory = new WebAssembly.Memory({ initial: 256, maximum: 256 });
const walloc = new Walloc({
memory,
getTotalMemory () { return memory.buffer.byteLength; }
});
const ptr = walloc.malloc(2048); // Allocate 2048 bytes.
// Do something with the allocated memory.
walloc.free(ptr); // Free the memory.API
walloc exports a single class with the following API.
Walloc(options) constructor
- Arguments
options(object) - A configuration object supporting the following schema.DYNAMICTOP_PTR(number) - The valuesbrk()returns. Optional. Defaults to0.STACKTOP(number) - The top of the stack. Optional. Defaults to0.memory(object) - An instance ofWebAssembly.Memory.abort(err)(function) - A function that is called when an error occurs. The error is passed as theerrparameter. Optional. Defaults to a function that throwserr.abortOnCannotGrowMemory()(function) - A function that is called when memory allocation fails, and the WebAssembly memory cannot be grown. Optional. Defaults to a function that callsabort()with an error.enlargeMemory()(function) - A function that attempts to grow the WebAssembly memory. Optional. Defaults to a function that callsabortOnCannotGrowMemory().getTotalMemory()(function) - A function that returns the total size of the memory. Optional. Defaults to a function that returns0.___setErrNo(errno)(function) - A function that setserrnoin C. Optional.
Constructs a new allocator instance. Must be called with new.
Walloc.prototype.malloc(size)
- Arguments
size(number) - The number of bytes to allocate.
- Returns
ptr(number) - The base address of the allocated memory in the WebAssembly memory.
Attempts to allocate a block of memory with size size. On success, the base address is returned. Throws if memory cannot be allocated.
Walloc.prototype.free(ptr)
- Arguments
ptr(number) - The base address of the allocated memory block being freed.
- Returns
- Nothing
Releases the block of memory with base address ptr.
0.1.0
8 years ago