According to MDN, throw is called with an expression (like throw "blah"). Recently I saw a usage of throw as a function: throw("blah"), and this worked fine.
My guess is that it's not actually being called as a function. Instead, it's processing ("blah") into the string blah and then calling throw with that string expression. Is that the case, or is there some fall-back for throw as a function?