aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Gibson <richard.gibson@gmail.com>2013-01-23 17:42:28 -0500
committerRichard Gibson <richard.gibson@gmail.com>2013-01-25 10:09:27 -0500
commit487b703521e63188102c73e8ce6ce203d28f260b (patch)
tree84a3480c35ce26b218ffb4b4d1f9978016bb211f
parentfb0f2952929fbe0e8a39da8c7865a397c7e74835 (diff)
downloadjquery-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.js15
-rw-r--r--test/data/core/cc_on.html22
-rw-r--r--test/unit/core.js7
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,