all files / src/vdom/ index.js

96.55% Statements 28/29
87.5% Branches 14/16
100% Functions 3/3
100% Lines 25/25
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64    11× 11× 11× 11×   11×   11×   11×               20857× 20857× 20857×   20855× 20854×         42849× 42849×                             62×   62×   62× 62×         62×    
'use strict';
 
exports.__esModule = true;
exports.isSameNodeType = isSameNodeType;
exports.isNamedNode = isNamedNode;
exports.getNodeProps = getNodeProps;
 
var _util = require('../util');
 
var _functionalComponent = require('./functional-component');
 
var _dom = require('../dom');
 
/** Check if two nodes are equivalent.
 *	@param {Element} node
 *	@param {VNode} vnode
 *	@private
 */
 
function isSameNodeType(node, vnode) {
	Iif (_functionalComponent.isFunctionalComponent(vnode)) return true;
	var nodeName = vnode.nodeName;
	if (_util.isFunction(nodeName)) return node._componentConstructor === nodeName;
	// if (getNodeType(node)===3) return isString(vnode);
	if (_util.isString(vnode)) return _dom.getNodeType(node) === 3;
	return isNamedNode(node, nodeName);
}
 
function isNamedNode(node, nodeName) {
	// let name = node.normalizedNodeName || node.nodeName;
	// if (name!==undefined) {
	Eif (typeof node.nodeName !== undefined) {
		return node.nodeName.toUpperCase() === nodeName.toUpperCase();
	}
	// try {
	//	return node.nodeName===nodeName.toUpperCase();
	// } catch (err) {}
}
 
/**
 * Reconstruct Component-style `props` from a VNode.
 * Ensures default/fallback values from `defaultProps`:
 * Own-properties of `defaultProps` not present in `vnode.attributes` are added.
 * @param {VNode} vnode
 * @returns {Object} props
 */
 
function getNodeProps(vnode) {
	var props = _util.clone(vnode.attributes),
	    c = vnode.children;
	if (c) props.children = c;
 
	var defaultProps = vnode.nodeName.defaultProps;
	if (defaultProps) {
		for (var i in defaultProps) {
			if (_util.hasOwnProperty.call(defaultProps, i) && !(i in props)) {
				props[i] = defaultProps[i];
			}
		}
	}
 
	return props;
}