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: () => { | ||||
| 		System.execute("(anonym)"); | ||||
|  |  | |||
|  | @ -12,6 +12,15 @@ const System = { | |||
| 			fn = deps; | ||||
| 			deps = []; | ||||
| 		} | ||||
| 
 | ||||
| 		let entry = { | ||||
| 			name, | ||||
| 			deps, | ||||
| 			fn, | ||||
| 			executed: false, | ||||
| 			exports: undefined | ||||
| 		}; | ||||
| 
 | ||||
| 		const dynamicExport = result => { | ||||
| 			if (System.registry[name] !== entry) { | ||||
| 				throw new Error(`Module ${name} calls dynamicExport too late`); | ||||
|  | @ -26,30 +35,25 @@ const System = { | |||
| 				return Promise.resolve(); | ||||
| 			} | ||||
| 		}; | ||||
| 
 | ||||
| 		if (name in System.registry) { | ||||
| 			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 (!Array.isArray(mod.setters)) { | ||||
| 			if (!Array.isArray(entry.mod.setters)) { | ||||
| 				throw new Error( | ||||
| 					`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( | ||||
| 					`Module ${name} has incorrect number of setters for the dependencies` | ||||
| 				); | ||||
| 			} | ||||
| 		} | ||||
| 		const entry = { | ||||
| 			name, | ||||
| 			deps, | ||||
| 			fn, | ||||
| 			mod, | ||||
| 			executed: false, | ||||
| 			exports: undefined | ||||
| 		}; | ||||
| 		System.registry[name] = entry; | ||||
| 	}, | ||||
| 	registry: undefined, | ||||
|  | @ -72,6 +76,7 @@ const System = { | |||
| 	}, | ||||
| 	ensureExecuted: name => { | ||||
| 		const m = System.registry[name]; | ||||
| 		console.log(m); | ||||
| 		if (!m) throw new Error(`Module ${name} not registered`); | ||||
| 		if (!m.executed) { | ||||
| 			m.executed = true; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue