whole_func_string: function(cssText, attributes, extraOptions) {
          extraOptions = extraOptions || {};
  
          var style = document.createElement('style');
          style.type = 'text/css';
  
          for (var key in attributes) {
              if ( ! attributes.hasOwnProperty(key)) {
                  continue;
              }
              var value = attributes[key];
              style.setAttribute('data-' + key, value);
          }
  
          if (style.sheet) { // for jsdom and IE9+
              style.innerHTML = cssText;
              style.sheet.cssText = cssText;
              insertStyleElement(style, { insertAt: extraOptions.insertAt });
          } else if (style.styleSheet) { // for IE8 and below
              insertStyleElement(style, { insertAt: extraOptions.insertAt });
              style.styleSheet.cssText = cssText;
          } else { // for Chrome, Firefox, and Safari
              style.appendChild(document.createTextNode(cssText));
              insertStyleElement(style, { insertAt: extraOptions.insertAt });
          }
      }
func_code_string: function(cssText, attributes, extraOptions) {
          extraOptions = extraOptions || {};
  
          var style = document.createElement('style');
          style.type = 'text/css';
  
          for (var key in attributes) {
              if ( ! attributes.hasOwnProperty(key)) {
                  continue;
              }
              var value = attributes[key];
              style.setAttribute('data-' + key, value);
          }
  
          if (style.sheet) { // for jsdom and IE9+
              style.innerHTML = cssText;
              style.sheet.cssText = cssText;
              insertStyleElement(style, { insertAt: extraOptions.insertAt });
          } else if (style.styleSheet) { // for IE8 and below
              insertStyleElement(style, { insertAt: extraOptions.insertAt });
              style.styleSheet.cssText = cssText;
          } else { // for Chrome, Firefox, and Safari
              style.appendChild(document.createTextNode(cssText));
              insertStyleElement(style, { insertAt: extraOptions.insertAt });
          }
      }
func_documentation_string: Create a <style> tag with optional data attributes