anchor.diff:        fn = _emitNativeFunctionBody(node);
       } else {
         fn = _emitFunctionBody(node.element, node.parameters, node.body);
  -
  -      if (node.operatorKeyword != null &&
  -          node.name.name == '[]=' &&
  -          fn.params.isNotEmpty) {
  -        // []= methods need to return the value. We could also address this at
  -        // call sites, but it's cleaner to instead transform the operator method.
  -        fn = _alwaysReturnLastParameter(fn);
  -      }
  -
  -      fn = _makeGenericFunction(fn);
       }
   
       return annotate(
  
positive.code:   ///
    /// This is useful for indexed set methods, which otherwise would not have
    /// the right return value in JS.
    JS.Fun _alwaysReturnLastParameter(JS.Fun fn) {
      var body = fn.body;
      if (JS.Return.foundIn(fn)) {
        // If a return is inside body, transform `(params) { body }` to
        // `(params) { (() => { body })(); return value; }`.
        // TODO(jmesserly): we could instead generate the return differently,
        // and avoid the immediately invoked function.
        body = new JS.Call(new JS.ArrowFun([], fn.body), []).toStatement();
      }
      // Rewrite the function to include the return.
      return new JS.Fun(
          fn.params, new JS.Block([body, new JS.Return(fn.params.last)]),
          typeParams: fn.typeParams, returnType: fn.returnType)
        ..sourceInformation = fn.sourceInformation;
    }
  
    @override
  
negative.code:       fnBody = js.call('#._check(#)', [_emitType(method.returnType), fnBody]);
      }
  
      var fn = _makeGenericFunction(new JS.Fun(
          fnArgs, js.statement('{ return #; }', [fnBody]),
          typeParams: _emitTypeFormals(method.type.typeFormals)));
  
      // TODO(jmesserly): generic type arguments will get dropped.
      // We have a similar issue with `dgsend` helpers.
      return new JS.Method(
          _declareMemberName(method,
              useExtension: _extensionTypes.isNativeClass(type.element)),
          fn,
          isGetter: method is PropertyAccessorElement && method.isGetter,
          isSetter: method is PropertyAccessorElement && method.isSetter,
          isStatic: false);
  