From a587655a5aa82d4ac1b05d54b8c6bed8797377a8 Mon Sep 17 00:00:00 2001 From: Patrick Wozniak Date: Sun, 21 Jan 2024 01:00:02 +0100 Subject: [PATCH 1/4] adding pollyfill for vm.createScript adds support for bun.sh --- .../@node-red/nodes/core/function/10-function.js | 6 ++++++ 1 file changed, 6 insertions(+) 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 7f2250008..5ecda1102 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 @@ -22,6 +22,12 @@ module.exports = function(RED) { var acorn = require("acorn"); var acornWalk = require("acorn-walk"); + if (vm.createScript == null) { + vm.createScript = (code, scriptName) => { + return new vm.Script(code, { filename: scriptName }); + } + } + function sendResults(node,send,_msgid,msgs,cloneFirstMessage) { if (msgs == null) { return; From ec062d008f17d934ff9265c9cfa7dac29b56e25c Mon Sep 17 00:00:00 2001 From: Patrick Wozniak Date: Sun, 21 Jan 2024 01:13:00 +0100 Subject: [PATCH 2/4] replace vm.createScript in favor of vm.Script --- .../@node-red/nodes/core/function/10-function.js | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) 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 5ecda1102..cc06ab560 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 @@ -22,12 +22,6 @@ module.exports = function(RED) { var acorn = require("acorn"); var acornWalk = require("acorn-walk"); - if (vm.createScript == null) { - vm.createScript = (code, scriptName) => { - return new vm.Script(code, { filename: scriptName }); - } - } - function sendResults(node,send,_msgid,msgs,cloneFirstMessage) { if (msgs == null) { return; @@ -380,7 +374,7 @@ module.exports = function(RED) { iniOpt.breakOnSigint = true; } } - node.script = vm.createScript(functionText, createVMOpt(node, "")); + node.script = vm.Script(functionText, {filename: createVMOpt(node, "")}); if (node.fin && (node.fin !== "")) { var finText = `(function () { var node = { From f83174c40a74dfa94e07f83d5d309b9b28d8e786 Mon Sep 17 00:00:00 2001 From: Patrick Wozniak Date: Sun, 21 Jan 2024 01:23:07 +0100 Subject: [PATCH 3/4] fix use of vm.Script by adding new --- .../node_modules/@node-red/nodes/core/function/10-function.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 cc06ab560..bbc8d498e 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 @@ -374,7 +374,7 @@ module.exports = function(RED) { iniOpt.breakOnSigint = true; } } - node.script = vm.Script(functionText, {filename: createVMOpt(node, "")}); + node.script = new vm.Script(functionText, {filename: createVMOpt(node, "")}); if (node.fin && (node.fin !== "")) { var finText = `(function () { var node = { From 28907082f196fdc116f8dc1a13df3d84e56a5244 Mon Sep 17 00:00:00 2001 From: Patrick Wozniak Date: Sun, 21 Jan 2024 02:16:00 +0100 Subject: [PATCH 4/4] fix usage of vm.Script() --- .../node_modules/@node-red/nodes/core/function/10-function.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 bbc8d498e..f5de3d2a3 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 @@ -374,7 +374,7 @@ module.exports = function(RED) { iniOpt.breakOnSigint = true; } } - node.script = new vm.Script(functionText, {filename: createVMOpt(node, "")}); + node.script = new vm.Script(functionText, createVMOpt(node, "")); if (node.fin && (node.fin !== "")) { var finText = `(function () { var node = {