anchor.diff:      // the object literal directly. For other engines we have to create a new
       // object and copy over the members.
   
  +    String reflectableField = namer.reflectableField;
       List<jsAst.Node> statements = [
         js('var pendingClasses = {}'),
         js.if_('!init.allClasses', js('init.allClasses = {}')),
         js('var allClasses = init.allClasses'),
   
         js('var hasOwnProperty = Object.prototype.hasOwnProperty'),
  +      js('var combinedConstructorFunction = '
  +         '"function \$reflectable(fn){fn.$reflectableField=1;return fn};\\n"'
  +         '+ "var \$desc;\\n"'),
  +      js('var constructorsList = []'),
   
         optional(
             DEBUG_FAST_OBJECTS,
  
positive.code:           js('var args = (getterCode & 2) ? "$receiverParamName" : ""'),
            js('var receiver = (getterCode & 1) ? "this" : "$receiverParamName"'),
            js('var body = "return " + receiver + "." + field'),
            js('prototype["${namer.getterPrefix}" + accessorName] = '
                   'new Function(args, body)'),
            js.if_('reflectable', [
                   js('prototype["${namer.getterPrefix}" + accessorName].'
                      '$reflectableField = 1')])
          ]),
  
          // if (needsSetter) {
  
negative.code:             ]),
            ])),
  
            js('combinedConstructorFunction += defineClass(name, cls, fields)'),
            js('constructorsList.push(cls)'),
            js.if_('supr', js('pendingClasses[cls] = supr'))
          ])
        ]),
        js('combinedConstructorFunction +='
           ' "return [\\n  " + constructorsList.join(",\\n  ") + "\\n]"'),
        js('var constructors ='
           ' new Function("\$collectedClasses", combinedConstructorFunction)'
           '(collectedClasses)'),
        js('combinedConstructorFunction = null'),
        js.for_('var i = 0', 'i < constructors.length', 'i++', [
          js('var constructor = constructors[i]'),
          js('var cls = constructor.name'),
          js('var desc = collectedClasses[cls]'),
          js('var globalObject = isolateProperties'),
          js.if_('desc instanceof Array', [
              js('globalObject = desc[0] || isolateProperties'),
              js('desc = desc[1]')
          ]),
          optional(backend.isTreeShakingDisabled,
                   js('constructor["${namer.metadataField}"] = desc')),
          js('allClasses[cls] = constructor'),
          js('globalObject[cls] = constructor'),
        ]),
        js('constructors = null'),
  
        js('var finishedClasses = {}'),
  
  