text: module.exports = function(grunt) {
  
  	grunt.initConfig({
  		'shell': {
  			'options': {
  				'stdout': true,
  				'stderr': true,
  				'failOnError': true
  			},
  			'cover': {
  				'command': 'istanbul cover --report "html" --verbose --dir "coverage" "tests/tests.js"'
  			},
  			'test-narwhal': {
  				'command': 'echo "Testing in Narwhal..."; export NARWHAL_OPTIMIZATION=-1; narwhal "tests/tests.js"'
  			},
  			'test-phantomjs': {
  				'command': 'echo "Testing in PhantomJS..."; phantomjs "tests/tests.js"'
  			},
  			'test-rhino': {
  				'command': 'echo "Testing in Rhino..."; rhino -opt -1 "tests.js"',
  				'options': {
  					'execOptions': {
  						'cwd': 'tests'
  					}
  				}
  			},
  			'test-ringo': {
  				'command': 'echo "Testing in Ringo..."; ringo -o -1 "tests/tests.js"'
  			},
  			'test-node': {
  				'command': 'echo "Testing in Node..."; node "tests/tests.js"'
  			},
  			'test-browser': {
  				'command': 'echo "Testing in a browser..."; open "tests/index.html"'
  			}
  		},
  		'template': {
  			'build-strip-combining-marks': {
  				'options': {
  					// Generate the regular expressions dynamically using Regenerate
  					'data': function() {
  						return require('./scripts/export-data.js');
  					}
  				},
  				'files': {
  					'strip-combining-marks.js': ['src/strip-combining-marks.js']
  				}
  			}
  		}
  	});
  
  	grunt.loadNpmTasks('grunt-template');
  	grunt.loadNpmTasks('grunt-shell');
  
  	grunt.registerTask('cover', 'shell:cover');
  	grunt.registerTask('ci', [
  		'shell:test-narwhal',
  		'shell:test-phantomjs',
  		'shell:test-rhino',
  		'shell:test-ringo',
  		'shell:test-node',
  	]);
  	grunt.registerTask('test', [
  		'ci',
  		'shell:test-browser'
  	]);
  
  	grunt.registerTask('default', [
  		'template',
  		'shell:test-node',
  		'cover'
  	]);
  
  };
  