DXN keyword (:name in value position), untrusted-decode
shape. The trusted-decode shape (the default) is a real, global
Symbol.for(name) instead — see the top-level decode/decodeBinarytrusted: option, once the text/binary codecs land.
Symbol.for is a genuine JS primitive, globally interned by string —
the closest native analog to a BEAM atom (which is why the trusted
path uses it directly rather than another wrapper class). This class
exists for the untrusted path, for the same reason
Dextrin.Keyword exists in Elixir: decoding attacker-controlled
text/binary must never be forced through any process-lifetime
interning table (Symbol.for's global symbol registry is never
garbage collected, same risk profile as a BEAM atom table).
Symbol.for(name) — an explicit, deliberate
opt-in to global-registry interning (the same reason this class
exists in the first place), so this conversion is never called
implicitly by decode itself.
DXN
keyword(:namein value position), untrusted-decode shape. The trusted-decode shape (the default) is a real, globalSymbol.for(name)instead — see the top-leveldecode/decodeBinarytrusted:option, once the text/binary codecs land.Symbol.foris a genuine JS primitive, globally interned by string — the closest native analog to a BEAM atom (which is why the trusted path uses it directly rather than another wrapper class). This class exists for the untrusted path, for the same reasonDextrin.Keywordexists in Elixir: decoding attacker-controlled text/binary must never be forced through any process-lifetime interning table (Symbol.for's global symbol registry is never garbage collected, same risk profile as a BEAM atom table).