Skip to content

Commit 00a4fa6

Browse files
authored
Merge pull request webpack#3544 from webpack/bugfix/add_require_ensure_arrow_function_expression_support
fix(require.ensure): add ArrowFunctionExpression support: Fixes webpack#959
2 parents 6abf46c + 6279014 commit 00a4fa6

File tree

13 files changed

+102
-3
lines changed

13 files changed

+102
-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: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,19 @@ 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+
});
30+
31+
32+
it("should parse a string in require.ensure with arrow function array expression", function(done) {
33+
require.ensure("./file", require => (require("./file").should.be.eql("ok"), done()));
34+
});
35+
36+
37+
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)