Class: Lifetime\

February 16, 2026 ยท View on GitHub

quickjs-emscripten


quickjs-emscripten / quickjs-emscripten-core / Lifetime

Class: Lifetime<T, TCopy, Owner>

Defined in: packages/quickjs-emscripten-core/src/lifetime.ts:68

A lifetime prevents access to a value after the lifetime has been disposeed.

Typically, quickjs-emscripten uses Lifetimes to protect C memory pointers.

Contents

Extends

Extended by

Type Parameters

T

T

TCopy

TCopy = never

Owner

Owner = never

Implements

Constructors

Constructor

new Lifetime<T, TCopy, Owner>(_value, copier?, disposer?, _owner?): Lifetime<T, TCopy, Owner>

Defined in: packages/quickjs-emscripten-core/src/lifetime.ts:83

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.

Parameters

_value

T

copier?

(value) => TCopy

disposer?

(value) => void

_owner?

Owner

Returns

Lifetime<T, TCopy, Owner>

Overrides

UsingDisposable.constructor

Properties

_alive

protected _alive: boolean = true

Defined in: packages/quickjs-emscripten-core/src/lifetime.ts:72


_constructorStack

protected _constructorStack: string | undefined

Defined in: packages/quickjs-emscripten-core/src/lifetime.ts:73


_owner?

protected readonly optional _owner: Owner

Defined in: packages/quickjs-emscripten-core/src/lifetime.ts:87


_value

protected readonly _value: T

Defined in: packages/quickjs-emscripten-core/src/lifetime.ts:84


copier()?

protected readonly optional copier: (value) => TCopy

Defined in: packages/quickjs-emscripten-core/src/lifetime.ts:85

Parameters

value

T | TCopy

Returns

TCopy


disposer()?

protected readonly optional disposer: (value) => void

Defined in: packages/quickjs-emscripten-core/src/lifetime.ts:86

Parameters

value

T | TCopy

Returns

void

Accessors

alive

Get Signature

get alive(): boolean

Defined in: packages/quickjs-emscripten-core/src/lifetime.ts:92

Returns

boolean

true if the object is alive

Implementation of

Disposable.alive

Overrides

UsingDisposable.alive


dupable

Get Signature

get dupable(): boolean

Defined in: packages/quickjs-emscripten-core/src/lifetime.ts:111

Returns

boolean


owner

Get Signature

get owner(): Owner | undefined

Defined in: packages/quickjs-emscripten-core/src/lifetime.ts:107

Returns

Owner | undefined


value

Get Signature

get value(): T

Defined in: packages/quickjs-emscripten-core/src/lifetime.ts:102

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 disposed already.

Returns

T

Methods

[dispose]()

[dispose](): void

Defined in: packages/quickjs-emscripten-core/src/lifetime.ts:47

Just calls the standard .dispose() method of this class.

Returns

void

Implementation of

Disposable.[dispose]

Inherited from

UsingDisposable.[dispose]


assertAlive()

protected assertAlive(): void

Defined in: packages/quickjs-emscripten-core/src/lifetime.ts:182

Returns

void


consume()

Call Signature

consume<O>(map): O

Defined in: packages/quickjs-emscripten-core/src/lifetime.ts:135

Call map with this lifetime, then dispose the lifetime.

Type Parameters
O

O

Parameters
map

(lifetime) => O

Returns

O

the result of map(this).

Call Signature

consume<O>(map): O

Defined in: packages/quickjs-emscripten-core/src/lifetime.ts:138

Call map with this lifetime, then dispose the lifetime.

Type Parameters
O

O

Parameters
map

(lifetime) => O

Returns

O

the result of map(this).


dispose()

dispose(): void

Defined in: packages/quickjs-emscripten-core/src/lifetime.ts:174

Dispose of value and perform cleanup.

Returns

void

Implementation of

Disposable.dispose

Overrides

UsingDisposable.dispose


dup()

dup(): Lifetime<TCopy, TCopy, Owner>

Defined in: packages/quickjs-emscripten-core/src/lifetime.ts:118

Create a new handle pointing to the same value.

Returns

Lifetime<TCopy, TCopy, Owner>


map()

Call Signature

map<O>(map): O

Defined in: packages/quickjs-emscripten-core/src/lifetime.ts:151

Call map with this lifetime, returning the result. Does not dispose the lifetime.

Type Parameters
O

O

Parameters
map

(lifetime) => O

Returns

O

the result of map(this).

Call Signature

map<O>(map): O

Defined in: packages/quickjs-emscripten-core/src/lifetime.ts:152

Call map with this lifetime, returning the result. Does not dispose the lifetime.

Type Parameters
O

O

Parameters
map

(lifetime) => O

Returns

O

the result of map(this).


tap()

Call Signature

tap(fn): this

Defined in: packages/quickjs-emscripten-core/src/lifetime.ts:164

Call fn with this lifetime, then return this. Does not dispose the lifetime. Useful for imperative operations within an expression, like when you're building up objects, or to add logging in the middle of a call chain.

Parameters
fn

(lifetime) => void

Returns

this

this

Call Signature

tap(fn): QuickJSHandle

Defined in: packages/quickjs-emscripten-core/src/lifetime.ts:165

Call fn with this lifetime, then return this. Does not dispose the lifetime. Useful for imperative operations within an expression, like when you're building up objects, or to add logging in the middle of a call chain.

Parameters
fn

(lifetime) => void

Returns

QuickJSHandle

this