@@ -773,22 +773,27 @@ export function get(signal) {
773773 active_reaction !== null &&
774774 tracing_expressions . reaction === active_reaction
775775 ) {
776- var trace = get_stack ( 'TracedAt' ) ;
776+ // Used when mapping state between special blocks like `each`
777+ if ( signal . trace ) {
778+ signal . trace ( ) ;
779+ } else {
780+ var trace = get_stack ( 'TracedAt' ) ;
777781
778- if ( trace ) {
779- var entry = tracing_expressions . entries . get ( signal ) ;
782+ if ( trace ) {
783+ var entry = tracing_expressions . entries . get ( signal ) ;
780784
781- if ( entry === undefined ) {
782- entry = { traces : [ ] } ;
783- tracing_expressions . entries . set ( signal , entry ) ;
784- }
785+ if ( entry === undefined ) {
786+ entry = { traces : [ ] } ;
787+ tracing_expressions . entries . set ( signal , entry ) ;
788+ }
785789
786- var last = entry . traces [ entry . traces . length - 1 ] ;
790+ var last = entry . traces [ entry . traces . length - 1 ] ;
787791
788- // traces can be duplicated, e.g. by `snapshot` invoking both
789- // both `getOwnPropertyDescriptor` and `get` traps at once
790- if ( trace . stack !== last ?. stack ) {
791- entry . traces . push ( trace ) ;
792+ // traces can be duplicated, e.g. by `snapshot` invoking both
793+ // both `getOwnPropertyDescriptor` and `get` traps at once
794+ if ( trace . stack !== last ?. stack ) {
795+ entry . traces . push ( trace ) ;
796+ }
792797 }
793798 }
794799 }
0 commit comments