Merge pull request #947 from mathuo/946-gc-efficiencies

946 gc efficiencies
This commit is contained in:
mathuo 2025-06-05 18:40:05 +01:00 committed by GitHub
commit 6f738ca348
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 20 additions and 9 deletions

View File

@ -1,9 +1,4 @@
import {
AsapEvent,
Emitter,
Event,
addDisposableListener,
} from '../events';
import { AsapEvent, Emitter, Event, addDisposableListener } from '../events';
describe('events', () => {
describe('emitter', () => {
@ -67,7 +62,7 @@ describe('events', () => {
expect(value).toBeUndefined();
});
it('should relay last value in replay mode', () => {
it('should replay last value in replay mode', () => {
const emitter = new Emitter<number>({ replay: true });
let value: number | undefined = undefined;
@ -80,6 +75,20 @@ describe('events', () => {
stream.dispose();
});
it('should not replay last value in replay mode', () => {
const emitter = new Emitter<number>();
let value: number | undefined = undefined;
emitter.fire(1);
const stream = emitter.event((x) => {
value = x;
});
expect(value).toBeUndefined();
stream.dispose();
});
});
describe('asapEvent', () => {

View File

@ -325,7 +325,7 @@ export class DockviewComponent
private readonly _onDidActivePanelChange = new Emitter<
IDockviewPanel | undefined
>();
>({ replay: true });
readonly onDidActivePanelChange: Event<IDockviewPanel | undefined> =
this._onDidActivePanelChange.event;

View File

@ -160,7 +160,9 @@ export class Emitter<T> implements IDisposable {
}
public fire(e: T): void {
this._last = e;
if(this.options?.replay){
this._last = e;
}
for (const listener of this._listeners) {
listener.callback(e);
}