JavaScript
JavaScript Mutations
StatementBlock
Before
if (x) { y(); }
After
if (x) {}
Condition
Before
if (x) { y(); }
After
if (true) { y(); }
if (false) { y(); }
BinaryOp - Add
Before
const x = 1 + 2
After
const x = 1 - 2
const x = 1 * 2
BinaryOp - And
Before
const x = a && b
After
const x = a || b
BinaryOp - BitAnd
Before
const x = 1 & 2
After
const x = 1 | 2
const x = 1 ^ 2
BinaryOp - BitOr
Before
const x = 1 | 2
After
const x = 1 & 2
const x = 1 ^ 2
BinaryOp - BitXor
Before
const x = 1 ^ 2
After
const x = 1 & 2
const x = 1 | 2
BinaryOp - Div
Before
const x = 1 / 2
After
const x = 1 * 2
const x = 1 - 2
BinaryOp - Eq
Before
const x = a == b
After
const x = a != b
BinaryOp - Gt
Before
const x = a > b
After
const x = a <= b
const x = a >= b
BinaryOp - Gte
Before
const x = a >= b
After
const x = a < b
const x = a > b
BinaryOp - Lt
Before
const x = a < b
After
const x = a >= b
const x = a <= b
BinaryOp - Lte
Before
const x = a <= b
After
const x = a > b
const x = a < b
BinaryOp - Mul
Before
const x = 1 * 2
After
const x = 1 / 2
const x = 1 + 2
BinaryOp - Or
Before
const x = a || b
After
const x = a && b
BinaryOp - Rem
Before
const x = 1 % 2
After
const x = 1 * 2
const x = 1 / 2
BinaryOp - Shl
Before
const x = 1 << 2
After
const x = 1 >> 2
BinaryOp - Shr
Before
const x = 1 >> 2
After
const x = 1 << 2
BinaryOp - StrictEq
Before
const x = a === b
After
const x = a !== b
BinaryOp - Ne
Before
const x = a != b
After
const x = a == b
BinaryOp - StrictNe
Before
const x = a !== b
After
const x = a === b
BinaryOp - Sub
Before
const x = 1 - 2
After
const x = 1 + 2
const x = 1 / 2
Assign - AddAssign
Before
x += 1
After
x -= 1
x = 1
Assign - AndAssign
Before
x &&= 1
After
x ||= 1
x = 1
Assign - BitAndAssign
Before
x &= 1
After
x |= 1
x = 1
Assign - BitOrAssign
Before
x |= 1
After
x &= 1
x = 1
Assign - BitXorAssign
Before
x ^= 1
After
x &= 1
x = 1
Assign - DivAssign
Before
x /= 1
After
x *= 1
x = 1
Assign - MulAssign
Before
x *= 1
After
x /= 1
x = 1
Assign - NormalAssign
Before
x = 1
After
x += 1
x -= 1
Assign - OrAssign
Before
x ||= 1
After
x &&= 1
x = 1
Assign - RemAssign
Before
x %= 1
After
x *= 1
x = 1
Assign - ShlAssign
Before
x <<= 1
After
x >>= 1
x = 1
Assign - ShrAssign
Before
x >>= 1
After
x <<= 1
x = 1
Assign - SubAssign
Before
x -= 1
After
x += 1
x = 1
ArrayDecl - Inline
Before
[1,2,3]
After
[]
ArrayDecl - Instance
Before
new Array(1, 2, 3)
After
new Array()
Literal - BoolTrue
Before
true
After
false
Literal - BoolFalse
Before
false
After
true
Literal - String
Before
'foo'
After
""
Literal - EmptyString
Before
''
After
"bough"
Literal - Number
Before
123
After
0
1
-1
Infinity
-Infinity
NaN
DictDecl
Before
const x = {foo: 1, bar: null}
After
const x = {}
OptionalChain - Literal
Before
const x = y?.z
After
const x = y.z
OptionalChain - Indexed
Before
const x = y?.['z']
After
const x = y['z']
OptionalChain - FnCall
Before
const x = y?.()
After
const x = y()
SwitchCase
Before
switch (x) {
case 1:
foo();
break;
case 2: {
bar();
break;
}
default: {
baz();
break;
}
}
After
switch (x) {
case 2: {
bar();
break;
}
default: {
baz();
break;
}
}
switch (x) {
case 1:
foo();
break;
default: {
baz();
break;
}
}
switch (x) {
case 1:
foo();
break;
case 2: {
bar();
break;
}
}