mirror of
https://github.com/mathuo/dockview
synced 2025-08-14 13:16:02 +00:00
Merge pull request #947 from mathuo/946-gc-efficiencies
946 gc efficiencies
This commit is contained in:
commit
6f738ca348
@ -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', () => {
|
||||
|
@ -325,7 +325,7 @@ export class DockviewComponent
|
||||
|
||||
private readonly _onDidActivePanelChange = new Emitter<
|
||||
IDockviewPanel | undefined
|
||||
>();
|
||||
>({ replay: true });
|
||||
readonly onDidActivePanelChange: Event<IDockviewPanel | undefined> =
|
||||
this._onDidActivePanelChange.event;
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user