aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js
diff options
context:
space:
mode:
authorGravatar Ciro Spaciari <ciro.spaciari@gmail.com> 2023-05-31 16:07:52 -0300
committerGravatar GitHub <noreply@github.com> 2023-05-31 12:07:52 -0700
commit58fcb60831f346a7f07a258f67bdf40e55e094d2 (patch)
tree5894a003bcde916f3857985917de4b36c4b1294c /src/bun.js
parent557aac6a34bcd06bba98060f67bb7295d6c462d9 (diff)
downloadbun-58fcb60831f346a7f07a258f67bdf40e55e094d2.tar.gz
bun-58fcb60831f346a7f07a258f67bdf40e55e094d2.tar.zst
bun-58fcb60831f346a7f07a258f67bdf40e55e094d2.zip
fix(path) fix parse behavior (#3134)
Diffstat (limited to 'src/bun.js')
-rw-r--r--src/bun.js/node/types.zig15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/bun.js/node/types.zig b/src/bun.js/node/types.zig
index bbe2ea654..063e6bd8e 100644
--- a/src/bun.js/node/types.zig
+++ b/src/bun.js/node/types.zig
@@ -1776,14 +1776,17 @@ pub const Path = struct {
defer path_slice.deinit();
var path = path_slice.slice();
var path_name = Fs.PathName.init(path);
- var root = JSC.ZigString.init(path_name.dir);
- const is_absolute = (isWindows and isZigStringAbsoluteWindows(root)) or (!isWindows and path_name.dir.len > 0 and path_name.dir[0] == '/');
-
var dir = JSC.ZigString.init(path_name.dir);
+ const is_absolute = (isWindows and isZigStringAbsoluteWindows(dir)) or (!isWindows and path.len > 0 and path[0] == '/');
+
+ // if its not absolute root must be empty
+ var root = JSC.ZigString.Empty;
if (is_absolute) {
- root = JSC.ZigString.Empty;
- if (path_name.dir.len == 0)
- dir = JSC.ZigString.init(if (isWindows) std.fs.path.sep_str_windows else std.fs.path.sep_str_posix);
+ root = JSC.ZigString.init(if (isWindows) std.fs.path.sep_str_windows else std.fs.path.sep_str_posix);
+ // if is absolute and dir is empty, then dir = root
+ if (path_name.dir.len == 0) {
+ dir = root;
+ }
}
var base = JSC.ZigString.init(path_name.base);