Skip to content

Commit e43ec62

Browse files
committed
fixed edge cases
1 parent 45a6749 commit e43ec62

File tree

5 files changed

+25
-12
lines changed

5 files changed

+25
-12
lines changed

lib/NormalModule.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,8 @@ NormalModule.prototype.source = function(dependencyTemplates, outputOptions, req
103103
function emitFunction() {
104104
if(varNames.length == 0) return;
105105

106-
varStartCode += "/* WEBPACK VAR INJECTION */(function(" + varNames.join(", ") + ") {";
107-
varEndCode = "}(" + varExpressions.map(function(e) {return e.source()}).join(", ") + "))" + varEndCode;
106+
varStartCode += "/* WEBPACK VAR INJECTION */(function(require, " + varNames.join(", ") + ") {";
107+
varEndCode = "}(require, " + varExpressions.map(function(e) {return e.source()}).join(", ") + "))" + varEndCode;
108108

109109
varNames.length = 0;
110110
varExpressions.length = 0;

lib/RequestShortener.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ function RequestShortener(directory) {
2020
this.parentDirectoryRegExp = parentDirectoryRegExp;
2121
this.buildinsRegExp = buildinsRegExp;
2222
this.node_modulesRegExp = /\/node_modules\//g;
23-
this.index_jsRegExp = /\/index.js!/g;
23+
this.index_jsRegExp = /\/index.js(!|\?|\(query\))/g;
2424
}
2525
module.exports = RequestShortener;
2626

@@ -35,6 +35,6 @@ RequestShortener.prototype.shorten = function(request) {
3535
request = request.replace(this.buildinsRegExp, "!(webpack)");
3636
request = request.replace(/\\/g, "/");
3737
request = request.replace(this.node_modulesRegExp, "/~/");
38-
request = request.replace(this.index_jsRegExp, "!");
38+
request = request.replace(this.index_jsRegExp, "$1");
3939
return request.replace(/^!|!$/, "");
4040
};

lib/SourceMapDevToolPlugin.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,22 @@ SourceMapDevToolPlugin.prototype.apply = function(compiler) {
2323
var asset = this.assets[file];
2424
var sourceMap = asset.map();
2525
if(sourceMap) {
26-
sourceMap.sources = sourceMap.sources.map(function(source) {
26+
for(var i = 0; i < sourceMap.sources.length; i++) {
27+
var source = sourceMap.sources[i];
2728
var str;
2829
var module = compilation.findModule(source);
2930
if(module)
3031
str = module.readableIdentifier(requestShortener);
3132
else
3233
str = requestShortener.shorten(source);
3334
while(str.indexOf("?") >= 0 && str.indexOf("?") < str.lastIndexOf("!"))
34-
str = str.replace(/\?/, "(query)")
35-
return str;
36-
});
35+
str = str.replace(/\?/, "(query)");
36+
var idx;
37+
while((idx = sourceMap.sources.indexOf(str) >= 0) && (idx < i)) {
38+
str += "*";
39+
}
40+
sourceMap.sources[i] = str;
41+
}
3742
sourceMap.sourceRoot = "webpack-module://";
3843
if(sourceMapFilename) {
3944
var sourceMapFile = sourceMapFilename

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "webpack",
3-
"version": "0.10.0-beta4",
3+
"version": "0.10.0-beta5",
44
"author": "Tobias Koppers @sokra",
55
"description": "Packs CommonJs/AMD/Labeled Modules for the browser. Allows to split your codebase into multiple bundles, which can be loaded on demand. Support loaders to preprocess files, i.e. json, jade, coffee, css, less, ... and your custom stuff.",
66
"dependencies": {

test/browsertest/lib/index.web.js

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
// Should not break it... should not include complete directory...
2-
require = require("enhanced-require")(module);
3-
if(typeof define != "function") var define = require.define;
1+
// Should not break it...
2+
if(typeof require !== "function")
3+
var require = require("amdrequire");
4+
if(typeof define != "function")
5+
var define = require("amdefine");
46

57
function test(cond, message) {
68
if(!cond) throw new Error(message);
@@ -149,6 +151,12 @@ describe("main", function() {
149151
var require = 123;
150152
require.should.be.eql(123);
151153
}());
154+
(function() {
155+
function require() {
156+
return 123;
157+
};
158+
require("error").should.be.eql(123);
159+
}());
152160
(function() {
153161
var module = 1233;
154162
module.should.be.eql(1233);

0 commit comments

Comments
 (0)