Functionality difference between go-debug.js/go.js

I’ve been developing a project using v1.3.0 go-debug.js
when i upgraded to v1.3.8 go-debug.js everything worked as in v1.3.0

however when switching to go.js (v1.3.0 & v1.3.8) some issues cropped up.

the issues are w/ expanding/collapsing the nodes w/in the tree and using the expand tree button

what could cause this, are there differences between the go and go-debug that would cause this behavior?

below is my expander button code:
$(“TreeExpanderButton”, {
alignment: go.Spot.Bottom, alignmentFocus: go.Spot.Top,
click: function(e,obj){
var node = obj.part;
if (node === null) return;
e.handled = true;
var data =;
var model = myDiagram.model;
if(data.everExpanded == false){
model.setDataProperty(data, “everExpanded”, true);
var children = node.findTreeChildrenNodes;
if(children.count === 0){
obj.visible = false;
model.setDataProperty(data, “everExpanded”, false);
node.isTreeExpanded = !node.isTreeExpanded;
}//end function

What are the issues? Are there any error or warning messages in the console, with any of the libraries?

there are no console error/warning messages.
the expander button does not work when switching to go.js

Oh, there’s a bug in your code. It should be:
var children = node.findTreeChildrenNodes();
since that’s a method, not a property.

But that wouldn’t explain why it worked before.

even w/ changing the code to a method, i still experienced the errors.

what solved the problem was changing the way the booleans w/in the JSON was handled.

previously i had something like: “booleanKey”:“true”, …

i changed the json to handle the boolean values as: “booleanKey”:true, … if it had a true/false value, if not it created as: “booleanKey”:""

i’m not sure why it worked using the go-debug.js and not the go.js

is there something in the way the go.js handles errors/warnings/boolean values that the go-debug.js allows to work and the go.js does not?

either way, it apears the problem i was experiencing has been fixed.

I don’t know where and how you were using “booleanKey”.

But if you were using it as a data binding source for a target such as Node.isTreeExpanded, and if the value were a string instead of a boolean, then only in debug mode would the Node.isTreeExpanded property setter do the type check and signal an error. In release mode it would just save the (string) value, and both the strings “true” and “false” would be treated as truthy. I can see how that would cause problems.