From b2189a524fa71789a9079f1f241ff59e8fc4d2a1 Mon Sep 17 00:00:00 2001 From: suren shrestha Date: Thu, 11 Aug 2016 02:41:58 +0545 Subject: [PATCH 1/2] proper selector check (#1231) --- render/hyperscript.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/render/hyperscript.js b/render/hyperscript.js index cd326056..51182f12 100644 --- a/render/hyperscript.js +++ b/render/hyperscript.js @@ -5,6 +5,10 @@ var Vnode = require("../render/vnode") var selectorParser = /(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g var selectorCache = {} function hyperscript(selector) { + if (selector == null || typeof selector !== "string" && !selector.view) { + throw Error("The selector must be either a string or a component."); + } + if (typeof selector === "string") { if (selectorCache[selector] === undefined) { var match, tag, classes = [], attributes = {} From 54c58d83d851cb9944b2bb703aa065084e5bfd07 Mon Sep 17 00:00:00 2001 From: Gandalf-the-Bot Date: Wed, 10 Aug 2016 20:58:58 +0000 Subject: [PATCH 2/2] Bundled output for commit b2189a524fa71789a9079f1f241ff59e8fc4d2a1 [skip ci] --- mithril.js | 3 +++ mithril.min.js | 67 +++++++++++++++++++++++++------------------------- 2 files changed, 37 insertions(+), 33 deletions(-) diff --git a/mithril.js b/mithril.js index f8a3e3d5..e2a99c88 100644 --- a/mithril.js +++ b/mithril.js @@ -198,6 +198,9 @@ Vnode.normalizeChildren = function normalizeChildren(children) { var selectorParser = /(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g var selectorCache = {} function hyperscript(selector) { + if (selector == null || typeof selector !== "string" && !selector.view) { + throw Error("The selector must be either a string or a component."); + } if (typeof selector === "string") { if (selectorCache[selector] === undefined) { var match, tag, classes = [], attributes = {} diff --git a/mithril.min.js b/mithril.min.js index 683fc863..0ee2b352 100644 --- a/mithril.min.js +++ b/mithril.min.js @@ -5,36 +5,37 @@ function S(a,b){null!=a&&a.constructor===y&&(b=void 0!==a._state.error?a._state. b){return D(y(),b,function(){var d=b.filter(W);if(0=r&&B>=A;){var t=c[r],w=f[A];if(t===w)r++,A++;else if(null!=t&&null!=w&&t.key===w.key)r++,A++,q(a,t,w,e,m(c,r,h),z,k),z&&t.tag===w.tag&&g(a,l(t),h);else if(t=c[v],t===w)v--,A++;else if(null!= -t&&null!=w&&t.key===w.key)q(a,t,w,e,m(c,v+1,h),z,k),g(a,l(t),m(c,r,h)),v--,A++;else break}for(;v>=r&&B>=A;){t=c[v];w=f[B];if(t===w)v--;else if(null!=t&&null!=w&&t.key===w.key)q(a,t,w,e,m(c,v+1,h),z,k),z&&t.tag===w.tag&&g(a,l(t),h),null!=t.dom&&(h=t.dom),v--;else{if(!u){u=c;var t=v,n={},x;for(x=0;xa.indexOf("?")?"?":"&";a+=h+d}return a}function e(a){try{return""!==a?JSON.parse(a):null}catch(b){throw Error(a);}}function k(a){return a.responseText}function q(a,b){if("function"===typeof a)if(b instanceof Array)for(var d= -0;dh.status)p(q(g.type,a));else{var b=Error(h.responseText),d;for(d in a)b[d]=a[d];p.error(b)}}catch(e){p.error(e)}"function"===typeof m&&m()}};l?h.send(g.data):h.send();return p},jsonp:function(g){var e=C.stream();void 0!==g.initialValue&&e(g.initialValue);var k=g.callbackName||"_mithril_"+Math.round(1E16*Math.random())+"_"+l++,h=a.document.createElement("script");a[k]=function(b){h.parentNode.removeChild(h);e(q(g.type, -b));"function"===typeof m&&m();delete a[k]};h.onerror=function(){h.parentNode.removeChild(h);e.error(Error("JSONP request failed"));"function"===typeof m&&m();delete a[k]};null==g.data&&(g.data={});g.url=b(g.url,g.data);g.data[g.callbackKey||"callback"]=k;h.src=d(g.url,g.data);a.document.documentElement.appendChild(h);return e},setCompletionCallback:function(a){m=a}}}(window),G=function(){var a=[];return{subscribe:a.push.bind(a),unsubscribe:function(b){b=a.indexOf(b);-1=r&&B>=A;){var t=c[r],w=f[A];if(t===w)r++,A++;else if(null!=t&&null!=w&&t.key===w.key)r++,A++,q(a,t,w,e, +m(c,r,h),z,k),z&&t.tag===w.tag&&g(a,l(t),h);else if(t=c[v],t===w)v--,A++;else if(null!=t&&null!=w&&t.key===w.key)q(a,t,w,e,m(c,v+1,h),z,k),g(a,l(t),m(c,r,h)),v--,A++;else break}for(;v>=r&&B>=A;){t=c[v];w=f[B];if(t===w)v--;else if(null!=t&&null!=w&&t.key===w.key)q(a,t,w,e,m(c,v+1,h),z,k),z&&t.tag===w.tag&&g(a,l(t),h),null!=t.dom&&(h=t.dom),v--;else{if(!u){u=c;var t=v,n={},x;for(x=0;xa.indexOf("?")?"?":"&";a+=h+d}return a}function e(a){try{return""!== +a?JSON.parse(a):null}catch(b){throw Error(a);}}function k(a){return a.responseText}function q(a,b){if("function"===typeof a)if(b instanceof Array)for(var d=0;dh.status)p(q(g.type,a));else{var b=Error(h.responseText),d;for(d in a)b[d]=a[d];p.error(b)}}catch(e){p.error(e)}"function"===typeof m&&m()}};l?h.send(g.data):h.send();return p},jsonp:function(g){var e=C.stream();void 0!==g.initialValue&&e(g.initialValue);var k=g.callbackName||"_mithril_"+ +Math.round(1E16*Math.random())+"_"+l++,h=a.document.createElement("script");a[k]=function(b){h.parentNode.removeChild(h);e(q(g.type,b));"function"===typeof m&&m();delete a[k]};h.onerror=function(){h.parentNode.removeChild(h);e.error(Error("JSONP request failed"));"function"===typeof m&&m();delete a[k]};null==g.data&&(g.data={});g.url=b(g.url,g.data);g.data[g.callbackKey||"callback"]=k;h.src=d(g.url,g.data);a.document.documentElement.appendChild(h);return e},setCompletionCallback:function(a){m=a}}}(window), +G=function(){var a=[];return{subscribe:a.push.bind(a),unsubscribe:function(b){b=a.indexOf(b);-1