vendor_prefix - The `wasm-bindgen` Guide

# Vendor-prefixed APIs

On the web new APIs often have vendor prefixes while they're in an experimental state. For example the `AudioContext` API is known as `webkitAudioContext` in Safari at the time of this writing. The `vendor_prefix` attribute indicates these alternative names, which are used if the normal name isn't defined.

For example to use `AudioContext` you might do:

    #![allow(unused)]
    fn main() {
    #[wasm_bindgen]
    extern "C" {
        #[wasm_bindgen(vendor_prefix = webkit)]
        type AudioContext;

        // methods on `AudioContext` ...
    }
    }

Whenever `AudioContext` is used it'll use `AudioContext` if the global namespace defines it or alternatively it'll fall back to `webkitAudioContext`.

Note that `vendor_prefix` cannot be used with `module = "..."` or `js_namespace = ...`, so it's basically limited to web-platform APIs today.