Build: Add a comment explaining why the es3 option is needed

It might not be obvious to everyone that IE 9 & Android 4.0 are not
ES5-compliant browsers (by a large margin) so it's better to add a support
comment. This requires slight changes in parsing the config file
as it's not a pure JSON anymore. JSHint understands such files without
problems.

(cherry-picked from 669cb16d76)

Closes gh-2520
This commit is contained in:
Michał Gołębiowski 2015-08-02 01:48:54 +02:00
parent b8b111e337
commit b988c0e45d
3 changed files with 10 additions and 2 deletions

View File

@ -4,12 +4,16 @@ module.exports = function( grunt ) {
function readOptionalJSON( filepath ) { function readOptionalJSON( filepath ) {
var data = {}; var data = {};
try { try {
data = grunt.file.readJSON( filepath ); data = JSON.parse( stripJSONComments(
fs.readFileSync( filepath, { encoding: "utf8" } )
) );
} catch ( e ) {} } catch ( e ) {}
return data; return data;
} }
var gzip = require( "gzip-js" ), var fs = require( "fs" ),
stripJSONComments = require( "strip-json-comments" ),
gzip = require( "gzip-js" ),
srcHintOptions = readOptionalJSON( "src/.jshintrc" ); srcHintOptions = readOptionalJSON( "src/.jshintrc" );
// The concatenated file won't pass onevar // The concatenated file won't pass onevar

View File

@ -45,6 +45,7 @@
"requirejs": "2.1.17", "requirejs": "2.1.17",
"sinon": "1.12.2", "sinon": "1.12.2",
"sizzle": "2.2.0", "sizzle": "2.2.0",
"strip-json-comments": "1.0.3",
"testswarm": "1.1.0" "testswarm": "1.1.0"
}, },
"scripts": { "scripts": {

View File

@ -12,6 +12,9 @@
"sub": true, "sub": true,
// Support: IE < 10, Android < 4.1
// The above browsers are failing a lot of tests in the ES5
// test suite at http://test262.ecmascript.org.
"es3": true, "es3": true,
"browser": true, "browser": true,
"wsh": true, "wsh": true,