next = function() {
    spf.debug.debug('resource.create', type, url, 'done');
    // Only update status if the resource has not been removed in the interim.
    if (spf.net.resource.status.get(type, url, opt_statusGroup)) {
      spf.debug.debug('resource.create', type, url, 'loaded');
      spf.net.resource.status.set(spf.net.resource.State.LOADED,
                                  type, url, opt_statusGroup);
    }
    if (isJS && el && el.parentNode && doc == document && !SPF_DEBUG) {
      // Remove scripts afterwards to avoid unnecessary increased DOM size.
      el.parentNode.removeChild(el);
    }
    // IE 10 has a bug where it will synchronously call load handlers for
    // cached resources, force this to be async for consistency.
    if (opt_callback) {
      setTimeout(opt_callback, 0);
    }
    return null;
  }
Adds a resource to the page by creating an element and appending it to
the document.

@param {spf.net.resource.Type} type Type of the resource.
@param {string} url URL of the resource.
@param {Function=} opt_callback Callback for when the resource has loaded.
@param {Document=} opt_document Optional document to use.
@param {string=} opt_statusGroup Optional group to use in status tracking.
@param {string=} opt_prevUrl Optional URL of the previous version of this
    resource. Used for stylesheets to load new versions in-place to prevent
     changing the order of the cascade.
@return {Element} The dynamically created element.