Skip to content

Commit fe8add2

Browse files
committed
added no.js file for environments without the ability to use modern JS or based on other languages such Dart.
1 parent 267c1f7 commit fe8add2

File tree

13 files changed

+703
-709
lines changed

13 files changed

+703
-709
lines changed

CHANGELOG.md

+3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# hyper(html) Changelog
22

3+
### v2.5.6
4+
* added `no.js` file for environments without the ability to use modern JS or based on other languages such Dart.
5+
36
### v2.5.5
47
* build runs on macOS too
58
* added umd.js file

cjs/index.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -44,17 +44,17 @@ function hyper(HTML) {
4444
(HTML == null ?
4545
content('html') :
4646
(typeof HTML === 'string' ?
47-
wire(null, HTML) :
47+
hyper.wire(null, HTML) :
4848
('raw' in HTML ?
4949
content('html')(HTML) :
5050
('nodeType' in HTML ?
51-
render.bind(HTML) :
51+
hyper.bind(HTML) :
5252
weakly(HTML, 'html')
5353
)
5454
)
5555
)) :
5656
('raw' in HTML ?
57-
content('html') : wire
57+
content('html') : hyper.wire
5858
).apply(null, arguments);
5959
}
6060
Object.defineProperty(exports, '__esModule', {value: true}).default = hyper

cjs/shared/domdiff.js

+17-25
Original file line numberDiff line numberDiff line change
@@ -83,32 +83,24 @@ const domdiff = (
8383
}
8484
}
8585
}
86-
if (currentStart <= currentEnd || futureStart <= futureEnd) {
87-
if (currentStart > currentEnd) {
88-
const pin = futureNodes[futureEnd + 1];
89-
const place = pin == null ? before : get(pin, 0);
90-
if (futureStart === futureEnd) {
91-
parentNode.insertBefore(get(futureNodes[futureStart], 1), place);
92-
}
93-
else {
94-
const fragment = parentNode.ownerDocument.createDocumentFragment();
95-
while (futureStart <= futureEnd) {
96-
fragment.appendChild(get(futureNodes[futureStart++], 1));
97-
}
98-
parentNode.insertBefore(fragment, place);
99-
}
86+
if (currentStart > currentEnd) {
87+
const pin = futureNodes[futureEnd + 1];
88+
const place = pin != null ? get(pin, 0) : before;
89+
while (futureStart <= futureEnd) {
90+
const ch = futureNodes[futureStart++];
91+
// ignore until I am sure the else could never happen.
92+
// it might be a vDOM thing 'cause it never happens here.
93+
/* istanbul ignore else */
94+
if (ch != null) parentNode.insertBefore(get(ch, 1), place);
10095
}
101-
else {
102-
if (currentNodes[currentStart] == null) currentStart++;
103-
if (currentStart === currentEnd) {
104-
parentNode.removeChild(get(currentNodes[currentStart], -1));
105-
}
106-
else {
107-
const range = parentNode.ownerDocument.createRange();
108-
range.setStartBefore(get(currentNodes[currentStart], -1));
109-
range.setEndAfter(get(currentNodes[currentEnd], -1));
110-
range.deleteContents();
111-
}
96+
}
97+
// ignore until I am sure the else could never happen.
98+
// it might be a vDOM thing 'cause it never happens here.
99+
/* istanbul ignore else */
100+
else if (futureStart > futureEnd) {
101+
while (currentStart <= currentEnd) {
102+
const ch = currentNodes[currentStart++];
103+
if (ch != null) parentNode.removeChild(get(ch, -1));
112104
}
113105
}
114106
return futureNodes;

coverage/coverage.json

+1-1
Large diffs are not rendered by default.

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

+45-60
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@ <h1>
2222
<div class='fl pad1y space-right2'>
2323
<span class="strong">100% </span>
2424
<span class="quiet">Statements</span>
25-
<span class='fraction'>602/602</span>
25+
<span class='fraction'>596/596</span>
2626
</div>
2727
<div class='fl pad1y space-right2'>
2828
<span class="strong">100% </span>
2929
<span class="quiet">Branches</span>
30-
<span class='fraction'>325/325</span>
30+
<span class='fraction'>321/321</span>
3131
</div>
3232
<div class='fl pad1y space-right2'>
3333
<span class="strong">100% </span>
@@ -37,10 +37,10 @@ <h1>
3737
<div class='fl pad1y space-right2'>
3838
<span class="strong">100% </span>
3939
<span class="quiet">Lines</span>
40-
<span class='fraction'>592/592</span>
40+
<span class='fraction'>585/585</span>
4141
</div>
4242
<div class='fl pad1y'>
43-
<span class="strong">3 statements, 1 function, 8 branches</span>
43+
<span class="strong">3 statements, 1 function, 10 branches</span>
4444
<span class="quiet">Ignored</span> &nbsp;&nbsp;&nbsp;&nbsp;
4545
</div>
4646
</div>
@@ -1296,12 +1296,7 @@ <h1>
12961296
1247
12971297
1248
12981298
1249
1299-
1250
1300-
1251
1301-
1252
1302-
1253
1303-
1254
1304-
1255</td><td class="line-coverage quiet"><span class="cline-any cline-yes"></span>
1299+
1250</td><td class="line-coverage quiet"><span class="cline-any cline-yes"></span>
13051300
<span class="cline-any cline-neutral">&nbsp;</span>
13061301
<span class="cline-any cline-neutral">&nbsp;</span>
13071302
<span class="cline-any cline-neutral">&nbsp;</span>
@@ -1836,7 +1831,7 @@ <h1>
18361831
<span class="cline-any cline-neutral">&nbsp;</span>
18371832
<span class="cline-any cline-neutral">&nbsp;</span>
18381833
<span class="cline-any cline-yes"></span>
1839-
<span class="cline-any cline-yes">559×</span>
1834+
<span class="cline-any cline-yes">604×</span>
18401835
<span class="cline-any cline-neutral">&nbsp;</span>
18411836
<span class="cline-any cline-neutral">&nbsp;</span>
18421837
<span class="cline-any cline-yes"></span>
@@ -1892,28 +1887,23 @@ <h1>
18921887
<span class="cline-any cline-neutral">&nbsp;</span>
18931888
<span class="cline-any cline-neutral">&nbsp;</span>
18941889
<span class="cline-any cline-yes">271×</span>
1895-
<span class="cline-any cline-yes">228×</span>
1896-
<span class="cline-any cline-yes">130×</span>
1897-
<span class="cline-any cline-yes">130×</span>
1898-
<span class="cline-any cline-yes">130×</span>
1899-
<span class="cline-any cline-yes">96×</span>
1890+
<span class="cline-any cline-yes">173×</span>
1891+
<span class="cline-any cline-yes">173×</span>
1892+
<span class="cline-any cline-yes">173×</span>
1893+
<span class="cline-any cline-yes">190×</span>
19001894
<span class="cline-any cline-neutral">&nbsp;</span>
1901-
<span class="cline-any cline-yes">34×</span>
1902-
<span class="cline-any cline-yes">34×</span>
1903-
<span class="cline-any cline-yes">94×</span>
19041895
<span class="cline-any cline-neutral">&nbsp;</span>
1905-
<span class="cline-any cline-yes">34×</span>
1896+
<span class="cline-any cline-neutral">&nbsp;</span>
1897+
<span class="cline-any cline-yes">190×</span>
1898+
<span class="cline-any cline-neutral">&nbsp;</span>
19061899
<span class="cline-any cline-neutral">&nbsp;</span>
19071900
<span class="cline-any cline-neutral">&nbsp;</span>
1908-
<span class="cline-any cline-yes">98×</span>
1909-
<span class="cline-any cline-yes">98×</span>
1910-
<span class="cline-any cline-yes">67×</span>
19111901
<span class="cline-any cline-neutral">&nbsp;</span>
1912-
<span class="cline-any cline-yes">31×</span>
1913-
<span class="cline-any cline-yes">31×</span>
1914-
<span class="cline-any cline-yes">31×</span>
1915-
<span class="cline-any cline-yes">31×</span>
19161902
<span class="cline-any cline-neutral">&nbsp;</span>
1903+
<span class="cline-any cline-yes">98×</span>
1904+
<span class="cline-any cline-yes">98×</span>
1905+
<span class="cline-any cline-yes">182×</span>
1906+
<span class="cline-any cline-yes">182×</span>
19171907
<span class="cline-any cline-neutral">&nbsp;</span>
19181908
<span class="cline-any cline-neutral">&nbsp;</span>
19191909
<span class="cline-any cline-yes">271×</span>
@@ -1937,7 +1927,7 @@ <h1>
19371927
<span class="cline-any cline-neutral">&nbsp;</span>
19381928
<span class="cline-any cline-neutral">&nbsp;</span>
19391929
<span class="cline-any cline-yes"></span>
1940-
<span class="cline-any cline-yes">452×</span>
1930+
<span class="cline-any cline-yes">460×</span>
19411931
<span class="cline-any cline-neutral">&nbsp;</span>
19421932
<span class="cline-any cline-neutral">&nbsp;</span>
19431933
<span class="cline-any cline-neutral">&nbsp;</span>
@@ -2521,7 +2511,7 @@ <h1>
25212511
<span class="cline-any cline-neutral">&nbsp;</span>
25222512
<span class="cline-any cline-neutral">&nbsp;</span>
25232513
<span class="cline-any cline-yes"></span>
2524-
<span class="cline-any cline-yes">185×</span>
2514+
<span class="cline-any cline-yes">189×</span>
25252515
<span class="cline-any cline-neutral">&nbsp;</span>
25262516
<span class="cline-any cline-yes"></span>
25272517
<span class="cline-any cline-neutral">&nbsp;</span>
@@ -3020,15 +3010,15 @@ <h1>
30203010
var style = original.cloneNode(true);
30213011
style.value = '';
30223012
node.setAttributeNode(style);
3023-
return update(style, isSVG);
3013+
return update$1(style, isSVG);
30243014
}
3025-
return update(node.style, isSVG);
3015+
return update$1(node.style, isSVG);
30263016
});
30273017
&nbsp;
30283018
// the update takes care or changing/replacing
30293019
// only properties that are different or
30303020
// in case of string, the whole node
3031-
var update = function update(style, isSVG) {
3021+
var update$1 = function update(style, isSVG) {
30323022
var oldType = void 0,
30333023
oldValue = void 0;
30343024
return function (newValue) {
@@ -3145,31 +3135,26 @@ <h1>
31453135
}
31463136
}
31473137
}
3148-
if (currentStart &lt;= currentEnd || futureStart &lt;= futureEnd) {
3149-
if (currentStart &gt; currentEnd) {
3150-
var pin = futureNodes[futureEnd + 1];
3151-
var place = pin == null ? before : get(pin, 0);
3152-
if (futureStart === futureEnd) {
3153-
parentNode.insertBefore(get(futureNodes[futureStart], 1), place);
3154-
} else {
3155-
var fragment = parentNode.ownerDocument.createDocumentFragment();
3156-
while (futureStart &lt;= futureEnd) {
3157-
fragment.appendChild(get(futureNodes[futureStart++], 1));
3158-
}
3159-
parentNode.insertBefore(fragment, place);
3160-
}
3161-
} else {
3162-
if (currentNodes[currentStart] == null) currentStart++;
3163-
if (currentStart === currentEnd) {
3164-
parentNode.removeChild(get(currentNodes[currentStart], -1));
3165-
} else {
3166-
var range = parentNode.ownerDocument.createRange();
3167-
range.setStartBefore(get(currentNodes[currentStart], -1));
3168-
range.setEndAfter(get(currentNodes[currentEnd], -1));
3169-
range.deleteContents();
3170-
}
3138+
if (currentStart &gt; currentEnd) {
3139+
var pin = futureNodes[futureEnd + 1];
3140+
var place = pin != null ? get(pin, 0) : before;
3141+
while (futureStart &lt;= futureEnd) {
3142+
var ch = futureNodes[futureStart++];
3143+
// ignore until I am sure the else could never happen.
3144+
// it might be a vDOM thing 'cause it never happens here.
3145+
/* istanbul ignore else */
3146+
<span class="skip-if-branch" title="else path not taken" >E</span>if (ch != null) parentNode.insertBefore(get(ch, 1), place);
31713147
}
31723148
}
3149+
// ignore until I am sure the else could never happen.
3150+
// it might be a vDOM thing 'cause it never happens here.
3151+
/* istanbul ignore else */
3152+
else <span class="skip-if-branch" title="else path not taken" >E</span>if (futureStart &gt; futureEnd) {
3153+
while (currentStart &lt;= currentEnd) {
3154+
var _ch = currentNodes[currentStart++];
3155+
if (_ch != null) parentNode.removeChild(get(_ch, -1));
3156+
}
3157+
}
31733158
return futureNodes;
31743159
};
31753160
&nbsp;
@@ -3630,7 +3615,7 @@ <h1>
36303615
function render(template) {
36313616
var wicked = bewitched.get(this);
36323617
if (wicked &amp;&amp; wicked.template === unique(template)) {
3633-
update$1.apply(wicked.updates, arguments);
3618+
update.apply(wicked.updates, arguments);
36343619
} else {
36353620
upgrade.apply(this, arguments);
36363621
}
@@ -3647,13 +3632,13 @@ <h1>
36473632
var fragment = importNode(this.ownerDocument, info.fragment);
36483633
var updates = Updates.create(fragment, info.paths);
36493634
bewitched.set(this, { template: template, updates: updates });
3650-
update$1.apply(updates, arguments);
3635+
update.apply(updates, arguments);
36513636
this.textContent = '';
36523637
this.appendChild(fragment);
36533638
}
36543639
&nbsp;
36553640
// an update simply loops over all mapped DOM operations
3656-
function update$1() {
3641+
function update() {
36573642
var length = arguments.length;
36583643
for (var i = 1; i &lt; length; i++) {
36593644
this[i - 1](arguments[i]);
@@ -3794,7 +3779,7 @@ <h1>
37943779
// that "magically" understands what's the best
37953780
// thing to do with passed arguments
37963781
function hyper(HTML) {
3797-
return arguments.length &lt; 2 ? HTML == null ? content('html') : typeof HTML === 'string' ? wire(null, HTML) : 'raw' in HTML ? content('html')(HTML) : 'nodeType' in HTML ? render.bind(HTML) : weakly(HTML, 'html') : ('raw' in HTML ? content('html') : wire).apply(null, arguments);
3782+
return arguments.length &lt; 2 ? HTML == null ? content('html') : typeof HTML === 'string' ? hyper.wire(null, HTML) : 'raw' in HTML ? content('html')(HTML) : 'nodeType' in HTML ? hyper.bind(HTML) : weakly(HTML, 'html') : ('raw' in HTML ? content('html') : hyper.wire).apply(null, arguments);
37983783
}
37993784
&nbsp;
38003785
&nbsp;
@@ -3815,7 +3800,7 @@ <h1>
38153800
</div><!-- /wrapper -->
38163801
<div class='footer quiet pad2 space-top1 center small'>
38173802
Code coverage
3818-
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Jan 30 2018 18:59:09 GMT+0100 (CET)
3803+
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Sun Feb 04 2018 18:03:33 GMT+0100 (CET)
38193804
</div>
38203805
</div>
38213806
<script src="../prettify.js"></script>

coverage/lcov-report/hyperHTML/index.html

+8-8
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@ <h1>
2222
<div class='fl pad1y space-right2'>
2323
<span class="strong">100% </span>
2424
<span class="quiet">Statements</span>
25-
<span class='fraction'>602/602</span>
25+
<span class='fraction'>596/596</span>
2626
</div>
2727
<div class='fl pad1y space-right2'>
2828
<span class="strong">100% </span>
2929
<span class="quiet">Branches</span>
30-
<span class='fraction'>325/325</span>
30+
<span class='fraction'>321/321</span>
3131
</div>
3232
<div class='fl pad1y space-right2'>
3333
<span class="strong">100% </span>
@@ -37,10 +37,10 @@ <h1>
3737
<div class='fl pad1y space-right2'>
3838
<span class="strong">100% </span>
3939
<span class="quiet">Lines</span>
40-
<span class='fraction'>592/592</span>
40+
<span class='fraction'>585/585</span>
4141
</div>
4242
<div class='fl pad1y'>
43-
<span class="strong">3 statements, 1 function, 8 branches</span>
43+
<span class="strong">3 statements, 1 function, 10 branches</span>
4444
<span class="quiet">Ignored</span> &nbsp;&nbsp;&nbsp;&nbsp;
4545
</div>
4646
</div>
@@ -66,13 +66,13 @@ <h1>
6666
<td class="file high" data-value="index.c.js"><a href="index.c.js.html">index.c.js</a></td>
6767
<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>
6868
<td data-value="100" class="pct high">100%</td>
69-
<td data-value="602" class="abs high">602/602</td>
69+
<td data-value="596" class="abs high">596/596</td>
7070
<td data-value="100" class="pct high">100%</td>
71-
<td data-value="325" class="abs high">325/325</td>
71+
<td data-value="321" class="abs high">321/321</td>
7272
<td data-value="100" class="pct high">100%</td>
7373
<td data-value="95" class="abs high">95/95</td>
7474
<td data-value="100" class="pct high">100%</td>
75-
<td data-value="592" class="abs high">592/592</td>
75+
<td data-value="585" class="abs high">585/585</td>
7676
</tr>
7777

7878
</tbody>
@@ -81,7 +81,7 @@ <h1>
8181
</div><!-- /wrapper -->
8282
<div class='footer quiet pad2 space-top1 center small'>
8383
Code coverage
84-
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Jan 30 2018 18:59:09 GMT+0100 (CET)
84+
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Sun Feb 04 2018 18:03:33 GMT+0100 (CET)
8585
</div>
8686
</div>
8787
<script src="../prettify.js"></script>

0 commit comments

Comments
 (0)