define( [

"../core",
"../var/document",
"./var/rsingleTag",
"../manipulation/buildFragment",

// This is the only module that needs core/support
"./support"

], function( jQuery, document, rsingleTag, buildFragment, support ) {

“use strict”;

// Argument “data” should be string of html // context (optional): If specified, the fragment will be created in this context, // defaults to document // keepScripts (optional): If true, will include scripts passed in the html string jQuery.parseHTML = function( data, context, keepScripts ) {

if ( typeof data !== "string" ) {
        return [];
}
if ( typeof context === "boolean" ) {
        keepScripts = context;
        context = false;
}

var base, parsed, scripts;

if ( !context ) {

        // Stop scripts or inline event handlers from being executed immediately
        // by using document.implementation
        if ( support.createHTMLDocument ) {
                context = document.implementation.createHTMLDocument( "" );

                // Set the base href for the created document
                // so any parsed elements with URLs
                // are based on the document's URL (gh-2965)
                base = context.createElement( "base" );
                base.href = document.location.href;
                context.head.appendChild( base );
        } else {
                context = document;
        }
}

parsed = rsingleTag.exec( data );
scripts = !keepScripts && [];

// Single tag
if ( parsed ) {
        return [ context.createElement( parsed[ 1 ] ) ];
}

parsed = buildFragment( [ data ], context, scripts );

if ( scripts && scripts.length ) {
        jQuery( scripts ).remove();
}

return jQuery.merge( [], parsed.childNodes );

};

return jQuery.parseHTML;

} );