diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2021-11-03 09:27:36 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-03 09:27:36 -0400 |
commit | 7c2abb9d579d13fa61339c24f8c39bc3c27c25db (patch) | |
tree | c3ce3cefff867dd3f073eda18ebed53f728e4675 /cli/ops | |
parent | 95b2955712b0daae3c8e8f7bb0eccf341b5c8fa3 (diff) |
fix: Deno.emit crashes with BorrowMutError (#12627)
Warn on await_holding_refcell_ref clippy rule to avoid this in the future.
Fixes #12453
Diffstat (limited to 'cli/ops')
-rw-r--r-- | cli/ops/runtime_compiler.rs | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/cli/ops/runtime_compiler.rs b/cli/ops/runtime_compiler.rs index ab6992d19..8f7a75146 100644 --- a/cli/ops/runtime_compiler.rs +++ b/cli/ops/runtime_compiler.rs @@ -88,9 +88,15 @@ async fn op_emit( ) -> Result<EmitResult, AnyError> { deno_runtime::ops::check_unstable2(&state, "Deno.emit"); let root_specifier = args.root_specifier; - let state = state.borrow(); - let ps = state.borrow::<ProcState>(); - let mut runtime_permissions = { state.borrow::<Permissions>().clone() }; + let ps = { + let state = state.borrow(); + state.borrow::<ProcState>().clone() + }; + let mut runtime_permissions = { + let state = state.borrow(); + state.borrow::<Permissions>().clone() + }; + let mut cache: Box<dyn cache::CacherLoader> = if let Some(sources) = &args.sources { Box::new(cache::MemoryCacher::new(sources.clone())) |