There is a discrepancy between the standard and the reference implementation regarding the burn and operatorBurn functions:
The current standard (https://github.com/ethereum/EIPs/blob/b41669ede219b9599a6a1c637e578b8a444ad6b1/EIPS/eip-777.md) says:
The data field of the tokensToSend hook MUST be empty.
But, the current reference implementation doesn't check (or enforce) the emptiness (of _holderData):
https://github.com/jacquesd/ERC777/blob/896d077eb4b1beb0fc2258f9d4dff4b60478a479/contracts/ERC777BaseToken.sol#L202