Потому что планируется в этой песочнице выполнять полностью синхронный код. Хотя сам принцип действия воркеров асинхронен как я понял. Ещё непонятно, почему контексты воркера и функции запущенной через setTimeout отличаются:
onmessage=function(e){
console.log(this); // [object DedicatedWorkerGlobalScope]
for(var key in this){
console.log(key);
}
setTimeout(function(){
console.log(this); // [object global]
for(var key in this){
console.log(key);
}
},0);
}
Причём оба контекста, судя по их итерации, подобно window содержат список глобальных функций (setTimeout и прочие). Получается, воркер и порождённый им таймаут выполняются в двух различных глобальных контекстах?
Кстати, а как в node.js с воркерами? Я хотел бы код, совместимый с node.js в идеале.