[Pkg-javascript-commits] [node-nwmatcher] branch master created (now ba198ec)
Wolfgang Borgert
debacle at moszumanska.debian.org
Sun Sep 21 01:12:37 UTC 2014
This is an automated email from the git hooks/post-receive script.
debacle pushed a change to branch master
in repository node-nwmatcher.
at ba198ec bumped version to 1.3.3, updated release date and copyright years, updated tests and ender integration
This branch includes the following new commits:
new 3d16410 first commit
new 5ba75cc start naming variables and trying to enhance readability
new ee611d7 fix obvious typos
new e4b29d8 fix obvious typos
new d4d45ad Add SlickSpeed benchmarks
new 6bfe7f0 Fix npseudos
new 15999be Replace vars with longer names
new 06fdd80 more variable expansion and syntax cleaning
new eb113a6 Add Prototype's Selector unit tests to test NWMatcher
new 2c0b6f4 Plugs NWMatcher in Prototype tests
new f133590 Fix stupid bug...
new e52edf3 Add test stylesheets
new 6fe89b4 Fix few bugs in NWMatcher
new 80d6bf3 Mark 'compile' helper as testing method
new 11e2e1f Fix getAttribute, :empty and :disabled, no cache in tests
new ab0ab3d fix id
new 6c9a5a5 modified attributes regexp to address more cases
new 698fd6a tentative fixes and typos, changed attribute regexp again
new efd3f0e :empty detection adjusted
new 5507ab6 changed indentation to spaces
new 81b81f0 changed attributes regexp again, fixed disabled / checked and namespaced attributes
new c8b260b added missing namespaced attributes to html node
new d1495ba update and commented list of failing tests
new d1d4693 changed to xhtml doctype
new 01086ad adjusted :not selector and recursion, compile anonymous function, and attributes test
new 606c383 changes to reflect passed tests
new 68269d0 changed string concatenation, fixed more selectors in test unit, cleanup
new 17ec774 made IE pass most of the test, disabled cache by default
new 639f4ea fix typo errors during variable names expansion
new 59b3f83 removed debug builds and tests
new 00c48fb improved caching system on W3C browsers, disabled by default on IE
new fd533fd signature versions updated after recent fixes and changes on caching system
new 72eecaa fixed bug in case sensitivity and more cleanups
new e801c2d fixed bug where multiple/mixed nth selectors would have failed, pointed out by eleith
new 1bc6495 more fixes for the nth indexing bug (eleith), tweaked comments and other fixes
new b1d41f0 caching disabled on IE by default, revised case sensitivity and URI attributes, cleanup and more comments
new 7046203 cleanup of comments and changed some tabs, no functional changes
new b0200ba update version strings to 1.0 for published release
new ecbbfb5 added DOMAttrModified to the Mutation Events, cache expires too on attribute changes
new 50ca24b changed version strings, added querySelectorAll for the select() method (only available on Safari > 3 currently)
new de9e6aa camelProps converted to an object, shorter and faster way to match attribute names
new d25c167 more speed improvements, added native Selector API support, reorganized attributesMap and general cleanup
new 91c953e removed unused match variable, tweaked comment
new 2949969 update version strings to 1.0.1 for releasing to original Google Code repository
new c7cbe43 fixed bug in class name check, missing spaces around match parameter
new bca2663 prototype selector test unit written by Andrew Dupont, adaptor for prototype written by Samuel Lebeau
new 5ca7d62 update prototype to version 1.6.0.3 for testing with their selector unit
new 5da119b jquery selector test unit, converted to standalone for use in NWMatcher testing
new 5cf615b needed helpers and data files for jQuery selector test unit
new d41fe02 complete rewrite of the engine and the caching system, now uses Mutation Events correctly if available
new 9bfae8d an adapter/extension example on how to replicate the functionality of jQuery special selector in NWMatcher
new ff928e3 added a revised insensitivity map and related checks suggested by jdalton
new 27f4712 bug fix, forgot to clear an array used recursively
new 19e3bf3 previous clear array fix was applied at wrong line, moved down
new 0be6e11 typo error that prevented DOMNodeRemoved events to flush the cache
new 53e92e5 better detection for best children collection, fixes Safari 2.0.x having a different children implementation
new 293ada3 removed elementsCount() method, dangerous as public method, code now compiled inline
new 6197f34 removed expireResults() method, DOMAttrModified events will call expireCache() now
new 7739931 removed getID() generation method, substituted by faster inline code
new 806165d removed unused feature testing methods and constants, fixed typo errors in comments, adjusted descriptions
new 1d1e27a removed duplicate :root and :empty cases, were moved to structural peudo-classes
new a77eb04 added a check for Safari 2.0.x in insensitivityMap treatment
new 623e46a reduced the caching system to get some additional performance
new 3fd0546 fixed bug where document would go in a loop it should not enter, the children collection does not exist on document
new 23cec63 in previous caching optimization I forgot to clear the local storage when doing nth child queries in browser not supporting Mutation Events (IE)
new 4d2d2fb reworked stripTags() method used as replacement of buggy innerText in Safari 2, corrected regular expression and function as for kangax suggestion
new 78775e4 handle Opera bug with gEBCN on utf-8 class names, correctly use tested functionality (BUGGY_GEBCN)
new 8027c04 adjusted regexp to catch more cases of serialization for built-in functions
new ba9ecd8 added extra spaces to attribute regexp to make matching less strict
new e7d9b3d extra check on id attribute for conflicts with name attribute (IE)
new c149555 reverted previous fix, it didn't fix anything on IE
new 3e5a03d improved checks in selectors with ID, removed unused code
new 5fb0d3a improved byId() method by checking for conflicting names, now used in #foo selection/optimization
new bf06236 fixed and improved internal getAttribute() method, now uses getAttributeNode() most of the time to avoid nasty id/name/length conflicts in html source code (especially in forms)
new bcc3db2 reduced the number of replace() to handle special escaped chars in identifiers like ID, NAME, CLASS, now centralized in each related method (suggested by jdalton)
new cc5acc5 changed internal name to attributesURI, added extra attributes to the list, removed unused attributesXml regexp, cleaned up some syntax, removed not pertinent comment
new fff95df reworking byId() method to catch edge cases overwriting of element properties like id/name
new ab11c86 cleaned up and shortened the slicing optimization block
new 53ebad1 avoid using length property of HTML collections in byId() method
new 53fc4aa avoid lint errors and console warnings in firefox 'strict mode', add better fix for Safari bug with selectedIndex property
new a0124ed readded internal NATIVE_GEBID and BUGGY_GEBID testings as backup, current tests maybe do not completely cover all aspects of XML documents and/or document created using native implementations
new 21e092b avoid warnings in firefox 'strict mode'
new e12acc5 commented currently unused Attributes map, now attribute name case mapping should be resolved by using getAttributeNode
new 9d684f9 fix unicode range to include charachters 161 and higher (UNICODE 310/ISO 10646)
new 1c8cbd4 changed nwmatcher version to 1.1.0 for release
new 8648c03 improved :not() pseudo class to accept more complex selectors as parameters, fix to avoid ID optimizations inside :not() expressions
new dd5055e fixed buggy expression missing escapes in :target pseudo class resolver (jddalton)
new fd733e2 increment version to 1.1.1beta, applied pending fixes to previous 1.1.0
new adf0fac better feature test for functional slice() method (to exclude Opera 9.2x), this let us shorten/improve the toArray() method (jddalton)
new 177ef2f fix inconsistency for the :xxxxx-of-type() pseudo class where it could have failed in mixed lowercase uppercase tags (jddalton), changed strategy to avoid visiting non element nodes in nthElement() and nthOfType() methods
new b8c9326 reduce the number of access to nodeName and className properties (kangax, jddalton), optimize result set augmentation by adding few extra variable names to main loop
new c43f990 syncronize changes done to nwmatcher, optimized augmentation of the result set
new ce4c353 minor code changes to attributes and :target resolvers
new 92bd993 reduce the number of function calls by calling native getElementsByTag() directly, comment nodes bugs are handled conditionally for IE in the main loop over the result set
new 8713d90 added missing variables to the match() method, changed the :target resolver again to use the hash property, always define a working base document, cleaned up extra parenthesis and obsolete lines
new f158db4 nwmatcher: release 1.1.1 (bugfix)
new 9af0827 changed all node names checks to use lower case uniformly, fixes HTML/XHTML/XML node names checking, removed ugly optimization on siblings in favor of cleaner/shorter code, adjusted comments/syntax
new fcbd827 revert part of previous change http://github.com/dperini/nwevents/commit/52fac32b0d7d2775339f0d1befa0aaa210e81a51 on nthElement() and nthOfType() methods, the previous variant was slightly faster
new 38e13a3 fixed missing variable initialization (kangax)
new 4009bcc added back a better optimization for general siblings combinator removed in previous commits
new e63b83f moved back to previous in-line code compilation, for 6 types of selectors (first|last|only)-(child|of-type), in place of more expensive function calls to NW.Dom methods
new da1598c passing host object (document) and root element (documentElement) to compiled function can improve some selectors
new 9e62426 fixed wrong loop termination in sibling combinator, due to optimization done in http://github.com/dperini/nwevents/commit/8777e3b3dae5ee330578e1e04f38e03267673fea
new c588a4b fixed sibling loop optimization again, reversing the original strategy has been tricky for this, original loop using previousSibling left in and commented
new 15a9f23 fixes for unicode range bugs in Safari 2.0.x using a negated hexadecimal range class instead of a unicode range class
new 3b84373 uniformed the feature tests, cleanup used references to avoid leaks
new c4e1f61 fixed/improved testing in pseudo classes :active, :hover, :focus and in ui-states pseudos :enabled, :disable, :checked, :selected
new 78f5897 improved performance on DOM fragments, reorder of prefiltering optimizations
new 5fa9f0b minor tweaking to internal native replacements byId, byClass and getAttribute
new ff8e3c0 added new bug detection for when querySelectorAll does not take in cosideration hidden input elements while querying the DOM for :enabled or :disabled pseudos (Safari 3/4)
new 1d6d851 fixed prototype test unit for querying enabled/disabled control elements
new e09fece expanded variable names to something meaningful in feature testing
new 93deea4 solved browsers bugs in qsa api implementations, reworked bugs detection to account for selecting :link pseudos broken in latest Safari browsers, doesn't handle the mailto: protocol on hyperlinks
new b1feb97 fixed support for UI element states and dynamic pseudo-classes, should now be more compliant to specifications (:target, :active, :focus, :link, :visited)
new ef26a1d fixed bug in match() method when using comma separated group of selectors (jdalton), changed compile() to accept a second 'mode' parameter, this specify compilation for match() or select() operations
new 6f00b34 tweaked again qsa bugs detection, adjusted some comments, moved slice declaration at top for reuse and corrected :link pseudo check
new bf8aa72 corrected behavior for selector extensions, status of each external selector should be ORed and error check should be moved out of the loop
new bda53a7 minor comments tweaking
new 0930be8 adjustment in bugs detection for querySelector API and IE8, reduced code, improved resolution through fall back client_api() (thanks to kangax for the HTML5 tip and to jdalton for tweaking/reduce the needed code)
new 4e18a32 adjustments to CSS3/HTML5 specifications for :enabled/:disabled and :link/:visited pseudos, added small isLink() helper to reduce code size
new 508810a improved isLink() method to use hasAttribute() to comply with specs (tip from jdalton), unrolled comparisons are faster than equivalent regexp (tip from kangax)
new 7c64f0e reverted Prototype test unit for :link as is in the original, it is correct how it tests :enabled and :disabled pseudos
new 47c4e6d added an optional parameter in select() method that allows to pass in an initial array object, in this way libraries can pass their own Array or Array like object (kendsnyder, jdalton)
new e7a6fc0 changed the add-on to use the push() method, removed a compiler variable
new ceaa7fd added traversal file, contain methods from Juriy Zaytsev fork, up/down/previous/next to match Prototype behavior
new 0fbe346 improved byTags() method, removed unused variable and duplicate code, reduced two .toLowerCase() calls to an insensitive case .test()
new 45d3e74 removed the '_' character from various RegExp, it is already included in the \w class (from comments by kangax)
new 797dab2 minor bug in select_qsa(), forgot to pass the new 'data' parameter to client_api() fall back method (submitted by jdalton)
new a18f813 corrected and tweaked comments, reorganized/moved some code (non CSS3 standard selector moved as last), no functional changes
new 0570207 added support for newer Element Traversal properties previousElementSibling/nextElementSibling to improve speed on browser supporting them like FF3.5 (suggestion by kangax)
new 80139c9 improved isNative() to detect methods by matching browsers specific decompilation signatures
new 0b222e8 updated table of attributes that must be handled in a case-insensitive way, tweaked comments that turns Safari into the correct implementor in quirks-mode (jdalton)
new 4531a43 corrected testing for faster traversal properties 'nextElementSibling' and 'previousElementSibling' present in newer browser versions (kangax)
new d55d268 forgot changes to reverse testing code for case sensitivity bugs in quirks mode (jdalton)
new 7936be6 corrected xhtml and html tables for case-insensititvity even for 'class' attribute exception in Quirks mode, added check for XHTML documents to assign correct table
new 04e5a63 removed some blocks of comment lines related to attributes mapping between DOM and HTML namespace to avoid further confusion, moved HTML5 case-insensitivity comment near it's related table
new 3b1005e removed unused getChildren() method, leaving that in as public method was a bad idea leading to confusion as for the naming and meaning [GarretS]
new c994485 stealing decompiled signature from a more related method, preparing to be forced to accept Opera 10 unconscious way to freely do that differently for different methods even in the same browser context
new 7137e5f added more feature test for a recent Opera bug in QSA with the :checked pseudo-class, modular bug adding for QSA showing it's strength here: no speed penalties and no errors
new 9219913 removed XHTML self closing tags on input fields since as for current specs are forbidden [jdalton]
new 0c959a8 use a more explicit syntax to steal the 'window.open' decompiled signature
new 263632e remove dangerous comments between 'else's and 'if's statements, they will confuse the packer while minifying sources
new 25e85aa fixed syntax errors, variables redeclarations, ambiguosity and missing function return values, should always run jslint and not blindly trust :-)
new ac506c4 replaced some UTF-8 chars in the code after being hitten by minifiers, a great improvement to keep the charset range 0-127
new 564c43b corrected another error in the check for the correct property name [pdanpdan]
new fb096a8 fixed a typo error, some missing chars in the validator expression and an overwritten arguments
new ee51b48 cleaned up syntax/indentation and jslint warnings
new 0c67ebc Safari 2 support fixes, missing compatMode property and fails to return named functions
new 6db90fb marked as version 1.2.0, removed an extra comment line
new a5de218 moved Safari 2 stripTags() near other fixes for the same browser, methods only used internally not exposed as public, added missing comments to the compatMode fix too (I like comments)
new 7236e66 removed all instances of the 'this' keyword, removed the need to use the call() method to adjust context, should make things easier for implementors
new 717d6ac changed a variable name to camel case for consistency in class resolver (kangax), corrected duplicated comments and some wrongly described return values
new 8e3d6bf replaced mistyped char in the tagName regular expression
new c2483c6 fixed a doctype handling/misbehavior in Safari 3.1, if not set/present or if set to the new HTML5 format document.doctype.systemId will be null (jdalton)
new 9a357f2 tweaked the regular expressions for ID, TAG, CLASS and grouping, they are now longer but slightly faster, they will be needed for the upcoming changes to the select() iterator
new 8cb4f8f better cleanups in the feature testing sections, shortened code and maybe avoid some mem leak on IE, changed a couple of comments and removed unused ascii charset references
new 3883dd4 further modifications to the regular expressions and their grouping, optimized the operators and pseudo matching code to better extract parameters and avoid code for repetitive replaces of parenthesis and apices
new add0ab3 reviewed id, tag and class conditionals, choosed the most spec compliant matching, leaved out some speed improvement in favor of less variables declared in the scope of each selection, removed commented alternatives
new 538bbc8 improve descendants and children macthers by exiting the loop before stepping up to passed context and as soon as one match is found
new 8c41b4e added a new check to avoid caching disconnected nodes and fragments (Mutation Events will not work on those nodes), new isDisconnected() internal method added to resolve this, added a 'from' parameter also to the matcher, it may be useful for future extensions
new 8960d45 added a bit of native elements api for child pseudos just to start with it, could be improved for newer browsers in a later review
new 9bea153 moved docType variable atop the file, removed dangerous '*' fallback in byTag() method to avoid returning inverted selections, cleaned up variable names in byClass reusing the same names for consistency and better file compression
new 1aacf42 context handling moved out of conditional block to ensure context is always correctly set, changed to [ ] notation in place of new Array()
new 5d912af reverted to use array augmentation through the length property in compiled functions
new f721988 changed Snapshot object into constructor and made methods reference members of the Snapshot prototype (jdalton, webreflection)
new 7c17d42 new timestamp, removing unused methods they are now embedded in the compiled functions, faster and less code
new 96e0839 adding new concatList() and concatCall() methods that will replace toArray() for fast nodeList conversion and concatenation (jdalton)
new f8506fb make the caching mechanism temporarily pause itself if it detect an abusive caching pattern (jdalton)
new 41b710d fixed bug with IE where the engine was checking elements against the document using .contains()
new 831f63b adjustments to the latest caching patch, define private var 'snap' after the Snapshot prototype is defined and create the 'isCacheable' variable for easy access inside 'client_api (jdalton)'
new 9831952 reverting to older method for id matching in bad html, this is needed to pass Prototype selector unit test
new 3984688 remove an optimization that seems to break recursion with multiple combined operators
new 85af3f5 removed unused code to optimize size and speed, residuals of testing IE caching alternatives (fearphage)
new 4375f50 added an extra fallback method to isDisconnected() for browsers missing both .compareDocumentPosition() and .contains() in case one exists (jdalton)
new 977e9d8 added 'documentOrder()' and 'unique()' methods preparing to handle coming iterations method
new b4c0c34 change QSA branch to use new concatList() and concatCall() methods to handle the new callback parameter, removed some duplicate validations and checks
new f1116f5 reworked and renamed 'documentOrder' method to 'sortByContextOrder()' (jdalton, kangax)
new d15386e fixed bug in non yet used unique() method: data was not returned, use client_api when passed a context, make more extraneous API private to avoid confusing developers with cluttered API
new d76f790 indentation and white spaces adjustments
new 261afdd fixed incorrect slice() testing in IE, added Safari 3.2 gEBCN bug testing, simplified mutation events checking, changed isBuggy for isSupported where more meaningful (jdalton)
new d4c635b added more needed regular expressions, added more new Element API optimizations, improved select_qsa to now fallback to faster client_api engine with simple selectors (jdalton), avoid quirky ways of getting undefined variables
new 0c60263 added callback capabilities, element being added to the result set will be passed to the provided function as parameter
new d150660 fixed Safari 3.2 feature test for bug with cached class names, reverted to a previous faster version of the sibling selector optimized for browsers having new Elements API (jdalton)
new 228487d improved the catching ability of the simpleSelector regular expression (kangax)
new 0c0bd75 changed the external jquery extension to synchronize with changes in compiled functions in nwmatcher.js
new 80940ab invoke provided callbacks also when returning cached results, use a faster resolver for simple selectors in client_api
new af9eadb avoid creating dynamic regular expressions in while loop, unrolled into an or conditional to check both lowercase/uppercase with the latter having precedence
new 8abe85b regular expressions now to use new character class to match specs whitespace definition, reverted to previous method of normalizing class names and matching using indexOf(), stronger check for className property to detect if it is an usable string (jdalton, kangax)
new f52e6a4 added native trim if available and a better fallback, tweaked regular expressions and removed space in className test, renamed a var 'node' to 'element' for better code compression (jdalton)
new be76caf improved table lookup access time for Structural and other pseudo classes (jdalton)
new 3376b81 forgot the 'break' statements in the switch, changed variable 'node' to 'element' for consistency/compression, use a lookup table in the isLink() method in place of three conditionals
new c2945ef rewritten part of the id, tag, class optimimzation block, temporarily removed MULTI TAG optimization, will probably reintroduce it later, removed the byTags() function used to apply this optimization
new 78e0386 split apart the check for disconnected nodes, fixed changes of var 'node' to 'element', avoid one var in isDisconnected() method and removed unneeded double parenthesis
new 4707973 rewritten the byClass() method optimization to also respect case insensitivity (jdalton)
new 871f585 moved more regular expressions atop the file as static, added missing isClassNameLowered definition, corrected manual collection of elements, moved the compilation of the ad-hoc functions inside the loop to not build them when not necessary (jdalton)
new 63fbfde short-circuited some duplicated code in ID optimizationi and removed a unnecessary nodeList conversion, added missing className variable, removed unneded parenthesis (jdalton)
new 79c4ca4 moved trim declaration atop the file and added a feature testing, removed an unnecessary [ ] and tweaked some comments
new 9a79489 indentation changes
new 72484cb moved the Selectors object down near the companion Operators object (jdalton)
new ba4d36f speed up id matching in compiled functions, shortened code in compileGroup(), added reTrim used to remove leading/trailing spaces from passed selector strings
new 84a2365 speed up optional pseudo extensions by using native DOM methods instead of calling out replacements methods
new 577199a replaced variable names to more meaningful ones, formatting changes to improve readability
new aa0b47c added newest jQuery unit tests and external support file
new adbcec2 added newest jQuery unit tests and external support file
new d343c86 removed unused IS_EMPTY() and toArray() methods
new 9b82dbd Merge branch 'master' of github.com:dperini/nwmatcher
new 6f20039 added LICENSE file
new c9f5d5d shortened compileGroup() code, improved 'id' resolution in compiled functions maintaining safeguards against IE bugs in getAttribute()
new 8a12625 renamed storage for passed in contexts from Roots to proper Contexts
new 6bdd332 cleared probably dirty 'expr' variable in user extensions code (jdalton)
new 370d91d set DOM results caching to false by default to give the developer the option of enabling it at their own discretion via NW.Dom.setCache(true) (jdalton)
new 2a8c80f correction for simple 'id' selectors, avoid returning 'null' value in the results when the element is not found
new 89573f8 fixed bug in Opera 9.25 related with similar IE bug with id/name resolution (jdalton)
new f2cbc6a better detection for comma group selectors, saved result in new var 'isSingle', moved down code only needed for single selectors
new 02be602 improved optimization step before invocation of the resolver, added helpers method getChildren() and getNextSibling()
new 04cfac8 improved code size and speed of byClass() method and enabled its use for browsers missing native gEBCN
new 62ba621 improved code size and speed in the resolvers for positional selectors (nth/of-type), do not add expandos on IE browsers to avoid leaks and page reflow (Dean Edwards)
new 5f20d47 avoid creating a global 'j' variable, the declaration was incorrectly mangled (jdalton)
new de30636 added exclusion patterns to BUGGY_QSA since these are not handled, these pseudos and the '!=' attribute operator will be resolved through client_api, some warnings in the js console will also be avoided
new 5a5bced reduced code size and improved first/last/only/of-type pseudos resolution, added better/faster code for NATIVE_TRAVERSAL_API on browsers supporting it
new 7ec924e avoid repeating tokenization of the selector string if it has not changed (jdalton)
new 5e1e63d reordering of code and formatting changes only, renamed some var names to uppercase, removed CHILD_NODES definition, removed unique() and sortByContextOrder() not currenlty used (jdalton)
new ca18a56 renamed some RE moved atop the file and removed unused ones, avoid creating extra variable 'disconnected', changed nth resolver to use a shorter path to indexes now renamed indexesByNodeType and indexesByNodeName
new fd3bf5a avoid repeating node list conversions or passing array to concatList() if not necessary, improved last optimization pass to catch and reduce more cases
new 96d5430 changed to preincrement in loops wherever possible, removed unused code/vars, ajusted argument name 'fn' to callback
new 286857d added callback invocation when only one element is found since we exit early without calling the compiled function (jdalton)
new f3ead8f added fix to NATIVE_MUTATION_EVENTS feature detection to account for bogus implementations (jdalton)
new 73275b0 added feature testing for lowercase tag names support, tweaked 'id' and 'tag' resolvers for performances
new 060350f added case-insensitive match resolver for className in quirks mode (jdalton)
new 178a407 added a new parameter to resolvers so they accept the 'data' parameter, adjustments to the compiler to reduce unused local variables and changed the iteration to a while loop, shortened code size for returning the reulst set and used 'data' parameter to do concatenation in the lambdas themselves
new 868b9f6 made byClass() method always return array for consistency, 'elements' now defined as empty array
new 948bb5e tweaked descendant operators, added a byClass() call to catch more cases in the ending optimization block
new 1887ff8 temporarily removed the caching system, will be implemented later as an external add-on
new 897150a added rewrite of the caching system as an add-on, this is most of what has been removed from the main engine file in the previous commit, doesn't work yet.
new bc67a7b added a separate native_api resolver for simple selectors id/tag/class used by both engine forks
new fe285ed added 'data' and 'callback' parameters also to the match() method, fixed not passing correct arguments to lambdas (jdalton)
new ea780a6 changed/moved the definition of the simple selector regular expression, it is now featured tested for speed performances
new cb3b117 opted for a slower but much safer solution in simlpe ID selector resolver (jdalton)
new 715b3a2 small adjustments to feature testings, uniformed used names, nullify testee divs and forced to return booleans
new f9d2e76 ensures the .style property exists before accessing it in Safari 2 (jdalton)
new e7c48cc changed names of some regular expressions in feature testing (jdalton)
new 70bc317 made optimization on tag name safer, removed unneded '*' from Optimize.(id|tag|class) regular expressions and adjusted optimization blocks accordingly (jdalton)
new bac53a2 reverted sibling resolver to older but safer and shorter code
new dee0a44 fixed 'of-type' queries for when no context is specified
new 12ea13e added 'context' fall back to byClass, avoid double conversions to array
new 53d43e3 reworked native_api for simple selectors, reduced code size
new 79b72d1 rewritten client_api method to avoid unneeded extra optimizations that are handled better by the dynamic selector compiler
new 6e80f5c shortened code in byId method and minor formatting changes
new 0546c43 fix simple selectors 'id' resolver to correctly match passed context with disconnected nodes
new aed374e tweaked select_api for performance, short-circuit query to client_api if lambda already compiled (jdalton)
new fce366d added missing 'context' fall back to IE fork of byClass since it is exposed as public method
new 62bacf8 added '*' processing to simple selectors for non-IE browsers
new e011eae added '*' processing to simple selectors for non-IE browsers
new 3c1244f removed forgotten code block in select_qsa from last cleanup
new e3ccee3 Merge branch 'master' of github.com:dperini/nwmatcher
new 21cc888 removed currently unused methods: getChildren, getElements, getNextSibling
new 5c51ceb fixed GEBCN feature test to use a string instead of a regular expression, formatting changes
new 3b1d564 allow browsers missing native GEBCN to take advantages of the forked byClass() mehod, for IE and older browsers
new a8fb929 fixed wrong feature testing for :enabled/:disabled pseudos
new 02cb2cc reverted last commit to adhere to latest spec drafts even if not all QSA implementations agree yet
new 1dfb9c9 removed function name from declaration of 'client_api' method since it is not supported cross-browser, removed formatting spaces in other functions for consistency
new cdebbfe revert back a check in child/descendant resolvers to avoid stepping up to document node
new d251ba7 added setQSA() method as a debug helper to enable/disable the use of native QSA (jdalton)
new 27a6967 avoid extracting parenthesis around pseudos parameters and having to remove them later
new 3038621 corrected and readded complete of-type resolvers, check nodeName instead of nodeType to ensure filtering out non element nodes
new 065ab73 avoid checking for strict true/false booleans on control elements, they are actually strings if set in the source HTML as attribute values
new 7243bc7 remove duplicated checks using the 'in' operator on control elements, test 'hasFocus()' method is available before using it
new ee39861 use an alternate method to find the index/position of the last match to avoid using non standard RegExp.leftContext (jdalton)
new f4c06d9 changed variable name from NATIVE_TAG_MATCH to TO_UPPER_CASE for clarity (jdalton)
new c5ca73a completely rewritten structural pseudo class resolver in the compiler to better match QSA behavior and results
new dd9cd89 globally changed/tweaked previous checks for element nodes, avoid using a slower '.test()', it now uses charCodeAt(0) to verify that 'nodeName' first character is at least A-Za-z, in IE browsers this filters both comment nodes and fake closed tag elements as in '/video', '/canvas' etc. (jdalton)
new 555a758 added a feature test for native '.hasFocus()' support, used 'isNative()' since IE6/7/8 have different function representations (jdalton)
new 2b4d45b reworked all feature tests to not use '.innerHTML', removed duplicate 'context' variable and used 'base' as replacement
new 800283b moved down the indexes resetting just before calling lambdas and only if necessary, removed 'data' assignment in favor of inline conditional return where needed
new b27f6c3 change to avoid resetting current element in the first iteration of 'compileGroup()', reordered lambdas var declaration, tweaked some comments
new a3e45d0 made reSplitToken and reSplitGroup shorter and added escaped character to the latter, tweaked byClass() to check for className being a string
new 589685b forced check for ':enabled' and ':disabled' pseudo resolvers to be case insensitive (jdalton)
new 7bd22f9 remove unneeded node type checks on child and descendant combinators
new 41a8713 added an optimization for [name=...] attribute resolver
new 5d6b7f9 reverted to previous reSplitGroup and reSplitToken regular expressions, leaved in previously missing escaped character
new c8988ad added an extra check to verify className is not null and contains a valid string
new 5bc8060 missed a '+' character in reEdgeSpaces, renamed to reWhiteSpace to match what it represents
new b7e3064 removed extraneous characters that were added in a previous commit, removed unneded '|| [ ]'
new 541c289 reverted to using 'in' operator in the resolvers for ':enabled' and ':disabled' dynamic pseudo classes on control elements
new 37d55c9 correct a typo error in 'byClass()' and retrieve 'className' using 'getAttribute()' to ensure coverage on more host objects
new 0339c30 changed compiler 'macro' name from SKIP_COMMENTS to SKIP_NON_ELEMENTS to match more precisely what the process in it does (jdalton)
new cba4084 changed the name of 'base' to 'doc' to avoid confusion, 'doc' variable is updated for each selection so the in-line tests all references the ownerDocument of the scrutinized elements (kangax)
new b614750 check for missing left/right context in the query and add it using defaults, added more precise validation cases to reValidator (jdalton)
new 6418c30 improved 'byId' method changed var names for consistency, added fall back loop if GEBID method is missing on the host (jdalton)
new bf3005c fixed older jQuery test to use the proprietary pseudo extensions ':first' (jdalton)
new bb9a765 changed name of 'isClassNameLowered' to 'isQuirks' which reflect the test we perform, added helper variable 'isXML' to aid in picking up correct methods for different hosts
new fc6ef4b added detection for different host objects and choice of methods in className resolvers (jdalton)
new 0b9bef4 moved persistent parsing declarations atop and initialized 'doc' to current loading context, removed some empty lines
new 310d51d made the 'isXML' declaration to be refreshed for each selection operation
new f202f69 removed strict check for (even/odd) in the 'spseudos' RE and changed a closing parenthesis to hex notation to avoid breaking correct highlightning '()' pairs in text editors
new 9923f24 optimized a bit the extraction of 'lastSlice' avoiding repeated access to matched results
new aaa2b8f shortened and improved the id, tag and class optimizations blocks
new 5408070 cleanup jQuery adapters, improve syntax and avoid globals (jdalton)
new fe18488 added a check for XML hosts to 'select_qsa' fork, avoids using buggy QSA for non HTML/XHTML hosts
new 356b7ef removed 'name' optimization since it opens up a can of worms, compiler handles those bugs perfectly for now
new 90a3cdc improved IE id/name conflict detection to cover more cases where GEBID is not usable, without using 'innerHTML' it is hard or impossible to set 'name' and 'type' attributes on controls in IE and expect meaningful results; even if this is just an inference for IE it seems to cover similar bugs also on Opera
new ea7005c made previous patch test for 'getElementsByName' method before using it in-line, this handles host objects missing 'getElementsByName' which is necessary for the GEBID feature test, shortened declaration for the isQuirks flag (kangax)
new 72c883c changed using 'uniqueID' instead of 'sourceIndex' in IE as an element indexing source (jdalton)
new d56c115 toggled setting for the 'class' attribute in Quirks mode, tweaked attributes resolver to do better case-insensitivity matches in those enviroments
new d21abfa added a feature test for Safari 3.2 (and <= 4.0.2) for a QSA bug with class name case-insensitivity in Quirks Mode (jdalton)
new 1034211 toggled order of tests to ensure the bug is met (jdalton)
new c214e87 merged 'isQuirks' / 'compatMode' and removed the latter since both are based on the same detection informations, moved and reordered blocks in feature testing removed commented code, applied adjustment needed to pass jslint
new e89920d replaced 'slice()' test for conversion to array support (kangax CFT)
new 001663f added a BUGGY_DOM_LENGTH for bugs when an element with 'id=length' is present in the document, not necessarily in a control element for some browsers, not used currently because we already avoid using the '.length' property of DOM objects like HTMLCollections or NodeList
new 9f8b60f removed dangerous typo error, replaced semicolon for colon (jlint)
new 8e13004 improved RE_SIMPLE_SELECTOR regular expression by reusing 'encoding' string (jdalton)
new 8282c88 uniformed all remaining loops to use 'element' and 'elements' variables for better compression, added missing comments to conactList and concatCall, bumped datestamp
new edbb1d7 reverted to previous insensitive double check on 'nodeName' necessary to cover mixed HTML/XML fragments on the same document, the TO_UPPER_CASE macro is not safe here at the moment since it relies on browser caps instead of document type and namespace (jresig)
new e6240ce fixed Safari 2 detection of Strict/Quirks mode after merging of 'isQuirks' and 'compatMode' (kangax)
new 1b06535 reformatted the long feature test checking the QSA implementation in various browsers
new 123c748 moved 'compile' and 'setQSA' methods as internals in debugging utilities, avoid the 'this' keyword to make integration easier, removed non necessary 'toString' conversion of compiled functions, tweaked/added comments
new cdbaf33 added regular expression to aid in guessing document type, added missing comment
new cdf3781 changed jQuery & Prototype selector unit tests to avoid using non standard '!=' attribute operator
new d4e6694 refactored attribute resolver to avoid some unneeded replaces and other operations in case of 'hasAttribute', removed the non standard '!=' negation operator, the CSS standard negated pseudo-class (:not) should be used instead
new a7c3cb1 minor corrections to the last commit for the attribute resolver
new b1cd8e6 tweaked id optimizations, removed duplicate LTR id optimization, removed commented code
new 0cc341a corrected detection of a buggy state in the DOM, maybe due to an element having id='length', transformed into a callable and left in the BUGGY section while looking for a better method name, not currently used
new b94ea05 converted static isXML detection to a method (accepts elements/documents), tweaked byClass duplicating the loop to maintain the speed and to avoid a check for each node, changed var names to use element/elements in the loop for consistency
new bdcae84 added an alternate method to guess the type of document by parsing prolog/doctype nodes, maybe useful on IE/Opera and/or when needed info are not available, Firefox has 'document.contentType' property to check which type of HTTP headers were sent too but is the only browser having it
new 57276d4 reverted to fixed declaration of empty 'data' array if not passed to reduce the number of times it is done in the code
new beb6069 added an extra check on 'length' property for className values found in 'byClass', tweaked comments
new a61b453 improved document detection for class resolution in browsers not supporting document related XML properties
new 1d7cc51 prepended extra check for element having a 'type' property in enabled/disabled pseudos since it is faster, corrected jlint warnings and tweaked a comment
new 798787e added document type detection in TAG resolver for sensitive nodeName match in XML documents
new 0deae4e improved detection of correct insensitivity table to use, catches more cases for the parsed document type like HTML5, should probably be transformed in a method too
new 3caae6c added doctype detection to the ID resolver since properties may not be accessible on some host, use 'getAttribute' on those hosts
new 9862353 changed variable name from 'element' to 'node' in get/hasAttribute to be consistent with what it contains, removed unneeded 'toLowerCase()' since get/hasAttribute are case-insensitive on attribute names (jdalton)
new 0889a9e added resolver for the CSS3 'lang' pseudo-class, tweaked 'active', 'hover' to avoid XML documents, tweaked 'target' to check 'location' before using it and be more precise on the check for the 'href' property, removed unneeded cast to boolean in 'visited'
new bafeb51 forked version 1.3.0, will remove unused code in master to freeze 1.2.0 for release
new 41e2aac removed currently unused code 'BUGGY_GEBID', 'BUGGY_DOM_LENGTH', 'isDisconnected', 'getDocumentType' and a related regular expression, they will be reintroduced in upcoming versions if necessary
new b33a7af removed a couple of optimizations on compiled functions that are not strictly necessary for now
new c185e3d fixed 'lang' resolver to take in account any parent having the 'lang' attribute set (jdalton)
new 143f6dd no need to exclude QSA for XML documents, seems to work well enough for most use cases
new d4bfd97 improved granularity of RE_SIMPLE_SELECTOR (jdalton)
new 1225db8 fixed a couple of jslint warnings
new 949e341 retouched byClass again to avoid having duplicate code and still maintain the speed, renamed variable again for consistency with other methods, removed a space
new 5a03aba made setQSA work again from user space by short-circuiting 'select_qsa', changed 'select_qsa' to use NodeList methods and 'push()' to get element references which is normally faster in newer browsers having QSA, minor shortening in the 'one' element case
new 623e17e reordered pseudos exclusion in RE_BUGGY_QSAPI regexp, moved ':selected' and ':contains' at the end, removed match for negated attribute values '!=' for consistency with 'client_api' since it is not standard and alternatives exists
new dbfe504 slightly moved blocks of code to avoid checking several times the 'done' flag, 'done' signals that the selection has ended but result conversion may still be needed
new 1eaa59e reinserted optimization for IE on 'nodeName' resolver, now XML is checked and the expression adjusted adequately (case sensitive)
new 5041a85 minor improvement in 'match()' method getting 'doc' and 'root' references
new 18af0b2 moved 'data' arguments as last parameter for both the 'select()' and the 'match()' public method, changed also in internal calls to 'native_api'
new 9f8a083 removed static INSENSITIVE_TABLE in favor of a more dynamic method 'getAttributeCaseMap' to detect the document type
new f325b4b fixed wrong optimization in returning elements in previous commit
new 81e2e4c changed isQuirks and isXML to both be dynamic methods depending on passed host and have related isQuirksMode and isXMLDocument variables to keep state, added an extra check on child/descendants to avoid stepping up to document, do not save compiledSelectors for extraneous document types (XML/SVG)
new 49fd657 added back an optimization (corrected) that was removed previously, fixed a minor problem with the attributeCaseMap, fixed a jslint warning correctly identifing a problem in 'byClass()' about a variable declaration hiding arguments
new 32a8e3d avoid querying XML documents by id also if they seems to exposes an usable GEBID method
new 5daf2cf added a check to short-circuit 'byId()' for XML documents, shortened and improved check for buggy id/name attribute conflicts to cover various Opera and IE bugs
new f370357 ensure the 'from' argument contains a valid node before calling 'native_api' even if caller did not provide one
new 3c94aff tweaked the 'isXML()' method to correctly handle more cases on more browsers
new e16df2f avoid repeating a statement, should only be executed the first time a selector group is parsed/visited
new ec98548 removed 'N' variable in compiled functions, instead use 'c[k]' for 'select()' and 'k' for 'match()', changed compiler loops to 'for' since we need to increment 'k' later now
new f495b26 removed 'N' variable in compiled functions, instead use 'c[k]' for 'select()' and 'k' for 'match()', changed compiler loops to 'for' since we need to increment 'k' later now
new 0d0ae07 trimmed code size in 'byId' by reusing the same while loop, also avoid a call-out to 'byTag' for perf (jdalton)
new 8a12964 changed the checks for non-elements using alpha comparison of nodeName '@'
new 944aac2 made 'byClass' and 'byTag' always return array, 'byTag' now removes non-elements earlier, removed SKIP_NON_ELEMENTS from compiled function since now only elements are passed to compiled functions
new f37e24f rescued and reviewed previous optimization for nested general siblings, fixed case non returning converted array as result
new ed18cc5 swapped order of CLASS & TAG optimizations, CLASS is now last
new c5b9574 fixed 'byTag' which could severely mess up results with '*' on IE
new 3928bcc fixed a problem with general siblings resolver missing a check for non elements in the non NATIVE_TRAVERSAL_API fork
new d5eabc6 slightly improved code for the 'byTag' method on IE browsers
new 2e9b223 changed the ID optimization RTL to execute before the LTR one and tweaked to return earlier for not found ids, removed a blank line
new de3b672 enabled RE_SIMPLE_SELECTOR optimizations that were left disabled for IE, now both 'byTag' and 'byClass' methods are returning converted array
new 51138f5 removed non needed lines to conditionally convert node list to array, now all needed methods already return array
new 552d861 duplicated code for TAG & CLASS RTL optimizations, one branch for browsers having GEBCN and one for those not having it, the optimizations must be performed in reversed order for performances
new f9da03c removed unused Safari 2.0 detection using [object AbstractView] uniqueness, added/tweaked comments
new 53aaf90 reverted NATIVE_SLICE_PROTO feature test to check first element of the array because Safari 2.0 actually returns an Array with undefined values in it, added check for this feature as safeguard to 'byTag' and 'byClass' methods
new cce0332 correction to 'lang' pseudo resolver 'en' matches any of 'en', 'en-gb', 'en-us', and if not set on the element itself it is inherited from a parent (jdalton)
new c16d906 minor tweaking to Prototype unit test description of a changed test, '!=' in attribute operators has been deprecated
new a9013a3 fixed missing 'substr()' on source of comparison too for 'lang' pseudo resolver, added extra safeguard agains XML documents by checking the 'lang' property is not 'undefined', removed a space (jdalton)
new 3a517eb avoid invoking 'getAttributeCaseMap()' for every selection operation, just do it when necessary in the attribute resolver
new 326e78a changed the way XHTML_TABLE and HTML_TABLE are selected for matching in attribute resolver, XHTML_TABLE will be used only for correctly served XML/XHTML documents, this change was necessary since IE doesn't handle yet the XHTML Media Type and to avoids bugging users/devs about wrongly served XHTML pages
new dc61acb changed the way XHTML_TABLE and HTML_TABLE are selected for matching in attribute resolver, XHTML_TABLE will be used only for correctly served XML/XHTML documents, this change was necessary since IE doesn't handle yet the XHTML Media Type and to avoids bugging users/devs about wrongly served XHTML pages (jdalton)
new 94d94a1 Merge branch 'master' of github.com:dperini/nwmatcher
new 7e89c5a removed 'getAttributeCaseMap' method since it is not currenlty in use, removed an extra space
new b5da3e9 moved down DEBUGGING block, after NATIVE_QSAPI is defined, since 'setQSA' method uses it to correctly initialize USE_QSA flag
new 7b3b063 improved ':focus' pseudo resolution, added 'A' and 'AREA' elements as focussable (jdalton)
new 6d22e1b avoid returning elements for wrong pseudo selectors when extending NWMatcher with add-ons
new fab0adb changed pretty indentation, was breaking my internal *NIX builds, 'else if' were turned to 'elseif' during comments/blanks removal for minimization
new d04786b added 'setERR' method to enable/disable internal error notification to console for wrong selectors, slightly changed 'setQSA' method, no need to return the actual state
new 87d6540 removed 'data' parameter (last), if needed it could be easily reintroduced later
new a94ec32 removed a remaining 'data' parameter from previous commit, removed a space
new 58e4ee9 fixed Opera 9.25 bug with detection of a valid NATIVE_SLICE_PROTO when document contain an element with ID of 'length'
new 9c8ef14 rewritten 'byId' method for performances and to allow for fragments
new dc93904 slightly changed 'byTag' method, optimizing performances on IE
new 2d35141 added a more specific RE_SIMPLE_SELECTOR_QSA to speed up some slow 'querySelectorAll' selection on IE8, moved USE_QSA check as first check in the same conditional with others
new 25f5fea removed an unneeded check now that we have move it in the 'byId' method, use 'getElementsByTag' method directly in IE, it is safe since there are no chances to get an universal ('*') selector there
new 3a7252a added curly braces in some places, moved variables declaration down for when they are needed
new 24324ce maintain different copies of compiled selector resolvers for XML and HTML documents, renamed 'compiledSelectors' to 'HTMLResolvers', 'compiledMatchers' to 'HTMLMatchers' and added 'XMLResolvers', reverted compiler loops to use 'while' and pre-increment, added a couple more missing curly braces
new 46bb348 marking Version 1.2.0 for public release, update release date
new 3607a69 removed copy with a too new version number to avoid confusion
new 55a13f7 temporarily fixed bug in 'match()' method for when mixed HTML/XML documents are queried subsequently, the context informations and detections where not updated correctly and previous informations were used (Apostolos Tsakpinis)
new f2f7e53 added feature test for non resolvable ':selected' pseudos on Webkit/Chrome browsers and added the check in the related resolver, happens when none of the option elements is set to 'selected' state
new 31823f6 modified most recent external jquery add-on checks in the resolvers for ':hidden' and ':visible' pseudos, needed to pass jquery unit tests in Safari 2.0.x browsers (jdalton)
new 5cb7801 added more checks and validations to the 'match()' method, improved HTML/XML handling by saving compiled functions to separate storages (copied from 'select' method), boost performances by not reparsing context information, moved 'isSingle' as external reference to avoid checking again if the selector doesn't change
new a6dc031 added back corrected BUGGY_GEBID feature test to inequivocably catch and avoid old IE/Opera bugs in 'byId()' method
new 55f76cf added a feature test for attributes treated as booleans on IE browsers, excluded them from executing with QSA, adjusted 'getAttribute' and 'hasAttribute' methods to account for the bug (Mike Taylor)
new 574a3ca removed a duplicated declaration of the same variable
new 5561e12 added a 'contains' method to help resolving contextual matches, added forgotten callback parameter to be executed also on the 'match' method
new 58a5a16 ensure the check for 'selected' property is only executed on 'option' elements
new dc7707e Ensure 'getAttribute()' method returns an empty string for null/undefined attributes (jdalton)
new 27c8f60 only add to resolver if there is an actual 'hash' in the URL (oniram88)
new edb38d2 fix bug with 'nth-last-child' and 'nth-last-of-type' selectors (Keith Clark)
new f393b1c allow using the standard :checked pseudo on option elements by checking both checked and selected states (jdalton
new eb9e64a avoid adding code to operator resolvers if empty attribute values are passed, does not apply for the equal '=' operator
new 21ebb65 added a check for empty, null and undefined selector values passed to the 'match()' method, bumped release date
new 47d1fa7 removed non necessary extra checks done in previous change (eb9e64a0335bd9c17c2d41169b1a2519f2a0211b), the code is already checking for empty attribute values and only uses 'hasAttribute()' in those cases
new 68f0037 removed beta status, version to 1.2.1 bumped release date, include fixes for nth-last-child and nth-last-of-type, fixed ':target' resolver to only do checks if an hash is present in the URL, added 'option' elements to the ':checked' resolver, improved speed for context queries and fixed callback parameter in the 'match()' method, added BUGGY_GEBID and BUGGY_SELECTED feature tests
new 0385abb avoid using same variables names to preserve parsed data in 'match' and 'select' methods, now each method have its own set of parsed data variables, fixes bug where alternated invocation of these methods using the same selector in a selector group may lead to unexpected results (jdalton)
new 6bd703d correction to the ':nth-' pseudo classes when passed '(n)' as parameter (all), not a very useful pseudo selector but still in the specifications (jdalton)
new 6f2f2ee improvements for :nth- pseudo classes matching, added a variable 'N' in the compiler to cache repeated properties access in compiled resolver functions
new ba95d64 big boost to the negation pseudo class ':not()', instead of calling the 'match()' method I use an inline negated 'compileGroup' function (only created once) to nullify parsing processing time on each element, this yields impressive performance gains
new eafc64b uniformed testing and removed the slow 'in' operator from ':checked/:enabled/:disabled' resolvers, excluded testing ':focus' pseudo class on XML document
new a33f570 fixes previous commit related to the neagted pseudo class, the change was still escaping quotes but it was not necessary and produced wrong results (pdanpdan)
new a12100f made 'reValidator' regexp more selective/strict in that '.#:' should only be followed by alpha characters, added curly braces to the list of accepted grouping characters to allow using them in add-on/extensions
new 0409002 fixes previous two commits related to the ':not()' pseudo class, do not pass the 'callback' parameter to the compiled matcher when calling it internally to resolve negated pseudo selectors, moved compiled 'function' out of the conditional expression to make things look a bit less ugly, the boost remains :-)
new a53c5be cleaned up 'getAttribute' method, reduced parenthesis and extra conversions to string, reordered attributes constants definitions
new 0517100 modified the 'reValidator' regular expression to accept 'utf-8' characters in the allowed positions
new 6dbfe31 fix IE overwriting attribute values with dynamic property values, happens when users interact with input form controls, in those case don't use the 'getAttribute' method and instead read the values using defaultValue/defaultChecked/defaultSelected properties (jdalton/davidmark)
new b7f4f17 wrapped global initialization of 'NW' and 'NW.Dom' inside the main scope, window does not normally exists in many server side javascript environments also NWMatcher itself is of no use without a DOM layer (needs env.js or similar DOM emulation layer for SpiderMonkey/V8), bumped release date
new 10eeab0 made ':lang' pseudo class case insensitive (jdalton)
new 7f2bce8 tweaked IE 'getAttribute' method, 'option' elements also have a 'value' attribute but do not have a 'defaultValue' property in IE
new b4f471e add an extra element check in the four combinators resolvers (' >+~'), this avoid the risk of stepping out of the tree in very complex ':not()' selectors and multiple combinators
new 7846b87 added 'backslash' to the range of accepted characters in attribute names, this allow for escaped characters in names
new d4f50ec avoid comparing element properties with undefined values, use a safer 'typeof' check instead, modified 'getAttribute' method and ':checked/:enabled/:disabled' resolvers, removed non necessary undefined argument in global (jdalton)
new 4e708df let the ':lang()' pseudo resolver inherit from the document in case it is not defined on the element itself, solves inconsistent results and passes CSS3 Selectors tests
new 7d107fb correct wrong interpretation of empty attribute values with operators in IE tests
new e15c4d3 removed a typo error in previous 'getAttribute' commit, a space slipped in a 'type of' :-)
new a507184 fix for wrong results when 'even' parameter was passed in ':nth-last' and ':nth-last-of-type' cases
new 76561e5 exclude some buggy attribute operator selectors for IE8 when 'querySelectorAll' is used
new 270db31 exclude some buggy attribute operator selectors for IE8 when 'querySelectorAll' is used
new cfdfa6f modified 'isQuirks()' method to use a safer 'typeof' check on the '.compatMode' string property since '.indexOf()' will be used on it, slightly changed related comments (jdalton)
new a21d1df Merge branch 'master' of github.com:dperini/nwmatcher
new 5033a29 added the ':target' pseudo-class selector to the list of excluded selectors for QSA on all browsers, bumped release date
new 8d79432 fixed a typo error in the commit to 'isQuirks()' method, happens in the nights :-)
new 59ccc29 added code to disable complex selectors for ':not()' pseudo-classes in QSA branch but left it commented out, it will break too many tests units, accepting multiple nested complex selectors should not be seen as an error and does not produce as many negative effects as preventing it
new 3249f29 fixed ':empty' resolver to traverse the content instead of just checking first node (jdalton)
new 848a2d2 fixed ':target' resolver to remove first character of hash property ('#') and not be restrictive to just links, allow for any element having the matching ID
new a5faa15 added commented code for the ':not()' resolver in the compiler to avoid nested complex selectors (if necessary), fixed regular expression missing escaped parenthesis in previous part of the related fix in 'select_qsa', removed a couple of spaces
new eaad27c fix attribute resolvers to ensure no expression is built if operators or values are missing, in that case, attribute presence/existence is checked using the 'hasAttribute()' method
new 083e5dc fixed edge case handling of attribute operators matching empty values, removed commented code from 'select_qsa'
new 490dd2b reorganized tests in separate directories, added current Prototype tests and new 'css3-compat' test to compare bug fixing and consistency between selector engines
new 489fdd0 ensure compiled resolvers are able to handle complex combinations and nested selectors in ':not()' pseudo classes, bumped release date
new 296d096 added a 'configure({ })' method to enable/disable features instead of having a specific method for each feature, features that can be specified in the passed object with boolean values are 'USE_QSAPI', 'SIMPLENOT' and 'VERBOSITY'
new 8df7b45 modified 'css3-compat' test to better fit engines with different signature, added disabling of complex selectors in ':not()' pseudo-classes for NWMatcher, arranged engines array to allow commenting out frameworks
new 0ca05a6 modified 'reValidator' expression replacing '?' with '*' to allow selector strings starting with several spaces
new 55ef7c5 tweaked and removed some comments, removed beta status and bumped release for version 1.2.2
new d96865b update the css3-compat test, added version numbers to each framework/library, forced test to use the fall back engine instead of the native 'querySelectorAll()', fixed a problem with double firing events on Opera, relaxed comparison of 'nwmatcher' to properly configure any version >= 1.2.2, removed unneeded comment lines, bumped version
new 42ed629 updated css3-compat.html file to remove the ':root' test since it is not widely supported by selectors engines and it was hiding important parts of the test, modified some bottom description test to reflect this change
new c003815 added missing check needed to short-circuit 'className' matching for SVG elements in compiled resolvers (Apostolos Tsakpinis)
new 0ab00dd added new 'byTagRaw()' internal method used when querying document fragments or other type of nodes that do not expose the needed DOM API
new 8730074 added a 'getAttribute()' feature test to catch browsers failing correct boolean attribute handling, avoids using the native DOM API in IE8 and others failing, added forgotten beta state in the code version variable
new 295ee6d completely reviewed QSA feture testing, removed obsolete bug test for Opera10beta3, added feature test for empty attribute values for IE8/Opera10, reordered and corrected various comments
new c9bfd4e merged internal methods 'native_api()' and 'select_qsa()' into 'client_api()' and renamed it 'select', reworked a bit the code of both 'select()' and 'match()' for size, added better error handling for cases when passed selector is not valid, added missing declaration of XMLMatchers object
new 253fd6a added 'reSimpleNot' regular expression to improve checking for simple selectors inside ':not()' pseudo-class and adjusted the code in the compiled resolver, added error notification for unsupported attribute operators, added cleanup of saved resolvers when switching the SIMPLENOT feature
new 62274b3 corrected regular expressions to exclude IE/Opera QSA for empty attribute values and tweaked RE_SIMPLE_SELECTOR to ensure id/class names start with a letter
new 1c1e67c tweaked reValidator regular expression to accept parenthesis and to discard empty pair of parenthesis, brackets and curly brackets
new 7143d94 changed default behavior to disallow complex selector nested in ':not()' pseudo-class as per specifications, can be changed at start or run-time by using 'NW.Dom.configure({SIMPLENOT:false})' should it be needed
new 156a345 tweaked some comments and removed a trailing blank
new 2624fae reviewed error/warning notifications to better simulate current browsers behavior (QSA) of throwing a DOMException.SYNTAX_ERR (12) on invalid selectors, changed default of 'VERBOSITY' to 'true' for throwing errors
new 5a98bf4 added 'configure({SIMPLENOT:false,VERBOSITY:false})' directive to both jQuery selectors test units to enable extra features in NWMatcher to correctly handle and pass those non standard specific tests
new 67419fa changed a couple of non-standard tests in Prototype test units and added 'configure({SIMPLENOT:false,VERBOSITY:false})' directive to enable extra features in NWMatcher to correctly handle and pass those non standard specific tests
new 26f8dae added start hook '^' to regular expressions used to optimize by id/tag/classname and simplified the tag name check
new 8927276 coded in a new configurable feature named 'SHORTCUTS' to allow/disallow adding missing context to selector strings, set to 'false' by default to skip this non-standard handling but can be changed by using 'configure()'
new 1c3cd15 removed a couple of redundant checks in the 'match()' method
new af8af5d removed IE only 'number' property from standard browsers branch, replaced 'window' reference with 'global' for code consistency
new 7331288 reworked 'getAttribute()' and 'hasAttribute()' for better handling of dynamic attributes like 'value', 'checked' and 'selected' on IE and to keep results consistent with other browsers, better code size and hopefully a bit faster too
new 2b4645a modified 'reValidator' regular expression and updated related validation code accordingly to be more strict and execute a validation on the entire selector before trying to process it
new 0c769ab added an optimized Prototype adapter
new bfeecbf tweaked automatic addition of missing context when SHORTCUTS are enabled, removed a comma in comments, updated release date
new a14e013 fix Safari 2 resolution of ':not()' pseudo-selector
new 810f156 fix Opera 8 unsupported 'selected' property, needed to resolve the ':selected' pseudo-class
new f4d383a avoid using non-existant defaultValue/defaultChecked/defaultSelected backup properties when reading attributes
new 0a2143e added back a feature test to avoid using QSA for selectors containing the ':checked' pseudo-class which is broken/buggy in Opera 10+
new 2889513 replaced wrong semicolon with colon, it would have caused a lot of globals :)
new ad0af68 removed an edge check on arguments consistency and related 'contains()' method
new 8c0418a optimized dynamic default attributes checking in IE getAttribute/hasAttribute methods (jdalton)
new e22a1f7 fixed an inconsistency with IE and HTML5 case sensitivity, unknown HTML elements must be matched case insensitive (Keith Clark)
new 2d2dea1 moved up the SHORTCUTS code to optionally add missing left/right context so it applies also when using QSA
new b21513b typo error, changed '&&' operator with '||' in previous commit
new f103294 added back 'contains()' helper method to be used in 'match()' and ensure that if context is passed it actually contains the element as descendant, tweaked the arguments checks in 'match()' to only throw in case of syntax errors in the selector string
new 9db510a added a 'lastError' variable to maintain the last QSA selection error state
new 6d6fba6 added an extra syntax error checking after each pattern scan in the compiler
new 940335e reworked attribute regular expression and related resolver to only accept correctly quoted string values and identifiers (Garret Smith)
new 333de10 removed grouping parenthesis around some regular expression, added only were requested
new 02cdd12 complete rewrite and grouping of the regular expressions used during selector validation
new 107aa3b shorter and better detection for when case insensitive matches are needed to match element names (jdalton)
new 8e77fd7 reuse 'identifier' regular expression in more places, made two forms of validator regular expression, one for standard compliance with CSS3 rules disallowing complex selectors in ':not()' pseudo-classes and one to allow them unrestricted (also nested and/or comma separated)
new b632982 fixed a bug with 'nth-last-child', the comparisons '<=' and '>=' in the resolvers where swapped in those cases (Keith Clark)
new 0f73f80 modified the 'configure()' method to use the correct regular expression (standard or extended) for validation depending on user settings, also disable QSA when user select to configure '{ SIMPLENOT: false }' since the native QSA selector engine does not recognize the extended syntax in ':not()' pseudo-classes, bumped the release date
new 50c59dc tweaked the regular expression to determine simple selectors, optimized {0,} and {1,} quantifiers in other regular expressions to '*' and '+' respectively
new 4528453 small adjustements to formatting, tweaked comment and added a space, no functional changes
new 2db9053 fixed 'reSplitGroup' regular expression, a regression from latest RE optimization, working previously, now made it (a bit) more readable by using more specific 'skipround/skipcurly/skipsquare' strings since 'skipgroup' is too generic/combined and not usable here, moved down 'skipgroup' string near these new related strings, adjusted some comments
new 1876c1d improved 'reSimpleNot' regular expression to correctly discard invalid nested complex selectors in ':not()' pseudo classes
new 1a805fd updated all unit tests to comply with specifcations requirements related with quote/unquoted attribute values and only simple selectors accepted in ':not()' pseudo-classes, for consistency with latest code commits
new 84f0771 removed a couple of misleading comments, tweaked/shortened an other comment
new 307d198 switched to a safer '{1}' in place of '+' for 'operators' string
new 68f2186 changed tabs to spaces, uniformed comments and console message about ':not()' pseudo-classes limitations requirements
new e87ce2f added Scotch unit tests based on Prototype tests but supporting exceptions testing and other goodness
new 36b4de4 updated Scotch testing unit from github repository (@kitgoncharov)
new 4c468e3 remove older versions of Scotch files
new fe8cd3b added 'W3C-Selector-tests' from John Resig GitHub repository, two files, the original and the one modified by me for NWMatcher, more than 2000 tests, 900 CSS3 fixed tests for IE6-8 browsers
new e724442 more formatting/indentation changes, turned more tabs in to spaces
new e7bc10f restricted 'reLeftContext' and 'reRightContext' espressions to only allow one consecutive combinator (only used when SHORTCUTS configuration option is enabled)
new 52905e6 replaced 'encoding' for 'identifier' in class name feature testing for consistence, added missing space and other formatting changes, removed unneeded comment
new 4703619 removed duplicate comment
new 9bd29b8 avoid a warnining in Google Closure Compiler (doesn't like a standalone 'true;' statement) and turned a space into '\x20' inside a string used as a regular expression
new d8e5d6b fixed 'byTagRaw()' method to not return the containing 'from' element (only affected Fragments as context), removed duplicate 'quotedvalue' from validator string since it is already contained in 'attributes/pseudoclass' strings, replaced two occurence of gEBTN native API with calls to internal 'byTag()' method
new 98ef3c3 moved up declaration of reference to 'Array.prototype.slice' method, moved 'encoding' and related comments near the 'identifier' string
new 389d9f0 improved 'emit()' conformance for error names, uniformed error messages
new 1a7dc72 fixed NetFront/Playstation 3 (IE engine) bug with 'class' and 'for' attributes needing DOM names mapping to 'className' & 'htmlFor'
new 7e157ca modified Prototype's unit tests to expect 'SYNTAX_ERR' type errors thrown when selector syntax is invalid
new 892e645 removed support for non standard ':selected' and ':contains()' pseudo-classed selectors and related helpers, functionality will be moved in a separate add-on
new feefdb0 removed remaining references to unsupported ':selected', ':contains()' and ':indeterminate' pseudo-classes, reorganized 'CSS3PseudoClass' object and removed superfluous comments
new 8588735 added a '+' to the identifier syntax string to resolve unquoted+escaped names like 'brackets\[5\]\[\]' present in several frameworks tests (jdalton), tweaked some comment lines
new a22af05 consolidated single quote as the preferred string container (wherever possible), no functional changes
new 89d2136 removed beta status, bumped release date, ready for version 1.2.3
new 90ae50a exposed additional 'contains()' method, removed an extra semicolon, added/tweaked some comment lines, released version 1.2.3
new 0df8b09 updated jQuery unit to avoid tests for obsoleted/unsupported selectors removed from NWMatcher, ':selected' tests are replaced by ':checked' with no side effects, ':contains()' tests have been removed completely
new d1bf03d updated Prototype unit to correctly test for unquoted identifiers containing multiple (escaped) square brackets (as in brackets\\[5\\]\\[\\]) as for latest bug fix in NWMatcher, previously this unquoted selector was considered invalid syntax (only valid if quoted) it has been fixed to strictly adhere to new Selectors API behavior (jdalton)
new 770b6ca updated Scotch unit to sync latest changes to Error naming, previously 'DOMException SYNTAX_ERR' now shortened to 'SYNTAX_ERR', added three new tests about examples of invalid identifiers missing quotes
new be6cc05 change displayed version number to 1.2.3 in the CSS3-Compat testing which compares the results of various selector engines against the original CSS3 Selectors Test
new fc6f32f an extension for NWMatcher to add new WebForms/HTML5 pseudo-class selectors resolvers, these capabilities are still not available in the majority of current browsers (only Webkit) so not well tested yet, expect changes/fixes in the resolvers soon
new 336f59e shortened code to fork resolvers for HTML/XML documents, improved compiled functions, skips callback checks if none is passed
new b4b113a reapplied previous optimizations of compiled selectors by slicing away parsed tokens
new c62a684 removed '+' quantifier at the end of the 'encoding' string used in regular expressions to ensure it can be applied for different cases (+|*)
new c4b24e5 fixed a cut and paste problem in 'match()' method from recent commit (pdanpdan)
new 592ce6e reverted recent optimization about having the callback included in the compiled function only if the 'callback' parameter was really passed. The problem is that if two queries are executed using the same selector string but one of them has been passed the 'callback' parameter, it would require keeping two versions of the resolver for the same selector string, not worth it.
new 188ee97 reverted recent optimization about having the callback included in the compiled function only if the 'callback' parameter was really passed. The problem is that if two queries are executed using the same selector string but one of them has been passed the 'callback' parameter, it would require keeping two versions of the resolver for the same selector string, not worth it.
new 9caf510 fixed inconsistency brought up by the 'W3C Selector API Test Suite' having to do with the ':root' pseudo-selector when combined with querying children/descendants and parent nodes are disconnected, added needed reference to 'contains' method to the object passed to compiled functions, reformatted a couple of code blocks.
new 9c4a8a3 simplified element indexing in pseudo-class resolvers and reduced needed code, this has also allowed to completely avoid expandos on elements on all browsers (hurray), fixed missing a '$' in the class RE which was lost during recent commits.
new aa34f3c added a feature detection test for ':checked' pseudo-class since it behaves differently between Firefox and other browsers, I will probably need to review this and tweak correctness against Firefox or the other current implementations, the fact here is the need to obtain consistent results between different browsers.
new d13a655 fixed the name of a variable changed in the previous commit.
new 0638baf small optimization in the ':not' pseudo-class resolver by avoiding an unneeded assignment, added fall back parameter for the 'compileGroup()' calls used in both 'match()' and 'select()' methods.
new 4c6f00e added an early exit in the LTR ID optimization if the selector correspond to the token found.
new a4d945d reformatted and removed extra concatenations in the internal 'compileGroup()' method.
new 23f8947 added support for equivalent (maybe faster) browser QS API 'matchesSelector' if/where available, improved error detection/handling to fix cross-browser inconsistencies with QS API recognizing/throwing errors, full selector validation should still be working and configurable even after this addition :)
new 21652f2 reconsidered adding back the non-standard ':selected' pseudo-class which is necessary for option elements, tweaked incorrect comments about the ':checked' pseudo-class bug in Firefox, synchronized test units.
new 066029e reconsidered adding back the non-standard ':selected' pseudo-class which is necessary for option elements, tweaked incorrect comments about the ':checked' pseudo-class bug in Firefox, synchronized test units.
new 7bc8ca3 use 'toString' method instead of 'open' method as the base comparison signature to have a safer detection of native callable methods (jdalton)
new e00522a optimized IE 8 regular expressions used to workaround buggy implementation of QSA (jdalton)
new ae081d4 avoid some console warnings by adding parenthesis where needed
new 77aa3b5 improved 'isNative()' method to avoid console warnings (referencing undefined properties)
new f6c28b9 modified 'emit()' method to avoid overwriting the standard Error 'name' property
new 87a9434 nwmatcher: Fix bug with :root *, not selecting the proper elements. [jddalton]
new 6cf216d nwmatcher: Avoid throwing an error for non-element contexts and make default context element.ownerDocument in NW.Dom.match(). [jddalton]
new 2ba57cb Clean up the element traversal methods.
new 0aed132 nwmatcher: Remove base2 and duplicate QSA entry from css3-compat tests. [jddalton]
new 81e91d0 nwmatcher: Disable QSA for NWMatcher W3C selector tests. [jddalton]
new 73ed008 bumped release date and update year in copyright message
new 09a803e Implement index-based matching in `NW.Dom.down` and make it compatible with Prototype's `Element#down` method.
new 59bb4a7 simplified and more precise RE matching for CSS3 pseudo-classes, reduced code size and number of operations, exact match improves extension coupling
new 5b02e53 synchronized RE for better handling of jQuery extension, removed obsolete comments and unneeded code to normalize the document
new c7130fa Merge branch 'dperini' of git://github.com/kitgoncharov/nwmatcher
new d974f0a added new USE_HTML5 boolean switch to '.configure({})', needed to handle parsers difference in matching the ':checked' pseudo-class that also applies to option elements in current HTML5 specifications
new a899c29 ensure node name is checked case-insensitive in ':selected' pseudo-class resolver
new 433c5a7 mangled selector string '> *' or '* >' now also work for element nodes passed as context argument if SHORTCUTS are enabled, added same capability in the '.match()' method
new d2069a6 added 'oMatchesSelector' boost for Opera > 11 to the '.match()' method capabilities for when it will become avaiable in next releases
new 5d1b1b7 changed 'snap' variable name to 'Snapshot' to keep in sync with the naming of methods/objects, exposed references of internal 'Operators' and 'Selectors' descriptor objects as an alternate way to extend NWMatcher
new afed61a ensure the entire selector token is matched when resolving extensions
new 09b5643 taken in account possible extension of the unsupported '!=' operator when handling empty values
new 584aea4 avoid simple selectors optimizations for Opera, the standard QSAPI path is faster
new d46c982 adding '.toString()' shortcut reference that was left out in the last commit
new e56049a cleanup '.byId()', '.byTag()' and '.byClass()' methods, avoid duplicated operations, allow intermixed documents queries and correctly handle XML in exposed public methods
new 9e4c2b2 cleaned up a bit the attribute resolver, bumped release version
new b9feecc tweak to maintain 'byId()' performances with previous (slower) QSA Opera versions, changed the reference method to compare signatures in the 'isNative()' method to use 'document.open' (jdalton)
new 8473a17 swapped underscored names of wrapped internal methods with non-underscored names for consistency (jdalton)
new 935c7f7 changed again the base reference method used for the signature comparison in 'isNative()', now using 'document.childNodes.item' since it seems less likely that user code would overwrite that, added missing node tpye check in the 'match()' method for when SHORTCUTS are enabled
new c791dc4 Add CommonJS support.
new 4fb0c3b nwmatcher: Make buggy quirks mode re-check per new document context. [jddalton]
new c0cd47c changed variable names for consistency with other boolean flags: isQuirksMode to QUIRKS_MODE and isXMLDocument to XML_DOCUMENT
new 31dfa82 nwmatcher: Simplify isXML, and add switchContext function to reduce code. [jddalton]
new 91e6aca avoid namespace overwriting, both 'NW' and 'NW.Dom' may have been already defined
new 47ee13e nwmatcher: Fix package.json syntax errors and add .gitattributes and .gitignore. [jddalton]
new f7f2e53 nwmatcher: Fix isNative for IE8. [jddalton]
new 5b40dad cleanup to reduce code (jdalton)
new 85e7969 fixed a regular expression, moved SHORTCUTS in an external module, exposed the 'emit()' method so modules can use it, indentation cleanup
new 3b096bd fixed IE bug with 'applet/object' as context, removed unnecessary check for non defined context
new 81866e7 added module for completing selectors missing context, need testing
new eb134c6 substituted remaining instances of '\s' with '[\x20\t\n\r\f] for consistency and correctness
new 35cc352 make regexp tests on nodeName stricter and hopefully more efficient (kitgoncharov)
new 21fdd13 exposed the various regexp strings for tokens that could be part of a selector to avoid redefining them in each external module, changed some quotes for consistency and some indentation
new 59866fb improved handling of optional SHORTCUTS functionality (jdalton)
new aedaeba ensures prior exit for selectors containing trailing commas (SYNTAX_ERR), removed a forgotten underscore
new d4caaff reordered public API exports handling to avoid exporting the NW namespace twice in Node (kitgoncharov)
new 56a2bf5 made sure to split comma groups only once, reduced and simplified code for both the resolver building and the differentiation between single and multi selector strings (comma separated), merged internal 'compile()' and 'compileGroup()' methods
new fbe46d8 joined increments of the same value in one place
new eae430d fixed QSA testing (mistyped 'removeChild') and improved tests node removal, reduced code by embedding isXML(), isQuirks() and isQuirksBuggy() method calls in the 'switchContext()' method which is called once each time the queried host environment changes
new 7692c3a added check for buggy GEBCN in quirks mode, moved definitions to keep them grouped (jdalton)
new ce99c00 strip quotes from attribute values in the parser to avoid doing a slow replace in the resolver, reordered/separated strings and regular expressions
new 720b7e3 improved context checks and reduced code for when the queried context changes
new b206070 moved the CommonJS/NodeJS exports handling code atop the file, incremented release date
new 38913a3 cleanup and indentation, enabled errors for unresolvable contexts
new e09b125 added a separate 'modules' directory that will hold the reduced version of NWMatcher, added base and pseudos modules, added minified version of the two modules named 'nwmatcher-thin.js'
new 18523b1 syncronized modular version with latest changes
new 5ed9ee0 shortened handling of exports to global, detailed comments about bugs with case sensitivity and class names in quirks mode
new dc820ce synchronized Scotch test unit to handle exceptions through regular expression (@kitgoncharov)
new 1fd4d80 more adjustments to Scotch browser test unit, fixed wrong path to resources and changed a string into a regexp for the exception test
new ad4351b optimization in getAttribute()/hasAttribute(), see issue #35
new 09ed51d optimized the resolver compiler by removing unneeded parts
new 30c2485 fixed exports handling and references correct 'Dom' namespace for integration with third party code
new 779acb2 moved all extra functionalities options to a single 'Config' object and made it publicly accessible for addons/extensions
new 3d86019 reworked the 'nwmatcher-shortcuts' extension, more alternatives to add missing context to selector strings like '> p' and '+ p'
new 9944c1f added checks for XML documents to avoid using non existent API/features
new 8c99ace simplified and reduced code to save compiled resolvers in both 'match()' and 'select()' methods, changed internal names of objects holding the references
new 97cb514 simplified and merged returning of result sets in the optimizations block
new 1fe314e reduced code for the ':checked' resolver, test to avoid 'hasAttribute()' on XML documents (fail on IE9), added missing slash to 'reSplitToken', removed unused variable
new 1b0b978 partial rewrite of the caching module, added capability to serve multiple documents simultaneously
new 41a4b5f revived and added back hooks for external caching modules based on Mutation Events, should work on all new browsers including IE9
new 8a6557d fixed feature test for buggy ':checked' pseudo-class for Webkit/Opera not yet implementing HTML5 rules or for older Firefox browsers not reporting the checked elements correctly
new 826de2a moved nwmatcher-cache.js module in the proper 'src/modules' directory
new 88bcabf moved nwmatcher-shortcuts.js module in the proper 'src/modules' directory
new 3d7b16f moved nwmatcher-webform.js module in the proper 'src/modules' directory
new c075634 moved traversal.js module in the proper 'src/modules' directory, renamed to nwmatcher-traversal.js
new 8f1ce40 removed previous version of the jQuery test unit, only kept the latest, moved nwmatcher-jquery.js module in the proper 'src/modules' directory
new ef04982 finished the rearrangement of files, all NWMatcher modules are now in /src/modules
new 5233b6c synchronized modular version with main code, finished the rearrangement of files, all NWMatcher modules are now in /src/modules
new 9e7fbd8 Merge branch 'master' of github.com:dperini/nwmatcher
new 0581ee5 moved nwmatcher-base.js out of the 'src/module' directory in the main '/src' directory
new 46441d0 update all testing units to follow files rearrangement
new 7c3ddec update all testing units to follow files rearrangement
new 6d38fdf Merge branch 'master' of github.com:dperini/nwmatcher
new 849d6a4 shortcircuited fragments node from passing through native selection API, cleanup of unused variables, reviewed consistency of strict/loose comparisons, fix return value to undefined for some extension stub
new 25a29f9 bring latest cleanup and changes to the modular version
new 8a31ded fix mistyped filename in Prototype test unit
new 359bd3b make Javascript Lint happy with some syntax adjustment
new 6926345 fix passed context in negation pseudo-class resolver ':not()'
new 46cbfad synchronized modular version with latest commits
new 93175ee added minification/build tool based on Spidermonkey and Dean Edwards Base2/Packer 3.1
new 3511226 fixed regular expression that prevented correct parsing of comma separated selectors when no whitespace 'div,a' issue #36 (pdanpdan)
new c6853a1 added missing DOM/HTML attribute mapping in IE 'getAttribute()' method to make it consistent with 'hasAttribute()', fix issue #37 (victor homyakov)
new 022f9c2 added a small hack to the external caching module to simulate attribute Mutation Events on Chrome/Safari by overwriting the 'setAttribute()' method of elements, extreme but optional :)
new 19d095d realized I didn't include the 'Makefile' needed to run the minification tool
new 4bb4bce replace a wrong semicolon with comma
new 6c10a0d added 'dist' directory since it is needed by the 'Makefile' minification & build process
new e64b7cc fixed a missing 'S' in HACKED_MUTATION_EVENTS boolean flag
new b628bae added back support for Safari 2.x quirks mode testing
new 56f63ca shortened attribute mapping code in both 'getAttribute()' and 'hasAttribute()' methods (victor homyakov)
new 5320a78 added a comment, removed beta status, bumped release date, ready for 1.2.4 release
new 1a77a20 Fix of issue #38 - ATTR_MAPPING removed
new 73704c8 changed current version to 1.2.5beta to include minor fixes and improvements
new 10a48ac improved speed of 'match()' method by avoiding native 'matchesSelector()' and related checks, fixes issue #40 (alpha123)
new 312ecd9 removed unused ATTR_MAPPING object and related comments after the fix to getAttribute/hasAttribute
new f961aed reuse already declared variable 'i' in 'select' method, fixes issue #39 (victor homyakov)
new 3ef02ea fixed release date format to YYYYMMDD
new ac7fa9e synchronized release date & version with the modular branch
new c66a82f removed an extra trailing comma from Scoth 'test.js'
new 17c05fd updated HEADER and VERSION build files
new e7bc56e added minimal test for HTML5 elements selection using 'of-type' pseudo selectors combined with the 'html5shiv' for IE
new 2e8b1d3 Fix typo in comment: "psuedo" -> "pseudo".
new a6d0d14 Merge pull request #44 from jasondavies/typo
new 85c50f4 fixes selection of HTML5 elements in IE < 9 by ensuring case insensitivity nodeName match in HTML documents (Keith Clark)
new 8a46e1b ensures the 'compile()' method is passed a string as second parameter when invoked by user code
new 74f1665 removed unused ATTR_MAPPING definition and tweaked some of the comments
new 48480db ensure browser supports W3C event model before testing for mutation events, prevents using that path for IE browsers prior to IE9
new b4be9f7 synchronized version string with current beta version
new 255ced1 declaration of ACCEPT_NODE 'macro' centralized and made public so add-ons can reference and rely on it, and also change it :)
new 2e5786a added the capability to emulate the 'querySelector' method by returning false in the callback, this stops the engine at the first match and only returns the first element found, enhancements and fixes to the base modular code related to attribute resolution for older IE browsers (getAttr)
new 7b0d5cf reduced error notification code in 'emit()' method, improved attribute matching in the base modular version
new 3418740 update year in LICENSE file
new df3bea5 synchronized version string
new 259558f tweaked and made easy to switch testing between nwmatcher full version and modular version
new b94fe3e added quotes to object properties names in ATTR_BOOLEAN, added/tweaked comments
new 9b9a041 ender integration
new 3956c7f Merge remote-tracking branch 'dperini/master' into ender
new cf0eed4 ender.js rebuild with latest nw
new 61092e9 $.select() and $.first()
new 25e924b add $.configure(options)
new 333adb8 simple integration test page demonstrating usage
new e11a6f0 added new wrapper method named 'first()' returning only the first matching element, bumped release date
new 0d8de13 Merge pull request #49 from rvagg/ender
new 90f3e9b reworked 'Selectors API Test Suite' so it can be adapted to different engines, reimported original due to small differences in UTF8 characters
new 4909033 bumped copyright years, removed beta status and release version 1.2.5
new 450dcdd synchronized 'Scotch' assertions throwing tests to check 'exception.message' string explicitly
new 898a14d added .npmignore
new 9599003 add node_modules/ to .npmignore
new f576593 Merge pull request #50 from rvagg/npm
new b760a10 adjust 'Scotch' self testing in 'assertThrowsException', check both object and it's message property
new 178bad9 Merge branch 'master' of github.com:dperini/nwmatcher
new 51ea677 define binary files and treat them appropriately
new 6878086 improve speed of combinators in complex nested selectors by caching results of already visited nodes (Yaffle)
new b310a1f When used as a Node.js module, allow pluggable global - issue #56. (Domenic Denicola)
new e0956f3 When used as a Node.js module, allow pluggable global - issue #56. (Domenic Denicola)
new 3316801 tweaked RegExp and validation processing to better catch invalid pseudo-classes (Domenic Denicola)
new c6d364b reworked error handler a bit, some formatting and adjustments
new a114e5d added some tests for invalid pseudo-classes to jQuery selector tests, updated and fixed some HTML in other tests
new f18e8cd correctly validate parameters (an+b) passed to pseudo-classes (Domenic Denicola)
new e987fea removed the 'new' operator in the non-qsa base branch, formatting changes and bumped version to 1.3.0beta
new 6ff938c added new broken variant to jQuery selector tests, related to pseudo-classes validation
new 354e59e update version in the 'css3-compat' test
new 43b8c7b simplified error handler now just throws a standard 'SyntaxError'
new b1eff85 added parenthesis to make javascript linter happy (jsl)
new caee2c4 allow the 'configure' method to query the status of each configuration boolean
new 91db52f use a better regexp for character escaping in selectors (id, name, class, attributes), fixed ID optimizations, added missing quotes for some keyword
new 129a989 made all pseudo-class names to match case-insensitive, allowed spaces in pseudo-class parameters, fixed 'reSplitGroup'
new 010bc89 accepts focus pseudo-class on elements having a valid 'tabIndex'
new 95d947b fix a mangled or sign in previous 'focus' related commit
new 6f39931 synchronized behavior with new W3C/HTML5 recomendations about the ':enabled/:disabled' pseudo-classes, inputs of type 'hidden' are now included in the results if they match the state
new dbe1851 the flag USE_HTML5 behaviors in checked/enabled/disabled pseudo-class resolvers is now 'true' by default even in the QSA-less branch
new d2e3706 ensure processing is completely aborted when returning false from the passed-in node callback
new 4decdbb changed the tests related to :enabled/disabled pseudo-classed and inputs of type 'hidden' in Prototype tests
new 1249442 synchronization of the engine changes in the jQuery add-on module
new 89a5eb2 forgot changing an 'hidden' input test related to ':enabled/:disabled' pseudo-classes in one of the Prototype test files
new e0351a7 bumped version to 1.3.0 before 'npm' publishing
new beb1597 fixed 'configure' method to only change the validator once per invocation; removed USE_QSAPI flag and superfluous code in QSA-less branch
new cdbb658 added a missing dash sign to enforce matching to keep in sync with QSA-less
new d5f1005 reworked/reduced the 'emit' error handling method to throw compatible 'Error' exceptions and removed 'global.status' output (IE<8); slightly reduced code in 'configure' method
new 827b13f reviewed arguments checking in the 'select' method
new 4991a44 fixed character escaping of class names in the non-QSA branch
new 76a9d48 synced jQuery selector tests to catch emitted errors
new e1d7e77 changed references to the :enabled/:disabled pseudo-classes docs
new 22efd5b formatting changes in non-QSA branch
new a035908 removed beta status, publishing version 1.3.0
new 7993d32 bump internal build version/head to 1.3.0
new c3e4ab9 fixed whitespace in selectors when not using Query Selector API (Domenic Denicola)
new ace7b0b throw a 'SyntaxError' instead of 'Error' to match more closely the behavior of Query Selector API
new d0ab968 added UNIQUE_ID mode to the 'configure()' method, this allow the engine to fully match Query Selector API returning all elements matching the same '#id' (non unique)
new d94e868 fixed a problem with 'checked/selected' boolean values in 'getAttribute()' method for IE
new f39caba reverted removal of case transforming lines for insensitive match of attribute names
new 4daecc3 check for bugs affecting attributes, overwritten by misnamed elements references
new a197fa8 tweaked a few comments and bumped release date
new 1e3198f don't switch context every time if it didn't change between calls to byId, byTag, byClass
new b2b24b0 added missing global flag to replace all instances
new 193fb4c revert again to only throw 'Error()', since older IE don't support 'SyntaxError()'
new 20d8485 option elements need to be tested for both 'selected' and 'checked' properties (HTML5)
new 3685197 fixed/improved hasAttribute and synchronized attribute resolution in non QSA version
new 990219f updated Scotch tests to detect the type of 'Error()' thrown
new a594ae6 updated Ender integration tests with the new nwmatcher version
new cfcc3f9 shortened code a bit and bumped release date
new 8168097 update minified version of the non QSA fork of the engine (nwmatcher-base.js + nwmatcher-pseudos.js)
new 877f918 use 'getAttribute()' to check the 'type' attribute of control elements
new e86adbc reduced the 'reTrimSpace' in the non QSA fork and made it independent
new 191c5b7 Use 'doc' instead of 'document' (Domenic Denicola)
new 4b1a354 fixed RegExp to allow for attribute names consisting of a sinlge character
new c40d600 adjustments for 'Config.UNIQUE_ID' returned results, reordered 'reSplitToken' regular expression
new 6c40bc8 fixed jQuery extension module for the ':text' pseudo selector to only check controls the 'type' property
new 5fd4f65 bumped release dates
new 8b4b6a2 reduced arguments checks, typeof doesn't require strict checking, tweaked a comment
new 028ae42 an equivalent non-qsa version of the selector engine for headless environments
new 1f9e0f1 remove minimal build now replaced by nwmatcher-noqsa.js
new 51a30d6 bumped version to 1.3.1, updated release date and copyright years
new cf3672f update ender integration test with latest 1.3.1 version
new e7eb0b2 finally a bit of documentation in a README.md (not completed yet)
new 9640929 documentation fixes/addition to the README.md file
new 75ddbb0 remove superfluous test code and avoid changing elements we don't own
new c7eccd7 use 'global.<native>' instead of just '<native>' to use natives in the intended global (passed parameter), especially important for the 'Error' object to avoid throwing in the wrong host
new e986dc8 fix variables polluting the namespace (@taromorimoto)
new a1259b9 Fixed typo in comments
new 0d7777c Update readme; mostly formatting.
new a3ca8cf Update .npmignore.
new 16d996f Merge pull request #75 from domenic/minor-tweaks
new b276a44 Merge pull request #73 from victor-homyakov/patch-1
new 6450191 changed status to beta for next 1.3.2 version
new 280427c reordered and removed negations from the RE_SIMPLE_SELECTOR definition (Victor Homyakov)
new 078cc64 removed remaining 'NW.' prefixes to ensure namespacing under different names still works
new 1ba21f7 reordered exports across branches (base/noqsa), synchronized version string and ensured it is exported/public in all of them
new fed8036 adjustments to make jsl (javascriptlint) happy
new 8e4d030 more javascript lint related adjustments
new 3ba3c84 explicitly scope references to native objects and methods to allow reusing code in other contexts
new 8776de9 fix for NodeJS/jsdom which pass a global that does not contains references to native objects
new 15dd42f expose the source of the factory making code so it can be reused
new 536e10e Update website
new 5c957ee Merge pull request #78 from dvorapa/patch-2
new 7c91076 Fixes https://github.com/dperini/nwmatcher/issues/79 Selectors on DocumentFragments (node type 11) are now able to match the children of its children. This is consistent with DocumentFragment.querySelector() in firefox and chrome.
new d9aa41b Merge pull request #80 from Joris-van-der-Wel/master
new ed6dd66 pull request adjustments, removed comment lines and new keyword, comments are in 'nwmatcher.js'
new e3d0e0e bumped version to 1.3.2, updated release date and copyright years, updated ender integration
new 13ee101 fixed bug in headless javascript enviroments, missing declaration of and on the internal (jbergknoff)
new ba198ec bumped version to 1.3.3, updated release date and copyright years, updated tests and ender integration
The 774 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/node-nwmatcher.git
More information about the Pkg-javascript-commits
mailing list