diff options
author | 2022-04-09 21:45:46 -0700 | |
---|---|---|
committer | 2022-04-09 21:45:46 -0700 | |
commit | 7cd3d1301128c1f9cdcfe5825b1fd34319ff0bdc (patch) | |
tree | 7d381cce0e9826959ba460992418842bf30b3921 | |
parent | 764fb636174dc9e8d168ef1ecc14e406ff6053fd (diff) | |
download | bun-7cd3d1301128c1f9cdcfe5825b1fd34319ff0bdc.tar.gz bun-7cd3d1301128c1f9cdcfe5825b1fd34319ff0bdc.tar.zst bun-7cd3d1301128c1f9cdcfe5825b1fd34319ff0bdc.zip |
[fs] Add missing `isFile` and `isDirectory` functions to stat()
-rw-r--r-- | src/javascript/jsc/base.zig | 4 | ||||
-rw-r--r-- | src/javascript/jsc/node/types.zig | 17 |
2 files changed, 18 insertions, 3 deletions
diff --git a/src/javascript/jsc/base.zig b/src/javascript/jsc/base.zig index 94b3ab6f4..115315566 100644 --- a/src/javascript/jsc/base.zig +++ b/src/javascript/jsc/base.zig @@ -2788,9 +2788,9 @@ pub fn wrap( return null; } - JavaScript.VirtualMachine.vm.tick(); + if (comptime maybe_async) { + JavaScript.VirtualMachine.vm.tick(); - if (maybe_async) { var promise = JSC.JSInternalPromise.resolvedPromise(ctx.ptr(), result); switch (promise.status(ctx.ptr().vm())) { diff --git a/src/javascript/jsc/node/types.zig b/src/javascript/jsc/node/types.zig index f3beeef8d..496e1c910 100644 --- a/src/javascript/jsc/node/types.zig +++ b/src/javascript/jsc/node/types.zig @@ -755,7 +755,15 @@ fn StatsLike(comptime name: [:0]const u8, comptime T: type) type { pub const Class = JSC.NewClass( This, .{ .name = name }, - .{}, + .{ + .isFile = .{ + .rfn = JSC.wrap(This, "isFile", false), + }, + .isDirectory = .{ + .rfn = JSC.wrap(This, "isDirectory", false), + }, + .finalize = finalize, + }, .{ .dev = .{ .get = JSC.To.JS.Getter(This, .dev), @@ -887,6 +895,13 @@ fn StatsLike(comptime name: [:0]const u8, comptime T: type) type { }; } + pub fn isFile(this: *Stats) JSC.JSValue { + return JSC.JSValue.jsBoolean(os.S.ISREG(@intCast(os.mode_t, this.mode))); + } + pub fn isDirectory(this: *Stats) JSC.JSValue { + return JSC.JSValue.jsBoolean(os.S.ISDIR(@intCast(os.mode_t, this.mode))); + } + pub fn toJS(this: Stats, ctx: JSC.C.JSContextRef, _: JSC.C.ExceptionRef) JSC.C.JSValueRef { var _this = bun.default_allocator.create(Stats) catch unreachable; _this.* = this; |