add fix from Syrus to get C++ working

This commit is contained in:
Mark McCaskey
2019-04-05 10:49:11 -07:00
parent 91d7416680
commit 44fba93266

View File

@ -247,6 +247,12 @@ pub fn run_emscripten_instance(
let data_ptr = &mut data as *mut _ as *mut c_void; let data_ptr = &mut data as *mut _ as *mut c_void;
instance.context_mut().data = data_ptr; instance.context_mut().data = data_ptr;
// ATINIT
// (used by C++)
if let Ok(_func) = instance.dyn_func("globalCtors") {
instance.call("globalCtors", &[])?;
}
if let Ok(_func) = instance.dyn_func("___emscripten_environ_constructor") { if let Ok(_func) = instance.dyn_func("___emscripten_environ_constructor") {
instance.call("___emscripten_environ_constructor", &[])?; instance.call("___emscripten_environ_constructor", &[])?;
} }
@ -269,7 +275,7 @@ pub fn run_emscripten_instance(
), ),
}; };
// TODO atinit and atexit for emscripten // TODO atexit for emscripten
// println!("{:?}", data); // println!("{:?}", data);
Ok(()) Ok(())
} }