Blockly.Blocks['functional_first_class_function'] = {
init: function() {
this.appendStatementInput("FUNCTION")
.appendField("set")
.appendField(new Blockly.FieldVariable("item"), "VARIABLE")
.appendField("to the following function:");
this.appendDummyInput()
.appendField("return")
.appendField(new Blockly.FieldVariable("item"), "RETURN");
this.setInputsInline(true);
this.setColour(20);
this.setTooltip('');
}
};
Blockly.JavaScript['functional_first_class_function'] = function(block) {
var variable_variable = Blockly.JavaScript.variableDB_.getName(block.getFieldValue('VARIABLE'), Blockly.Variables.NAME_TYPE);
var statements_function = Blockly.JavaScript.statementToCode(block, 'FUNCTION');
var variable_return = Blockly.JavaScript.variableDB_.getName(block.getFieldValue('RETURN'), Blockly.Variables.NAME_TYPE);
// TODO: Assemble JavaScript into code variable.
var code = variable_variable+'= function(){\n+'+statements_function+' return'+variable_return+'\n}';
return code;
};