Packages
orb
0.0.32
0.2.2
0.2.1
0.2.0
0.1.1
0.1.0
0.0.51
0.0.49
0.0.48
0.0.47
0.0.46
0.0.45
0.0.44
0.0.43
0.0.42
0.0.41
0.0.40
0.0.39
0.0.38
0.0.37
0.0.36
0.0.35
0.0.34
0.0.33
0.0.32
0.0.31
0.0.30
0.0.28
0.0.27
0.0.26
0.0.25
0.0.24
0.0.23
0.0.22
0.0.21
0.0.20
0.0.19
0.0.18
0.0.17
0.0.16
0.0.15
0.0.14
0.0.13
0.0.12
retired
0.0.11
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
DSL for WebAssembly
Current section
Files
Jump to
Current section
Files
lib/orb/mut_ref.ex
defmodule Orb.MutRef do
@moduledoc """
Use `Orb.DSL.mut!/1` to get a mutable reference to a global or local.
"""
defstruct [:read, :write, :type]
def from(%Orb.VariableReference{} = read) do
%__MODULE__{read: read, write: Orb.VariableReference.as_set(read), type: read.type}
end
# TODO: is this used any more?
def from({:global_get, name} = read) do
%__MODULE__{read: read, write: {:global_set, name}}
end
# TODO: is this used any more?
def from({:local_get, name} = read) do
%__MODULE__{read: read, write: {:local_set, name}}
end
def store(%__MODULE__{write: write}, value) do
# TODO: Use InstructionSequence
[value, write]
end
end