Post https://github.com/electron/electron/pull/18924 we shouldn't be patching `CompileAndCall` into our node fork, instead that method can quite easily live in our code as a helper.
shell/renderer/atom_renderer_client.cc
node_bindings_->set_uv_env(env);
    
    node_bindings_->RunMessageLoop();
  }
}
void AtomRendererClient::WillReleaseScriptContext(
    v8::Handle<v8::Context> context,
    content::RenderFrame* render_frame) {
  if (injected_frames_.erase(render_frame) == 0)
    return;
  node::Environment* env = node::Environment::GetCurrent(context);
  if (environments_.erase(env) == 0)
    return;
  gin_helper::EmitEvent(env->isolate(), env->process_object(), "exit");
  
  if (env == node_bindings_->uv_env())
    node_bindings_->set_uv_env(nullptr);
  
  
  
  
  
  auto* command_line = base::CommandLine::ForCurrentProcess();
  if (command_line->HasSwitch(switches::kNodeIntegrationInSubFrames) ||
      command_line->HasSwitch(switches::kDisableElectronSiteInstanceOverrides))
    node::FreeEnvironment(env);
  
  electron_bindings_->EnvironmentDestroyed(env);
}
bool AtomRendererClient::ShouldFork(blink::WebLocalFrame* frame,