Having to create a scriptable input stream for most input streams is a big pain point. I'd really love it if we didn't need to do that. C++ code is smart enough to have method overloading, so if it means having two Read methods, fine. (I'm not sure XPIDL will allow that, though.)
It's not scriptable becauase it uses nonscriptable types in its signature. This seems obvious enough that it doesn't need comments. xpidl doesn't allow "method overloading" at the moment.
(In reply to comment #1) > It's not scriptable becauase it uses nonscriptable types in its signature. You missed my point. Why does it use non-scriptable types? Can we rewrite the interface so it doesn't?
Because the current signature is efficient, and none of the scriptable types are especially efficient. We are not going to be rewriting nsIInputStream, the churn doesn't justify the benefit.