]> git.openstreetmap.org Git - rails.git/blobdiff - vendor/assets/javascripts/html5shiv.js
Merge remote-tracking branch 'upstream/pull/2136'
[rails.git] / vendor / assets / javascripts / html5shiv.js
index 94324d7c858db08ca088515bc3e5404772028013..45ea723dd58206fe80a847b259b035927dcd7623 100644 (file)
@@ -1,10 +1,10 @@
 /**
 /**
-* @preserve HTML5 Shiv prev3.7.1 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
+* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
 */
 ;(function(window, document) {
 /*jshint evil:true */
   /** version */
 */
 ;(function(window, document) {
 /*jshint evil:true */
   /** version */
-  var version = '3.7.0';
+  var version = '3.7.3';
 
   /** Preset options */
   var options = window.html5 || {};
 
   /** Preset options */
   var options = window.html5 || {};
     return typeof elements == 'string' ? elements.split(' ') : elements;
   }
 
     return typeof elements == 'string' ? elements.split(' ') : elements;
   }
 
-    /**
+  /**
+   * Extends the built-in list of html5 elements
+   * @memberOf html5
+   * @param {String|Array} newElements whitespace separated list or array of new element names to shiv
+   * @param {Document} ownerDocument The context document.
+   */
+  function addElements(newElements, ownerDocument) {
+    var elements = html5.elements;
+    if(typeof elements != 'string'){
+      elements = elements.join(' ');
+    }
+    if(typeof newElements != 'string'){
+      newElements = newElements.join(' ');
+    }
+    html5.elements = elements +' '+ newElements;
+    shivDocument(ownerDocument);
+  }
+
+   /**
    * Returns the data associated to the given document
    * @private
    * @param {Document} ownerDocument The document.
    * Returns the data associated to the given document
    * @private
    * @param {Document} ownerDocument The document.
    * returns a shived element for the given nodeName and document
    * @memberOf html5
    * @param {String} nodeName name of the element
    * returns a shived element for the given nodeName and document
    * @memberOf html5
    * @param {String} nodeName name of the element
-   * @param {Document} ownerDocument The context document.
+   * @param {Document|DocumentFragment} ownerDocument The context document.
    * @returns {Object} The shived element.
    */
   function createElement(nodeName, ownerDocument, data){
    * @returns {Object} The shived element.
    */
   function createElement(nodeName, ownerDocument, data){
       'var n=f.cloneNode(),c=n.createElement;' +
       'h.shivMethods&&(' +
         // unroll the `createElement` calls
       'var n=f.cloneNode(),c=n.createElement;' +
       'h.shivMethods&&(' +
         // unroll the `createElement` calls
-        getElements().join().replace(/[\w\-]+/g, function(nodeName) {
+        getElements().join().replace(/[\w\-:]+/g, function(nodeName) {
           data.createElem(nodeName);
           data.frag.createElement(nodeName);
           return 'c("' + nodeName + '")';
           data.createElem(nodeName);
           data.frag.createElement(nodeName);
           return 'c("' + nodeName + '")';
      * @memberOf html5
      * @type Array|String
      */
      * @memberOf html5
      * @type Array|String
      */
-    'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video',
+    'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video',
 
     /**
      * current version of html5shiv
 
     /**
      * current version of html5shiv
     createElement: createElement,
 
     //creates a shived documentFragment
     createElement: createElement,
 
     //creates a shived documentFragment
-    createDocumentFragment: createDocumentFragment
+    createDocumentFragment: createDocumentFragment,
+
+    //extends list of elements
+    addElements: addElements
   };
 
   /*--------------------------------------------------------------------------*/
   };
 
   /*--------------------------------------------------------------------------*/
   // shiv the document
   shivDocument(document);
 
   // shiv the document
   shivDocument(document);
 
-}(this, document));
+  if(typeof module == 'object' && module.exports){
+    module.exports = html5;
+  }
+
+}(typeof window !== "undefined" ? window : this, document));