anchor.diff:              paramName,
               _defaultParamValue(param),
             ]));
  +        } else if (param.kind == ParameterKind.POSITIONAL) {
  +          body.add(js.statement('if (# === void 0) # = #;',
  +              [jsParam, jsParam, _defaultParamValue(param)]));
           }
  -      } else if (param.kind == ParameterKind.POSITIONAL &&
  -          !options.destructureNamedParams) {
  -        body.add(js.statement('if (# === void 0) # = #;',
  -            [jsParam, jsParam, _defaultParamValue(param)]));
         }
   
         // TODO(jmesserly): various problems here, see:
  
positive.code:       for (var p in ctor.parameters.parameters) {
          var element = p.element;
          if (element is FieldFormalParameterElement) {
            fields[element.field] = _emitFormalParameter(p, allowType: false);
          }
        }
  
  
negative.code: 
      var body = <JS.Statement>[];
      for (var param in parameters.parameters) {
        var jsParam = visitSimpleIdentifier(param.identifier);
  
        if (!options.destructureNamedParams) {
          if (param.kind == ParameterKind.NAMED) {
            // Parameters will be passed using their real names, not the (possibly
            // renamed) local variable.
            var paramName = js.string(param.identifier.name, "'");
  