aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-04-09 21:45:46 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-04-09 21:45:46 -0700
commit7cd3d1301128c1f9cdcfe5825b1fd34319ff0bdc (patch)
tree7d381cce0e9826959ba460992418842bf30b3921
parent764fb636174dc9e8d168ef1ecc14e406ff6053fd (diff)
downloadbun-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.zig4
-rw-r--r--src/javascript/jsc/node/types.zig17
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;