Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
1 result

wasmpi.js

Blame
  • wasmpi.js 3.68 KiB
    let wasm;
    
    /**
     * @param {number} npts
     * @returns {number}
     */
    export function rust_serial_pi(npts) {
        const ret = wasm.rust_serial_pi(npts);
        return ret;
    }
    
    /**
     * @param {number} npts
     * @returns {number}
     */
    export function rust_serial_map_pi(npts) {
        const ret = wasm.rust_serial_map_pi(npts);
        return ret;
    }
    
    async function __wbg_load(module, imports) {
        if (typeof Response === 'function' && module instanceof Response) {
            if (typeof WebAssembly.instantiateStreaming === 'function') {
                try {
                    return await WebAssembly.instantiateStreaming(module, imports);
    
                } catch (e) {
                    if (module.headers.get('Content-Type') != 'application/wasm') {
                        console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e);
    
                    } else {
                        throw e;
                    }
                }
            }
    
            const bytes = await module.arrayBuffer();
            return await WebAssembly.instantiate(bytes, imports);
    
        } else {
            const instance = await WebAssembly.instantiate(module, imports);
    
            if (instance instanceof WebAssembly.Instance) {
                return { instance, module };
    
            } else {
                return instance;
            }
        }
    }
    
    function __wbg_get_imports() {
        const imports = {};
        imports.wbg = {};
        imports.wbg.__wbindgen_init_externref_table = function() {
            const table = wasm.__wbindgen_export_0;
            const offset = table.grow(4);
            table.set(0, undefined);
            table.set(offset + 0, undefined);
            table.set(offset + 1, null);
            table.set(offset + 2, true);
            table.set(offset + 3, false);
            ;
        };
    
        return imports;
    }
    
    function __wbg_init_memory(imports, memory) {
    
    }
    
    function __wbg_finalize_init(instance, module) {
        wasm = instance.exports;
        __wbg_init.__wbindgen_wasm_module = module;
    
    
        wasm.__wbindgen_start();
        return wasm;
    }
    
    function initSync(module) {
        if (wasm !== undefined) return wasm;
    
    
        if (typeof module !== 'undefined') {
            if (Object.getPrototypeOf(module) === Object.prototype) {
                ({module} = module)
            } else {
                console.warn('using deprecated parameters for `initSync()`; pass a single object instead')
            }
        }
    
        const imports = __wbg_get_imports();
    
        __wbg_init_memory(imports);
    
        if (!(module instanceof WebAssembly.Module)) {
            module = new WebAssembly.Module(module);
        }
    
        const instance = new WebAssembly.Instance(module, imports);
    
        return __wbg_finalize_init(instance, module);
    }
    
    async function __wbg_init(module_or_path) {
        if (wasm !== undefined) return wasm;
    
    
        if (typeof module_or_path !== 'undefined') {
            if (Object.getPrototypeOf(module_or_path) === Object.prototype) {
                ({module_or_path} = module_or_path)
            } else {
                console.warn('using deprecated parameters for the initialization function; pass a single object instead')
            }
        }
    
        if (typeof module_or_path === 'undefined') {
            module_or_path = new URL('wasmpi_bg.wasm', import.meta.url);
        }
        const imports = __wbg_get_imports();
    
        if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {
            module_or_path = fetch(module_or_path);
        }
    
        __wbg_init_memory(imports);
    
        const { instance, module } = await __wbg_load(await module_or_path, imports);
    
        return __wbg_finalize_init(instance, module);
    }
    
    export { initSync };
    export default __wbg_init;