From e57c18156cf11aaeae89e66828811c9fcc42fa81 Mon Sep 17 00:00:00 2001 From: Louis Pilfold Date: Sun, 29 Aug 2021 18:44:55 +0100 Subject: Mutable references --- src/ffi.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/ffi.js') diff --git a/src/ffi.js b/src/ffi.js index d3ee8ce..d7b6bf9 100644 --- a/src/ffi.js +++ b/src/ffi.js @@ -98,3 +98,23 @@ export function map_promise(promise, fn) { export function rescue(promise, fn) { return promise.catch((error) => fn(error)); } + +class Reference { + constructor(value) { + this.value = value; + } +} + +export function dereference(reference) { + return reference.value; +} + +export function make_reference(value) { + return new Reference(value); +} + +export function set_reference(ref, value) { + let previous = ref.value; + ref.value = value; + return previous; +} -- cgit v1.2.3