code: function execTrigger(trigger) {
      if (!trigger) {
        return true;
      }
      // "trigger1[,trigger2]*"
      if (/^([\w-_]+)(,[\w-_]+)*$/.test(trigger)) {
        var a1 = String(getArgument('trigger')).split(',');
        var a2 = trigger.split(',');
        var flag = false;
        a1.every(function (item) {
          if (a2.indexOf(item) >= 0) {
            flag = true;
          }
          return !flag;
        });
        return flag;
      }
      // "@trigger === 'debug'"
      // "#variant === 'debug'"
      // ":environment === 'debug'"
      /*jslint evil: true */
      return new Function('return (' +
        trigger.replace(/(@|#|:)([\w-_]+)/g, function (all, flag, name) {
          if (flag === '@') {
            return JSON.stringify(getArgument(name));
          }
          else if (flag === ':') {
            return JSON.stringify(getEnvironment(name));
          }
          else {
            return JSON.stringify(getVariant(name));
          }
        }) +
        ')'
      )();
    }
docs: 执行触发器
  
  @param {string} trigger 触发器表达式
  @return {boolean} 返回触发器是否生效