Skip to content

Commit a0a11f2

Browse files
committed
Add 'islocal' flag to XML serialization for variables.
1 parent ed608ff commit a0a11f2

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

src/engine/variable.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,9 @@ class Variable {
3333
}
3434
}
3535

36-
toXML () {
37-
return `<variable type="${this.type}" id="${this.id}">${this.name}</variable>`;
36+
toXML (isLocal) {
37+
isLocal = (isLocal === true);
38+
return `<variable type="${this.type}" id="${this.id}" islocal="${isLocal}">${this.name}</variable>`;
3839
}
3940

4041
/**

src/virtual-machine.js

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1074,19 +1074,21 @@ class VirtualMachine extends EventEmitter {
10741074
const id = messageIds[i];
10751075
delete this.runtime.getTargetForStage().variables[id];
10761076
}
1077-
const variableMap = Object.assign({},
1078-
this.runtime.getTargetForStage().variables,
1079-
this.editingTarget.variables
1080-
);
1077+
const globalVarMap = Object.assign({}, this.runtime.getTargetForStage().variables);
1078+
const localVarMap = this.editingTarget.isStage ?
1079+
Object.create(null) :
1080+
Object.assign({}, this.editingTarget.variables);
10811081

1082-
const variables = Object.keys(variableMap).map(k => variableMap[k]);
1082+
const globalVariables = Object.keys(globalVarMap).map(k => globalVarMap[k]);
1083+
const localVariables = Object.keys(localVarMap).map(k => localVarMap[k]);
10831084
const workspaceComments = Object.keys(this.editingTarget.comments)
10841085
.map(k => this.editingTarget.comments[k])
10851086
.filter(c => c.blockId === null);
10861087

10871088
const xmlString = `<xml xmlns="http://www.w3.org/1999/xhtml">
10881089
<variables>
1089-
${variables.map(v => v.toXML()).join()}
1090+
${globalVariables.map(v => v.toXML()).join()}
1091+
${localVariables.map(v => v.toXML(true)).join()}
10901092
</variables>
10911093
${workspaceComments.map(c => c.toXML()).join()}
10921094
${this.editingTarget.blocks.toXML(this.editingTarget.comments)}

0 commit comments

Comments
 (0)