Bash - How to pass arguments to a script that is read via standard input

I am trying execute a script from standard input and also pass arguments to it. Is there a way to do it?

Let's say that I have the following:

cat script.sh | bash

How would I pass the arguments to the script?

I do not want to do this:

bash script.sh arguments

Nor this:

./script.sh arguments

Solution 1:

On Linux,

cat script.sh | bash /dev/stdin arguments

seems to work.

Solution 2:

After @ccarton's comment:

cat script.sh | bash -s - arguments

It's more portable than @Michael Hoffman's solution.