mirror of
https://github.com/google/blockly.git
synced 2026-01-08 17:40:09 +01:00
Prevent collisions between user functions and helper functions.
This commit is contained in:
@@ -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_ +
|
||||
|
||||
@@ -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';
|
||||
|
||||
Reference in New Issue
Block a user