summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/module_wrap.cc10
-rw-r--r--src/node_internals.h2
2 files changed, 10 insertions, 2 deletions
diff --git a/src/module_wrap.cc b/src/module_wrap.cc
index dfba4d5b30..0e1f7c9eaf 100644
--- a/src/module_wrap.cc
+++ b/src/module_wrap.cc
@@ -103,9 +103,17 @@ void ModuleWrap::New(const FunctionCallbackInfo<Value>& args) {
False(isolate), // is opaque (?)
False(isolate), // is WASM
True(isolate)); // is ES6 module
+ TryCatch try_catch(isolate);
ScriptCompiler::Source source(source_text, origin);
- if (!ScriptCompiler::CompileModule(isolate, &source).ToLocal(&module))
+ if (!ScriptCompiler::CompileModule(isolate, &source).ToLocal(&module)) {
+ CHECK(try_catch.HasCaught());
+ CHECK(!try_catch.Message().IsEmpty());
+ CHECK(!try_catch.Exception().IsEmpty());
+ AppendExceptionLine(env, try_catch.Exception(), try_catch.Message(),
+ ErrorHandlingMode::MODULE_ERROR);
+ try_catch.ReThrow();
return;
+ }
}
Local<Object> that = args.This();
diff --git a/src/node_internals.h b/src/node_internals.h
index b7d032c68d..67ab0bb59e 100644
--- a/src/node_internals.h
+++ b/src/node_internals.h
@@ -269,7 +269,7 @@ constexpr size_t arraysize(const T(&)[N]) { return N; }
bool IsExceptionDecorated(Environment* env, v8::Local<v8::Value> er);
-enum ErrorHandlingMode { FATAL_ERROR, CONTEXTIFY_ERROR };
+enum ErrorHandlingMode { CONTEXTIFY_ERROR, FATAL_ERROR, MODULE_ERROR };
void AppendExceptionLine(Environment* env,
v8::Local<v8::Value> er,
v8::Local<v8::Message> message,