diff --git a/lib/RequireJsStuffPlugin.js b/lib/RequireJsStuffPlugin.js index d0ef5893716..42a39d53601 100644 --- a/lib/RequireJsStuffPlugin.js +++ b/lib/RequireJsStuffPlugin.js @@ -23,7 +23,7 @@ module.exports = class RequireJsStuffPlugin { parser.plugin("call requirejs.config", ParserHelpers.toConstantDependency("undefined")); parser.plugin("expression require.version", ParserHelpers.toConstantDependency(JSON.stringify("0.0.0"))); - parser.plugin("expression requirejs.onError", ParserHelpers.toConstantDependency(JSON.stringify("__webpack_require__.oe"))); + parser.plugin("expression requirejs.onError", ParserHelpers.toConstantDependency("__webpack_require__.oe")); }); }); } diff --git a/lib/dependencies/CommonJsPlugin.js b/lib/dependencies/CommonJsPlugin.js index eb367534667..ef9af51ccc7 100644 --- a/lib/dependencies/CommonJsPlugin.js +++ b/lib/dependencies/CommonJsPlugin.js @@ -54,7 +54,7 @@ class CommonJsPlugin { const requireExpressions = ["require", "require.resolve", "require.resolveWeak"]; for(let expression of requireExpressions) { - parser.plugin(`typeof ${expression}`, ParserHelpers.toConstantDependency("function")); + parser.plugin(`typeof ${expression}`, ParserHelpers.toConstantDependency(JSON.stringify("function"))); parser.plugin(`evaluate typeof ${expression}`, ParserHelpers.evaluateToString("function")); parser.plugin(`evaluate Identifier ${expression}`, ParserHelpers.evaluateToIdentifier(expression, true)); } diff --git a/test/RequireJsStuffPlugin.test.js b/test/RequireJsStuffPlugin.test.js index b7eae9d72f4..6c5d8e87110 100644 --- a/test/RequireJsStuffPlugin.test.js +++ b/test/RequireJsStuffPlugin.test.js @@ -170,7 +170,7 @@ describe("RequireJsStuffPlugin", () => { const addDependencySpy = parserEventContext.state.current.addDependency; const addedDependency = JSON.stringify(addDependencySpy.getCall(0).args[0]); addDependencySpy.callCount.should.be.exactly(1); - addedDependency.should.be.exactly('{"module":null,"expression":"\\"__webpack_require__.oe\\"","range":10,"loc":5}'); + addedDependency.should.be.exactly('{"module":null,"expression":"__webpack_require__.oe","range":10,"loc":5}'); }); }); }); diff --git a/test/cases/parsing/requirejs/file.js b/test/cases/parsing/requirejs/file.js new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/cases/parsing/requirejs/index.js b/test/cases/parsing/requirejs/index.js index 9f94c94bdf1..37ea0ef2f65 100644 --- a/test/cases/parsing/requirejs/index.js +++ b/test/cases/parsing/requirejs/index.js @@ -1,11 +1,20 @@ it("should ignore require.config", function() { require.config({ - + }); requirejs.config({ - + }); }); it("should have a require.version", function() { require.version.should.be.type("string"); }); +it("should have a requirejs.onError function", function() { + function f(){} + requirejs.onError.should.be.type("function"); // has default handler + var org = requirejs.onError; + requirejs.onError = f; + requirejs.onError.should.be.eql(f); + requirejs.onError = org; + require(["./file.js"], function() {}); +}); diff --git a/test/cases/parsing/typeof/index.js b/test/cases/parsing/typeof/index.js index 15b8edbd53e..a3142febb7f 100644 --- a/test/cases/parsing/typeof/index.js +++ b/test/cases/parsing/typeof/index.js @@ -26,6 +26,9 @@ it("should answer typeof require.include correctly", function() { it("should answer typeof require.ensure correctly", function() { (typeof require.ensure).should.be.eql("function"); }); +it("should answer typeof require.resolve correctly", function() { + (typeof require.resolve).should.be.eql("function"); +}); it("should answer typeof System correctly", function() { (typeof System).should.be.eql("object"); }); @@ -41,6 +44,7 @@ it("should not parse filtered stuff", function() { if(!(typeof require === "function")) require("fail"); if(typeof require == "undefined") require = require("fail"); if(typeof require === "undefined") require = require("fail"); + if(typeof require.resolve !== "function") require("fail"); if(typeof module == "undefined") module = require("fail"); if(typeof module === "undefined") module = require("fail"); if(typeof module != "object") module = require("fail");