diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2024-01-25 23:51:29 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-25 23:51:29 +0100 |
commit | 0b0fb94ce2489da642cffd82e0498446d4a1fe1f (patch) | |
tree | af3fd4fd60e0e9fdf5301ac2881b8e5c43f25cbb /ext/fs/30_fs.js | |
parent | 7038074c8583465872b16083f54f2211312f0943 (diff) |
fix(fs): instanceof check for Deno.FsFile (#22121)
Regression caused by https://github.com/denoland/deno/pull/22072.
I added a relevant test so we don't regress again.
Fixes https://github.com/denoland/deno/issues/22115
Diffstat (limited to 'ext/fs/30_fs.js')
-rw-r--r-- | ext/fs/30_fs.js | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/ext/fs/30_fs.js b/ext/fs/30_fs.js index f752c559a..2e7eba242 100644 --- a/ext/fs/30_fs.js +++ b/ext/fs/30_fs.js @@ -88,6 +88,7 @@ const { StringPrototypeStartsWith, SymbolAsyncIterator, SymbolIterator, + SymbolFor, Uint32Array, } = primordials; @@ -619,7 +620,7 @@ function openSync( options, ); - return new FsFile(rid); + return new FsFile(rid, SymbolFor("Deno.internal.FsFile")); } async function open( @@ -632,7 +633,7 @@ async function open( options, ); - return new FsFile(rid); + return new FsFile(rid, SymbolFor("Deno.internal.FsFile")); } function createSync(path) { @@ -659,8 +660,15 @@ class FsFile { #readable; #writable; - constructor(rid) { + constructor(rid, symbol) { this.#rid = rid; + if (!symbol || symbol !== SymbolFor("Deno.internal.FsFile")) { + internals.warnOnDeprecatedApi( + "new Deno.FsFile()", + new Error().stack, + "Use `Deno.open` or `Deno.openSync` instead.", + ); + } } get rid() { |