docs: function translate(load){
  			var filename;
  			//!steal-remove-start
  			filename = getFilename(load.name);
  			//!steal-remove-end
  
  			var result = parse(load.source, this, zoneOpts);
  
  			// Add any import specifiers to the load.
  			addImportSpecifiers(load, result);
  			load.metadata.originalSource = load.source;
  
  			// Register dynamic imports for the slim loader config
  			var localLoader = loader.localLoader || loader;
  			if (localLoader.slimConfig) {
  				localLoader.slimConfig.needsDynamicLoader = true;
  
  				var toMap = localLoader.slimConfig.toMap;
  				Array.prototype.push.apply(toMap, result.rawImports);
  				Array.prototype.push.apply(toMap, result.dynamicImports);
  			}
  
  			// For live-reload, determine if we should reload the viewModel
  			hasDynamicImports = result.dynamicImports.length > 0;
  
  			return Promise.all([
  				addBundles(result.dynamicImports, load.name),
  				Promise.all(result.imports)
  			]).then(function(pResults){
  				var exportedValuesDef = Object.keys(result.ases)
  				.map(function(name){
  					return "\"" + name + "\": {\n" +
  					"\t\t\tenumerable: true,\n" +
  					"\t\t\tconfigurable: true,\n" +
  					"\t\t\twritable: true,\n" +
  					"\t\t\tvalue: " + name + "['default'] || " + name + "\n" +
  					"\t\t}";
  				}).join(",\n");
  
  				var output = template({
  					imports: JSON.stringify(pResults[1]),
  					isDevelopment: isDevelopment || false,
  					routeData: result.viewModel.routeData || "",
  					args: result.args.join(", "),
  					zoneOpts: JSON.stringify(zoneOpts),
  					intermediate: JSON.stringify(result.intermediate),
  					ases: exportedValuesDef ? exportedValuesDef + "," : "",
  					filename: filename
  				});
  
  				return output;
  			});
  		}