Skip to content
This repository was archived by the owner on Apr 20, 2018. It is now read-only.

Commit f86d7c1

Browse files
Merge pull request #719 from ajp427/fix-nodelist-check
IE8 Compat: Fix is NodeList check
2 parents 924f87e + db7e096 commit f86d7c1

23 files changed

Lines changed: 101 additions & 37 deletions

dist/rx.all.compat.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6648,6 +6648,20 @@
66486648
};
66496649
};
66506650

6651+
/**
6652+
* Returns true if `el` is a NodeList or StaticNodeList (IE8 querySelectorAll returns a StaticNodeList)
6653+
* @param {object} el
6654+
* @returns {boolean}
6655+
*/
6656+
function isNodeList(el) {
6657+
if (window.StaticNodeList) {
6658+
// IE8 Specific
6659+
// instanceof is slower than Object#toString, but Object#toString will not work as intended in IE8
6660+
return (el instanceof window.StaticNodeList || el instanceof NodeList);
6661+
} else {
6662+
return (Object.prototype.toString.call(el) == '[object NodeList]')
6663+
}
6664+
}
66516665
function fixEvent(event) {
66526666
var stopPropagation = function () {
66536667
this.cancelBubble = true;
@@ -6730,7 +6744,7 @@
67306744
var disposables = new CompositeDisposable();
67316745

67326746
// Asume NodeList
6733-
if (Object.prototype.toString.call(el) === '[object NodeList]') {
6747+
if (isNodeList(el)) {
67346748
for (var i = 0, len = el.length; i < len; i++) {
67356749
disposables.add(createEventListener(el.item(i), eventName, handler));
67366750
}

dist/rx.all.compat.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rx.all.compat.min.js

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rx.all.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rx.all.min.js

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rx.async.compat.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,20 @@
379379
};
380380
};
381381

382+
/**
383+
* Returns true if `el` is a NodeList or StaticNodeList (IE8 querySelectorAll returns a StaticNodeList)
384+
* @param {object} el
385+
* @returns {boolean}
386+
*/
387+
function isNodeList(el) {
388+
if (window.StaticNodeList) {
389+
// IE8 Specific
390+
// instanceof is slower than Object#toString, but Object#toString will not work as intended in IE8
391+
return (el instanceof window.StaticNodeList || el instanceof NodeList);
392+
} else {
393+
return (Object.prototype.toString.call(el) == '[object NodeList]')
394+
}
395+
}
382396
function fixEvent(event) {
383397
var stopPropagation = function () {
384398
this.cancelBubble = true;
@@ -461,7 +475,7 @@
461475
var disposables = new CompositeDisposable();
462476

463477
// Asume NodeList
464-
if (Object.prototype.toString.call(el) === '[object NodeList]') {
478+
if (isNodeList(el)) {
465479
for (var i = 0, len = el.length; i < len; i++) {
466480
disposables.add(createEventListener(el.item(i), eventName, handler));
467481
}

dist/rx.async.compat.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rx.async.compat.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rx.compat.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rx.compat.min.js

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)