112a9d9c8Sopenharmony_ci// bindgen-flags: --enable-cxx-namespaces --allowlist-type JSAutoCompartment -- -std=c++11 212a9d9c8Sopenharmony_ci 312a9d9c8Sopenharmony_cinamespace mozilla { 412a9d9c8Sopenharmony_ci template <typename> class a {}; 512a9d9c8Sopenharmony_ci namespace detail { 612a9d9c8Sopenharmony_ci class GuardObjectNotifier {}; 712a9d9c8Sopenharmony_ci struct b; 812a9d9c8Sopenharmony_ci } 912a9d9c8Sopenharmony_ci class c { 1012a9d9c8Sopenharmony_ci typedef detail::b d; 1112a9d9c8Sopenharmony_ci }; 1212a9d9c8Sopenharmony_ci} 1312a9d9c8Sopenharmony_cinamespace js { 1412a9d9c8Sopenharmony_ci class D { 1512a9d9c8Sopenharmony_ci mozilla::a<mozilla::c> e; 1612a9d9c8Sopenharmony_ci }; 1712a9d9c8Sopenharmony_ci} 1812a9d9c8Sopenharmony_cistruct f { 1912a9d9c8Sopenharmony_ci js::D g; 2012a9d9c8Sopenharmony_ci}; 2112a9d9c8Sopenharmony_cinamespace js { 2212a9d9c8Sopenharmony_ci struct ContextFriendFields : f {}; 2312a9d9c8Sopenharmony_ci} 2412a9d9c8Sopenharmony_ciclass JSAutoCompartment { 2512a9d9c8Sopenharmony_cipublic: 2612a9d9c8Sopenharmony_ci JSAutoCompartment(mozilla::detail::GuardObjectNotifier); 2712a9d9c8Sopenharmony_ci}; 28