@@ -17,14 +17,16 @@ import * as e from './errors.js';
1717import { get_stack } from './dev/tracing.js' ;
1818import { tracing_mode_flag } from '../flags/index.js' ;
1919
20+ /** @type {ProxyMetadata | null } */
21+ var parent_metadata = null ;
22+
2023/**
2124 * @template T
2225 * @param {T } value
23- * @param {ProxyMetadata | null } [parent]
2426 * @param {Source<T> } [prev] dev mode only
2527 * @returns {T }
2628 */
27- export function proxy ( value , parent = null , prev ) {
29+ export function proxy ( value , prev ) {
2830 // if non-proxyable, or is already a proxy, return `value`
2931 if ( typeof value !== 'object' || value === null || STATE_SYMBOL in value ) {
3032 return value ;
@@ -57,8 +59,11 @@ export function proxy(value, parent = null, prev) {
5759 var child_proxy = ( value ) => {
5860 var previous_reaction = active_reaction ;
5961 set_active_reaction ( reaction ) ;
60- var p = proxy ( value , metadata ) ;
62+ var previous_metadata = parent_metadata ;
63+ parent_metadata = metadata ;
64+ var p = proxy ( value ) ;
6165 set_active_reaction ( previous_reaction ) ;
66+ parent_metadata = previous_metadata ;
6267 return p ;
6368 } ;
6469
@@ -73,7 +78,7 @@ export function proxy(value, parent = null, prev) {
7378
7479 if ( DEV ) {
7580 metadata = {
76- parent,
81+ parent : parent_metadata ,
7782 owners : null
7883 } ;
7984
@@ -85,7 +90,7 @@ export function proxy(value, parent = null, prev) {
8590 metadata . owners = prev_owners ? new Set ( prev_owners ) : null ;
8691 } else {
8792 metadata . owners =
88- parent === null
93+ parent_metadata === null
8994 ? component_context !== null
9095 ? new Set ( [ component_context . function ] )
9196 : null
0 commit comments