Throw TypeError rather than SyntaxError

Thanks for @zcorpan review and comments as:

The algorithms in HTML are layered on top of WebIDL.
The input to the algorithms in HTML are IDL values.

https://html.spec.whatwg.org/multipage/browsers.html#window
 void postMessage(any message, DOMString targetOrigin, optional sequence<Transferable> transfer);

http://heycam.github.io/webidl/#es-operations
 Initialize S to the effective overload set for regular operations (if the operation is a regular operation)
 or for static operations (if the operation is a static operation) with identifier id on interface I and
 with argument count n.
 Let <operation, values> be the result of passing S and arg0..n−1 to the overload resolution algorithm.

http://heycam.github.io/webidl/#dfn-overload-resolution-algorithm
 When n = 0 or 1, step 4 throws TypeError.