Skip to content

Commit

Permalink
feat(compat): add .code to dyn import error (#12633)
Browse files Browse the repository at this point in the history
  • Loading branch information
kt3k authored Nov 8, 2021
1 parent 3828a7e commit 8e010b6
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 0 deletions.
5 changes: 5 additions & 0 deletions cli/tests/integration/compat_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@ itest!(compat_with_import_map_and_https_imports {
output: "compat/import_map_https_imports.out",
});

itest!(compat_dyn_import_rejects_with_node_compatible_error {
args: "run --quiet --compat --unstable -A compat/dyn_import_reject.js",
output: "compat/dyn_import_reject.out",
});

#[test]
fn globals_in_repl() {
let (out, _err) = util::run_and_collect_output_with_args(
Expand Down
4 changes: 4 additions & 0 deletions cli/tests/testdata/compat/dyn_import_reject.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import("./foobar.js").catch((e) => {
console.log(e);
console.log(e.code);
});
2 changes: 2 additions & 0 deletions cli/tests/testdata/compat/dyn_import_reject.out
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
TypeError: Cannot load module "file:///[WILDCARD]/testdata/compat/foobar.js".
ERR_MODULE_NOT_FOUND
5 changes: 5 additions & 0 deletions core/bindings.rs
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,11 @@ pub extern "C" fn host_import_module_dynamically_callback(
let message = arg.get(scope, message_key.into()).unwrap();
let exception =
v8::Exception::type_error(scope, message.try_into().unwrap());
let code_key = v8::String::new(scope, "code").unwrap();
let code_value =
v8::String::new(scope, "ERR_MODULE_NOT_FOUND").unwrap();
let exception_obj = exception.to_object(scope).unwrap();
exception_obj.set(scope, code_key.into(), code_value.into());
scope.throw_exception(exception);
return;
}
Expand Down

0 comments on commit 8e010b6

Please sign in to comment.