From 1e93ab1628e230762471737a1d2586b5bc86b496 Mon Sep 17 00:00:00 2001 From: Mestery <mestery@pm.me> Date: Fri, 27 Aug 2021 22:43:43 +0200 Subject: [PATCH] fix: global and timers this arg in browser --- src/internal/errors.ts | 8 ++++---- src/setImmediate.ts | 4 ++-- src/setTimeoutUnref.ts | 2 +- src/volume.ts | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/internal/errors.ts b/src/internal/errors.ts index f5e7074a7..a5b4fb426 100644 --- a/src/internal/errors.ts +++ b/src/internal/errors.ts @@ -21,7 +21,7 @@ function makeNodeError(Base) { }; } -class AssertionError extends global.Error { +class AssertionError extends globalThis.Error { generatedMessage: any; name: any; code: any; @@ -74,9 +74,9 @@ function E(sym, val) { messages[sym] = typeof val === 'function' ? val : String(val); } -export const Error = makeNodeError(global.Error); -export const TypeError = makeNodeError(global.TypeError); -export const RangeError = makeNodeError(global.RangeError); +export const Error = makeNodeError(globalThis.Error); +export const TypeError = makeNodeError(globalThis.TypeError); +export const RangeError = makeNodeError(globalThis.RangeError); export { message, diff --git a/src/setImmediate.ts b/src/setImmediate.ts index cf15a242a..cc5f73b18 100644 --- a/src/setImmediate.ts +++ b/src/setImmediate.ts @@ -1,7 +1,7 @@ type TSetImmediate = (callback: (...args) => void, args?) => void; let _setImmediate: TSetImmediate; -if (typeof setImmediate === 'function') _setImmediate = setImmediate.bind(global); -else _setImmediate = setTimeout.bind(global); +if (typeof setImmediate === 'function') _setImmediate = setImmediate.bind(globalThis); +else _setImmediate = setTimeout.bind(globalThis); export default _setImmediate as TSetImmediate; diff --git a/src/setTimeoutUnref.ts b/src/setTimeoutUnref.ts index 21d05f9ec..a35612e08 100644 --- a/src/setTimeoutUnref.ts +++ b/src/setTimeoutUnref.ts @@ -5,7 +5,7 @@ export type TSetTimeout = (callback: (...args) => void, time?: number, args?: an * only in Node's environment it will "unref" its macro task. */ function setTimeoutUnref(callback, time?, args?): object { - const ref = setTimeout.apply(null, arguments); + const ref = setTimeout.apply(globalThis, arguments); if (ref && typeof ref === 'object' && typeof ref.unref === 'function') ref.unref(); return ref; } diff --git a/src/volume.ts b/src/volume.ts index 565118b17..a7e4c8b92 100644 --- a/src/volume.ts +++ b/src/volume.ts @@ -2220,7 +2220,7 @@ export class StatWatcher extends EventEmitter { start(path: string, persistent: boolean = true, interval: number = 5007) { this.filename = pathToFilename(path); - this.setTimeout = persistent ? setTimeout : setTimeoutUnref; + this.setTimeout = persistent ? setTimeout.bind(globalThis) : setTimeoutUnref; this.interval = interval; this.prev = this.vol.statSync(this.filename); this.loop();