When we have a parent class with only boolean attributes defined, the define method will concat boolean and observed attributes.
This means that when we extend the parent class without overriding any boolean or observed attributes, the new class will contain equal values in the boolean and observed attribute arrays.
When the define method is called for a new class, it defines boolean attribute getters and then replaces it with normal observed attribute getters due to incorrect check of existing attribute getters in kebab-case.
The problem is that the define method checks the attribute in the prototype using its name in the kebab case, but defines a getter in the camel case.
This leads to the problem that a defined getter for a boolean attribute can be overridden by a normal getter for an observed attribute.
When we have a parent class with only boolean attributes defined, the define method will concat boolean and observed attributes. This means that when we extend the parent class without overriding any boolean or observed attributes, the new class will contain equal values in the boolean and observed attribute arrays.
When the define method is called for a new class, it defines boolean attribute getters and then replaces it with normal observed attribute getters due to incorrect check of existing attribute getters in kebab-case.
The problem is that the define method checks the attribute in the prototype using its name in the kebab case, but defines a getter in the camel case. This leads to the problem that a defined getter for a boolean attribute can be overridden by a normal getter for an observed attribute.
Closes #75