[Flight] Tailor the warning for binary data with a toJSON (Node Buffer) (#36873)
A Node.js `Buffer` carries a `toJSON` method, so Flight serializes it through that method instead of as binary, and it is deserialized as a plain `{type: 'Buffer', data: [...]}` object rather than a `Buffer` or `Uint8Array`. The warning React emits in this case reads "Uint8Array objects are not supported", which is misleading on two counts: the value is actually a `Buffer`, reported as `Uint8Array` only because that is its `Object.prototype.toString` tag, and a real `Uint8Array` is in fact supported, since it has no `toJSON` and serializes as binary. This makes the message especially confusing when binary data such as a font is passed as a serialized value. The first commit adds a test that pins down the current behavior, capturing both the misleading warning and the deserialization to a plain `{type: 'Buffer', data: [...]}` object. The second commit replaces the warning, for values that are `ArrayBuffer.isView`, with one that names the actual cause and the fix: the data is serialized through `toJSON` instead of as binary, so a `Uint8Array` or `ArrayBuffer` should be passed to send binary data. The new branch only fires for a typed array that also carries a `toJSON`, which in practice is a Node `Buffer`; a plain `Uint8Array` or `ArrayBuffer` has no `toJSON`, never reaches this branch, and continues to serialize as binary.