anchor.diff:              emitStaticNonFinalFields(fragment.staticNonFinalFields),
          'operatorIsPrefix': js.string(namer.operatorIsPrefix),
          'callName': js.string(namer.callNameField),
  +       'argumentCount': js.string(namer.requiredParameterField),
  +       'defaultArgumentValues': js.string(namer.defaultValuesField),
          'eagerClasses': emitEagerClassInitializations(fragment.libraries),
          'invokeMain': fragment.invokeMain,
          'code': code};
  
positive.code:        'tearOff': buildTearOffCode(backend),
         'parseFunctionDescriptor':
             js.js.statement(parseFunctionDescriptorBoilerplate,
                 {'argCnt': js.string(namer.requiredParameterField),
                  'defArgValues': js.string(namer.defaultValuesField),
                  'callName': js.string(namer.callNameField)}),
  
         'cyclicThrow':
  
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];
  