diff options
author | Richard Gibson <richard.gibson@gmail.com> | 2013-01-23 17:42:28 -0500 |
---|---|---|
committer | Richard Gibson <richard.gibson@gmail.com> | 2013-01-25 10:09:27 -0500 |
commit | 487b703521e63188102c73e8ce6ce203d28f260b (patch) | |
tree | 84a3480c35ce26b218ffb4b4d1f9978016bb211f | |
parent | fb0f2952929fbe0e8a39da8c7865a397c7e74835 (diff) | |
download | jquery-487b703521e63188102c73e8ce6ce203d28f260b.tar.gz jquery-487b703521e63188102c73e8ce6ce203d28f260b.zip |
Fix #13274: Wrap sourceMap directive in multiline comments. Close gh-1143.
(cherry picked from commit ac93559eb9f18fcaec95dfdc97358b1b85bfe234)
-rw-r--r-- | Gruntfile.js | 15 | ||||
-rw-r--r-- | test/data/core/cc_on.html | 22 | ||||
-rw-r--r-- | test/unit/core.js | 7 |
3 files changed, 42 insertions, 2 deletions
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 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> + <script> + var cc_on = false, + errors = []; +/*@cc_on + cc_on = true; +@*/ + window.onerror = function( errorMessage, filePath, lineNumber ) { + errors.push( errorMessage ); + }; + </script> + <script src="../../../dist/jquery.min.js"></script> +</head> +<body> + <script> + window.parent.iframeCallback( cc_on, errors, jQuery ); + </script> +</body> +</html> 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, |