export const setPrototypeOf = Object . setPrototypeOf || ( { __proto__ : [ ] } instanceof Array ? setProtoOf : mixinProperties ) ; /**
 * setPrototypeOf polyfill using __proto__
 */ function setProtoOf < TTarget extends object , TProto > ( obj , proto ) { obj . __proto__ = proto ; return obj as TTarget & TProto ; } /**
 * setPrototypeOf polyfill using mixin
 */ function mixinProperties < TTarget extends object , TProto > ( obj , proto ) { for ( const prop in proto ) { if ( ! obj . hasOwnProperty ( prop ) ) { obj [ prop ] = proto [ prop ] ; } } return obj as TTarget & TProto ; }