@@ -3932,11 +3932,11 @@ impl<'a> Instantiator<'a, '_> {
39323932 }
39333933
39343934 fn exports ( & mut self , exports : & NameMap < String , ExportIndex > ) {
3935- let mut export_resource_map = ResourceMap :: new ( ) ;
39363935 for ( export_name, export_idx) in exports. raw_iter ( ) {
39373936 let export = & self . component . export_items [ * export_idx] ;
39383937 let world_key = & self . exports [ export_name] ;
39393938 let item = & self . resolve . worlds [ self . world ] . exports [ world_key] ;
3939+ let mut export_resource_map = ResourceMap :: new ( ) ;
39403940
39413941 match export {
39423942 Export :: LiftedFunction {
@@ -4105,10 +4105,11 @@ impl<'a> Instantiator<'a, '_> {
41054105 // This can't be tested at this time so leave it unimplemented
41064106 Export :: ModuleStatic { .. } | Export :: ModuleImport { .. } => unimplemented ! ( ) ,
41074107 }
4108+
4109+ // Save information about exported resources for later
4110+ self . resource_exports . extend ( export_resource_map) ;
41084111 }
41094112
4110- // Save information about exported resources for later
4111- self . resource_exports . extend ( export_resource_map) ;
41124113 self . bindgen . esm_bindgen . populate_export_aliases ( ) ;
41134114 }
41144115
@@ -4795,14 +4796,9 @@ pub fn gen_flat_lift_fn_js_expr(
47954796 if let Some ( resource_typedef) = intrinsic_mgr
47964797 . exports_resource_index_types
47974798 . get ( & resource_idx)
4798- && let Some ( ResourceTable { imported , data } ) =
4799+ && let Some ( ResourceTable { data , .. } ) =
47994800 intrinsic_mgr. resource_exports . get ( resource_typedef)
48004801 {
4801- assert ! (
4802- !imported,
4803- "imported resources cannot be owned and returned via lifting"
4804- ) ;
4805-
48064802 let ( resource_class_name, create_resource_fn_js) = match data {
48074803 ResourceData :: Guest { .. } => {
48084804 unimplemented ! (
0 commit comments