Test passes if "NaN" is returned by the worker.
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}
w = new Worker('worker-self.js');
w.onmessage = function(e){
    console.log(e.data);
    testRunner.notifyDone();
}
</script>
