fix(builtin): properly quote env vars passed to nodejs_binary
diff --git a/internal/node/node.bzl b/internal/node/node.bzl
index 6bf31c2..18d7ce4 100644
--- a/internal/node/node.bzl
+++ b/internal/node/node.bzl
@@ -204,7 +204,7 @@
 
     # Add all env vars from the ctx attr
     for [key, value] in ctx.attr.env.items():
-        env_vars += "export %s=%s\n" % (key, ctx.expand_make_variables("env", expand_location_into_runfiles(ctx, value, data), {}))
+        env_vars += "export %s=\"%s\"\n" % (key, ctx.expand_make_variables("env", expand_location_into_runfiles(ctx, value, data), {}))
 
     # While we can derive the workspace from the pwd when running locally
     # because it is in the execroot path `execroot/my_wksp`, on RBE the
diff --git a/internal/node/test/BUILD.bazel b/internal/node/test/BUILD.bazel
index b4e1a32..b7bf882 100644
--- a/internal/node/test/BUILD.bazel
+++ b/internal/node/test/BUILD.bazel
@@ -410,6 +410,7 @@
     env = {
         "LOC": "$(location :dump_build_env.js)",
         "SOME_TEST_ENV": "$(SOME_TEST_ENV)",
+        "BACKSLASHES": "C:\\some path\\on\\windows.exe",
     },
 )
 
diff --git a/internal/node/test/env.spec.js b/internal/node/test/env.spec.js
index 4a8a772..455a864 100644
--- a/internal/node/test/env.spec.js
+++ b/internal/node/test/env.spec.js
@@ -123,4 +123,9 @@
       const env = require(runfiles.resolvePackageRelative('dump_build_env_attr.json'));
       expect(env['SOME_TEST_ENV']).toBe('some_value')
   });
+
+  it('should correctly pass environment variables with backslashes', function() {
+    const env = require(runfiles.resolvePackageRelative('dump_build_env_attr.json'));
+    expect(env['BACKSLASHES']).toBe('C:\\some path\\on\\windows.exe');
+  });
 });