anchor.diff:                '  : "$valueParamName"'),
             js('var receiver = (setterCode & 1) ? "this" : "$receiverParamName"'),
             js('var body = receiver + "." + field + "$_=$_$valueParamName"'),
  -          js('prototype["${namer.setterPrefix}" + accessorName] = '
  -                 'new Function(args, body)'),
  -          js.if_('reflectable', [
  -                 js('prototype["${namer.setterPrefix}" + accessorName].'
  -                    '$reflectableField = 1')])
  +          js('var property ='
  +             ' cls + ".prototype.${namer.setterPrefix}" + accessorName + "="'),
  +          js('var fn = "function(" + args + "){" + body + "}"'),
  +          js.if_(
  +              'reflectable',
  +              js('accessors.push(property + "\$reflectable(" + fn + ");\\n")'),
  +              js('accessors.push(property + fn + ";\\n")')),
           ]),
   
         ]),
  
positive.code:     //  },
      // });
  
      var defineClass = js.fun(['name', 'cls', 'fields', 'prototype'], [
        js('var constructor'),
  
        js.if_(js('typeof fields == "function"'), [
          js('constructor = fields')
        ], /* else */ [
          js('var str = "function " + cls + "("'),
          js('var body = ""'),
  
          js.for_('var i = 0', 'i < fields.length', 'i++', [
            js.if_('i != 0', js('str += ", "')),
  
            js('var field = generateAccessor(fields[i], prototype)'),
            js('var parameter = "parameter_" + field'),
            js('str += parameter'),
            js('body += ("this." + field + " = " + parameter + ";\\n")')
          ]),
  
          js('str += (") {" + body + "}\\nreturn " + cls)'),
  
          js('constructor = new Function(str)()')
        ]),
  
        js('constructor.prototype = prototype'),
        js(r'constructor.builtin$cls = name'),
  
        js.return_('constructor')
      ]);
      // Declare a function called "generateAccessor".  This is used in
      // defineClassFunction (it's a local declaration in init()).
  
negative.code:     // 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,
  