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
v8::Handle<v8::Context> renderer_context,
    content::RenderFrame* render_frame) {
  RendererClientBase::DidCreateScriptContext(renderer_context, render_frame);
  
  
  auto* command_line = base::CommandLine::ForCurrentProcess();
  
  
  bool reuse_renderer_processes_enabled =
      command_line->HasSwitch(switches::kDisableElectronSiteInstanceOverrides);
  
  
  bool is_not_opened =
      !render_frame->GetWebFrame()->Opener() ||
      command_line->HasSwitch(switches::kEnableNodeLeakageInRenderers);
  
  
  
  
  bool is_main_frame = render_frame->IsMainFrame() &&
                       (is_not_opened || reuse_renderer_processes_enabled);
  bool is_devtools = IsDevToolsExtension(render_frame);
  bool allow_node_in_subframes =
      command_line->HasSwitch(switches::kNodeIntegrationInSubFrames);
  bool should_load_node =
      (is_main_frame || is_devtools || allow_node_in_subframes) &&
      !IsWebViewFrame(renderer_context, render_frame);
  if (!should_load_node) {
    return;
  }