Gadget state does not get modified by `undefined`
Gadget does not take
undefined arguments as a change to context.
This makes using of default state almost boiler-plate free. Allows to
easily avoid unnecessary changes by having
undefined in default state.
For explicite zeroing the state attribute, one should use