function next() {
      var description,
          firstTopic = topicChain[0];
      for (description in context) {
        if (description !== 'topic' && context.hasOwnProperty(description)) {
          (function (description) {
            var item = context[description],
                itemType = typeof item;

            // If the description is beforeEach, execute it as such
            if (description === 'beforeEach') {
              return beforeEach(item);
            } else if (description === 'afterEach') {
              return afterEach(item);
            }

            // If the item is an object, it is a sub-context
            if (itemType === 'object') {
              // Describe and recurse the sub-context
              describe(description, function () {
                parseContext(item, topicChain);
              });
            } else if (itemType === 'function') {
            // Otherwise, if it is a function, it is a vow
              // If the item is async, handle it as such
              if (item.SKELETON_ASYNC === true) {
                it(description, function (done) {
                  item.call({'callback': done}, firstTopic);
                });
              } else {
              // Otherwise, evaluate it normally
                it(description, function () {
                  item(firstTopic);
                });
              }
            }
            // Otherwise, it is a promise
              // Mocha does not support promises
          }(description));
        }
      }
    }
function next() {
      var description,
          firstTopic = topicChain[0];
      for (description in context) {
        if (description !== 'topic' && context.hasOwnProperty(description)) {
          (function (description) {
            var item = context[description],
                itemType = typeof item;

            
            if (description === 'beforeEach') {
              return beforeEach(item);
            } else if (description === 'afterEach') {
              return afterEach(item);
            }

            
            if (itemType === 'object') {
              
              describe(description, function () {
                parseContext(item, topicChain);
              });
            } else if (itemType === 'function') {
            
              
              if (item.SKELETON_ASYNC === true) {
                it(description, function (done) {
                  item.call({'callback': done}, firstTopic);
                });
              } else {
              
                it(description, function () {
                  item(firstTopic);
                });
              }
            }
            
              
          }(description));
        }
      }
    }
function next ( ) { var description , firstTopic = topicChain [ 0 ] ; for ( description in context ) { if ( description !== 'topic' && context . hasOwnProperty ( description ) ) { ( function ( description ) { var item = context [ description ] , itemType = typeof item ; // If the description is beforeEach, execute it as such if ( description === 'beforeEach' ) { return beforeEach ( item ) ; } else if ( description === 'afterEach' ) { return afterEach ( item ) ; } // If the item is an object, it is a sub-context if ( itemType === 'object' ) { // Describe and recurse the sub-context describe ( description , function ( ) { parseContext ( item , topicChain ) ; } ) ; } else if ( itemType === 'function' ) { // Otherwise, if it is a function, it is a vow // If the item is async, handle it as such if ( item . SKELETON_ASYNC === true ) { it ( description , function ( done ) { item . call ( { 'callback' : done } , firstTopic ) ; } ) ; } else { // Otherwise, evaluate it normally it ( description , function ( ) { item ( firstTopic ) ; } ) ; } } // Otherwise, it is a promise // Mocha does not support promises } ( description ) ) ; } } }
Loop through the descriptions (skipping topic)
Loop through the descriptions ( skipping topic )