output: "var a = function() { (function(){ (function(){ this.d }.bind(c)) }) }",
errors: [{ messageId: "unexpected", type: "CallExpression", column: 71 }]
},
+ {
+ code: "var a = (function() { return 1; }).bind(this)",
+ output: "var a = (function() { return 1; })",
+ errors
+ },
+ {
+ code: "var a = (function() { return 1; }.bind)(this)",
+ output: "var a = (function() { return 1; })",
+ errors
+ },
// Should not autofix if bind expression args have side effects
{
code: "var a = function() {}.bind(b)/**/",
output: "var a = function() {}/**/",
errors
+ },
+
+ // Optional chaining
+ {
+ code: "var a = function() { return 1; }.bind?.(b)",
+ output: "var a = function() { return 1; }",
+ parserOptions: { ecmaVersion: 2020 },
+ errors: [{ messageId: "unexpected" }]
+ },
+ {
+ code: "var a = function() { return 1; }?.bind(b)",
+ output: "var a = function() { return 1; }",
+ parserOptions: { ecmaVersion: 2020 },
+ errors: [{ messageId: "unexpected" }]
+ },
+ {
+ code: "var a = (function() { return 1; }?.bind)(b)",
+ output: "var a = (function() { return 1; })",
+ parserOptions: { ecmaVersion: 2020 },
+ errors: [{ messageId: "unexpected" }]
+ },
+ {
+ code: "var a = function() { return 1; }['bind']?.(b)",
+ output: "var a = function() { return 1; }",
+ parserOptions: { ecmaVersion: 2020 },
+ errors: [{ messageId: "unexpected" }]
+ },
+ {
+ code: "var a = function() { return 1; }?.['bind'](b)",
+ output: "var a = function() { return 1; }",
+ parserOptions: { ecmaVersion: 2020 },
+ errors: [{ messageId: "unexpected" }]
+ },
+ {
+ code: "var a = (function() { return 1; }?.['bind'])(b)",
+ output: "var a = (function() { return 1; })",
+ parserOptions: { ecmaVersion: 2020 },
+ errors: [{ messageId: "unexpected" }]
}
]
});