Skip to content

Commit dcd6c8c

Browse files
pkozlowski-opensourcedylhunn
authored andcommitted
refactor(core): use performance API for signals (#54521)
This commit adds a standard performance marker that can be viewed in Chrome dev tools and other tooling. See more info at https://developer.mozilla.org/en-US/docs/Web/API/Performance/mark PR Close #54521
1 parent fbb0398 commit dcd6c8c

File tree

3 files changed

+8
-0
lines changed

3 files changed

+8
-0
lines changed

packages/core/src/render3/reactivity/computed.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
import {createComputed, SIGNAL} from '@angular/core/primitives/signals';
1010

11+
import {performanceMarkFeature} from '../../util/performance';
12+
1113
import {Signal, ValueEqualityFn} from './api';
1214

1315
/**
@@ -24,6 +26,7 @@ export interface CreateComputedOptions<T> {
2426
* Create a computed `Signal` which derives a reactive value from an expression.
2527
*/
2628
export function computed<T>(computation: () => T, options?: CreateComputedOptions<T>): Signal<T> {
29+
performanceMarkFeature('NgSignals');
2730
const getter = createComputed(computation);
2831
if (options?.equal) {
2932
getter[SIGNAL].equal = options.equal;

packages/core/src/render3/reactivity/effect.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import {DestroyRef} from '../../linker/destroy_ref';
2020
import {FLAGS, LViewFlags, EFFECTS_TO_SCHEDULE} from '../interfaces/view';
2121

2222
import {assertNotInReactiveContext} from './asserts';
23+
import {performanceMarkFeature} from '../../util/performance';
2324

2425

2526
/**
@@ -240,6 +241,7 @@ export interface CreateEffectOptions {
240241
export function effect(
241242
effectFn: (onCleanup: EffectCleanupRegisterFn) => void,
242243
options?: CreateEffectOptions): EffectRef {
244+
performanceMarkFeature('NgSignals');
243245
ngDevMode &&
244246
assertNotInReactiveContext(
245247
effect,

packages/core/src/render3/reactivity/signal.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
import {createSignal, SIGNAL, SignalGetter, SignalNode, signalSetFn, signalUpdateFn} from '@angular/core/primitives/signals';
1010

11+
import {performanceMarkFeature} from '../../util/performance';
12+
1113
import {isSignal, Signal, ValueEqualityFn} from './api';
1214

1315
/** Symbol used distinguish `WritableSignal` from other non-writable signals and functions. */
@@ -63,6 +65,7 @@ export interface CreateSignalOptions<T> {
6365
* Create a `Signal` that can be set or updated directly.
6466
*/
6567
export function signal<T>(initialValue: T, options?: CreateSignalOptions<T>): WritableSignal<T> {
68+
performanceMarkFeature('NgSignals');
6669
const signalFn = createSignal(initialValue) as SignalGetter<T>& WritableSignal<T>;
6770
const node = signalFn[SIGNAL];
6871
if (options?.equal) {

0 commit comments

Comments
 (0)