@ -109,7 +109,7 @@ export function mark_module_end(component) {
/ * *
/ * *
* @ param { any } object
* @ param { any } object
* @ param { any } owner
* @ param { any | null } owner
* @ param { boolean } [ global ]
* @ param { boolean } [ global ]
* @ param { boolean } [ skip _warning ]
* @ param { boolean } [ skip _warning ]
* /
* /
@ -120,7 +120,7 @@ export function add_owner(object, owner, global = false, skip_warning = false) {
if ( metadata && ! has _owner ( metadata , component ) ) {
if ( metadata && ! has _owner ( metadata , component ) ) {
let original = get _owner ( metadata ) ;
let original = get _owner ( metadata ) ;
if ( owner [ FILENAME ] !== component [ FILENAME ] && ! skip _warning ) {
if ( owner && owner [ FILENAME ] !== component [ FILENAME ] && ! skip _warning ) {
w . ownership _invalid _binding ( component [ FILENAME ] , owner [ FILENAME ] , original [ FILENAME ] ) ;
w . ownership _invalid _binding ( component [ FILENAME ] , owner [ FILENAME ] , original [ FILENAME ] ) ;
}
}
}
}
@ -165,7 +165,7 @@ export function widen_ownership(from, to) {
/ * *
/ * *
* @ param { any } object
* @ param { any } object
* @ param { Function } owner
* @ param { Function | null } owner If ` null ` , then the object is globally owned and will not be checked
* @ param { Set < any > } seen
* @ param { Set < any > } seen
* /
* /
function add _owner _to _object ( object , owner , seen ) {
function add _owner _to _object ( object , owner , seen ) {
@ -174,7 +174,11 @@ function add_owner_to_object(object, owner, seen) {
if ( metadata ) {
if ( metadata ) {
// this is a state proxy, add owner directly, if not globally shared
// this is a state proxy, add owner directly, if not globally shared
if ( 'owners' in metadata && metadata . owners != null ) {
if ( 'owners' in metadata && metadata . owners != null ) {
if ( owner ) {
metadata . owners . add ( owner ) ;
metadata . owners . add ( owner ) ;
} else {
metadata . owners = null ;
}
}
}
} else if ( object && typeof object === 'object' ) {
} else if ( object && typeof object === 'object' ) {
if ( seen . has ( object ) ) return ;
if ( seen . has ( object ) ) return ;