This commit is contained in:
Sergey Pepyakin
2017-11-28 17:48:50 +03:00
parent 9c79d48855
commit 2690ca2018
10 changed files with 102 additions and 320 deletions

View File

@ -3,7 +3,6 @@ use std::collections::HashMap;
use parking_lot::RwLock;
use elements::Module;
use interpreter::Error;
use interpreter::emscripten::{self, env_module};
use interpreter::module::{ModuleInstance, ModuleInstanceInterface};
/// Program instance. Program is a set of instantiated modules.
@ -26,17 +25,6 @@ impl ProgramInstance {
}
}
/// Create new program instance with added Emscripten's `env` module.
///
/// You can specify desired environment params. Or you can just pass `Default::default()`.
pub fn with_emscripten_env(params: emscripten::EnvParams) -> Result<Self, Error> {
let instance = ProgramInstance {
essence: Arc::new(ProgramInstanceEssence::new()),
};
// instance.essence.modules.write().insert("env".into(), env_module(params)?);
Ok(instance)
}
/// Instantiate module with validation.
pub fn add_module<'a>(&self, name: &str, module: Module, externals: Option<&'a HashMap<String, Arc<ModuleInstanceInterface + 'a>>>) -> Result<Arc<ModuleInstance>, Error> {
let mut module_instance = ModuleInstance::new(Arc::downgrade(&self.essence), name.into(), module)?;