When embedded in the web, the exports and imports of a module are represented as JS objects. JS objects are keyed by JS strings, which can be any UCS16 (roughly) sequence. WebAssembly uses sequences of bytes. Therefore, we need to specify conversion rules from WebAssembly byte sequence names to JS strings. There will be JS strings that don't convert gracefully to bytes and vice-versa, so we also need something sensible to happen when the conversion fails.