code: function(varVal, varName, variablesMap){
      if(typeof variablesMap !== 'object' || !variablesMap){
        variablesMap = VAR_MAP;
      }
      if(variablesMap.hasOwnProperty(varName)){
        return variablesMap[varName];
      }
      if(varName.indexOf('.') !== -1){
        var spls = varName.split('.'), ln = spls.length, valFound = true;
        if(ln){
          var base = getVarVal(spls[0], spls[0], variablesMap), curVal;
          for(var j = 1; j < ln; j++){
            if(spls[j].length){
              if(typeof base === 'object'){
                curVal = (spls[j] === '$' && Array.isArray(base))
                  ? getVarVal(spls[j], spls[j], variablesMap) : spls[j];
                try {
                  base = base[curVal];
                } catch(er){
                  V_DEBUG(er);
                  valFound = false;
                }
              } else {
                valFound = false;
              }
            }
          }
          if(valFound){
            return base;
          }
        }
      }
      return variablesMap.hasOwnProperty(varName) ? variablesMap[varName] : varVal;
    }
docs: TODO : Need to handle the special scenario of having json keys with dots