avalon2
Version:
an elegant efficient express mvvm framework
244 lines (243 loc) • 8.19 kB
HTML
<html lang="en">
<head>
<title>Code coverage report for dom/shim/fixClone.js</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../../prettify.css" />
<link rel="stylesheet" href="../../base.css" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(../../sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1>
<a href="../../index.html">all files</a> / <a href="index.html">dom/shim/</a> fixClone.js
</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>32/32</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>28/28</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>3/3</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>32/32</span>
</div>
<div class='fl pad1y'>
<span class="strong">11 statements, 13 branches</span>
<span class="quiet">Ignored</span>
</div>
</div>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet">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</td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">52×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">52×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">52×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">52×</span>
<span class="cline-any cline-yes">4×</span>
<span class="cline-any cline-yes">4×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">48×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">48×</span>
<span class="cline-any cline-yes">4×</span>
<span class="cline-any cline-yes">44×</span>
<span class="cline-any cline-yes">12×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">8×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">4×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">4×</span>
<span class="cline-any cline-yes">4×</span>
<span class="cline-any cline-yes">4×</span>
<span class="cline-any cline-yes">52×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">4×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import {rcheckedType} from '../rcheckedType'
/* istanbul ignore next */
function fixElement(dest, src) {
<span class="skip-if-branch" title="if path not taken" >I</span>if (dest.nodeType !== 1) {
<span class="cstat-skip" title="statement not covered" > return</span>
}
var nodeName = dest.nodeName.toLowerCase()
<span class="skip-if-branch" title="if path not taken" >I</span>if ( nodeName === "script" ) {
<span class="cstat-skip" title="statement not covered" > if( dest.text !== src.text){</span>
<span class="cstat-skip" title="statement not covered" > dest.type = "noexec"</span>
<span class="cstat-skip" title="statement not covered" > dest.text = src.text;</span>
<span class="cstat-skip" title="statement not covered" > dest.type = src.type || ""</span>
}
}else if (nodeName === 'object') {
var params = src.childNodes
<span class="skip-if-branch" title="if path not taken" >I</span>if (dest.childNodes.length !== params.length) {
<span class="cstat-skip" title="statement not covered" > avalon.clearHTML(dest)</span>
<span class="cstat-skip" title="statement not covered" > for(var i = 0, el ; el = params[i++]; ) {</span>
<span class="cstat-skip" title="statement not covered" > dest.appendChild(el.cloneNode(true))</span>
}
}
} else <span class="skip-if-branch" title="if path not taken" >I</span>if (nodeName === 'input' && rcheckedType.test(src.nodeName)) {
<span class="cstat-skip" title="statement not covered" > dest.defaultChecked = dest.checked = src.checked</span>
<span class="cstat-skip" title="statement not covered" > if (dest.value !== src.value) {</span>
<span class="cstat-skip" title="statement not covered" > dest.value = src.value</span>
}
} else if (nodeName === 'option') {
dest.defaultSelected = dest.selected = src.defaultSelected
} else if (nodeName === 'input' || nodeName === 'textarea') {
dest.defaultValue = src.defaultValue
}
}
/* istanbul ignore next */
function getAll(context) {
return typeof context.getElementsByTagName !== 'undefined' ?
context.getElementsByTagName('*') :
<span class="branch-1 cbranch-skip" title="branch not covered" > typeof context.querySelectorAll !== 'undefined' ?</span>
context.querySelectorAll('*') : []
}
/* istanbul ignore next */
export function fixClone(src) {
var target = src.cloneNode(true)
//http://www.myexception.cn/web/665613.html
// target.expando = null
var t = getAll(target)
var s = getAll(src)
for(var i = 0; i < s.length; i++){
fixElement(t[i], s[i])
}
return target
}
</pre></td></tr>
</table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Dec 13 2016 18:10:11 GMT+0800 (CST)
</div>
</div>
<script src="../../prettify.js"></script>
<script>
window.onload = function () {
if (typeof prettyPrint === 'function') {
prettyPrint();
}
};
</script>
<script src="../../sorter.js"></script>
</body>
</html>