diff --git a/lib/ReplaceSource.js b/lib/ReplaceSource.js index 86cf8e7..1a678d1 100644 --- a/lib/ReplaceSource.js +++ b/lib/ReplaceSource.js @@ -269,9 +269,8 @@ class ReplaceSource extends Source { } // Insert replacement content splitted into chunks by lines - const regexp = /[^\n]+\n?|\n/g; const { content, name } = repls[i]; - let match = regexp.exec(content); + let matches = splitIntoLines(content); let replacementNameIndex = nameIndex; if (sourceIndex >= 0 && name) { let globalIndex = nameMapping.get(name); @@ -282,8 +281,8 @@ class ReplaceSource extends Source { } replacementNameIndex = globalIndex; } - while (match !== null) { - const contentLine = match[0]; + for (let m = 0; m < matches.length; m++) { + const contentLine = matches[m]; onChunk( contentLine, line, @@ -300,8 +299,7 @@ class ReplaceSource extends Source { // Only the first chunk has name assigned replacementNameIndex = -1; - match = regexp.exec(content); - if (match === null && !contentLine.endsWith("\n")) { + if (m === matches.length - 1 && !contentLine.endsWith("\n")) { if (generatedColumnOffsetLine === line) { generatedColumnOffset += contentLine.length; } else { @@ -418,10 +416,9 @@ class ReplaceSource extends Source { // Insert remaining replacements content splitted into chunks by lines let line = generatedLine + generatedLineOffset; - const regexp = /[^\n]+\n?|\n/g; - let match = regexp.exec(remainer); - while (match !== null) { - const contentLine = match[0]; + let matches = splitIntoLines(remainer); + for (let m = 0; m < matches.length; m++) { + const contentLine = matches[m]; onChunk( contentLine, line, @@ -433,8 +430,7 @@ class ReplaceSource extends Source { -1 ); - match = regexp.exec(remainer); - if (match === null && !contentLine.endsWith("\n")) { + if (m === matches.length - 1 && !contentLine.endsWith("\n")) { if (generatedColumnOffsetLine === line) { generatedColumnOffset += contentLine.length; } else { diff --git a/package.json b/package.json index 75351e3..33ae44c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "webpack-sources", - "version": "3.2.2", + "version": "3.2.3", "description": "Source code handling classes for webpack", "main": "./lib/index.js", "scripts": {