*Directed connections represent information flow
nodes = getChildren(currentNode);
// next block's code
getChildren(currentNode, function(children) {
{{= RETURN_VALUE.START }}children{{= RETURN_VALUE.END}}
});
getChildren(currentNode, function(children) {
nodes = children;
// next block's code
});
while (myConditional) {
// Executed while
// "myConditional" is true
}
// Executed once
// "myConditional" is false
var asyncLoop = function() {
if (myConditional) {
// Executed if "myConditional" is true
setTimeout(asyncLoop, 0);
} else {
// Executed once "myConditional" is false
// Subsequent blocks' code is hoisted here
}
};
function (core, currentNode, callback){
"use strict";
var names = [];
var name = null;
var node = null;
var queue = [];
getNode(currentNode, function(arg0_7){
getDescendents(arg0_7, function(arg1_6){
queue = arg1_6;
var fn_1 = function(){
var arg1 = Object.keys(queue);
var arg2 = arg1[0];
while(arg0_2[arg2] && arg1.length){
arg2 = arg1.pop();
}
if (!arg0_2[arg2]){
arg0_2[arg2] = true;
node = queue[arg2];
getNode(node, function(arg0_4){
name = core.getAttribute(arg0_4, "name");
if (names.indexOf(name) !== -1){
violationInfo = {
hasViolation: true,
message: "duplicate names!",
nodes: null
};
}
if(getDimension(names) === getDimension(name)){
names = names.concat(name);
} else {
names.push(name);
}
setTimeout(fn_1, 0);
});
} else {
callback(err, violationInfo);
}
};
var arg0_2 = {};
fn_1();
});
});
}