1 var scout = (function () {
  2   var tests = { };
  3   return {
  4     addTest: function (moduleName, test) {
  5       tests[moduleName] = test;
  6     },
  7     fetch: function () {
  8       var modulesToFetch = [ ];
  9       for (var moduleName in tests) {
 10         if (tests[moduleName]()) {
 11           modulesToFetch.push(moduleName);
 12         }
 13       }
 14       return modulesToFetch.join(',');
 15     }
 16   };
 17 })();
 18 
 19 scout.addTest('json2', function () {
 20   return typeof JSON === 'undefined';
 21 });
 22 scout.addTest('indexOf', function () {
 23   return typeof Array.prototype.indexOf === 'undefined';
 24 });
 25 scout.addTest('forEach', function () {
 26   return typeof Array.prototype.forEach === 'undefined';
 27 });
 28 scout.addTest('map', function () {
 29   return typeof Array.prototype.map === 'undefined';
 30 });
 31 scout.addTest('every', function () {
 32   return typeof Array.prototype.every === 'undefined';
 33 });
 34 scout.addTest('some', function () {
 35   return typeof Array.prototype.some === 'undefined';
 36 });
 37 scout.addTest('filter', function () {
 38   return typeof Array.prototype.filter === 'undefined';
 39 });
 40 scout.addTest('reduce', function () {
 41   return typeof Array.prototype.reduce === 'undefined';
 42 });
 43 
 44 scout.fetch();