mirror of
https://github.com/fluencelabs/wasm-bindgen
synced 2025-03-16 02:00:51 +00:00
Dropped node support in umd -> amd
This commit is contained in:
parent
2b9af53030
commit
0bd8713bd5
@ -47,7 +47,7 @@ impl<'a> Context<'a> {
|
||||
let contents = contents.trim();
|
||||
let global = if self.config.nodejs {
|
||||
format!("module.exports.{} = {};\n", name, contents)
|
||||
} else if self.config.umd {
|
||||
} else if self.config.amd {
|
||||
format!("__exports.{} = {}\n", name, contents)
|
||||
} else {
|
||||
if contents.starts_with("function") {
|
||||
@ -66,7 +66,7 @@ impl<'a> Context<'a> {
|
||||
{
|
||||
let mut bind = |name: &str, f: &Fn(&mut Self) -> String| {
|
||||
if !self.wasm_import_needed(name) {
|
||||
return
|
||||
return;
|
||||
}
|
||||
let contents = f(self);
|
||||
let contents = contents.trim();
|
||||
@ -229,61 +229,39 @@ impl<'a> Context<'a> {
|
||||
self.footer.push_str(&format!("wasm = require('./{}_bg');",
|
||||
module_name));
|
||||
format!("var wasm;")
|
||||
} else if self.config.umd {
|
||||
} else if self.config.amd {
|
||||
format!("
|
||||
if(typeof window === 'undefined' && typeof process === 'object') {{
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const wasm_path = path.join(__dirname, '{module}_bg.wasm');
|
||||
const buffer = fs.readFileSync(wasm_path);
|
||||
const mod = new WebAssembly.Module(buffer);
|
||||
|
||||
return __initialize(mod, false);
|
||||
}} else {{
|
||||
return fetch('{module}_bg.wasm')
|
||||
.then(response => response.arrayBuffer())
|
||||
.then(bytes => WebAssembly.compile(bytes))
|
||||
.then(mod => __initialize(mod, true));
|
||||
}}", module = module_name)
|
||||
return fetch('{module}_bg.wasm')
|
||||
.then(response => response.arrayBuffer())
|
||||
.then(buffer => WebAssembly.instantiate(buffer, __js_exports))
|
||||
.then(({{instance}}) => {{
|
||||
wasm = instance.exports;
|
||||
return wasm;
|
||||
}})
|
||||
.catch(error => {{
|
||||
console.log('Error loading wasm module `{module}`:', error);
|
||||
throw error;
|
||||
}});
|
||||
", module = module_name)
|
||||
} else {
|
||||
format!("import * as wasm from './{}_bg';", module_name)
|
||||
};
|
||||
|
||||
let js = if self.config.umd {
|
||||
let js = if self.config.amd {
|
||||
format!("
|
||||
(function (root, factory) {{
|
||||
if (typeof define === 'function' && define.amd) {{
|
||||
define([], factory);
|
||||
}} else if (typeof module === 'object' && module.exports) {{
|
||||
module.exports = factory();
|
||||
}} else {{
|
||||
root.{module} = factory();
|
||||
}}
|
||||
}}(typeof self !== 'undefined' ? self : this, function() {{
|
||||
let wasm;
|
||||
const __js_exports = {{}};
|
||||
const __exports = {{}};
|
||||
{globals}
|
||||
__js_exports['./{module}'] = __exports;
|
||||
{import_wasm}
|
||||
function __initialize(__mod, __load_async) {{
|
||||
const __js_exports = {{}};
|
||||
const __exports = {{}};
|
||||
{globals}
|
||||
__js_exports['./{module}'] = __exports;
|
||||
|
||||
if (__load_async) {{
|
||||
return WebAssembly.instantiate(__mod, __js_exports)
|
||||
.then(instance => {{
|
||||
wasm = instance.exports;
|
||||
return instance.exports;
|
||||
}})
|
||||
.catch(error => {{
|
||||
console.log('Error loading wasm module `{module}`:', error);
|
||||
throw error;
|
||||
}});
|
||||
}} else {{
|
||||
const instance = new WebAssembly.Instance(__mod, __js_exports);
|
||||
wasm = instance.exports;
|
||||
return instance.exports;
|
||||
}}
|
||||
}}
|
||||
}}))
|
||||
",
|
||||
module = module_name,
|
||||
@ -380,7 +358,7 @@ impl<'a> Context<'a> {
|
||||
}
|
||||
|
||||
fn _rewrite_imports(&mut self, module_name: &str)
|
||||
-> Vec<(String, String)>
|
||||
-> Vec<(String, String)>
|
||||
{
|
||||
let mut math_imports = Vec::new();
|
||||
let imports = self.module.sections_mut()
|
||||
@ -398,11 +376,11 @@ impl<'a> Context<'a> {
|
||||
import.module_mut().truncate(0);
|
||||
import.module_mut().push_str("./");
|
||||
import.module_mut().push_str(module_name);
|
||||
continue
|
||||
continue;
|
||||
}
|
||||
|
||||
if import.module() != "env" {
|
||||
continue
|
||||
continue;
|
||||
}
|
||||
|
||||
let renamed_import = format!("__wbindgen_{}", import.field());
|
||||
@ -477,7 +455,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_drop_ref(&mut self) {
|
||||
if !self.exposed_globals.insert("drop_ref") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.expose_global_slab();
|
||||
self.expose_global_slab_next();
|
||||
@ -520,7 +498,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_global_stack(&mut self) {
|
||||
if !self.exposed_globals.insert("stack") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.globals.push_str(&format!("
|
||||
let stack = [];
|
||||
@ -529,14 +507,14 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_global_slab(&mut self) {
|
||||
if !self.exposed_globals.insert("slab") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.globals.push_str(&format!("let slab = [];"));
|
||||
}
|
||||
|
||||
fn expose_global_slab_next(&mut self) {
|
||||
if !self.exposed_globals.insert("slab_next") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.globals.push_str(&format!("
|
||||
let slab_next = 0;
|
||||
@ -545,7 +523,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_get_object(&mut self) {
|
||||
if !self.exposed_globals.insert("get_object") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.expose_global_stack();
|
||||
self.expose_global_slab();
|
||||
@ -575,7 +553,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_check_token(&mut self) {
|
||||
if !self.exposed_globals.insert("check_token") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.globals.push_str(&format!("
|
||||
const token = Symbol('foo');
|
||||
@ -588,7 +566,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_assert_num(&mut self) {
|
||||
if !self.exposed_globals.insert("assert_num") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.globals.push_str(&format!("
|
||||
function _assertNum(n) {{
|
||||
@ -600,7 +578,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_assert_bool(&mut self) {
|
||||
if !self.exposed_globals.insert("assert_bool") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.globals.push_str(&format!("
|
||||
function _assertBoolean(n) {{
|
||||
@ -612,7 +590,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_pass_string_to_wasm(&mut self) {
|
||||
if !self.exposed_globals.insert("pass_string_to_wasm") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.required_internal_exports.insert("__wbindgen_malloc");
|
||||
self.expose_text_encoder();
|
||||
@ -638,7 +616,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_pass_array8_to_wasm(&mut self) {
|
||||
if !self.exposed_globals.insert("pass_array8_to_wasm") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.required_internal_exports.insert("__wbindgen_malloc");
|
||||
self.expose_uint8_memory();
|
||||
@ -653,7 +631,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_pass_array16_to_wasm(&mut self) {
|
||||
if !self.exposed_globals.insert("pass_array16_to_wasm") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.required_internal_exports.insert("__wbindgen_malloc");
|
||||
self.expose_uint16_memory();
|
||||
@ -668,7 +646,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_pass_array32_to_wasm(&mut self) {
|
||||
if !self.exposed_globals.insert("pass_array32_to_wasm") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.required_internal_exports.insert("__wbindgen_malloc");
|
||||
self.expose_uint32_memory();
|
||||
@ -683,7 +661,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_pass_array_f32_to_wasm(&mut self) {
|
||||
if !self.exposed_globals.insert("pass_array_f32_to_wasm") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.required_internal_exports.insert("__wbindgen_malloc");
|
||||
self.globals.push_str(&format!("
|
||||
@ -697,7 +675,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_pass_array_f64_to_wasm(&mut self) {
|
||||
if !self.exposed_globals.insert("pass_array_f64_to_wasm") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.required_internal_exports.insert("__wbindgen_malloc");
|
||||
self.globals.push_str(&format!("
|
||||
@ -711,7 +689,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_text_encoder(&mut self) {
|
||||
if !self.exposed_globals.insert("text_encoder") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
if self.config.nodejs {
|
||||
self.globals.push_str(&format!("
|
||||
@ -731,7 +709,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_text_decoder(&mut self) {
|
||||
if !self.exposed_globals.insert("text_decoder") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
if self.config.nodejs {
|
||||
self.globals.push_str(&format!("
|
||||
@ -751,7 +729,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_get_string_from_wasm(&mut self) {
|
||||
if !self.exposed_globals.insert("get_string_from_wasm") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.expose_text_decoder();
|
||||
self.expose_uint8_memory();
|
||||
@ -764,7 +742,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_get_array_js_value_from_wasm(&mut self) {
|
||||
if !self.exposed_globals.insert("get_array_js_value_from_wasm") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.expose_get_array_u32_from_wasm();
|
||||
self.expose_get_object();
|
||||
@ -784,7 +762,7 @@ impl<'a> Context<'a> {
|
||||
fn expose_get_array_i8_from_wasm(&mut self) {
|
||||
self.expose_uint8_memory();
|
||||
if !self.exposed_globals.insert("get_array_i8_from_wasm") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.globals.push_str(&format!("
|
||||
function getArrayI8FromWasm(ptr, len) {{
|
||||
@ -798,7 +776,7 @@ impl<'a> Context<'a> {
|
||||
fn expose_get_array_u8_from_wasm(&mut self) {
|
||||
self.expose_uint8_memory();
|
||||
if !self.exposed_globals.insert("get_array_u8_from_wasm") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.globals.push_str(&format!("
|
||||
function getArrayU8FromWasm(ptr, len) {{
|
||||
@ -812,7 +790,7 @@ impl<'a> Context<'a> {
|
||||
fn expose_get_array_i16_from_wasm(&mut self) {
|
||||
self.expose_uint16_memory();
|
||||
if !self.exposed_globals.insert("get_array_i16_from_wasm") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.globals.push_str(&format!("
|
||||
function getArrayI16FromWasm(ptr, len) {{
|
||||
@ -826,7 +804,7 @@ impl<'a> Context<'a> {
|
||||
fn expose_get_array_u16_from_wasm(&mut self) {
|
||||
self.expose_uint16_memory();
|
||||
if !self.exposed_globals.insert("get_array_u16_from_wasm") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.globals.push_str(&format!("
|
||||
function getArrayU16FromWasm(ptr, len) {{
|
||||
@ -840,7 +818,7 @@ impl<'a> Context<'a> {
|
||||
fn expose_get_array_i32_from_wasm(&mut self) {
|
||||
self.expose_uint32_memory();
|
||||
if !self.exposed_globals.insert("get_array_i32_from_wasm") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.globals.push_str(&format!("
|
||||
function getArrayI32FromWasm(ptr, len) {{
|
||||
@ -854,7 +832,7 @@ impl<'a> Context<'a> {
|
||||
fn expose_get_array_u32_from_wasm(&mut self) {
|
||||
self.expose_uint32_memory();
|
||||
if !self.exposed_globals.insert("get_array_u32_from_wasm") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.globals.push_str(&format!("
|
||||
function getArrayU32FromWasm(ptr, len) {{
|
||||
@ -867,7 +845,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_get_array_f32_from_wasm(&mut self) {
|
||||
if !self.exposed_globals.insert("get_array_f32_from_wasm") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.globals.push_str(&format!("
|
||||
function getArrayF32FromWasm(ptr, len) {{
|
||||
@ -880,7 +858,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_get_array_f64_from_wasm(&mut self) {
|
||||
if !self.exposed_globals.insert("get_array_f64_from_wasm") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.globals.push_str(&format!("
|
||||
function getArrayF64FromWasm(ptr, len) {{
|
||||
@ -893,7 +871,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_uint8_memory(&mut self) {
|
||||
if !self.exposed_globals.insert("uint8_memory") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.globals.push_str(&format!("
|
||||
let cachedUint8Memory = null;
|
||||
@ -908,7 +886,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_uint16_memory(&mut self) {
|
||||
if !self.exposed_globals.insert("uint16_memory") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.globals.push_str(&format!("
|
||||
let cachedUint16Memory = null;
|
||||
@ -923,7 +901,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_uint32_memory(&mut self) {
|
||||
if !self.exposed_globals.insert("uint32_memory") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.globals.push_str(&format!("
|
||||
let cachedUint32Memory = null;
|
||||
@ -938,7 +916,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_assert_class(&mut self) {
|
||||
if !self.exposed_globals.insert("assert_class") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.globals.push_str(&format!("
|
||||
function _assertClass(instance, klass) {{
|
||||
@ -951,7 +929,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_borrowed_objects(&mut self) {
|
||||
if !self.exposed_globals.insert("borrowed_objects") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.expose_global_stack();
|
||||
self.globals.push_str(&format!("
|
||||
@ -964,7 +942,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_take_object(&mut self) {
|
||||
if !self.exposed_globals.insert("take_object") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.expose_get_object();
|
||||
self.expose_drop_ref();
|
||||
@ -979,7 +957,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_add_heap_object(&mut self) {
|
||||
if !self.exposed_globals.insert("add_heap_object") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.expose_global_slab();
|
||||
self.expose_global_slab_next();
|
||||
@ -1100,7 +1078,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_set_global_argument(&mut self) {
|
||||
if !self.exposed_globals.insert("set_global_argument") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.expose_uint32_memory();
|
||||
self.expose_global_argument_ptr();
|
||||
@ -1114,7 +1092,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_get_global_argument(&mut self) {
|
||||
if !self.exposed_globals.insert("get_global_argument") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.expose_uint32_memory();
|
||||
self.expose_global_argument_ptr();
|
||||
@ -1128,7 +1106,7 @@ impl<'a> Context<'a> {
|
||||
|
||||
fn expose_global_argument_ptr(&mut self) {
|
||||
if !self.exposed_globals.insert("global_argument_ptr") {
|
||||
return
|
||||
return;
|
||||
}
|
||||
self.required_internal_exports.insert("__wbindgen_global_argument_ptr");
|
||||
self.globals.push_str("
|
||||
@ -1157,7 +1135,7 @@ impl<'a, 'b> SubContext<'a, 'b> {
|
||||
|
||||
pub fn generate_export(&mut self, export: &shared::Export) {
|
||||
if let Some(ref class) = export.class {
|
||||
return self.generate_export_for_class(class, export)
|
||||
return self.generate_export_for_class(class, export);
|
||||
}
|
||||
let (js, ts) = self.generate_function("function",
|
||||
&export.function.name,
|
||||
@ -1237,8 +1215,7 @@ impl<'a, 'b> SubContext<'a, 'b> {
|
||||
arg_conversions.push_str(&format!("\
|
||||
_assertBoolean({name});
|
||||
", name = name));
|
||||
} else {
|
||||
}
|
||||
} else {}
|
||||
pass(&format!("arg{i} ? 1 : 0", i = i))
|
||||
}
|
||||
shared::TYPE_JS_OWNED => {
|
||||
@ -1381,9 +1358,9 @@ impl<'a, 'b> SubContext<'a, 'b> {
|
||||
const ret = wasm.{}({passed});
|
||||
{convert_ret}
|
||||
",
|
||||
f = wasm_name,
|
||||
passed = passed_args,
|
||||
convert_ret = convert_ret,
|
||||
f = wasm_name,
|
||||
passed = passed_args,
|
||||
convert_ret = convert_ret,
|
||||
));
|
||||
} else {
|
||||
dst.push_str(&format!("\
|
||||
@ -1394,10 +1371,10 @@ impl<'a, 'b> SubContext<'a, 'b> {
|
||||
{destructors}
|
||||
}}
|
||||
",
|
||||
f = wasm_name,
|
||||
passed = passed_args,
|
||||
destructors = destructors,
|
||||
convert_ret = convert_ret,
|
||||
f = wasm_name,
|
||||
passed = passed_args,
|
||||
destructors = destructors,
|
||||
convert_ret = convert_ret,
|
||||
));
|
||||
}
|
||||
dst.push_str("}");
|
||||
|
@ -17,7 +17,7 @@ pub struct Bindgen {
|
||||
path: Option<PathBuf>,
|
||||
nodejs: bool,
|
||||
browser: bool,
|
||||
umd: bool,
|
||||
amd: bool,
|
||||
debug: bool,
|
||||
typescript: bool,
|
||||
}
|
||||
@ -37,7 +37,7 @@ impl Bindgen {
|
||||
path: None,
|
||||
nodejs: false,
|
||||
browser: false,
|
||||
umd: false,
|
||||
amd: false,
|
||||
debug: false,
|
||||
typescript: false,
|
||||
}
|
||||
@ -58,8 +58,8 @@ impl Bindgen {
|
||||
self
|
||||
}
|
||||
|
||||
pub fn umd(&mut self, umd: bool) -> &mut Bindgen {
|
||||
self.umd = umd;
|
||||
pub fn amd(&mut self, amd: bool) -> &mut Bindgen {
|
||||
self.amd = amd;
|
||||
self
|
||||
}
|
||||
|
||||
|
@ -32,7 +32,7 @@ Options:
|
||||
struct Args {
|
||||
flag_nodejs: bool,
|
||||
flag_browser: bool,
|
||||
flag_umd: bool,
|
||||
flag_amd: bool,
|
||||
flag_typescript: bool,
|
||||
flag_out_dir: Option<PathBuf>,
|
||||
flag_debug: bool,
|
||||
@ -59,7 +59,7 @@ fn main() {
|
||||
b.input_path(&input)
|
||||
.nodejs(args.flag_nodejs)
|
||||
.browser(args.flag_browser)
|
||||
.umd(args.flag_umd)
|
||||
.amd(args.flag_amd)
|
||||
.debug(args.flag_debug)
|
||||
.typescript(args.flag_typescript);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user