| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | /* | 
					
						
							|  |  |  | 	MIT License http://www.opensource.org/licenses/mit-license.php
 | 
					
						
							|  |  |  | 	Author Tobias Koppers @sokra | 
					
						
							|  |  |  | */ | 
					
						
							| 
									
										
										
										
											2016-09-14 17:31:13 +08:00
										 |  |  | /*global $hash$ installedModules $require$ hotDownloadManifest hotDownloadUpdateChunk hotDisposeChunk modules */ | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | module.exports = function() { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	var hotApplyOnUpdate = true; | 
					
						
							|  |  |  | 	var hotCurrentHash = $hash$; // eslint-disable-line no-unused-vars
 | 
					
						
							|  |  |  | 	var hotCurrentModuleData = {}; | 
					
						
							| 
									
										
										
										
											2017-04-03 15:41:26 +08:00
										 |  |  | 	var hotCurrentChildModule; // eslint-disable-line no-unused-vars
 | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 	var hotCurrentParents = []; // eslint-disable-line no-unused-vars
 | 
					
						
							| 
									
										
										
										
											2016-06-16 05:25:40 +08:00
										 |  |  | 	var hotCurrentParentsTemp = []; // eslint-disable-line no-unused-vars
 | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	function hotCreateRequire(moduleId) { // eslint-disable-line no-unused-vars
 | 
					
						
							|  |  |  | 		var me = installedModules[moduleId]; | 
					
						
							|  |  |  | 		if(!me) return $require$; | 
					
						
							|  |  |  | 		var fn = function(request) { | 
					
						
							|  |  |  | 			if(me.hot.active) { | 
					
						
							|  |  |  | 				if(installedModules[request]) { | 
					
						
							|  |  |  | 					if(installedModules[request].parents.indexOf(moduleId) < 0) | 
					
						
							|  |  |  | 						installedModules[request].parents.push(moduleId); | 
					
						
							| 
									
										
										
										
											2017-04-03 15:41:26 +08:00
										 |  |  | 				} else { | 
					
						
							|  |  |  | 					hotCurrentParents = [moduleId]; | 
					
						
							|  |  |  | 					hotCurrentChildModule = request; | 
					
						
							|  |  |  | 				} | 
					
						
							| 
									
										
										
										
											2016-06-05 16:19:33 +08:00
										 |  |  | 				if(me.children.indexOf(request) < 0) | 
					
						
							|  |  |  | 					me.children.push(request); | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 			} else { | 
					
						
							|  |  |  | 				console.warn("[HMR] unexpected require(" + request + ") from disposed module " + moduleId); | 
					
						
							|  |  |  | 				hotCurrentParents = []; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 			return $require$(request); | 
					
						
							|  |  |  | 		}; | 
					
						
							| 
									
										
										
										
											2016-10-29 17:11:44 +08:00
										 |  |  | 		var ObjectFactory = function ObjectFactory(name) { | 
					
						
							|  |  |  | 			return { | 
					
						
							|  |  |  | 				configurable: true, | 
					
						
							|  |  |  | 				enumerable: true, | 
					
						
							|  |  |  | 				get: function() { | 
					
						
							|  |  |  | 					return $require$[name]; | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 				set: function(value) { | 
					
						
							|  |  |  | 					$require$[name] = value; | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			}; | 
					
						
							| 
									
										
										
										
											2017-01-11 17:51:58 +08:00
										 |  |  | 		}; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 		for(var name in $require$) { | 
					
						
							| 
									
										
										
										
											2017-04-07 19:48:13 +08:00
										 |  |  | 			if(Object.prototype.hasOwnProperty.call($require$, name) && name !== "e") { | 
					
						
							| 
									
										
										
										
											2016-10-29 17:11:44 +08:00
										 |  |  | 				Object.defineProperty(fn, name, ObjectFactory(name)); | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2017-04-07 19:48:13 +08:00
										 |  |  | 		fn.e = function(chunkId) { | 
					
						
							|  |  |  | 			if(hotStatus === "ready") | 
					
						
							|  |  |  | 				hotSetStatus("prepare"); | 
					
						
							|  |  |  | 			hotChunksLoading++; | 
					
						
							|  |  |  | 			return $require$.e(chunkId).then(finishChunkLoading, function(err) { | 
					
						
							|  |  |  | 				finishChunkLoading(); | 
					
						
							|  |  |  | 				throw err; | 
					
						
							|  |  |  | 			}); | 
					
						
							| 
									
										
										
										
											2015-07-13 06:20:09 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-07 19:48:13 +08:00
										 |  |  | 			function finishChunkLoading() { | 
					
						
							|  |  |  | 				hotChunksLoading--; | 
					
						
							|  |  |  | 				if(hotStatus === "prepare") { | 
					
						
							|  |  |  | 					if(!hotWaitingFilesMap[chunkId]) { | 
					
						
							|  |  |  | 						hotEnsureUpdateChunk(chunkId); | 
					
						
							|  |  |  | 					} | 
					
						
							|  |  |  | 					if(hotChunksLoading === 0 && hotWaitingFiles === 0) { | 
					
						
							|  |  |  | 						hotUpdateDownloaded(); | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							| 
									
										
										
										
											2015-06-13 17:45:28 +08:00
										 |  |  | 			} | 
					
						
							| 
									
										
										
										
											2017-04-07 19:48:13 +08:00
										 |  |  | 		}; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 		return fn; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	function hotCreateModule(moduleId) { // eslint-disable-line no-unused-vars
 | 
					
						
							|  |  |  | 		var hot = { | 
					
						
							|  |  |  | 			// private stuff
 | 
					
						
							|  |  |  | 			_acceptedDependencies: {}, | 
					
						
							|  |  |  | 			_declinedDependencies: {}, | 
					
						
							|  |  |  | 			_selfAccepted: false, | 
					
						
							|  |  |  | 			_selfDeclined: false, | 
					
						
							|  |  |  | 			_disposeHandlers: [], | 
					
						
							| 
									
										
										
										
											2017-04-03 15:41:26 +08:00
										 |  |  | 			_main: hotCurrentChildModule !== moduleId, | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 			// Module API
 | 
					
						
							|  |  |  | 			active: true, | 
					
						
							|  |  |  | 			accept: function(dep, callback) { | 
					
						
							|  |  |  | 				if(typeof dep === "undefined") | 
					
						
							|  |  |  | 					hot._selfAccepted = true; | 
					
						
							|  |  |  | 				else if(typeof dep === "function") | 
					
						
							|  |  |  | 					hot._selfAccepted = dep; | 
					
						
							| 
									
										
										
										
											2015-06-28 04:47:51 +08:00
										 |  |  | 				else if(typeof dep === "object") | 
					
						
							| 
									
										
										
										
											2015-07-16 06:19:23 +08:00
										 |  |  | 					for(var i = 0; i < dep.length; i++) | 
					
						
							| 
									
										
										
										
											2016-07-18 06:41:26 +08:00
										 |  |  | 						hot._acceptedDependencies[dep[i]] = callback || function() {}; | 
					
						
							| 
									
										
										
										
											2015-06-28 04:47:51 +08:00
										 |  |  | 				else | 
					
						
							| 
									
										
										
										
											2016-07-18 06:41:26 +08:00
										 |  |  | 					hot._acceptedDependencies[dep] = callback || function() {}; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 			}, | 
					
						
							|  |  |  | 			decline: function(dep) { | 
					
						
							|  |  |  | 				if(typeof dep === "undefined") | 
					
						
							|  |  |  | 					hot._selfDeclined = true; | 
					
						
							| 
									
										
										
										
											2016-06-24 17:17:25 +08:00
										 |  |  | 				else if(typeof dep === "object") | 
					
						
							| 
									
										
										
										
											2015-07-16 06:19:23 +08:00
										 |  |  | 					for(var i = 0; i < dep.length; i++) | 
					
						
							| 
									
										
										
										
											2015-07-13 06:20:09 +08:00
										 |  |  | 						hot._declinedDependencies[dep[i]] = true; | 
					
						
							| 
									
										
										
										
											2016-06-24 17:17:25 +08:00
										 |  |  | 				else | 
					
						
							|  |  |  | 					hot._declinedDependencies[dep] = true; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 			}, | 
					
						
							|  |  |  | 			dispose: function(callback) { | 
					
						
							|  |  |  | 				hot._disposeHandlers.push(callback); | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 			addDisposeHandler: function(callback) { | 
					
						
							|  |  |  | 				hot._disposeHandlers.push(callback); | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 			removeDisposeHandler: function(callback) { | 
					
						
							|  |  |  | 				var idx = hot._disposeHandlers.indexOf(callback); | 
					
						
							|  |  |  | 				if(idx >= 0) hot._disposeHandlers.splice(idx, 1); | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			// Management API
 | 
					
						
							|  |  |  | 			check: hotCheck, | 
					
						
							|  |  |  | 			apply: hotApply, | 
					
						
							|  |  |  | 			status: function(l) { | 
					
						
							|  |  |  | 				if(!l) return hotStatus; | 
					
						
							|  |  |  | 				hotStatusHandlers.push(l); | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 			addStatusHandler: function(l) { | 
					
						
							|  |  |  | 				hotStatusHandlers.push(l); | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 			removeStatusHandler: function(l) { | 
					
						
							|  |  |  | 				var idx = hotStatusHandlers.indexOf(l); | 
					
						
							|  |  |  | 				if(idx >= 0) hotStatusHandlers.splice(idx, 1); | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			//inherit from previous dispose call
 | 
					
						
							|  |  |  | 			data: hotCurrentModuleData[moduleId] | 
					
						
							|  |  |  | 		}; | 
					
						
							| 
									
										
										
										
											2017-04-03 15:41:26 +08:00
										 |  |  | 		hotCurrentChildModule = undefined; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 		return hot; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	var hotStatusHandlers = []; | 
					
						
							|  |  |  | 	var hotStatus = "idle"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	function hotSetStatus(newStatus) { | 
					
						
							|  |  |  | 		hotStatus = newStatus; | 
					
						
							|  |  |  | 		for(var i = 0; i < hotStatusHandlers.length; i++) | 
					
						
							|  |  |  | 			hotStatusHandlers[i].call(null, newStatus); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// while downloading
 | 
					
						
							|  |  |  | 	var hotWaitingFiles = 0; | 
					
						
							|  |  |  | 	var hotChunksLoading = 0; | 
					
						
							|  |  |  | 	var hotWaitingFilesMap = {}; | 
					
						
							|  |  |  | 	var hotRequestedFilesMap = {}; | 
					
						
							| 
									
										
										
										
											2016-04-24 09:39:32 +08:00
										 |  |  | 	var hotAvailableFilesMap = {}; | 
					
						
							| 
									
										
										
										
											2015-06-13 17:45:28 +08:00
										 |  |  | 	var hotDeferred; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// The update info
 | 
					
						
							|  |  |  | 	var hotUpdate, hotUpdateNewHash; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-28 04:47:51 +08:00
										 |  |  | 	function toModuleId(id) { | 
					
						
							| 
									
										
										
										
											2015-07-16 06:39:56 +08:00
										 |  |  | 		var isNumber = (+id) + "" === id; | 
					
						
							|  |  |  | 		return isNumber ? +id : id; | 
					
						
							| 
									
										
										
										
											2015-06-28 04:47:51 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-13 17:45:28 +08:00
										 |  |  | 	function hotCheck(apply) { | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 		if(hotStatus !== "idle") throw new Error("check() is only allowed in idle status"); | 
					
						
							| 
									
										
										
										
											2015-06-13 17:45:28 +08:00
										 |  |  | 		hotApplyOnUpdate = apply; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 		hotSetStatus("check"); | 
					
						
							| 
									
										
										
										
											2015-06-13 17:45:28 +08:00
										 |  |  | 		return hotDownloadManifest().then(function(update) { | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 			if(!update) { | 
					
						
							|  |  |  | 				hotSetStatus("idle"); | 
					
						
							| 
									
										
										
										
											2015-06-13 17:45:28 +08:00
										 |  |  | 				return null; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 			} | 
					
						
							|  |  |  | 			hotRequestedFilesMap = {}; | 
					
						
							|  |  |  | 			hotWaitingFilesMap = {}; | 
					
						
							| 
									
										
										
										
											2016-07-18 06:41:26 +08:00
										 |  |  | 			hotAvailableFilesMap = update.c; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 			hotUpdateNewHash = update.h; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			hotSetStatus("prepare"); | 
					
						
							| 
									
										
										
										
											2015-06-13 17:45:28 +08:00
										 |  |  | 			var promise = new Promise(function(resolve, reject) { | 
					
						
							|  |  |  | 				hotDeferred = { | 
					
						
							|  |  |  | 					resolve: resolve, | 
					
						
							|  |  |  | 					reject: reject | 
					
						
							|  |  |  | 				}; | 
					
						
							|  |  |  | 			}); | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 			hotUpdate = {}; | 
					
						
							| 
									
										
										
										
											2015-07-13 06:20:09 +08:00
										 |  |  | 			/*foreachInstalledChunks*/ | 
					
						
							|  |  |  | 			{ // eslint-disable-line no-lone-blocks
 | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 				/*globals chunkId */ | 
					
						
							|  |  |  | 				hotEnsureUpdateChunk(chunkId); | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 			if(hotStatus === "prepare" && hotChunksLoading === 0 && hotWaitingFiles === 0) { | 
					
						
							|  |  |  | 				hotUpdateDownloaded(); | 
					
						
							|  |  |  | 			} | 
					
						
							| 
									
										
										
										
											2015-06-13 17:45:28 +08:00
										 |  |  | 			return promise; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 		}); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	function hotAddUpdateChunk(chunkId, moreModules) { // eslint-disable-line no-unused-vars
 | 
					
						
							| 
									
										
										
										
											2016-04-24 09:39:32 +08:00
										 |  |  | 		if(!hotAvailableFilesMap[chunkId] || !hotRequestedFilesMap[chunkId]) | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 			return; | 
					
						
							|  |  |  | 		hotRequestedFilesMap[chunkId] = false; | 
					
						
							|  |  |  | 		for(var moduleId in moreModules) { | 
					
						
							|  |  |  | 			if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { | 
					
						
							|  |  |  | 				hotUpdate[moduleId] = moreModules[moduleId]; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		if(--hotWaitingFiles === 0 && hotChunksLoading === 0) { | 
					
						
							|  |  |  | 			hotUpdateDownloaded(); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	function hotEnsureUpdateChunk(chunkId) { | 
					
						
							| 
									
										
										
										
											2016-04-24 09:39:32 +08:00
										 |  |  | 		if(!hotAvailableFilesMap[chunkId]) { | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 			hotWaitingFilesMap[chunkId] = true; | 
					
						
							|  |  |  | 		} else { | 
					
						
							|  |  |  | 			hotRequestedFilesMap[chunkId] = true; | 
					
						
							|  |  |  | 			hotWaitingFiles++; | 
					
						
							|  |  |  | 			hotDownloadUpdateChunk(chunkId); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	function hotUpdateDownloaded() { | 
					
						
							|  |  |  | 		hotSetStatus("ready"); | 
					
						
							| 
									
										
										
										
											2015-06-13 17:45:28 +08:00
										 |  |  | 		var deferred = hotDeferred; | 
					
						
							|  |  |  | 		hotDeferred = null; | 
					
						
							|  |  |  | 		if(!deferred) return; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 		if(hotApplyOnUpdate) { | 
					
						
							| 
									
										
										
										
											2015-06-13 17:45:28 +08:00
										 |  |  | 			hotApply(hotApplyOnUpdate).then(function(result) { | 
					
						
							|  |  |  | 				deferred.resolve(result); | 
					
						
							|  |  |  | 			}, function(err) { | 
					
						
							|  |  |  | 				deferred.reject(err); | 
					
						
							|  |  |  | 			}); | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 		} else { | 
					
						
							|  |  |  | 			var outdatedModules = []; | 
					
						
							|  |  |  | 			for(var id in hotUpdate) { | 
					
						
							|  |  |  | 				if(Object.prototype.hasOwnProperty.call(hotUpdate, id)) { | 
					
						
							| 
									
										
										
										
											2015-06-28 04:47:51 +08:00
										 |  |  | 					outdatedModules.push(toModuleId(id)); | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							| 
									
										
										
										
											2015-06-13 17:45:28 +08:00
										 |  |  | 			deferred.resolve(outdatedModules); | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-13 17:45:28 +08:00
										 |  |  | 	function hotApply(options) { | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 		if(hotStatus !== "ready") throw new Error("apply() is only allowed in ready status"); | 
					
						
							| 
									
										
										
										
											2015-06-13 17:45:28 +08:00
										 |  |  | 		options = options || {}; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-19 08:52:28 +08:00
										 |  |  | 		var cb; | 
					
						
							|  |  |  | 		var i; | 
					
						
							|  |  |  | 		var j; | 
					
						
							|  |  |  | 		var module; | 
					
						
							|  |  |  | 		var moduleId; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-02 23:30:21 +08:00
										 |  |  | 		function getAffectedStuff(updateModuleId) { | 
					
						
							|  |  |  | 			var outdatedModules = [updateModuleId]; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 			var outdatedDependencies = {}; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-24 17:17:25 +08:00
										 |  |  | 			var queue = outdatedModules.slice().map(function(id) { | 
					
						
							|  |  |  | 				return { | 
					
						
							|  |  |  | 					chain: [id], | 
					
						
							|  |  |  | 					id: id | 
					
						
							| 
									
										
										
										
											2017-01-11 17:51:58 +08:00
										 |  |  | 				}; | 
					
						
							| 
									
										
										
										
											2016-06-24 17:17:25 +08:00
										 |  |  | 			}); | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 			while(queue.length > 0) { | 
					
						
							| 
									
										
										
										
											2016-06-24 17:17:25 +08:00
										 |  |  | 				var queueItem = queue.pop(); | 
					
						
							|  |  |  | 				var moduleId = queueItem.id; | 
					
						
							|  |  |  | 				var chain = queueItem.chain; | 
					
						
							| 
									
										
										
										
											2016-01-19 08:52:28 +08:00
										 |  |  | 				module = installedModules[moduleId]; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 				if(!module || module.hot._selfAccepted) | 
					
						
							|  |  |  | 					continue; | 
					
						
							|  |  |  | 				if(module.hot._selfDeclined) { | 
					
						
							| 
									
										
										
										
											2016-06-24 17:17:25 +08:00
										 |  |  | 					return { | 
					
						
							|  |  |  | 						type: "self-declined", | 
					
						
							|  |  |  | 						chain: chain, | 
					
						
							|  |  |  | 						moduleId: moduleId | 
					
						
							| 
									
										
										
										
											2017-01-11 17:51:58 +08:00
										 |  |  | 					}; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 				} | 
					
						
							| 
									
										
										
										
											2016-06-16 05:25:40 +08:00
										 |  |  | 				if(module.hot._main) { | 
					
						
							| 
									
										
										
										
											2016-06-24 17:17:25 +08:00
										 |  |  | 					return { | 
					
						
							|  |  |  | 						type: "unaccepted", | 
					
						
							|  |  |  | 						chain: chain, | 
					
						
							|  |  |  | 						moduleId: moduleId | 
					
						
							|  |  |  | 					}; | 
					
						
							| 
									
										
										
										
											2015-07-02 21:00:49 +08:00
										 |  |  | 				} | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 				for(var i = 0; i < module.parents.length; i++) { | 
					
						
							|  |  |  | 					var parentId = module.parents[i]; | 
					
						
							|  |  |  | 					var parent = installedModules[parentId]; | 
					
						
							| 
									
										
										
										
											2016-06-04 23:28:59 +08:00
										 |  |  | 					if(!parent) continue; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 					if(parent.hot._declinedDependencies[moduleId]) { | 
					
						
							| 
									
										
										
										
											2016-06-24 17:17:25 +08:00
										 |  |  | 						return { | 
					
						
							|  |  |  | 							type: "declined", | 
					
						
							|  |  |  | 							chain: chain.concat([parentId]), | 
					
						
							|  |  |  | 							moduleId: moduleId, | 
					
						
							|  |  |  | 							parentId: parentId | 
					
						
							| 
									
										
										
										
											2017-01-11 17:51:58 +08:00
										 |  |  | 						}; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 					} | 
					
						
							|  |  |  | 					if(outdatedModules.indexOf(parentId) >= 0) continue; | 
					
						
							|  |  |  | 					if(parent.hot._acceptedDependencies[moduleId]) { | 
					
						
							|  |  |  | 						if(!outdatedDependencies[parentId]) | 
					
						
							|  |  |  | 							outdatedDependencies[parentId] = []; | 
					
						
							|  |  |  | 						addAllToSet(outdatedDependencies[parentId], [moduleId]); | 
					
						
							|  |  |  | 						continue; | 
					
						
							|  |  |  | 					} | 
					
						
							|  |  |  | 					delete outdatedDependencies[parentId]; | 
					
						
							|  |  |  | 					outdatedModules.push(parentId); | 
					
						
							| 
									
										
										
										
											2016-06-24 17:17:25 +08:00
										 |  |  | 					queue.push({ | 
					
						
							|  |  |  | 						chain: chain.concat([parentId]), | 
					
						
							|  |  |  | 						id: parentId | 
					
						
							|  |  |  | 					}); | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-24 17:17:25 +08:00
										 |  |  | 			return { | 
					
						
							|  |  |  | 				type: "accepted", | 
					
						
							| 
									
										
										
										
											2016-07-02 23:30:21 +08:00
										 |  |  | 				moduleId: updateModuleId, | 
					
						
							| 
									
										
										
										
											2016-06-24 17:17:25 +08:00
										 |  |  | 				outdatedModules: outdatedModules, | 
					
						
							|  |  |  | 				outdatedDependencies: outdatedDependencies | 
					
						
							|  |  |  | 			}; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2015-07-13 06:20:09 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 		function addAllToSet(a, b) { | 
					
						
							|  |  |  | 			for(var i = 0; i < b.length; i++) { | 
					
						
							|  |  |  | 				var item = b[i]; | 
					
						
							|  |  |  | 				if(a.indexOf(item) < 0) | 
					
						
							|  |  |  | 					a.push(item); | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// at begin all updates modules are outdated
 | 
					
						
							|  |  |  | 		// the "outdated" status can propagate to parents if they don't accept the children
 | 
					
						
							|  |  |  | 		var outdatedDependencies = {}; | 
					
						
							|  |  |  | 		var outdatedModules = []; | 
					
						
							|  |  |  | 		var appliedUpdate = {}; | 
					
						
							| 
									
										
										
										
											2016-10-29 17:11:44 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		var warnUnexpectedRequire = function warnUnexpectedRequire() { | 
					
						
							|  |  |  | 			console.warn("[HMR] unexpected require(" + result.moduleId + ") to disposed module"); | 
					
						
							|  |  |  | 		}; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 		for(var id in hotUpdate) { | 
					
						
							|  |  |  | 			if(Object.prototype.hasOwnProperty.call(hotUpdate, id)) { | 
					
						
							| 
									
										
										
										
											2016-01-19 08:52:28 +08:00
										 |  |  | 				moduleId = toModuleId(id); | 
					
						
							| 
									
										
										
										
											2016-07-18 06:41:26 +08:00
										 |  |  | 				var result; | 
					
						
							|  |  |  | 				if(hotUpdate[id]) { | 
					
						
							|  |  |  | 					result = getAffectedStuff(moduleId); | 
					
						
							|  |  |  | 				} else { | 
					
						
							|  |  |  | 					result = { | 
					
						
							|  |  |  | 						type: "disposed", | 
					
						
							|  |  |  | 						moduleId: id | 
					
						
							|  |  |  | 					}; | 
					
						
							|  |  |  | 				} | 
					
						
							| 
									
										
										
										
											2016-06-24 17:17:25 +08:00
										 |  |  | 				var abortError = false; | 
					
						
							|  |  |  | 				var doApply = false; | 
					
						
							| 
									
										
										
										
											2016-07-18 06:41:26 +08:00
										 |  |  | 				var doDispose = false; | 
					
						
							| 
									
										
										
										
											2016-06-24 17:17:25 +08:00
										 |  |  | 				var chainInfo = ""; | 
					
						
							|  |  |  | 				if(result.chain) { | 
					
						
							|  |  |  | 					chainInfo = "\nUpdate propagation: " + result.chain.join(" -> "); | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 				} | 
					
						
							| 
									
										
										
										
											2016-06-24 17:17:25 +08:00
										 |  |  | 				switch(result.type) { | 
					
						
							|  |  |  | 					case "self-declined": | 
					
						
							|  |  |  | 						if(options.onDeclined) | 
					
						
							|  |  |  | 							options.onDeclined(result); | 
					
						
							|  |  |  | 						if(!options.ignoreDeclined) | 
					
						
							|  |  |  | 							abortError = new Error("Aborted because of self decline: " + result.moduleId + chainInfo); | 
					
						
							|  |  |  | 						break; | 
					
						
							|  |  |  | 					case "declined": | 
					
						
							|  |  |  | 						if(options.onDeclined) | 
					
						
							|  |  |  | 							options.onDeclined(result); | 
					
						
							|  |  |  | 						if(!options.ignoreDeclined) | 
					
						
							|  |  |  | 							abortError = new Error("Aborted because of declined dependency: " + result.moduleId + " in " + result.parentId + chainInfo); | 
					
						
							|  |  |  | 						break; | 
					
						
							|  |  |  | 					case "unaccepted": | 
					
						
							|  |  |  | 						if(options.onUnaccepted) | 
					
						
							|  |  |  | 							options.onUnaccepted(result); | 
					
						
							|  |  |  | 						if(!options.ignoreUnaccepted) | 
					
						
							|  |  |  | 							abortError = new Error("Aborted because " + moduleId + " is not accepted" + chainInfo); | 
					
						
							|  |  |  | 						break; | 
					
						
							|  |  |  | 					case "accepted": | 
					
						
							|  |  |  | 						if(options.onAccepted) | 
					
						
							|  |  |  | 							options.onAccepted(result); | 
					
						
							|  |  |  | 						doApply = true; | 
					
						
							|  |  |  | 						break; | 
					
						
							| 
									
										
										
										
											2016-07-18 06:41:26 +08:00
										 |  |  | 					case "disposed": | 
					
						
							|  |  |  | 						if(options.onDisposed) | 
					
						
							|  |  |  | 							options.onDisposed(result); | 
					
						
							|  |  |  | 						doDispose = true; | 
					
						
							|  |  |  | 						break; | 
					
						
							| 
									
										
										
										
											2016-06-24 17:17:25 +08:00
										 |  |  | 					default: | 
					
						
							|  |  |  | 						throw new Error("Unexception type " + result.type); | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				if(abortError) { | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 					hotSetStatus("abort"); | 
					
						
							| 
									
										
										
										
											2016-06-24 17:17:25 +08:00
										 |  |  | 					return Promise.reject(abortError); | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 				} | 
					
						
							| 
									
										
										
										
											2016-06-24 17:17:25 +08:00
										 |  |  | 				if(doApply) { | 
					
						
							|  |  |  | 					appliedUpdate[moduleId] = hotUpdate[moduleId]; | 
					
						
							|  |  |  | 					addAllToSet(outdatedModules, result.outdatedModules); | 
					
						
							|  |  |  | 					for(moduleId in result.outdatedDependencies) { | 
					
						
							|  |  |  | 						if(Object.prototype.hasOwnProperty.call(result.outdatedDependencies, moduleId)) { | 
					
						
							|  |  |  | 							if(!outdatedDependencies[moduleId]) | 
					
						
							|  |  |  | 								outdatedDependencies[moduleId] = []; | 
					
						
							|  |  |  | 							addAllToSet(outdatedDependencies[moduleId], result.outdatedDependencies[moduleId]); | 
					
						
							|  |  |  | 						} | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							| 
									
										
										
										
											2016-07-18 06:41:26 +08:00
										 |  |  | 				if(doDispose) { | 
					
						
							|  |  |  | 					addAllToSet(outdatedModules, [result.moduleId]); | 
					
						
							| 
									
										
										
										
											2016-10-29 17:11:44 +08:00
										 |  |  | 					appliedUpdate[moduleId] = warnUnexpectedRequire; | 
					
						
							| 
									
										
										
										
											2016-07-18 06:41:26 +08:00
										 |  |  | 				} | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// Store self accepted outdated modules to require them later by the module system
 | 
					
						
							|  |  |  | 		var outdatedSelfAcceptedModules = []; | 
					
						
							| 
									
										
										
										
											2016-01-19 08:52:28 +08:00
										 |  |  | 		for(i = 0; i < outdatedModules.length; i++) { | 
					
						
							|  |  |  | 			moduleId = outdatedModules[i]; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 			if(installedModules[moduleId] && installedModules[moduleId].hot._selfAccepted) | 
					
						
							|  |  |  | 				outdatedSelfAcceptedModules.push({ | 
					
						
							|  |  |  | 					module: moduleId, | 
					
						
							|  |  |  | 					errorHandler: installedModules[moduleId].hot._selfAccepted | 
					
						
							|  |  |  | 				}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// Now in "dispose" phase
 | 
					
						
							|  |  |  | 		hotSetStatus("dispose"); | 
					
						
							| 
									
										
										
										
											2016-07-18 06:41:26 +08:00
										 |  |  | 		Object.keys(hotAvailableFilesMap).forEach(function(chunkId) { | 
					
						
							|  |  |  | 			if(hotAvailableFilesMap[chunkId] === false) { | 
					
						
							|  |  |  | 				hotDisposeChunk(chunkId); | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-19 08:52:28 +08:00
										 |  |  | 		var idx; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 		var queue = outdatedModules.slice(); | 
					
						
							|  |  |  | 		while(queue.length > 0) { | 
					
						
							| 
									
										
										
										
											2016-01-19 08:52:28 +08:00
										 |  |  | 			moduleId = queue.pop(); | 
					
						
							|  |  |  | 			module = installedModules[moduleId]; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 			if(!module) continue; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			var data = {}; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			// Call dispose handlers
 | 
					
						
							|  |  |  | 			var disposeHandlers = module.hot._disposeHandlers; | 
					
						
							| 
									
										
										
										
											2016-01-19 08:52:28 +08:00
										 |  |  | 			for(j = 0; j < disposeHandlers.length; j++) { | 
					
						
							|  |  |  | 				cb = disposeHandlers[j]; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 				cb(data); | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 			hotCurrentModuleData[moduleId] = data; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			// disable module (this disables requires from this module)
 | 
					
						
							|  |  |  | 			module.hot.active = false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			// remove module from cache
 | 
					
						
							|  |  |  | 			delete installedModules[moduleId]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			// remove "parents" references from all children
 | 
					
						
							| 
									
										
										
										
											2016-01-19 08:52:28 +08:00
										 |  |  | 			for(j = 0; j < module.children.length; j++) { | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 				var child = installedModules[module.children[j]]; | 
					
						
							|  |  |  | 				if(!child) continue; | 
					
						
							| 
									
										
										
										
											2016-01-19 08:52:28 +08:00
										 |  |  | 				idx = child.parents.indexOf(moduleId); | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 				if(idx >= 0) { | 
					
						
							|  |  |  | 					child.parents.splice(idx, 1); | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// remove outdated dependency from module children
 | 
					
						
							| 
									
										
										
										
											2016-01-19 08:52:28 +08:00
										 |  |  | 		var dependency; | 
					
						
							|  |  |  | 		var moduleOutdatedDependencies; | 
					
						
							|  |  |  | 		for(moduleId in outdatedDependencies) { | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 			if(Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)) { | 
					
						
							| 
									
										
										
										
											2016-01-19 08:52:28 +08:00
										 |  |  | 				module = installedModules[moduleId]; | 
					
						
							| 
									
										
										
										
											2016-11-10 15:52:00 +08:00
										 |  |  | 				if(module) { | 
					
						
							|  |  |  | 					moduleOutdatedDependencies = outdatedDependencies[moduleId]; | 
					
						
							|  |  |  | 					for(j = 0; j < moduleOutdatedDependencies.length; j++) { | 
					
						
							|  |  |  | 						dependency = moduleOutdatedDependencies[j]; | 
					
						
							|  |  |  | 						idx = module.children.indexOf(dependency); | 
					
						
							|  |  |  | 						if(idx >= 0) module.children.splice(idx, 1); | 
					
						
							|  |  |  | 					} | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// Not in "apply" phase
 | 
					
						
							|  |  |  | 		hotSetStatus("apply"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		hotCurrentHash = hotUpdateNewHash; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// insert new code
 | 
					
						
							| 
									
										
										
										
											2016-01-19 08:52:28 +08:00
										 |  |  | 		for(moduleId in appliedUpdate) { | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 			if(Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) { | 
					
						
							|  |  |  | 				modules[moduleId] = appliedUpdate[moduleId]; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// call accept handlers
 | 
					
						
							|  |  |  | 		var error = null; | 
					
						
							| 
									
										
										
										
											2016-01-19 08:52:28 +08:00
										 |  |  | 		for(moduleId in outdatedDependencies) { | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 			if(Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)) { | 
					
						
							| 
									
										
										
										
											2016-01-19 08:52:28 +08:00
										 |  |  | 				module = installedModules[moduleId]; | 
					
						
							|  |  |  | 				moduleOutdatedDependencies = outdatedDependencies[moduleId]; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 				var callbacks = []; | 
					
						
							| 
									
										
										
										
											2016-01-19 08:52:28 +08:00
										 |  |  | 				for(i = 0; i < moduleOutdatedDependencies.length; i++) { | 
					
						
							|  |  |  | 					dependency = moduleOutdatedDependencies[i]; | 
					
						
							|  |  |  | 					cb = module.hot._acceptedDependencies[dependency]; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 					if(callbacks.indexOf(cb) >= 0) continue; | 
					
						
							|  |  |  | 					callbacks.push(cb); | 
					
						
							|  |  |  | 				} | 
					
						
							| 
									
										
										
										
											2016-01-19 08:52:28 +08:00
										 |  |  | 				for(i = 0; i < callbacks.length; i++) { | 
					
						
							|  |  |  | 					cb = callbacks[i]; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 					try { | 
					
						
							| 
									
										
										
										
											2016-07-02 23:30:21 +08:00
										 |  |  | 						cb(moduleOutdatedDependencies); | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 					} catch(err) { | 
					
						
							| 
									
										
										
										
											2016-07-02 23:30:21 +08:00
										 |  |  | 						if(options.onErrored) { | 
					
						
							|  |  |  | 							options.onErrored({ | 
					
						
							|  |  |  | 								type: "accept-errored", | 
					
						
							|  |  |  | 								moduleId: moduleId, | 
					
						
							|  |  |  | 								dependencyId: moduleOutdatedDependencies[i], | 
					
						
							|  |  |  | 								error: err | 
					
						
							|  |  |  | 							}); | 
					
						
							|  |  |  | 						} | 
					
						
							|  |  |  | 						if(!options.ignoreErrored) { | 
					
						
							|  |  |  | 							if(!error) | 
					
						
							|  |  |  | 								error = err; | 
					
						
							|  |  |  | 						} | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// Load self accepted modules
 | 
					
						
							| 
									
										
										
										
											2016-01-19 08:52:28 +08:00
										 |  |  | 		for(i = 0; i < outdatedSelfAcceptedModules.length; i++) { | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 			var item = outdatedSelfAcceptedModules[i]; | 
					
						
							| 
									
										
										
										
											2016-01-19 08:52:28 +08:00
										 |  |  | 			moduleId = item.module; | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 			hotCurrentParents = [moduleId]; | 
					
						
							|  |  |  | 			try { | 
					
						
							|  |  |  | 				$require$(moduleId); | 
					
						
							|  |  |  | 			} catch(err) { | 
					
						
							|  |  |  | 				if(typeof item.errorHandler === "function") { | 
					
						
							|  |  |  | 					try { | 
					
						
							|  |  |  | 						item.errorHandler(err); | 
					
						
							| 
									
										
										
										
											2016-07-02 23:30:21 +08:00
										 |  |  | 					} catch(err2) { | 
					
						
							|  |  |  | 						if(options.onErrored) { | 
					
						
							|  |  |  | 							options.onErrored({ | 
					
						
							|  |  |  | 								type: "self-accept-error-handler-errored", | 
					
						
							|  |  |  | 								moduleId: moduleId, | 
					
						
							|  |  |  | 								error: err2, | 
					
						
							|  |  |  | 								orginalError: err | 
					
						
							|  |  |  | 							}); | 
					
						
							|  |  |  | 						} | 
					
						
							|  |  |  | 						if(!options.ignoreErrored) { | 
					
						
							|  |  |  | 							if(!error) | 
					
						
							|  |  |  | 								error = err2; | 
					
						
							|  |  |  | 						} | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 						if(!error) | 
					
						
							|  |  |  | 							error = err; | 
					
						
							|  |  |  | 					} | 
					
						
							| 
									
										
										
										
											2016-07-02 23:30:21 +08:00
										 |  |  | 				} else { | 
					
						
							|  |  |  | 					if(options.onErrored) { | 
					
						
							|  |  |  | 						options.onErrored({ | 
					
						
							|  |  |  | 							type: "self-accept-errored", | 
					
						
							|  |  |  | 							moduleId: moduleId, | 
					
						
							|  |  |  | 							error: err | 
					
						
							|  |  |  | 						}); | 
					
						
							|  |  |  | 					} | 
					
						
							|  |  |  | 					if(!options.ignoreErrored) { | 
					
						
							|  |  |  | 						if(!error) | 
					
						
							|  |  |  | 							error = err; | 
					
						
							|  |  |  | 					} | 
					
						
							|  |  |  | 				} | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// handle errors in accept handlers and self accepted module load
 | 
					
						
							|  |  |  | 		if(error) { | 
					
						
							|  |  |  | 			hotSetStatus("fail"); | 
					
						
							| 
									
										
										
										
											2015-06-13 17:45:28 +08:00
										 |  |  | 			return Promise.reject(error); | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		hotSetStatus("idle"); | 
					
						
							| 
									
										
										
										
											2015-06-22 04:22:55 +08:00
										 |  |  | 		return Promise.resolve(outdatedModules); | 
					
						
							| 
									
										
										
										
											2015-04-29 05:38:41 +08:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2015-06-13 17:45:28 +08:00
										 |  |  | }; |