Initiate script load and register bundle.
@param {(string|string[])} paths - The file paths
@param {(string|Function|Object)} [arg1] - The (1) bundleId or (2) success
callback or (3) object literal with success/error arguments, numRetries,
etc.
@param {(Function|Object)} [arg2] - The (1) success callback or (2) object
literal with success/error arguments, numRetries, etc.
function loadjs(paths, arg1, arg2) {
	      var bundleId, args; // bundleId (if string)

	      if (arg1 && arg1.trim) bundleId = arg1; // args (default is {})

	      args = (bundleId ? arg2 : arg1) || {}; // throw error if bundle is already defined

	      if (bundleId) {
	        if (bundleId in bundleIdCache) {
	          throw "LoadJS";
	        } else {
	          bundleIdCache[bundleId] = true;
	        }
	      }

	      function loadFn(resolve, reject) {
	        loadFiles(paths, function (pathsNotFound) {
	          // execute callbacks
	          executeCallbacks(args, pathsNotFound); // resolve Promise

	          if (resolve) {
	            executeCallbacks({
	              success: resolve,
	              error: reject
	            }, pathsNotFound);
	          } // publish bundle load event


	          publish(bundleId, pathsNotFound);
	        }, args);
	      }

	      if (args.returnPromise) return new Promise(loadFn);else loadFn();
	    }