Use Node.ELEMENT_NODE and Node.TEXT_NODE constants instead of magic numbers
authorBartosz Dziewoński <matma.rex@gmail.com>
Mon, 13 Jul 2015 18:02:49 +0000 (20:02 +0200)
committerBartosz Dziewoński <matma.rex@gmail.com>
Thu, 16 Jul 2015 17:32:45 +0000 (17:32 +0000)
Updating all non-third-party scripts to depend on 'dom-level2-shim'
and use the constants.

* jquery.highlightText
* jquery.tablesorter
* mediawiki.api.upload
* test.mediawiki.qunit.testrunner

Change-Id: Ib07dded9fa18c749b3c064ab90326852146567b2

resources/Resources.php
resources/src/jquery/jquery.highlightText.js
resources/src/jquery/jquery.tablesorter.js
resources/src/mediawiki.api/mediawiki.api.upload.js
tests/qunit/QUnitTestResources.php
tests/qunit/data/testrunner.js

index 3217503..704805b 100644 (file)
@@ -247,7 +247,10 @@ return array(
        ),
        'jquery.highlightText' => array(
                'scripts' => 'resources/src/jquery/jquery.highlightText.js',
-               'dependencies' => 'mediawiki.RegExp',
+               'dependencies' => array(
+                       'mediawiki.RegExp',
+                       'dom-level2-shim',
+               ),
                'targets' => array( 'desktop', 'mobile' ),
        ),
        'jquery.hoverIntent' => array(
@@ -309,6 +312,7 @@ return array(
                'styles' => 'resources/src/jquery/jquery.tablesorter.css',
                'messages' => array( 'sort-descending', 'sort-ascending' ),
                'dependencies' => array(
+                       'dom-level2-shim',
                        'mediawiki.RegExp',
                        'mediawiki.language.months',
                ),
@@ -857,7 +861,12 @@ return array(
        ),
        'mediawiki.api.upload' => array(
                'scripts' => 'resources/src/mediawiki.api/mediawiki.api.upload.js',
-               'dependencies' => array( 'mediawiki.api', 'mediawiki.api.edit', 'json' ),
+               'dependencies' => array(
+                       'dom-level2-shim',
+                       'mediawiki.api',
+                       'mediawiki.api.edit',
+                       'json',
+               ),
        ),
        'mediawiki.api.watch' => array(
                'scripts' => 'resources/src/mediawiki.api/mediawiki.api.watch.js',
index 8deb669..1ec4db0 100644 (file)
@@ -23,8 +23,7 @@
                // scans a node looking for the pattern and wraps a span around each match
                innerHighlight: function ( node, pat ) {
                        var i, match, pos, spannode, middlebit, middleclone;
-                       // if this is a text node
-                       if ( node.nodeType === 3 ) {
+                       if ( node.nodeType === Node.TEXT_NODE ) {
                                // TODO - need to be smarter about the character matching here.
                                // non latin characters can make regex think a new word has begun: do not use \b
                                // http://stackoverflow.com/questions/3787072/regex-wordwrap-with-utf8-characters-in-js
@@ -46,8 +45,8 @@
                                        // replace the matched node, with our span-wrapped clone of the matched node
                                        middlebit.parentNode.replaceChild( spannode, middlebit );
                                }
-                       // if this is an element with childnodes, and not a script, style or an element we created
-                       } else if ( node.nodeType === 1
+                       } else if ( node.nodeType === Node.ELEMENT_NODE
+                               // element with childnodes, and not a script, style or an element we created
                                && node.childNodes
                                && !/(script|style)/i.test( node.tagName )
                                && !( node.tagName.toLowerCase() === 'span'
index c8e3cb3..8efbb1c 100644 (file)
@@ -95,8 +95,7 @@
                                return $node.attr( 'alt' ) || ''; // handle undefined alt
                        } else {
                                return $.map( $.makeArray( node.childNodes ), function ( elem ) {
-                                       // 1 is for document.ELEMENT_NODE (the constant is undefined on old browsers)
-                                       if ( elem.nodeType === 1 ) {
+                                       if ( elem.nodeType === Node.ELEMENT_NODE ) {
                                                return getElementSortKey( elem );
                                        } else {
                                                return $.text( elem );
index c2d6989..64085e4 100644 (file)
                                return $.Deferred().reject( 'No file' );
                        }
 
-                       iframe = file.nodeType && file.nodeType === file.ELEMENT_NODE;
+                       iframe = file.nodeType && file.nodeType === Node.ELEMENT_NODE;
                        formData = formDataAvailable() && file instanceof window.File;
 
                        if ( !iframe && !formData ) {
index 345b7ef..3608a53 100644 (file)
@@ -31,6 +31,7 @@ return array(
                        'mediawiki.page.ready',
                        'mediawiki.page.startup',
                        'test.sinonjs',
+                       'dom-level2-shim',
                ),
                'position' => 'top',
                'targets' => array( 'desktop', 'mobile' ),
index b828357..41754b4 100644 (file)
@@ -3,10 +3,7 @@
 ( function ( $, mw, QUnit ) {
        'use strict';
 
-       var mwTestIgnore, mwTester,
-               addons,
-               ELEMENT_NODE = 1,
-               TEXT_NODE = 3;
+       var mwTestIgnore, mwTester, addons;
 
        /**
         * Add bogus to url to prevent IE crazy caching
        function getDomStructure( node ) {
                var $node, children, processedChildren, i, len, el;
                $node = $( node );
-               if ( node.nodeType === ELEMENT_NODE ) {
+               if ( node.nodeType === Node.ELEMENT_NODE ) {
                        children = $node.contents();
                        processedChildren = [];
                        for ( i = 0, len = children.length; i < len; i++ ) {
                                el = children[i];
-                               if ( el.nodeType === ELEMENT_NODE || el.nodeType === TEXT_NODE ) {
+                               if ( el.nodeType === Node.ELEMENT_NODE || el.nodeType === Node.TEXT_NODE ) {
                                        processedChildren.push( getDomStructure( el ) );
                                }
                        }