From 9f9c3d9048108200a888c508328d2a19cbbd6164 Mon Sep 17 00:00:00 2001 From: sigmaSd Date: Sun, 22 Oct 2023 09:02:55 +0100 Subject: fix(polyfill): correctly handle flag when its equal 0 (#20953) Fixes https://github.com/denoland/deno/issues/20910 --- ext/node/polyfills/_fs/_fs_common.ts | 2 +- ext/node/polyfills/_fs/_fs_open.ts | 4 ++-- ext/node/polyfills/_fs/_fs_read.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'ext/node/polyfills/_fs') diff --git a/ext/node/polyfills/_fs/_fs_common.ts b/ext/node/polyfills/_fs/_fs_common.ts index d1dfabc4f..3817ee9f8 100644 --- a/ext/node/polyfills/_fs/_fs_common.ts +++ b/ext/node/polyfills/_fs/_fs_common.ts @@ -108,7 +108,7 @@ export function checkEncoding(encoding: Encodings | null): Encodings | null { export function getOpenOptions( flag: string | number | undefined, ): Deno.OpenOptions { - if (!flag) { + if (flag === undefined) { return { create: true, append: true }; } diff --git a/ext/node/polyfills/_fs/_fs_open.ts b/ext/node/polyfills/_fs/_fs_open.ts index 571a06a5d..fc5defb51 100644 --- a/ext/node/polyfills/_fs/_fs_open.ts +++ b/ext/node/polyfills/_fs/_fs_open.ts @@ -57,8 +57,8 @@ function convertFlagAndModeToOptions( flag?: openFlags, mode?: number, ): Deno.OpenOptions | undefined { - if (!flag && !mode) return undefined; - if (!flag && mode) return { mode }; + if (flag === undefined && mode === undefined) return undefined; + if (flag === undefined && mode) return { mode }; return { ...getOpenOptions(flag), mode }; } diff --git a/ext/node/polyfills/_fs/_fs_read.ts b/ext/node/polyfills/_fs/_fs_read.ts index 6d7efbeef..66d5a4093 100644 --- a/ext/node/polyfills/_fs/_fs_read.ts +++ b/ext/node/polyfills/_fs/_fs_read.ts @@ -167,7 +167,7 @@ export function readSync( if (typeof offsetOrOpt === "number") { offset = offsetOrOpt; validateInteger(offset, "offset", 0); - } else { + } else if (offsetOrOpt !== undefined) { const opt = offsetOrOpt as readSyncOptions; offset = opt.offset ?? 0; length = opt.length ?? buffer.byteLength; -- cgit v1.2.3