diff --git a/core/generator.js b/core/generator.js index e9eb663ff..3c6a5c7e1 100644 --- a/core/generator.js +++ b/core/generator.js @@ -326,8 +326,8 @@ Blockly.Generator.prototype.FUNCTION_NAME_PLACEHOLDER_ = '{leCUI8hutHZI4480Dc}'; */ Blockly.Generator.prototype.provideFunction_ = function(desiredName, code) { if (!this.definitions_[desiredName]) { - var functionName = - this.variableDB_.getDistinctName(desiredName, this.NAME_TYPE); + var functionName = this.variableDB_.getDistinctName(desiredName, + Blockly.Procedures.NAME_TYPE); this.functionNames_[desiredName] = functionName; var codeText = code.join('\n').replace( this.FUNCTION_NAME_PLACEHOLDER_REGEXP_, functionName); diff --git a/generators/dart/math.js b/generators/dart/math.js index aae008a2c..2f7c8027a 100644 --- a/generators/dart/math.js +++ b/generators/dart/math.js @@ -317,7 +317,7 @@ Blockly.Dart['math_on_list'] = function(block) { // This operation exclude null and values that are not int or float: // math_mean([null,null,"aString",1,9]) == 5.0. var functionName = Blockly.Dart.provideFunction_( - 'math_average', + 'math_mean', [ 'num ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + '(List myList) {', ' // First filter list for numbers only.', diff --git a/generators/dart/procedures.js b/generators/dart/procedures.js index 4f1b9789e..0085c6bf6 100644 --- a/generators/dart/procedures.js +++ b/generators/dart/procedures.js @@ -57,7 +57,8 @@ Blockly.Dart['procedures_defreturn'] = function(block) { var code = returnType + ' ' + funcName + '(' + args.join(', ') + ') {\n' + branch + returnValue + '}'; code = Blockly.Dart.scrub_(block, code); - Blockly.Dart.definitions_[funcName] = code; + // Add % so as not to collide with helper functions in definitions list. + Blockly.Dart.definitions_['%' + funcName] = code; return null; }; diff --git a/generators/javascript/math.js b/generators/javascript/math.js index 17451a5b2..0a7d14621 100644 --- a/generators/javascript/math.js +++ b/generators/javascript/math.js @@ -251,7 +251,7 @@ Blockly.JavaScript['math_on_list'] = function(block) { code = 'Math.max.apply(null, ' + list + ')'; break; case 'AVERAGE': - // math_median([null,null,1,3]) == 2.0. + // mathMean([null,null,1,3]) == 2.0. var functionName = Blockly.JavaScript.provideFunction_( 'mathMean', [ 'function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + @@ -264,7 +264,7 @@ Blockly.JavaScript['math_on_list'] = function(block) { code = functionName + '(' + list + ')'; break; case 'MEDIAN': - // math_median([null,null,1,3]) == 2.0. + // mathMedian([null,null,1,3]) == 2.0. var functionName = Blockly.JavaScript.provideFunction_( 'mathMedian', [ 'function ' + Blockly.JavaScript.FUNCTION_NAME_PLACEHOLDER_ + diff --git a/generators/javascript/procedures.js b/generators/javascript/procedures.js index f2ca15ac1..04845f9bd 100644 --- a/generators/javascript/procedures.js +++ b/generators/javascript/procedures.js @@ -49,14 +49,15 @@ Blockly.JavaScript['procedures_defreturn'] = function(block) { returnValue = ' return ' + returnValue + ';\n'; } var args = []; - for (var x = 0; x < block.arguments_.length; x++) { - args[x] = Blockly.JavaScript.variableDB_.getName(block.arguments_[x], + for (var i = 0; i < block.arguments_.length; i++) { + args[i] = Blockly.JavaScript.variableDB_.getName(block.arguments_[i], Blockly.Variables.NAME_TYPE); } var code = 'function ' + funcName + '(' + args.join(', ') + ') {\n' + branch + returnValue + '}'; code = Blockly.JavaScript.scrub_(block, code); - Blockly.JavaScript.definitions_[funcName] = code; + // Add % so as not to collide with helper functions in definitions list. + Blockly.JavaScript.definitions_['%' + funcName] = code; return null; }; @@ -70,8 +71,8 @@ Blockly.JavaScript['procedures_callreturn'] = function(block) { var funcName = Blockly.JavaScript.variableDB_.getName( block.getFieldValue('NAME'), Blockly.Procedures.NAME_TYPE); var args = []; - for (var x = 0; x < block.arguments_.length; x++) { - args[x] = Blockly.JavaScript.valueToCode(block, 'ARG' + x, + for (var i = 0; i < block.arguments_.length; i++) { + args[i] = Blockly.JavaScript.valueToCode(block, 'ARG' + i, Blockly.JavaScript.ORDER_COMMA) || 'null'; } var code = funcName + '(' + args.join(', ') + ')'; @@ -83,8 +84,8 @@ Blockly.JavaScript['procedures_callnoreturn'] = function(block) { var funcName = Blockly.JavaScript.variableDB_.getName( block.getFieldValue('NAME'), Blockly.Procedures.NAME_TYPE); var args = []; - for (var x = 0; x < block.arguments_.length; x++) { - args[x] = Blockly.JavaScript.valueToCode(block, 'ARG' + x, + for (var i = 0; i < block.arguments_.length; i++) { + args[i] = Blockly.JavaScript.valueToCode(block, 'ARG' + i, Blockly.JavaScript.ORDER_COMMA) || 'null'; } var code = funcName + '(' + args.join(', ') + ');\n'; diff --git a/generators/lua/procedures.js b/generators/lua/procedures.js index e8a37c079..9bdcc416b 100644 --- a/generators/lua/procedures.js +++ b/generators/lua/procedures.js @@ -58,7 +58,8 @@ Blockly.Lua['procedures_defreturn'] = function(block) { var code = 'function ' + funcName + '(' + args.join(', ') + ')\n' + branch + returnValue + 'end\n'; code = Blockly.Lua.scrub_(block, code); - Blockly.Lua.definitions_[funcName] = code; + // Add % so as not to collide with helper functions in definitions list. + Blockly.Lua.definitions_['%' + funcName] = code; return null; }; diff --git a/generators/php/procedures.js b/generators/php/procedures.js index 75903e31c..1fd4cc872 100644 --- a/generators/php/procedures.js +++ b/generators/php/procedures.js @@ -70,7 +70,8 @@ Blockly.PHP['procedures_defreturn'] = function(block) { var code = 'function ' + funcName + '(' + args.join(', ') + ') {\n' + globals + branch + returnValue + '}'; code = Blockly.PHP.scrub_(block, code); - Blockly.PHP.definitions_[funcName] = code; + // Add % so as not to collide with helper functions in definitions list. + Blockly.PHP.definitions_['%' + funcName] = code; return null; }; diff --git a/generators/python/procedures.js b/generators/python/procedures.js index 6d11df8c2..daa7386aa 100644 --- a/generators/python/procedures.js +++ b/generators/python/procedures.js @@ -72,7 +72,8 @@ Blockly.Python['procedures_defreturn'] = function(block) { var code = 'def ' + funcName + '(' + args.join(', ') + '):\n' + globals + branch + returnValue; code = Blockly.Python.scrub_(block, code); - Blockly.Python.definitions_[funcName] = code; + // Add % so as not to collide with helper functions in definitions list. + Blockly.Python.definitions_['%' + funcName] = code; return null; };