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::Local<v8::Context> context) {
  if (base::CommandLine::ForCurrentProcess()->HasSwitch(
          switches::kNodeIntegrationInWorker)) {
    WebWorkerObserver::GetCurrent()->ContextWillDestroy(context);
  }
}
void AtomRendererClient::SetupMainWorldOverrides(
    v8::Handle<v8::Context> context,
    content::RenderFrame* render_frame) {
  
  
  
  auto* isolate = context->GetIsolate();
  std::vector<v8::Local<v8::String>> isolated_bundle_params = {
      node::FIXED_ONE_BYTE_STRING(isolate, "nodeProcess"),
      node::FIXED_ONE_BYTE_STRING(isolate, "isolatedWorld")};
  auto* env = GetEnvironment(render_frame);
  DCHECK(env);
  std::vector<v8::Local<v8::Value>> isolated_bundle_args = {
      env->process_object(),
      GetContext(render_frame->GetWebFrame(), isolate)->Global()};
  node::native_module::NativeModuleEnv::CompileAndCall(
      context, "electron/js2c/isolated_bundle", &isolated_bundle_params,
      &isolated_bundle_args, nullptr);
}
void AtomRendererClient::SetupExtensionWorldOverrides(