         _worker.onerror = function(e) { this.error(e); };
         _worker.send = function(m) { this.postMessage(m); };
 
+        // _worker.terminate is built-in
+
         if (typeof _submoduleLoadPath === "string") {
           _worker.postMessage({_submoduleLoadPath: _submoduleLoadPath});
         }

        _process._send = _process.send;
        _process.send = function(m) { this._send(m); };
        _process.error = function(e) {};
        _process._send({'_submodule_start':(#{@submoduleExpression.compile o}).name})
        _process.on('message', function(m) { if (typeof m === "object" && typeof m._workerId === "number") { return; } _process.receive(m); });
        return _process;
      })()

      var moduleSelf = { name: \"#{@name}\", loadPath: "" };
      moduleSelf.receive = function(m) {};
      moduleSelf.reply = function(m) { postMessage(m); };
      moduleSelf.close = function() { close(); };
      this.onmessage = function(e) {
        if (typeof e.data === "object" && typeof e.data._submoduleLoadPath == "string") {
          moduleSelf.loadPath = e.data._submoduleLoadPath;
