/usr/local/lib/node_modules/pm2/node_modules/@tootallnate/quickjs-emscripten/dist
NameSizeModeActions
generated/-0755rm
asyncify-helpers.d.ts14750644editdlrm
asyncify-helpers.js18180644editdlrm
asyncify-helpers.js.map42050644editdlrm
context-asyncify.d.ts21770644editdlrm
context-asyncify.js23700644editdlrm
context-asyncify.js.map46510644editdlrm
context.d.ts160650644editdlrm
context.js295950644editdlrm
context.js.map533030644editdlrm
debug.d.ts1560644editdlrm
debug.js3270644editdlrm
debug.js.map5180644editdlrm
deferred-promise.d.ts29570644editdlrm
deferred-promise.js37540644editdlrm
deferred-promise.js.map61760644editdlrm
emscripten-types.d.ts38860644editdlrm
emscripten-types.js7760644editdlrm
emscripten-types.js.map54840644editdlrm
errors.d.ts8360644editdlrm
errors.js19140644editdlrm
errors.js.map17800644editdlrm
esmHelpers.d.ts4200644editdlrm
esmHelpers.js7780644editdlrm
esmHelpers.js.map11260644editdlrm
index.d.ts40760644editdlrm
index.js59490644editdlrm
index.js.map65690644editdlrm
lifetime.d.ts43990644editdlrm
lifetime.js67240644editdlrm
lifetime.js.map118580644editdlrm
memory.d.ts7750644editdlrm
memory.js17070644editdlrm
memory.js.map38960644editdlrm
module-asyncify.d.ts23860644editdlrm
module-asyncify.js40350644editdlrm
module-asyncify.js.map64590644editdlrm
module-test.d.ts11180644editdlrm
module-test.js26690644editdlrm
module-test.js.map46720644editdlrm
module.d.ts62720644editdlrm
module.js127400644editdlrm
module.js.map217160644editdlrm
runtime-asyncify.d.ts16870644editdlrm
runtime-asyncify.js18800644editdlrm
runtime-asyncify.js.map40820644editdlrm
runtime.d.ts70480644editdlrm
runtime.js129090644editdlrm
runtime.js.map223670644editdlrm
types-ffi.d.ts34390644editdlrm
types-ffi.js13460644editdlrm
types-ffi.js.map47120644editdlrm
types.d.ts67510644editdlrm
types.js17220644editdlrm
types.js.map92720644editdlrm
variants.d.ts47840644editdlrm
variants.js68930644editdlrm
variants.js.map102260644editdlrm
vm-interface.d.ts26690644editdlrm
vm-interface.js3840644editdlrm
vm-interface.js.map31790644editdlrm
Edit: /usr/local/lib/node_modules/pm2/node_modules/@tootallnate/quickjs-emscripten/dist/lifetime.js (6724B)
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Scope = exports.WeakLifetime = exports.StaticLifetime = exports.Lifetime = void 0; const asyncify_helpers_1 = require("./asyncify-helpers"); const debug_1 = require("./debug"); const errors_1 = require("./errors"); /** * A lifetime prevents access to a value after the lifetime has been * [[dispose]]ed. * * Typically, quickjs-emscripten uses Lifetimes to protect C memory pointers. */ class Lifetime { /** * When the Lifetime is disposed, it will call `disposer(_value)`. Use the * disposer function to implement whatever cleanup needs to happen at the end * of `value`'s lifetime. * * `_owner` is not used or controlled by the lifetime. It's just metadata for * the creator. */ constructor(_value, copier, disposer, _owner) { this._value = _value; this.copier = copier; this.disposer = disposer; this._owner = _owner; this._alive = true; this._constructorStack = debug_1.QTS_DEBUG ? new Error("Lifetime constructed").stack : undefined; } get alive() { return this._alive; } /** * The value this Lifetime protects. You must never retain the value - it * may become invalid, leading to memory errors. * * @throws If the lifetime has been [[dispose]]d already. */ get value() { this.assertAlive(); return this._value; } get owner() { return this._owner; } get dupable() { return !!this.copier; } /** * Create a new handle pointing to the same [[value]]. */ dup() { this.assertAlive(); if (!this.copier) { throw new Error("Non-dupable lifetime"); } return new Lifetime(this.copier(this._value), this.copier, this.disposer, this._owner); } consume(map) { this.assertAlive(); const result = map(this); this.dispose(); return result; } /** * Dispose of [[value]] and perform cleanup. */ dispose() { this.assertAlive(); if (this.disposer) { this.disposer(this._value); } this._alive = false; } assertAlive() { if (!this.alive) { if (this._constructorStack) { throw new errors_1.QuickJSUseAfterFree(`Lifetime not alive\n${this._constructorStack}\nLifetime used`); } throw new errors_1.QuickJSUseAfterFree("Lifetime not alive"); } } } exports.Lifetime = Lifetime; /** * A Lifetime that lives forever. Used for constants. */ class StaticLifetime extends Lifetime { constructor(value, owner) { super(value, undefined, undefined, owner); } // Static lifetime doesn't need a copier to be copiable get dupable() { return true; } // Copy returns the same instance. dup() { return this; } // Dispose does nothing. dispose() { } } exports.StaticLifetime = StaticLifetime; /** * A Lifetime that does not own its `value`. A WeakLifetime never calls its * `disposer` function, but can be `dup`ed to produce regular lifetimes that * do. * * Used for function arguments. */ class WeakLifetime extends Lifetime { constructor(value, copier, disposer, owner) { // We don't care if the disposer doesn't support freeing T super(value, copier, disposer, owner); } dispose() { this._alive = false; } } exports.WeakLifetime = WeakLifetime; function scopeFinally(scope, blockError) { // console.log('scopeFinally', scope, blockError) let disposeError; try { scope.dispose(); } catch (error) { disposeError = error; } if (blockError && disposeError) { Object.assign(blockError, { message: `${blockError.message}\n Then, failed to dispose scope: ${disposeError.message}`, disposeError, }); throw blockError; } if (blockError || disposeError) { throw blockError || disposeError; } } /** * Scope helps reduce the burden of manually tracking and disposing of * Lifetimes. See [[withScope]]. and [[withScopeAsync]]. */ class Scope { constructor() { this._disposables = new Lifetime(new Set()); } /** * Run `block` with a new Scope instance that will be disposed after the block returns. * Inside `block`, call `scope.manage` on each lifetime you create to have the lifetime * automatically disposed after the block returns. * * @warning Do not use with async functions. Instead, use [[withScopeAsync]]. */ static withScope(block) { const scope = new Scope(); let blockError; try { return block(scope); } catch (error) { blockError = error; throw error; } finally { scopeFinally(scope, blockError); } } static withScopeMaybeAsync(_this, block) { return (0, asyncify_helpers_1.maybeAsync)(undefined, function* (awaited) { const scope = new Scope(); let blockError; try { return yield* awaited.of(block.call(_this, awaited, scope)); } catch (error) { blockError = error; throw error; } finally { scopeFinally(scope, blockError); } }); } /** * Run `block` with a new Scope instance that will be disposed after the * block's returned promise settles. Inside `block`, call `scope.manage` on each * lifetime you create to have the lifetime automatically disposed after the * block returns. */ static async withScopeAsync(block) { const scope = new Scope(); let blockError; try { return await block(scope); } catch (error) { blockError = error; throw error; } finally { scopeFinally(scope, blockError); } } /** * Track `lifetime` so that it is disposed when this scope is disposed. */ manage(lifetime) { this._disposables.value.add(lifetime); return lifetime; } get alive() { return this._disposables.alive; } dispose() { const lifetimes = Array.from(this._disposables.value.values()).reverse(); for (const lifetime of lifetimes) { if (lifetime.alive) { lifetime.dispose(); } } this._disposables.dispose(); } } exports.Scope = Scope; //# sourceMappingURL=lifetime.js.map