From 8c1c929034d46101b6a51ec5cf5e2f307ed0c271 Mon Sep 17 00:00:00 2001 From: Nikolai Vavilov Date: Thu, 19 Mar 2020 16:42:07 +0200 Subject: fix: stack traces for modules imported via std/node's require (#4035) --- core/bindings.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'core') diff --git a/core/bindings.rs b/core/bindings.rs index 9df9a78a0..ae138bfbf 100644 --- a/core/bindings.rs +++ b/core/bindings.rs @@ -10,6 +10,7 @@ use v8::MapFnTo; use std::convert::TryFrom; use std::option::Option; +use url::Url; lazy_static! { pub static ref EXTERNAL_REFERENCES: v8::ExternalReferences = @@ -448,6 +449,9 @@ fn eval_context( } }; + let url = v8::Local::::try_from(args.get(1)) + .map(|n| Url::from_file_path(n.to_rust_string_lossy(scope)).unwrap()); + let output = v8::Array::new(scope, 2); /* output[0] = result @@ -460,7 +464,9 @@ fn eval_context( */ let mut try_catch = v8::TryCatch::new(scope); let tc = try_catch.enter(); - let name = v8::String::new(scope, "").unwrap(); + let name = + v8::String::new(scope, url.as_ref().map_or("", Url::as_str)) + .unwrap(); let origin = script_origin(scope, name); let maybe_script = v8::Script::compile(scope, context, source, Some(&origin)); -- cgit v1.2.3