diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bun.js/node/types.zig | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/bun.js/node/types.zig b/src/bun.js/node/types.zig index c858c9b04..02bfe8757 100644 --- a/src/bun.js/node/types.zig +++ b/src/bun.js/node/types.zig @@ -1861,14 +1861,17 @@ pub const Path = struct { var insert_separator = true; if (path_object.getTruthy(globalThis, "dir")) |prop| { prop.toZigString(&dir, globalThis); - insert_separator = !dir.isEmpty(); - } else if (path_object.getTruthy(globalThis, "root")) |prop| { - prop.toZigString(&dir, globalThis); + } + if (dir.isEmpty()) { + if (path_object.getTruthy(globalThis, "root")) |prop| { + prop.toZigString(&dir, globalThis); + } } if (path_object.getTruthy(globalThis, "base")) |prop| { prop.toZigString(&name_with_ext, globalThis); - } else { + } + if (name_with_ext.isEmpty()) { var had_ext = false; if (path_object.getTruthy(globalThis, "ext")) |prop| { prop.toZigString(&ext, globalThis); @@ -1897,6 +1900,16 @@ pub const Path = struct { defer allocator.free(out); return JSC.ZigString.init(out).withEncoding().toValueGC(globalThis); + } else { + if (!isWindows) { + if (dir.eqlComptime("/")) { + insert_separator = false; + } + } else { + if (dir.eqlComptime("\\")) { + insert_separator = false; + } + } } if (insert_separator) { |