Skip to content

Commit cc7bfe7

Browse files
committed
Fixes #924, some files only have carriage returns, no newlines
1 parent 268fa77 commit cc7bfe7

File tree

8 files changed

+75
-0
lines changed

8 files changed

+75
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ build/tests/lib/anonUmdInteriorModules/main-built.js
88
build/tests/lib/appDirSrcOverwrite/www-built
99
build/tests/lib/arrow/main-built.js
1010
build/tests/lib/bundlesConfig/built
11+
build/tests/lib/carriageReturn/built.js
1112
build/tests/lib/cjsTranslate/www-built
1213
build/tests/lib/closureExterns/built
1314
build/tests/lib/comments/built.js

build/jslib/transform.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,17 @@ function (esprima, parse, logger, lang) {
217217
//start.line is 1-based, not 0 based.
218218
lineIndex = loc.start.line - 1,
219219
line = contentLines[lineIndex];
220+
221+
if (!line) {
222+
//In rare cases, file contains just \r instead of \r\n, so
223+
//adjust the contentLines and try again.
224+
//https://github.com/requirejs/r.js/issues/924
225+
if (contents.indexOf('\r') !== -1) {
226+
contentLines = contents.split('\r');
227+
}
228+
line = contentLines[lineIndex];
229+
}
230+
220231
contentLines[lineIndex] = line.substring(0, startIndex) +
221232
contentInsertion +
222233
line.substring(startIndex,

build/tests/builds.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2853,4 +2853,22 @@ define(['build', 'env!env/file', 'env', 'lang'], function (build, file, env, lan
28532853
);
28542854
doh.run();
28552855

2856+
//Test build with file that has no newlines just carriage returns.
2857+
//See https://github.com/requirejs/r.js/issues/924
2858+
doh.register("carriageReturn",
2859+
[
2860+
function carriageReturn(t) {
2861+
file.deleteFile("lib/carriageReturn/built.js");
2862+
2863+
build(["lib/carriageReturn/build.js"]);
2864+
2865+
t.is(nol(c("lib/carriageReturn/expected.js")),
2866+
nol(c("lib/carriageReturn/built.js")));
2867+
require._buildReset();
2868+
}
2869+
2870+
]
2871+
);
2872+
doh.run();
2873+
28562874
});
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
({
2+
name: 'loginModule',
3+
out: 'built.js',
4+
optimize: 'none'
5+
})
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
define('modules/login/loginController',{
2+
name: 'loginController'
3+
});
4+
5+
6+
define('modules/login/loginService',{
7+
name: 'loginService'
8+
});
9+
10+
11+
/**
12+
* This is the loginModule.
13+
* The loginModule require {@link module:modules/login/loginController}, {@link module:modules/login/loginService}
14+
* It also requires the ui.require, ngMaterial and ngMessages libs.
15+
* @requires module:modules/login/loginController
16+
* @requires module:modules/login/loginService
17+
* @requires module:ui.require
18+
* @requires module:ngMaterial
19+
* @requires module:ngMessages
20+
* @requires module:ngStorage
21+
*/
22+
define('loginModule',['modules/login/loginController',
23+
'modules/login/loginService'],
24+
function (loginController,
25+
loginService) {
26+
var loginModule = angular.module('loginModule', ['ui.router', 'ngMaterial', 'ngMessages', 'ngStorage']);
27+
loginModule.controller('loginController', loginController);
28+
loginModule.service('loginService', loginService);
29+
return loginModule;
30+
});
31+

build/tests/lib/carriageReturn/loginModule.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
define({
2+
name: 'loginController'
3+
});
4+
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
define({
2+
name: 'loginService'
3+
});
4+

0 commit comments

Comments
 (0)