anchor.diff:        proto[tearOffName] =
             tearOff(funs, reflectionInfo, false, name, isIntercepted);
       }
  -    if (descriptor[pos] != null) {
  -      f[#argCnt] = descriptor[pos];
  -      f[#defArgValues] = descriptor[pos + 1];
  +    if (pos < descriptor.length) {
  +      f[#argumentCount] = descriptor[pos];
  +      f[#defaultArgumentValues] = descriptor[pos + 1];
       }
     } else {
       proto[name] = descriptor;
  
positive.code:           // functions, reflectionInfo, isStatic, name, isIntercepted.
            holder[descriptor[2]] = 
                tearOff(funs, descriptor[3], true, name, false);
          }
        }
  
  
negative.code:         fun[#callName] = descriptor[1];
          holder[name] = fun;
          funs = [fun];
          // We iterate in blocks of 3 but have to stop before we reach the
          // (optional) two trailing items. To accomplish this, we only iterate
          // until we reach length - 2.
          for (var pos = 4; pos < descriptor.length - 2; pos += 3) {
            var stubName = descriptor[pos];
            fun = compile(stubName, descriptor[pos + 2]);
            fun[#callName] = descriptor[pos + 1];
  