Skip to content

Commit 0259497

Browse files
Kenzo-WadaCopilot
authored andcommitted
Update crates/oxc_linter/src/rules/unicorn/require_post_message_target_origin.rs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Kenzo Wada <79452224+Kenzo-Wada@users.noreply.github.com>
1 parent f770b9d commit 0259497

File tree

1 file changed

+23
-22
lines changed

1 file changed

+23
-22
lines changed

crates/oxc_linter/src/rules/unicorn/require_post_message_target_origin.rs

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -83,33 +83,34 @@ impl Rule for RequirePostMessageTargetOrigin {
8383
}
8484

8585
fn is_message_port_expression(expr: &Expression<'_>) -> bool {
86-
let expr = expr.without_parentheses();
86+
let mut current_expr = expr.without_parentheses();
87+
loop {
88+
if let Expression::Identifier(ident) = current_expr
89+
&& matches!(ident.name.as_str(), "port" | "port1" | "port2" | "messagePort")
90+
{
91+
return true;
92+
}
8793

88-
if let Expression::Identifier(ident) = expr
89-
&& matches!(ident.name.as_str(), "port" | "port1" | "port2" | "messagePort")
90-
{
91-
return true;
92-
}
94+
let Some(member_expr) = current_expr.get_member_expr() else {
95+
return false;
96+
};
9397

94-
let Some(member_expr) = expr.get_member_expr() else {
95-
return false;
96-
};
98+
if member_expr.static_property_name().is_some_and(|name| matches!(name, "port1" | "port2")) {
99+
return true;
100+
}
97101

98-
if member_expr.static_property_name().is_some_and(|name| matches!(name, "port1" | "port2")) {
99-
return true;
100-
}
102+
if member_expr.is_computed()
103+
&& member_expr.object().without_parentheses().get_member_expr().is_some_and(
104+
|object_member| {
105+
object_member.static_property_name().is_some_and(|name| name == "ports")
106+
},
107+
)
108+
{
109+
return true;
110+
}
101111

102-
if member_expr.is_computed()
103-
&& member_expr.object().without_parentheses().get_member_expr().is_some_and(
104-
|object_member| {
105-
object_member.static_property_name().is_some_and(|name| name == "ports")
106-
},
107-
)
108-
{
109-
return true;
112+
current_expr = member_expr.object().without_parentheses();
110113
}
111-
112-
is_message_port_expression(member_expr.object())
113114
}
114115

115116
#[test]

0 commit comments

Comments
 (0)