mirror of
https://github.com/danbulant/oxc
synced 2026-05-19 12:19:15 +00:00
fix(minifier): do not change delete undefined to delete void 0 (#8527)
`delete undefined` returns `false` `delete void 0` returns `true`
This commit is contained in:
parent
92e44cba6b
commit
405b73d8e7
1 changed files with 9 additions and 0 deletions
|
|
@ -250,6 +250,12 @@ impl<'a, 'b> PeepholeSubstituteAlternateSyntax {
|
|||
if !ctx.is_identifier_undefined(ident) {
|
||||
return None;
|
||||
}
|
||||
// `delete undefined` returns `false`
|
||||
// `delete void 0` returns `true`
|
||||
if matches!(ctx.parent(), Ancestor::UnaryExpressionArgument(e) if e.operator().is_delete())
|
||||
{
|
||||
return None;
|
||||
}
|
||||
Some(ctx.ast.void_0(ident.span))
|
||||
}
|
||||
|
||||
|
|
@ -1297,6 +1303,9 @@ mod test {
|
|||
// destructuring throw error side effect
|
||||
test_same("var {} = void 0");
|
||||
test_same("var [] = void 0");
|
||||
// `delete undefined` returns `false`
|
||||
// `delete void 0` returns `true`
|
||||
test_same("delete undefined");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
|||
Loading…
Reference in a new issue