diff options
Diffstat (limited to 'ext/node/lib.rs')
-rw-r--r-- | ext/node/lib.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/ext/node/lib.rs b/ext/node/lib.rs index 74c528b0c..a4a757996 100644 --- a/ext/node/lib.rs +++ b/ext/node/lib.rs @@ -181,6 +181,15 @@ fn op_node_build_os() -> String { env!("TARGET").split('-').nth(2).unwrap().to_string() } +#[op2(fast)] +fn op_node_is_promise_rejected(value: v8::Local<v8::Value>) -> bool { + let Ok(promise) = v8::Local::<v8::Promise>::try_from(value) else { + return false; + }; + + promise.state() == v8::PromiseState::Rejected +} + #[op2] #[string] fn op_npm_process_state(state: &mut OpState) -> Result<String, AnyError> { @@ -341,6 +350,7 @@ deno_core::extension!(deno_node, ops::os::op_cpus<P>, ops::os::op_homedir<P>, op_node_build_os, + op_node_is_promise_rejected, op_npm_process_state, ops::require::op_require_init_paths, ops::require::op_require_node_module_paths<P>, |