It's a bug in the Blink & Webkit implementations. From the spec: "audioprocess events are only dispatched if the ScriptProcessorNode has at least one input or one output connected." It doesn't need both.
For now, just connect it to a zero-gain GainNode connected to the audiocontext.destination.