anchor.diff:  })()''');
   
   checkAndCall(f, ftype, obj, args, name) => JS('', '''(() => {
  +  let originalFunction = $f;
     if (!($f instanceof Function)) {
       // We're not a function (and hence not a method either)
       // Grab the `call` method if it's not a function.
  
positive.code: 
    // TODO(leafp): throw a type error (rather than NSM)
    // if the arity matches but the types are wrong.
    $throwNoSuchMethodFunc($obj, $name, $args, $f);
  })()''');
  
  dcall(f, @rest args) => JS('', '''(() => {
  
negative.code:       $f = $f.call;
      }
      if (!($f instanceof Function)) {
        $throwNoSuchMethodFunc($obj, $name, $args, originalFunction);
      }
    }
    // If f is a function, but not a method (no method type)
  