Skip to content

Commit c090f45

Browse files
committed
Add optional source_path argument to vm.run functions
1 parent 6f43d22 commit c090f45

File tree

2 files changed

+19
-9
lines changed

2 files changed

+19
-9
lines changed

wasm/lib/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ fn run_py(source: &str, options: Option<Object>, mode: Mode) -> Result<JsValue,
6464
if let Some(js_vars) = js_vars {
6565
vm.add_to_scope("js_vars".into(), js_vars.into())?;
6666
}
67-
vm.run(source, mode)
67+
vm.run(source, mode, None)
6868
}
6969

7070
/// Evaluate Python code

wasm/lib/src/vm_class.rs

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -278,13 +278,19 @@ impl WASMVirtualMachine {
278278
})?
279279
}
280280

281-
pub(crate) fn run(&self, source: &str, mode: compile::Mode) -> Result<JsValue, JsValue> {
281+
pub(crate) fn run(
282+
&self,
283+
source: &str,
284+
mode: compile::Mode,
285+
source_path: Option<String>,
286+
) -> Result<JsValue, JsValue> {
282287
self.assert_valid()?;
283288
self.with_unchecked(
284289
|StoredVirtualMachine {
285290
ref vm, ref scope, ..
286291
}| {
287-
let code = vm.compile(source, mode, "<wasm>".to_string());
292+
let source_path = source_path.unwrap_or_else(|| "<wasm>".to_string());
293+
let code = vm.compile(source, mode, source_path);
288294
let code = code.map_err(|err| {
289295
let js_err = SyntaxError::new(&format!("Error parsing Python code: {}", err));
290296
let _ =
@@ -302,16 +308,20 @@ impl WASMVirtualMachine {
302308
)
303309
}
304310

305-
pub fn exec(&self, source: &str) -> Result<JsValue, JsValue> {
306-
self.run(source, compile::Mode::Exec)
311+
pub fn exec(&self, source: &str, source_path: Option<String>) -> Result<JsValue, JsValue> {
312+
self.run(source, compile::Mode::Exec, source_path)
307313
}
308314

309-
pub fn eval(&self, source: &str) -> Result<JsValue, JsValue> {
310-
self.run(source, compile::Mode::Eval)
315+
pub fn eval(&self, source: &str, source_path: Option<String>) -> Result<JsValue, JsValue> {
316+
self.run(source, compile::Mode::Eval, source_path)
311317
}
312318

313319
#[wasm_bindgen(js_name = execSingle)]
314-
pub fn exec_single(&self, source: &str) -> Result<JsValue, JsValue> {
315-
self.run(source, compile::Mode::Single)
320+
pub fn exec_single(
321+
&self,
322+
source: &str,
323+
source_path: Option<String>,
324+
) -> Result<JsValue, JsValue> {
325+
self.run(source, compile::Mode::Single, source_path)
316326
}
317327
}

0 commit comments

Comments
 (0)