Merge pull request #1644 from rachel-fenichel/bugfix/1642

Serialize variable IDs in procedure definitions
This commit is contained in:
Rachel Fenichel
2018-02-20 14:20:52 -08:00
committed by GitHub

View File

@@ -132,9 +132,11 @@ Blockly.Blocks['procedures_defnoreturn'] = {
if (opt_paramIds) {
container.setAttribute('name', this.getFieldValue('NAME'));
}
for (var i = 0; i < this.arguments_.length; i++) {
for (var i = 0; i < this.argumentVarModels_.length; i++) {
var parameter = document.createElement('arg');
parameter.setAttribute('name', this.arguments_[i]);
var argModel = this.argumentVarModels_[i];
parameter.setAttribute('name', argModel.name);
parameter.setAttribute('varId', argModel.getId());
if (opt_paramIds && this.paramIds_) {
parameter.setAttribute('paramId', this.paramIds_[i]);
}
@@ -158,9 +160,10 @@ Blockly.Blocks['procedures_defnoreturn'] = {
for (var i = 0, childNode; childNode = xmlElement.childNodes[i]; i++) {
if (childNode.nodeName.toLowerCase() == 'arg') {
var varName = childNode.getAttribute('name');
var varId = childNode.getAttribute('varId');
this.arguments_.push(varName);
var variable = Blockly.Variables.getOrCreateVariablePackage(
this.workspace, null, varName, '');
this.workspace, varId, varName, '');
this.argumentVarModels_.push(variable);
}
}