[Pkg-javascript-commits] [dojo] 44/149: Avoid dojo/query spuriously throwing internal exceptions, fixes #17515. The try/catch is still needed for the qsa() call (otherwise we get a few test failures), but we can remove the throw "".
David Prévot
taffit at moszumanska.debian.org
Sat Feb 27 03:13:46 UTC 2016
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository dojo.
commit d55c440c02a3800159becc9ffbef92911d713354
Author: Bill Keese <bill at dojotoolkit.org>
Date: Fri Feb 27 15:08:23 2015 +0900
Avoid dojo/query spuriously throwing internal exceptions, fixes #17515.
The try/catch is still needed for the qsa() call (otherwise we get a few test failures),
but we can remove the throw "".
---
selector/acme.js | 40 +++++++++++++++++++++-------------------
1 file changed, 21 insertions(+), 19 deletions(-)
diff --git a/selector/acme.js b/selector/acme.js
index b8d77ab..43a3b7a 100644
--- a/selector/acme.js
+++ b/selector/acme.js
@@ -1234,26 +1234,28 @@ define([
var tq = (specials.indexOf(query.charAt(query.length-1)) >= 0) ?
(query + " *") : query;
return _queryFuncCacheQSA[query] = function(root){
- try{
- // the QSA system contains an egregious spec bug which
- // limits us, effectively, to only running QSA queries over
- // entire documents. See:
- // http://ejohn.org/blog/thoughts-on-queryselectorall/
- // despite this, we can also handle QSA runs on simple
- // selectors, but we don't want detection to be expensive
- // so we're just checking for the presence of a space char
- // right now. Not elegant, but it's cheaper than running
- // the query parser when we might not need to
- if(!((9 == root.nodeType) || nospace)){ throw ""; }
- var r = root[qsa](tq);
- // skip expensive duplication checks and just wrap in a NodeList
- r[noZip] = true;
- return r;
- }catch(e){
- // else run the DOM branch on this query, ensuring that we
- // default that way in the future
- return getQueryFunc(query, true)(root);
+ // the QSA system contains an egregious spec bug which
+ // limits us, effectively, to only running QSA queries over
+ // entire documents. See:
+ // http://ejohn.org/blog/thoughts-on-queryselectorall/
+ // despite this, we can also handle QSA runs on simple
+ // selectors, but we don't want detection to be expensive
+ // so we're just checking for the presence of a space char
+ // right now. Not elegant, but it's cheaper than running
+ // the query parser when we might not need to
+ if(9 == root.nodeType || nospace){
+ try{
+ var r = root[qsa](tq);
+ // skip expensive duplication checks and just wrap in a NodeList
+ r[noZip] = true;
+ return r;
+ }catch(e){
+ // if root[qsa](tq), fall through to getQueryFunc() branch below
+ }
}
+ // else run the DOM branch on this query, ensuring that we
+ // default that way in the future
+ return getQueryFunc(query, true)(root);
};
}else{
// DOM branch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/dojo.git
More information about the Pkg-javascript-commits
mailing list