Skip to content

Commit dca62e3

Browse files
authored
Merge pull request #5 from javascript-obfuscator/fixed-export-default-precedence
Fixed precedence of export default iife
2 parents 9cbe509 + 51e5bce commit dca62e3

File tree

4 files changed

+10
-3
lines changed

4 files changed

+10
-3
lines changed

escodegen.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1914,7 +1914,7 @@
19141914
},
19151915

19161916
CallExpression: function (expr, precedence, flags) {
1917-
var result, i, iz;
1917+
var result, i, iz, isIIFE;
19181918

19191919
// F_ALLOW_UNPARATH_NEW becomes false.
19201920
result = [this.generateExpression(expr.callee, Precedence.Call, E_TTF)];
@@ -1936,7 +1936,11 @@
19361936
return ['(', result, ')'];
19371937
}
19381938

1939-
return parenthesize(result, Precedence.Call, precedence);
1939+
isIIFE = expr.callee.id === null && expr.callee.params.length === 0;
1940+
1941+
return isIIFE
1942+
? parenthesize(result, precedence, Precedence.Call)
1943+
: parenthesize(result, Precedence.Call, precedence);
19401944
},
19411945

19421946
ChainExpression: function (expr, precedence, flags) {

test/compare-esprima2/export-default-declaration.expected.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,5 @@ export default class A {
66
}
77
export default class {
88
}
9+
export default (function () {
10+
}());
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export default function a(){}export default function (){}export default class A{}export default class{}
1+
export default function a(){}export default function (){}export default class A{}export default class{}export default(function(){}())

test/compare-esprima2/export-default-declaration.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ export default function a () { }
44
export default function () { }
55
export default class A { }
66
export default class { }
7+
export default (function () { }())

0 commit comments

Comments
 (0)