web-threads
Version:
generic threads using web workers for the web
19 lines (16 loc) • 586 B
JavaScript
export default function() {
function getFunctionArguments(fn){
return fn.substring(fn.indexOf("(") + 1, fn.indexOf(")"))
}
function getFunctionContent(fn){
return fn.substring(fn.indexOf("{") + 1, fn.lastIndexOf("}"))
}
function worker(params){
var context = params.data[0].context
var fn = params.data[0].fn
var newFunc = new Function(getFunctionArguments(fn), getFunctionContent(fn))
postMessage([newFunc.apply(context, params.data[0].args), context])
}
self.onmessage = worker
return worker
}