mirror of
https://github.com/oven-sh/bun
synced 2026-02-09 10:28:47 +00:00
Accept undefined as explicit second argument for path.*.basename (#12609)
This commit is contained in:
@@ -453,7 +453,7 @@ pub inline fn basenameJS_T(comptime T: type, globalObject: *JSC.JSGlobalObject,
|
||||
}
|
||||
|
||||
pub fn basename(globalObject: *JSC.JSGlobalObject, isWindows: bool, args_ptr: [*]JSC.JSValue, args_len: u16) callconv(JSC.conv) JSC.JSValue {
|
||||
const suffix_ptr: ?JSC.JSValue = if (args_len > 1) args_ptr[1] else null;
|
||||
const suffix_ptr: ?JSC.JSValue = if (args_len > 1 and args_ptr[1] != .undefined) args_ptr[1] else null;
|
||||
|
||||
if (suffix_ptr) |_suffix_ptr| {
|
||||
// Supress exeption in zig. It does globalThis.vm().throwError() in JS land.
|
||||
|
||||
@@ -45,6 +45,7 @@ describe("path.dirname", () => {
|
||||
assert.strictEqual(path.win32.basename("basename.ext\\"), "basename.ext");
|
||||
assert.strictEqual(path.win32.basename("basename.ext\\\\"), "basename.ext");
|
||||
assert.strictEqual(path.win32.basename("foo"), "foo");
|
||||
assert.strictEqual(path.win32.basename("foo", undefined), "foo");
|
||||
assert.strictEqual(path.win32.basename("aaa\\bbb", "\\bbb"), "bbb");
|
||||
assert.strictEqual(path.win32.basename("aaa\\bbb", "a\\bbb"), "bbb");
|
||||
assert.strictEqual(path.win32.basename("aaa\\bbb", "bbb"), "bbb");
|
||||
@@ -72,6 +73,7 @@ describe("path.dirname", () => {
|
||||
assert.strictEqual(path.posix.basename("basename.ext\\"), "basename.ext\\");
|
||||
assert.strictEqual(path.posix.basename("basename.ext\\\\"), "basename.ext\\\\");
|
||||
assert.strictEqual(path.posix.basename("foo"), "foo");
|
||||
assert.strictEqual(path.posix.basename("foo", undefined), "foo");
|
||||
});
|
||||
|
||||
test("posix with control characters", () => {
|
||||
|
||||
Reference in New Issue
Block a user