arrows fix for object literal methods containing arguments (#2632)
fixes #2631
This commit is contained in:
@@ -5414,6 +5414,8 @@ merge(Compressor.prototype, {
|
||||
// p(){return x;} ---> p:()=>x
|
||||
if (compressor.option("arrows")
|
||||
&& compressor.parent() instanceof AST_Object
|
||||
&& !self.value.uses_arguments
|
||||
&& !self.value.uses_eval
|
||||
&& self.value.body.length == 1
|
||||
&& self.value.body[0] instanceof AST_Return
|
||||
&& self.value.body[0].value
|
||||
|
||||
@@ -1153,3 +1153,47 @@ array_literal_with_spread_4: {
|
||||
]
|
||||
node_version: ">=6"
|
||||
}
|
||||
|
||||
object_literal_method_using_arguments: {
|
||||
options = {
|
||||
arrows: true,
|
||||
}
|
||||
input: {
|
||||
console.log(({
|
||||
m() {
|
||||
return arguments[0];
|
||||
}
|
||||
}).m("PASS"));
|
||||
}
|
||||
expect: {
|
||||
console.log(({
|
||||
m() {
|
||||
return arguments[0];
|
||||
}
|
||||
}).m("PASS"));
|
||||
}
|
||||
expect_stdout: "PASS"
|
||||
node_version: ">=6"
|
||||
}
|
||||
|
||||
class_method_using_arguments: {
|
||||
options = {
|
||||
arrows: true,
|
||||
}
|
||||
input: {
|
||||
console.log(new class {
|
||||
m() {
|
||||
return arguments[0];
|
||||
}
|
||||
}().m("PASS"));
|
||||
}
|
||||
expect: {
|
||||
console.log(new class {
|
||||
m() {
|
||||
return arguments[0];
|
||||
}
|
||||
}().m("PASS"));
|
||||
}
|
||||
expect_stdout: "PASS"
|
||||
node_version: ">=6"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user