mirror of https://github.com/webpack/webpack.git
				
				
				
			wip on fakeSystem
This commit is contained in:
		
							parent
							
								
									88f4d1fe0b
								
							
						
					
					
						commit
						aabcb3ceac
					
				|  | @ -32,19 +32,6 @@ module.exports = { | ||||||
| 				} | 				} | ||||||
| 			}); | 			}); | ||||||
| 		}); | 		}); | ||||||
| 		scope.DEF = { |  | ||||||
| 			get(module) { |  | ||||||
| 				return new Promise(resolve => { |  | ||||||
| 					setTimeout(() => { |  | ||||||
| 						resolve(() => ({ |  | ||||||
| 							__esModule: true, |  | ||||||
| 							module, |  | ||||||
| 							default: "def" |  | ||||||
| 						})); |  | ||||||
| 					}, 100); |  | ||||||
| 				}); |  | ||||||
| 			} |  | ||||||
| 		}; |  | ||||||
| 	}, | 	}, | ||||||
| 	afterExecute: () => { | 	afterExecute: () => { | ||||||
| 		System.execute("(anonym)"); | 		System.execute("(anonym)"); | ||||||
|  |  | ||||||
|  | @ -12,6 +12,15 @@ const System = { | ||||||
| 			fn = deps; | 			fn = deps; | ||||||
| 			deps = []; | 			deps = []; | ||||||
| 		} | 		} | ||||||
|  | 
 | ||||||
|  | 		let entry = { | ||||||
|  | 			name, | ||||||
|  | 			deps, | ||||||
|  | 			fn, | ||||||
|  | 			executed: false, | ||||||
|  | 			exports: undefined | ||||||
|  | 		}; | ||||||
|  | 
 | ||||||
| 		const dynamicExport = result => { | 		const dynamicExport = result => { | ||||||
| 			if (System.registry[name] !== entry) { | 			if (System.registry[name] !== entry) { | ||||||
| 				throw new Error(`Module ${name} calls dynamicExport too late`); | 				throw new Error(`Module ${name} calls dynamicExport too late`); | ||||||
|  | @ -26,30 +35,25 @@ const System = { | ||||||
| 				return Promise.resolve(); | 				return Promise.resolve(); | ||||||
| 			} | 			} | ||||||
| 		}; | 		}; | ||||||
|  | 
 | ||||||
| 		if (name in System.registry) { | 		if (name in System.registry) { | ||||||
| 			throw new Error(`Module ${name} is already registered`); | 			throw new Error(`Module ${name} is already registered`); | ||||||
| 		} | 		} | ||||||
| 		const mod = fn(dynamicExport, systemContext); | 
 | ||||||
|  | 		System.registry[name] = entry; | ||||||
|  | 		entry.mod = fn(dynamicExport, systemContext); | ||||||
| 		if (deps.length > 0) { | 		if (deps.length > 0) { | ||||||
| 			if (!Array.isArray(mod.setters)) { | 			if (!Array.isArray(entry.mod.setters)) { | ||||||
| 				throw new Error( | 				throw new Error( | ||||||
| 					`Module ${name} must have setters, because it has dependencies` | 					`Module ${name} must have setters, because it has dependencies` | ||||||
| 				); | 				); | ||||||
| 			} | 			} | ||||||
| 			if (mod.setters.length !== deps.length) { | 			if (entry.mod.setters.length !== deps.length) { | ||||||
| 				throw new Error( | 				throw new Error( | ||||||
| 					`Module ${name} has incorrect number of setters for the dependencies` | 					`Module ${name} has incorrect number of setters for the dependencies` | ||||||
| 				); | 				); | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		const entry = { |  | ||||||
| 			name, |  | ||||||
| 			deps, |  | ||||||
| 			fn, |  | ||||||
| 			mod, |  | ||||||
| 			executed: false, |  | ||||||
| 			exports: undefined |  | ||||||
| 		}; |  | ||||||
| 		System.registry[name] = entry; | 		System.registry[name] = entry; | ||||||
| 	}, | 	}, | ||||||
| 	registry: undefined, | 	registry: undefined, | ||||||
|  | @ -72,6 +76,7 @@ const System = { | ||||||
| 	}, | 	}, | ||||||
| 	ensureExecuted: name => { | 	ensureExecuted: name => { | ||||||
| 		const m = System.registry[name]; | 		const m = System.registry[name]; | ||||||
|  | 		console.log(m); | ||||||
| 		if (!m) throw new Error(`Module ${name} not registered`); | 		if (!m) throw new Error(`Module ${name} not registered`); | ||||||
| 		if (!m.executed) { | 		if (!m.executed) { | ||||||
| 			m.executed = true; | 			m.executed = true; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue