diff --git a/packages/node_modules/@node-red/nodes/core/function/10-function.js b/packages/node_modules/@node-red/nodes/core/function/10-function.js index a876ed741b..dbf3fed27d 100644 --- a/packages/node_modules/@node-red/nodes/core/function/10-function.js +++ b/packages/node_modules/@node-red/nodes/core/function/10-function.js @@ -268,7 +268,23 @@ module.exports = function(RED) { var iniScript = null; var iniOpt = null; if (node.ini && (node.ini !== "")) { - var iniText = "(async function () {\n"+node.ini +"\n})();"; + var iniText = ` + (async function(__send__) { + var node = { + id:__node__.id, + name:__node__.name, + log:__node__.log, + error:__node__.error, + warn:__node__.warn, + debug:__node__.debug, + trace:__node__.trace, + status:__node__.status, + send: function(msgs, cloneMsg) { + __node__.send(__send__, RED.util.generateId(), msgs, cloneMsg); + } + }; + `+ node.ini +` + })(send);`; iniOpt = createVMOpt(node, " setup"); iniScript = new vm.Script(iniText, iniOpt); } @@ -280,7 +296,9 @@ module.exports = function(RED) { } var promise = Promise.resolve(); if (iniScript) { + context.send = function(m) { node.send(m); }; promise = iniScript.runInContext(context, iniOpt); + delete context.send; } function processMessage(msg, send, done) {