@@ -145,7 +145,8 @@ use crate::{
145
145
type_issue:: SpecifiedModuleTypeIssue ,
146
146
} ,
147
147
runtime_functions:: {
148
- TUBROPACK_RUNTIME_FUNCTION_SHORTCUTS , TURBOPACK_REQUIRE_REAL , TURBOPACK_REQUIRE_STUB ,
148
+ TUBROPACK_RUNTIME_FUNCTION_SHORTCUTS , TURBOPACK_EXPORT_NAMESPACE , TURBOPACK_EXPORT_VALUE ,
149
+ TURBOPACK_REQUIRE_REAL , TURBOPACK_REQUIRE_STUB ,
149
150
} ,
150
151
tree_shake:: { find_turbopack_part_id_in_asserts, part_of_module, split} ,
151
152
utils:: { module_value_to_well_known_object, AstPathRange } ,
@@ -3437,21 +3438,43 @@ fn detect_dynamic_export(p: &Program) -> DetectedDynamicExportType {
3437
3438
self . cjs = true ;
3438
3439
self . found = true ;
3439
3440
}
3440
- // TODO these are members now
3441
3441
if & * i. sym == "__turbopack_export_value__" {
3442
3442
self . value = true ;
3443
3443
self . found = true ;
3444
3444
}
3445
- // TODO these are members now
3446
3445
if & * i. sym == "__turbopack_export_namespace__" {
3447
3446
self . namespace = true ;
3448
3447
self . found = true ;
3449
3448
}
3450
3449
}
3450
+
3451
3451
fn visit_expr ( & mut self , n : & Expr ) {
3452
3452
if self . found {
3453
3453
return ;
3454
3454
}
3455
+
3456
+ if let Expr :: Member ( member) = n {
3457
+ if member. obj . is_ident_ref_to ( "__turbopack_context__" ) {
3458
+ if let MemberProp :: Ident ( prop) = & member. prop {
3459
+ const TURBOPACK_EXPORT_VALUE_SHORTCUT : & str =
3460
+ TURBOPACK_EXPORT_VALUE . shortcut ;
3461
+ const TURBOPACK_EXPORT_NAMESPACE_SHORTCUT : & str =
3462
+ TURBOPACK_EXPORT_NAMESPACE . shortcut ;
3463
+ match & * prop. sym {
3464
+ TURBOPACK_EXPORT_VALUE_SHORTCUT => {
3465
+ self . value = true ;
3466
+ self . found = true ;
3467
+ }
3468
+ TURBOPACK_EXPORT_NAMESPACE_SHORTCUT => {
3469
+ self . namespace = true ;
3470
+ self . found = true ;
3471
+ }
3472
+ _ => { }
3473
+ }
3474
+ }
3475
+ }
3476
+ }
3477
+
3455
3478
n. visit_children_with ( self ) ;
3456
3479
}
3457
3480
0 commit comments