Skip to content

Commit 9cf4ad8

Browse files
committed
after merge
latest majinbuu
1 parent 10a0886 commit 9cf4ad8

File tree

9 files changed

+1417
-91
lines changed

9 files changed

+1417
-91
lines changed

coverage/coverage.json

+1
Large diffs are not rendered by default.
+93
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<title>Code coverage report for hyperHTML/</title>
5+
<meta charset="utf-8" />
6+
<link rel="stylesheet" href="../prettify.css" />
7+
<link rel="stylesheet" href="../base.css" />
8+
<meta name="viewport" content="width=device-width, initial-scale=1">
9+
<style type='text/css'>
10+
.coverage-summary .sorter {
11+
background-image: url(../sort-arrow-sprite.png);
12+
}
13+
</style>
14+
</head>
15+
<body>
16+
<div class='wrapper'>
17+
<div class='pad1'>
18+
<h1>
19+
<a href="../index.html">all files</a> hyperHTML/
20+
</h1>
21+
<div class='clearfix'>
22+
<div class='fl pad1y space-right2'>
23+
<span class="strong">100% </span>
24+
<span class="quiet">Statements</span>
25+
<span class='fraction'>605/605</span>
26+
</div>
27+
<div class='fl pad1y space-right2'>
28+
<span class="strong">100% </span>
29+
<span class="quiet">Branches</span>
30+
<span class='fraction'>335/335</span>
31+
</div>
32+
<div class='fl pad1y space-right2'>
33+
<span class="strong">100% </span>
34+
<span class="quiet">Functions</span>
35+
<span class='fraction'>98/98</span>
36+
</div>
37+
<div class='fl pad1y space-right2'>
38+
<span class="strong">100% </span>
39+
<span class="quiet">Lines</span>
40+
<span class='fraction'>591/591</span>
41+
</div>
42+
</div>
43+
</div>
44+
<div class='status-line high'></div>
45+
<div class="pad1">
46+
<table class="coverage-summary">
47+
<thead>
48+
<tr>
49+
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
50+
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
51+
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
52+
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
53+
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
54+
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
55+
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
56+
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
57+
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
58+
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
59+
</tr>
60+
</thead>
61+
<tbody><tr>
62+
<td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
63+
<td data-value="100" class="pic high"><div class="chart"><div class="cover-fill cover-full" style="width: 100%;"></div><div class="cover-empty" style="width:0%;"></div></div></td>
64+
<td data-value="100" class="pct high">100%</td>
65+
<td data-value="605" class="abs high">605/605</td>
66+
<td data-value="100" class="pct high">100%</td>
67+
<td data-value="335" class="abs high">335/335</td>
68+
<td data-value="100" class="pct high">100%</td>
69+
<td data-value="98" class="abs high">98/98</td>
70+
<td data-value="100" class="pct high">100%</td>
71+
<td data-value="591" class="abs high">591/591</td>
72+
</tr>
73+
74+
</tbody>
75+
</table>
76+
</div><div class='push'></div><!-- for sticky footer -->
77+
</div><!-- /wrapper -->
78+
<div class='footer quiet pad2 space-top1 center small'>
79+
Code coverage
80+
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Thu Sep 07 2017 12:41:04 GMT+0100 (BST)
81+
</div>
82+
</div>
83+
<script src="../prettify.js"></script>
84+
<script>
85+
window.onload = function () {
86+
if (typeof prettyPrint === 'function') {
87+
prettyPrint();
88+
}
89+
};
90+
</script>
91+
<script src="../sorter.js"></script>
92+
</body>
93+
</html>

coverage/lcov-report/hyperHTML/index.js.html

+58-55
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,17 @@ <h1>
2727
<div class='fl pad1y space-right2'>
2828
<span class="strong">100% </span>
2929
<span class="quiet">Branches</span>
30-
<span class='fraction'>341/341</span>
30+
<span class='fraction'>335/335</span>
3131
</div>
3232
<div class='fl pad1y space-right2'>
3333
<span class="strong">100% </span>
3434
<span class="quiet">Functions</span>
35-
<span class='fraction'>97/97</span>
35+
<span class='fraction'>98/98</span>
3636
</div>
3737
<div class='fl pad1y space-right2'>
3838
<span class="strong">100% </span>
3939
<span class="quiet">Lines</span>
40-
<span class='fraction'>590/590</span>
40+
<span class='fraction'>591/591</span>
4141
</div>
4242
</div>
4343
</div>
@@ -1446,7 +1446,8 @@ <h1>
14461446
1401
14471447
1402
14481448
1403
1449-
1404</td><td class="line-coverage quiet"><span class="cline-any cline-yes"></span>
1449+
1404
1450+
1405</td><td class="line-coverage quiet"><span class="cline-any cline-yes"></span>
14501451
<span class="cline-any cline-neutral">&nbsp;</span>
14511452
<span class="cline-any cline-neutral">&nbsp;</span>
14521453
<span class="cline-any cline-neutral">&nbsp;</span>
@@ -1924,6 +1925,15 @@ <h1>
19241925
<span class="cline-any cline-neutral">&nbsp;</span>
19251926
<span class="cline-any cline-neutral">&nbsp;</span>
19261927
<span class="cline-any cline-neutral">&nbsp;</span>
1928+
<span class="cline-any cline-yes"></span>
1929+
<span class="cline-any cline-yes"></span>
1930+
<span class="cline-any cline-yes">206×</span>
1931+
<span class="cline-any cline-yes"></span>
1932+
<span class="cline-any cline-neutral">&nbsp;</span>
1933+
<span class="cline-any cline-neutral">&nbsp;</span>
1934+
<span class="cline-any cline-neutral">&nbsp;</span>
1935+
<span class="cline-any cline-neutral">&nbsp;</span>
1936+
<span class="cline-any cline-neutral">&nbsp;</span>
19271937
<span class="cline-any cline-neutral">&nbsp;</span>
19281938
<span class="cline-any cline-neutral">&nbsp;</span>
19291939
<span class="cline-any cline-yes"></span>
@@ -2201,16 +2211,13 @@ <h1>
22012211
<span class="cline-any cline-neutral">&nbsp;</span>
22022212
<span class="cline-any cline-neutral">&nbsp;</span>
22032213
<span class="cline-any cline-yes"></span>
2204-
<span class="cline-any cline-yes"></span>
2205-
<span class="cline-any cline-yes"></span>
22062214
<span class="cline-any cline-yes"></span>
22072215
<span class="cline-any cline-yes">206×</span>
22082216
<span class="cline-any cline-yes">206×</span>
22092217
<span class="cline-any cline-neutral">&nbsp;</span>
22102218
<span class="cline-any cline-neutral">&nbsp;</span>
22112219
<span class="cline-any cline-neutral">&nbsp;</span>
22122220
<span class="cline-any cline-neutral">&nbsp;</span>
2213-
<span class="cline-any cline-neutral">&nbsp;</span>
22142221
<span class="cline-any cline-yes"></span>
22152222
<span class="cline-any cline-neutral">&nbsp;</span>
22162223
<span class="cline-any cline-yes">69×</span>
@@ -2665,7 +2672,6 @@ <h1>
26652672
<span class="cline-any cline-neutral">&nbsp;</span>
26662673
<span class="cline-any cline-neutral">&nbsp;</span>
26672674
<span class="cline-any cline-neutral">&nbsp;</span>
2668-
<span class="cline-any cline-neutral">&nbsp;</span>
26692675
<span class="cline-any cline-yes"></span>
26702676
<span class="cline-any cline-yes">60×</span>
26712677
<span class="cline-any cline-neutral">&nbsp;</span>
@@ -2691,20 +2697,22 @@ <h1>
26912697
<span class="cline-any cline-neutral">&nbsp;</span>
26922698
<span class="cline-any cline-neutral">&nbsp;</span>
26932699
<span class="cline-any cline-neutral">&nbsp;</span>
2694-
<span class="cline-any cline-yes"></span>
2695-
<span class="cline-any cline-yes">104×</span>
2696-
<span class="cline-any cline-yes">104×</span>
2700+
<span class="cline-any cline-neutral">&nbsp;</span>
26972701
<span class="cline-any cline-neutral">&nbsp;</span>
26982702
<span class="cline-any cline-neutral">&nbsp;</span>
26992703
<span class="cline-any cline-yes"></span>
2704+
<span class="cline-any cline-yes">104×</span>
2705+
<span class="cline-any cline-yes">104×</span>
2706+
<span class="cline-any cline-yes">88×</span>
2707+
<span class="cline-any cline-yes">88×</span>
2708+
<span class="cline-any cline-yes">88×</span>
2709+
<span class="cline-any cline-yes">88×</span>
27002710
<span class="cline-any cline-neutral">&nbsp;</span>
2711+
<span class="cline-any cline-yes">104×</span>
27012712
<span class="cline-any cline-neutral">&nbsp;</span>
27022713
<span class="cline-any cline-neutral">&nbsp;</span>
2714+
<span class="cline-any cline-yes"></span>
27032715
<span class="cline-any cline-neutral">&nbsp;</span>
2704-
<span class="cline-any cline-yes"></span>
2705-
<span class="cline-any cline-yes">104×</span>
2706-
<span class="cline-any cline-yes">104×</span>
2707-
<span class="cline-any cline-yes">104×</span>
27082716
<span class="cline-any cline-neutral">&nbsp;</span>
27092717
<span class="cline-any cline-neutral">&nbsp;</span>
27102718
<span class="cline-any cline-neutral">&nbsp;</span>
@@ -2829,11 +2837,6 @@ <h1>
28292837
<span class="cline-any cline-neutral">&nbsp;</span>
28302838
<span class="cline-any cline-neutral">&nbsp;</span>
28312839
<span class="cline-any cline-neutral">&nbsp;</span>
2832-
<span class="cline-any cline-yes"></span>
2833-
<span class="cline-any cline-yes">88×</span>
2834-
<span class="cline-any cline-neutral">&nbsp;</span>
2835-
<span class="cline-any cline-neutral">&nbsp;</span>
2836-
<span class="cline-any cline-neutral">&nbsp;</span>
28372840
<span class="cline-any cline-neutral">&nbsp;</span>
28382841
<span class="cline-any cline-neutral">&nbsp;</span>
28392842
<span class="cline-any cline-neutral">&nbsp;</span>
@@ -2848,8 +2851,7 @@ <h1>
28482851
<span class="cline-any cline-neutral">&nbsp;</span>
28492852
<span class="cline-any cline-neutral">&nbsp;</span>
28502853
<span class="cline-any cline-neutral">&nbsp;</span>
2851-
<span class="cline-any cline-yes"></span>
2852-
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">var hyperHTML = (function (globalDocument, majinbuu) {'use strict';
2854+
<span class="cline-any cline-yes"></span></td><td class="text"><pre class="prettyprint lang-js">var hyperHTML = (function (globalDocument, majinbuu) {'use strict';
28532855
&nbsp;
28542856
/*! (c) 2017 Andrea Giammarchi @WebReflection, (ISC) */
28552857
&nbsp;
@@ -3033,7 +3035,7 @@ <h1>
30333035
var hyper = hypers.get(this);
30343036
if (
30353037
!hyper ||
3036-
hyper.template !== (FF ? unique(template) : template)
3038+
hyper.template !== TL(template)
30373039
) {
30383040
hyper = upgrade.apply(this, arguments);
30393041
hypers.set(this, hyper);
@@ -3323,6 +3325,15 @@ <h1>
33233325
&nbsp;
33243326
// beside IE, old WebKit browsers don't have `children` in DocumentFragment
33253327
var WK = !('children' in featureFragment);
3328+
&nbsp;
3329+
// both Firefox &lt; 55 and TypeScript have issues with template literals
3330+
// this lazy defined callback should spot issues right away
3331+
// and in the best case scenario become a no-op
3332+
var TL = function (template) {
3333+
if (template.propertyIsEnumerable('raw') || FF) TL = unique;
3334+
else TL = function (t) { return t; };
3335+
return TL(template);
3336+
};
33263337
&nbsp;
33273338
// ---------------------------------------------
33283339
// Helpers
@@ -3603,14 +3614,11 @@ <h1>
36033614
var transformers = {};
36043615
&nbsp;
36053616
// normalize Firefox issue with template literals
3606-
var templateObjects, unique;
3607-
if (FF) {
3608-
templateObjects = {};
3609-
unique = function (template) {
3610-
var key = '_' + template.join(UIDC);
3611-
return templateObjects[key] ||
3612-
(templateObjects[key] = template);
3613-
};
3617+
var templateObjects = {}, unique;
3618+
function unique(template) {
3619+
var key = '_' + template.join(UIDC);
3620+
return templateObjects[key] ||
3621+
(templateObjects[key] = template);
36143622
}
36153623
&nbsp;
36163624
// use native .append(...childNodes) where available
@@ -3940,7 +3948,7 @@ <h1>
39403948
// create a template, if unknown
39413949
// upgrade a node to use such template for future updates
39423950
function upgrade(template) {
3943-
if (FF) template = unique(template);
3951+
template = TL(template);
39443952
var updates;
39453953
var info = templates.get(template) ||
39463954
createTemplate.call(this, template);
@@ -3985,7 +3993,7 @@ <h1>
39853993
return type === 'adopt' ?
39863994
function adopt(statics) {
39873995
var args = arguments;
3988-
if (FF) statics = unique(statics);
3996+
statics = TL(statics);
39893997
if (template !== statics) {
39903998
setup = true;
39913999
template = statics;
@@ -4011,7 +4019,7 @@ <h1>
40114019
return adopter;
40124020
} :
40134021
function update(statics) {
4014-
if (FF) statics = unique(statics);
4022+
statics = TL(statics);
40154023
if (template !== statics) {
40164024
setup = true;
40174025
template = statics;
@@ -4044,7 +4052,7 @@ <h1>
40444052
// changes needed to show the a new list
40454053
// where there was another one.
40464054
// There is a limit, in terms of performance,
4047-
// on how bug can the optimal computation be,
4055+
// on how big can the optimal computation be,
40484056
// so if you change this value be sure your
40494057
// target hardware is good enough.
40504058
hyper.MAX_LIST_SIZE = 1000;
@@ -4063,7 +4071,6 @@ <h1>
40634071
DELETE = 'del',
40644072
INSERT = 'ins',
40654073
SUBSTITUTE = 'sub',
4066-
AuraPrototype = Aura.prototype,
40674074
TypedArray = /^u/.test(typeof Int32Array) ? Array : Int32Array
40684075
;
40694076
&nbsp;
@@ -4093,22 +4100,24 @@ <h1>
40934100
&nbsp;
40944101
// given an object that would like to intercept
40954102
// all splice operations performed through a list,
4096-
// return a list "aura" that will delegate all splices
4097-
majinbuu.aura = function aura(interceptor, list) {
4098-
Aura.prototype = list;
4099-
return new Aura(interceptor);
4103+
// wraps the list.splice method to delegate such object
4104+
// and it puts back original splice right before
4105+
// every invocation.
4106+
// Note: do not use the same list in two different aura
4107+
majinbuu.aura = function aura(splicer, list) {
4108+
var splice = list.splice;
4109+
list.splice = function hodor() {
4110+
list.splice = splice;
4111+
var result = splicer.splice.apply(splicer, arguments);
4112+
list.splice = hodor;
4113+
return result;
4114+
};
4115+
return list;
41004116
};
41014117
&nbsp;
41024118
return majinbuu;
41034119
&nbsp;
41044120
// Helpers - - - - - - - - - - - - - - - - - - - - - -
4105-
&nbsp;
4106-
// Aura instances are just Array bridges
4107-
function Aura(interceptor) {
4108-
Aura.prototype = AuraPrototype;
4109-
this._ = interceptor;
4110-
this.splice = splice;
4111-
}
41124121
&nbsp;
41134122
// originally readapted from:
41144123
// http://webreflection.blogspot.co.uk/2009/02/levenshtein-algorithm-revisited-25.html
@@ -4230,11 +4239,6 @@ <h1>
42304239
target.splice.apply(target, [op.y + diff, op.count].concat(op.items));
42314240
}
42324241
}
4233-
&nbsp;
4234-
// delegate all splice operations through an aura
4235-
function splice() {
4236-
return this._.splice.apply(this._, arguments);
4237-
}
42384242
&nbsp;
42394243
/* one-by-one operation (testing purpose)
42404244
function performOperations(target, operations) {
@@ -4251,14 +4255,13 @@ <h1>
42514255
}()));
42524256
&nbsp;
42534257
// umd.KISS
4254-
try { module.exports = hyperHTML; } catch(o_O) {}
4255-
&nbsp;</pre></td></tr>
4258+
try { module.exports = hyperHTML; } catch(o_O) {}</pre></td></tr>
42564259
</table></pre>
42574260
<div class='push'></div><!-- for sticky footer -->
42584261
</div><!-- /wrapper -->
42594262
<div class='footer quiet pad2 space-top1 center small'>
42604263
Code coverage
4261-
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Wed Sep 06 2017 16:32:47 GMT+0100 (BST)
4264+
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Thu Sep 07 2017 12:41:04 GMT+0100 (BST)
42624265
</div>
42634266
</div>
42644267
<script src="../prettify.js"></script>

0 commit comments

Comments
 (0)