I believe the intent was for undeclared arguments to cause a rejection of the call. At the very least the argument should not be passed through and the implementation should only see undefined. This latter behavior may make some upgrade path easier in the case of optional new arguments being added (the question remains of what the caller would expect the behavior to be if it provides the optional argument, but the receiving version cannot process it).
@erights @mhofman I’m closing this since my latest integration with Agoric SDK provided ample evidence that this has been addressed. Extra arguments now cause an exception.
Describe the bug
M.call()
does not check arguments not declared in the interface and lets them through.Steps to reproduce
Expected behavior
I believe the intent was for undeclared arguments to cause a rejection of the call. At the very least the argument should not be passed through and the implementation should only see
undefined
. This latter behavior may make some upgrade path easier in the case of optional new arguments being added (the question remains of what the caller would expect the behavior to be if it provides the optional argument, but the receiving version cannot process it).