Skip to content

Commit a48a074

Browse files
committed
fix(require.ensure): add ArrowFunctionExpression support: Fixes webpack#959
1 parent 8059be6 commit a48a074

File tree

13 files changed

+94
-3
lines changed

13 files changed

+94
-3
lines changed

lib/dependencies/getFunctionExpression.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@
44
*/
55
module.exports = function(expr) {
66
// <FunctionExpression>
7-
if(expr.type === "FunctionExpression") {
7+
if(expr.type === "FunctionExpression" || expr.type === "ArrowFunctionExpression") {
88
return {
99
fn: expr,
1010
expressions: [],
1111
needThis: false
1212
};
1313
}
14+
1415
// <FunctionExpression>.bind(<Expression>)
1516
if(expr.type === "CallExpression" &&
1617
expr.callee.type === "MemberExpression" &&

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"source-map": "^0.5.3",
2222
"supports-color": "^3.1.0",
2323
"tapable": "~0.2.5",
24-
"uglify-js": "~2.7.3",
24+
"uglify-js": "^2.7.5",
2525
"watchpack": "^1.0.0",
2626
"webpack-sources": "^0.1.0",
2727
"yargs": "^6.0.0"

test/cases/parsing/chunks/index.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,11 @@ it("should parse a string in require.ensure", function(done) {
1919
require("./file").should.be.eql("ok");
2020
done();
2121
});
22-
});
22+
});
23+
24+
it("should parse a string in require.ensure with arrow function expression", function(done) {
25+
require.ensure("./file", require => {
26+
require("./file").should.be.eql("ok");
27+
done();
28+
});
29+
});
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
var supportsES6 = require("../../../helpers/supportsES6");
2+
3+
module.exports = function(config) {
4+
return !config.minimize && supportsES6();
5+
};
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = 1;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = 3;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = 2;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = 1;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = 3;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = 2;

0 commit comments

Comments
 (0)