code: function i18nInterpolation3(instructions, v0, v1, v2) {
      var different = bindingUpdated2(v0, v1);
      different = bindingUpdated(v2) || different;
      if (!different) {
          return NO_CHANGE;
      }
      var res = '';
      for (var i = 0; i < instructions.length; i++) {
          // Odd indexes are bindings
          if (i & 1) {
              // Extract bits
              var idx = instructions[i];
              var b2 = idx & 2;
              var b1 = idx & 1;
              // Get the value from the argument vx where x = idx
              var value = b2 ? v2 : (b1 ? v1 : v0);
              res += stringify$1(value);
          }
          else {
              res += instructions[i];
          }
      }
      return res;
  }
docs: Checks if the values of up to 3 expressions have changed and replaces them by their values in a
  translation, or returns NO_CHANGE.
  
  @param instructions A list of instructions that will be used to translate an attribute.
  @param v0 value checked for change.
  @param v1 value checked for change.
  @param v2 value checked for change.
  
  @returns The concatenated string when any of the arguments changes, `NO_CHANGE` otherwise.