code: function validateDeps(node) {
          var newDeps = ['array', []],
              arrayArgs, i, dep;
  
          if (!node) {
              return null;
          }
  
          if (isObjectLiteral(node) || node[0] === 'function') {
              return node;
          }
  
          //Dependencies can be an object literal or an array.
          if (!isArrayLiteral(node)) {
              return null;
          }
  
          arrayArgs = node[1];
  
          for (i = 0; i < arrayArgs.length; i++) {
              dep = arrayArgs[i];
              if (dep[0] === 'string') {
                  newDeps[1].push(dep);
              }
          }
          return newDeps[1].length ? newDeps : null;
      }
docs: Validates a node as being an object literal (like for i18n bundles)
  or an array literal with just string members. If an array literal,
  only return array members that are full strings. So the caller of
  this function should use the return value as the new value for the
  node.
  
  This function does not need to worry about comments, they are not
  present in this AST.
  
  @param {Node} node an AST node.
  
  @returns {Node} an AST node to use for the valid dependencies.
  If null is returned, then it means the input node was not a valid
  dependency.