function Node(label, val, isLast) {
        var nodeType = utils.getType(val);
        
        if (nodeType in Node.CONSTRUCTORS) {
            return new Node.CONSTRUCTORS[nodeType](label, val, isLast);
        } else {
            throw new Error('Bad type: ' + utils.getClass(val));
        }
    }
The factory for creating nodes of defined type.

~~~ Node ~~~ is a structure element of an onject or an array
with own label (a key of an object or an index of an array)
and value of any json data type. The root object or array
is a node without label.
{...
[+] "label": value,
...}

Markup:
<li class="jsontree_node [jsontree_node_expanded]">
    <span class="jsontree_label-wrapper">
        <span class="jsontree_label">
            <span class="jsontree_expand-button" />
            "label"
        </span>
        :
    </span>
    <(div|span) class="jsontree_value jsontree_value_(object|array|boolean|null|number|string)">
        ...
    </(div|span)>
</li>

@param label {string} - key name
@param val {Object | Array | string | number | boolean | null} - a value of node
@param isLast {boolean} - true if node is last in list of siblings

@return {Node}