aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/ModuleLoader.cpp
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-09-05 23:43:34 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-09-05 23:43:34 -0700
commit5a715210218715f71cba2053083ba9993ea82c7e (patch)
treee4f8516aea667114038641db896bacacbe017c8e /src/bun.js/bindings/ModuleLoader.cpp
parent11aa17a57cc679d34e8e6f6f7aa665f565cb7305 (diff)
downloadbun-5a715210218715f71cba2053083ba9993ea82c7e.tar.gz
bun-5a715210218715f71cba2053083ba9993ea82c7e.tar.zst
bun-5a715210218715f71cba2053083ba9993ea82c7e.zip
[Bun.plugin] Clean up exception handling
Diffstat (limited to 'src/bun.js/bindings/ModuleLoader.cpp')
-rw-r--r--src/bun.js/bindings/ModuleLoader.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/bun.js/bindings/ModuleLoader.cpp b/src/bun.js/bindings/ModuleLoader.cpp
index dd5ea01ad..1383c891d 100644
--- a/src/bun.js/bindings/ModuleLoader.cpp
+++ b/src/bun.js/bindings/ModuleLoader.cpp
@@ -136,12 +136,17 @@ OnLoadResult handleOnLoadResultNotPromise(Zig::GlobalObject* globalObject, JSC::
auto scope = DECLARE_THROW_SCOPE(vm);
BunLoaderType loader = BunLoaderTypeNone;
+ if (JSC::Exception* exception = JSC::jsDynamicCast<JSC::Exception*>(objectValue)) {
+ result.value.error = exception->value();
+ scope.release();
+ return result;
+ }
+
JSC::JSObject* object = objectValue.getObject();
if (UNLIKELY(!object)) {
scope.throwException(globalObject, JSC::createError(globalObject, "Expected onLoad callback to return an object"_s));
result.value.error = scope.exception();
- scope.clearException();
- scope.release();
+ result.type = OnLoadResultTypeError;
return result;
}
@@ -171,8 +176,6 @@ OnLoadResult handleOnLoadResultNotPromise(Zig::GlobalObject* globalObject, JSC::
if (UNLIKELY(loader == BunLoaderTypeNone)) {
throwException(globalObject, scope, createError(globalObject, "Expected loader to be one of \"js\", \"jsx\", \"object\", \"ts\", \"tsx\", \"toml\", or \"json\""_s));
result.value.error = scope.exception();
- scope.clearException();
- scope.release();
return result;
}
@@ -195,8 +198,6 @@ OnLoadResult handleOnLoadResultNotPromise(Zig::GlobalObject* globalObject, JSC::
if (UNLIKELY(result.value.sourceText.value.isEmpty())) {
throwException(globalObject, scope, createError(globalObject, "Expected \"contents\" to be a string or an ArrayBufferView"_s));
result.value.error = scope.exception();
- scope.clearException();
- scope.release();
return result;
}