diff --git a/src/backend/function-node-base.js b/src/backend/function-node-base.js index 4d9e38cf..59a2ca4a 100644 --- a/src/backend/function-node-base.js +++ b/src/backend/function-node-base.js @@ -250,7 +250,8 @@ module.exports = class BaseFunctionNode { getParamType(paramName) { const paramIndex = this.paramNames.indexOf(paramName); - if (this.parent === null) return null; + if (paramIndex === -1) return null; + if (!this.parent) return null; if (this.paramTypes[paramIndex]) return this.paramTypes[paramIndex]; const calledFunctionArguments = this.parent.calledFunctionsArguments[this.functionName]; for (let i = 0; i < calledFunctionArguments.length; i++) { @@ -262,6 +263,20 @@ module.exports = class BaseFunctionNode { return null; } + getUserParamName(paramName) { + const paramIndex = this.paramNames.indexOf(paramName); + if (paramIndex === -1) return null; + if (!this.parent) return null; + const calledFunctionArguments = this.parent.calledFunctionsArguments[this.functionName]; + for (let i = 0; i < calledFunctionArguments.length; i++) { + const calledFunctionArgument = calledFunctionArguments[i]; + if (calledFunctionArgument[paramIndex] !== null) { + return calledFunctionArgument[paramIndex].name; + } + } + return null; + } + generate(options) { throw new Error('generate not defined on BaseFunctionNode'); } diff --git a/src/backend/web-gl/function-node.js b/src/backend/web-gl/function-node.js index 7ebde3a1..b57d3c63 100644 --- a/src/backend/web-gl/function-node.js +++ b/src/backend/web-gl/function-node.js @@ -400,7 +400,12 @@ module.exports = class WebGLFunctionNode extends FunctionNodeBase { if (this.constants && this.constants.hasOwnProperty(idtNode.name)) { retArr.push('constants_' + idtNode.name); } else { - retArr.push('user_' + idtNode.name); + const userParamName = funcParam.getUserParamName(idtNode.name); + if (userParamName !== null) { + retArr.push('user_' + userParamName); + } else { + retArr.push('user_' + idtNode.name); + } } } diff --git a/test/html/issues/96-param-names.html b/test/html/issues/96-param-names.html new file mode 100644 index 00000000..0554f0a7 --- /dev/null +++ b/test/html/issues/96-param-names.html @@ -0,0 +1,17 @@ + + +
+ +