From 487b703521e63188102c73e8ce6ce203d28f260b Mon Sep 17 00:00:00 2001 From: Richard Gibson Date: Wed, 23 Jan 2013 17:42:28 -0500 Subject: [PATCH] Fix #13274: Wrap sourceMap directive in multiline comments. Close gh-1143. (cherry picked from commit ac93559eb9f18fcaec95dfdc97358b1b85bfe234) --- Gruntfile.js | 15 +++++++++++++-- test/data/core/cc_on.html | 22 ++++++++++++++++++++++ test/unit/core.js | 7 +++++++ 3 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 test/data/core/cc_on.html diff --git a/Gruntfile.js b/Gruntfile.js index b626f9e0c..f88eaeff6 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -409,7 +409,7 @@ module.exports = function( grunt ) { nonascii = false; distpaths.forEach(function( filename ) { - var i, c, + var i, c, map, text = fs.readFileSync( filename, "utf8" ); // Ensure files use only \n for line endings, not \r\n @@ -438,7 +438,18 @@ module.exports = function( grunt ) { text = text.replace( /"dist\//g, "\"" ); fs.writeFileSync( filename, text, "utf-8" ); } else if ( /\.min\.js$/.test( filename ) ) { - text = text.replace( /sourceMappingURL=dist\//, "sourceMappingURL=" ); + // Wrap sourceMap directive in multiline comments (#13274) + text = text.replace( /\n?(\/\/@\s*sourceMappingURL=)(.*)/, + function( _, directive, path ) { + map = "\n" + directive + path.replace( /^dist\//, "" ); + return ""; + }); + if ( map ) { + text = text.replace( /(^\/\*[\w\W]*?)\s*\*\/|$/, + function( _, comment ) { + return ( comment || "\n/*" ) + map + "\n*/"; + }); + } fs.writeFileSync( filename, text, "utf-8" ); } diff --git a/test/data/core/cc_on.html b/test/data/core/cc_on.html new file mode 100644 index 000000000..88bb01029 --- /dev/null +++ b/test/data/core/cc_on.html @@ -0,0 +1,22 @@ + + + + + + + + + + + diff --git a/test/unit/core.js b/test/unit/core.js index ed638eb1e..5e4d00a85 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -17,6 +17,13 @@ test("Basic requirements", function() { ok( $, "$" ); }); +testIframeWithCallback( "Conditional compilation compatibility (#13274)", "core/cc_on.html", function( cc_on, errors, $ ) { + expect( 3 ); + ok( true, "JScript conditional compilation " + ( cc_on ? "supported" : "not supported" ) ); + deepEqual( errors, [], "No errors" ); + ok( $(), "jQuery executes" ); +}); + test("jQuery()", function() { var elem, i, -- 2.39.5