# Snapshot report for `test/function.js`

The actual snapshot is saved in `function.js.snap`.

Generated by [AVA](https://avajs.dev).

## assign-properties-to-default-export

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var foo$1 = {exports: {}};␊
      ␊
      const foo = {};␊
      ␊
      foo$1.exports = foo;␊
      foo$1.exports.bar = 1;␊
      ␊
      t.is(foo$1.exports.bar, 1);␊
      `,
    }

## assumed-globals

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var document$1 = {exports: {}};␊
      ␊
      /* eslint-disable */␊
      ␊
      if (typeof document !== 'undefined') {␊
        document$1.exports = document;␊
      } else {␊
        document$1.exports = { fake: true };␊
      }␊
      ␊
      t.deepEqual(document$1.exports, { real: true });␊
      `,
    }

## bare-import

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      Math.bar = 42;␊
      ␊
      t.is(Math.bar, 42);␊
      `,
    }

## bare-import-comment

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      // Great module␊
      Math.bar = 42;␊
      ␊
      t.is(Math.bar, 42);␊
      `,
    }

## basic

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var foo$1 = 21;␊
      ␊
      const foo = foo$1;␊
      ␊
      var main = foo * 2;␊
      ␊
      module.exports = main;␊
      `,
    }

## call-non-local-function-semantics

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var platform$1 = {};␊
      ␊
      platform$1.use = (platform) => (platform$1.platform = platform);␊
      ␊
      var browser$1 = 'browser';␊
      ␊
      var proxy = {};␊
      ␊
      var hasRequiredProxy;␊
      ␊
      function requireProxy () {␊
      	if (hasRequiredProxy) return proxy;␊
      	hasRequiredProxy = 1;␊
      	const { platform } = platform$1;␊
      ␊
      	t.is(platform, 'browser');␊
      	return proxy;␊
      }␊
      ␊
      // simplified from dd-trace␊
      const platform = platform$1;␊
      const browser = browser$1;␊
      ␊
      platform.use(browser);␊
      ␊
      requireProxy();␊
      ␊
      module.exports = main;␊
      `,
    }

## circular-dependencies

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      Object.defineProperty(exports, '__esModule', { value: true });␊
      ␊
      var main$1 = {};␊
      ␊
      var dep$1 = {};␊
      ␊
      const main = main$1;␊
      ␊
      dep$1.getMain = () => main;␊
      ␊
      const dep = dep$1;␊
      ␊
      var foo = main$1.foo = 'foo';␊
      t.is(dep.getMain().foo, 'foo');␊
      ␊
      exports.default = main$1;␊
      exports.foo = foo;␊
      `,
    }

## circular-dependencies-wrapped

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      Object.defineProperty(exports, '__esModule', { value: true });␊
      ␊
      var main = {};␊
      ␊
      var dep = {};␊
      ␊
      (function (exports) {␊
      	const main$1 = main;␊
      ␊
      	addExports(exports);␊
      ␊
      	function addExports(exported) {␊
      	  // eslint-disable-next-line no-param-reassign␊
      	  exported.getMain = () => main$1;␊
      	}␊
      } (dep));␊
      ␊
      (function (exports) {␊
      	const dep$1 = dep;␊
      ␊
      	addExports();␊
      	t.is(dep$1.getMain().foo, 'foo');␊
      ␊
      	function addExports(exported) {␊
      	  // eslint-disable-next-line no-param-reassign␊
      	  exports.foo = 'foo';␊
      	}␊
      } (main));␊
      ␊
      exports.default = main;␊
      `,
    }

## cjs-extension

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var _export = {␊
        test: 42␊
      };␊
      ␊
      const { test } = _export;␊
      ␊
      t.is(test, 42);␊
      ␊
      module.exports = main;␊
      `,
    }

## conditional-require-chain

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};␊
      ␊
      var main = {};␊
      ␊
      var dep = {};␊
      ␊
      var throws = {};␊
      ␊
      var hasRequiredThrows;␊
      ␊
      function requireThrows () {␊
      	if (hasRequiredThrows) return throws;␊
      	hasRequiredThrows = 1;␊
      	throw new Error('This should not be executed');␊
      }␊
      ␊
      var hasRequiredDep;␊
      ␊
      function requireDep () {␊
      	if (hasRequiredDep) return dep;␊
      	hasRequiredDep = 1;␊
      	requireThrows();␊
      	return dep;␊
      }␊
      ␊
      commonjsGlobal.false = false;␊
      ␊
      if (commonjsGlobal.false) {␊
        // eslint-disable-next-line global-require␊
        requireDep();␊
      }␊
      ␊
      module.exports = main;␊
      `,
    }

## conditional-require-non-strict

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};␊
      ␊
      var main = {};␊
      ␊
      commonjsGlobal.foo = true;␊
      ␊
      commonjsGlobal.bar = true;␊
      ␊
      commonjsGlobal.main = true;␊
      ␊
      t.is(commonjsGlobal.foo, true, 'foo');␊
      t.is(commonjsGlobal.main, true, 'main');␊
      ␊
      module.exports = main;␊
      `,
    }

## custom-options

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      t.is('main', 'main');␊
      `,
    }

## dash-name

> Snapshot 1

    {
      'bundle.js': `'use strict';␊
      ␊
      var dashName = true;␊
      ␊
      t.truthy(dashName);␊
      `,
    }

## deconflict-export-and-local

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var someValue$1 = {};␊
      ␊
      someValue$1.someValue = 10;␊
      ␊
      const someValueModule = someValue$1;␊
      ␊
      var someValue = someValueModule.someValue;␊
      ␊
      t.is(someValue, 10);␊
      `,
    }

## dot

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var foo_bar = 'fubar';␊
      ␊
      const status = foo_bar;␊
      ␊
      t.is(status, 'fubar');␊
      ␊
      module.exports = main;␊
      `,
    }

## double-exports-assignment

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var dep = {};␊
      ␊
      dep.foo = 'first';␊
      dep.foo = 'second';␊
      ␊
      t.is(dep.foo, 'second');␊
      `,
    }

## double-exports-assignment-named

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var foo = 'first';␊
      foo = 'second';␊
      ␊
      t.is(foo, 'second');␊
      `,
    }

## double-module-exports-assignment

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var dep = 'first';␊
      dep = 'second';␊
      ␊
      var dep$1 = dep;␊
      ␊
      t.is(dep$1, 'second');␊
      `,
    }

## duplicate-default-exports

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var x$1 = {exports: {}};␊
      ␊
      const x = {};␊
      ␊
      x$1.exports = x;␊
      x$1.exports.default = x;␊
      ␊
      t.is(x$1.exports.default, x$1.exports);␊
      `,
    }

## duplicate-default-exports-b

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var x$1 = {exports: {}};␊
      ␊
      const x = {};␊
      ␊
      x$1.exports = x;␊
      x$1.exports.default = 42;␊
      ␊
      t.deepEqual(x$1.exports, { default: 42 });␊
      `,
    }

## duplicate-default-exports-c

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var exports$1 = {};␊
      ␊
      var Foo = exports$1.Foo = 1;␊
      var _var = exports$1.var = 'VAR';␊
      exports$1.default = {␊
        Foo: 2,␊
        default: 3␊
      };␊
      ␊
      /* eslint-disable */␊
      ␊
      t.is(exports$1.Foo, 1);␊
      t.is(exports$1.var, 'VAR');␊
      t.deepEqual(exports$1.default, { Foo: 2, default: 3 });␊
      t.is(exports$1.default.Foo, 2);␊
      t.is(exports$1.default.default, 3);␊
      t.is(Foo, 1);␊
      t.is(_var, 'VAR');␊
      `,
    }

## dynamic-module-require

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var submodule;␊
      var hasRequiredSubmodule;␊
      ␊
      function requireSubmodule () {␊
      	if (hasRequiredSubmodule) return submodule;␊
      	hasRequiredSubmodule = 1;␊
      	submodule = function () {␊
      	  return 'Hello there';␊
      	};␊
      	return submodule;␊
      }␊
      ␊
      var dynamicModules;␊
      ␊
      function getDynamicModules() {␊
      	return dynamicModules || (dynamicModules = {␊
      		"/fixtures/function/dynamic-module-require/submodule.js": requireSubmodule␊
      	});␊
      }␊
      ␊
      function createCommonjsRequire(originalModuleDir) {␊
      	function handleRequire(path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return getDynamicModules()[resolvedPath]();␊
      		}␊
      		throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');␊
      	}␊
      	handleRequire.resolve = function (path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return resolvedPath;␊
      		}␊
      		return require.resolve(path);␊
      	};␊
      	return handleRequire;␊
      }␊
      ␊
      function commonjsResolve (path, originalModuleDir) {␊
      	var shouldTryNodeModules = isPossibleNodeModulesPath(path);␊
      	path = normalize(path);␊
      	var relPath;␊
      	if (path[0] === '/') {␊
      		originalModuleDir = '';␊
      	}␊
      	var modules = getDynamicModules();␊
      	var checkedExtensions = ['', '.js', '.json'];␊
      	while (true) {␊
      		if (!shouldTryNodeModules) {␊
      			relPath = normalize(originalModuleDir + '/' + path);␊
      		} else {␊
      			relPath = normalize(originalModuleDir + '/node_modules/' + path);␊
      		}␊
      ␊
      		if (relPath.endsWith('/..')) {␊
      			break; // Travelled too far up, avoid infinite loop␊
      		}␊
      ␊
      		for (var extensionIndex = 0; extensionIndex < checkedExtensions.length; extensionIndex++) {␊
      			var resolvedPath = relPath + checkedExtensions[extensionIndex];␊
      			if (modules[resolvedPath]) {␊
      				return resolvedPath;␊
      			}␊
      		}␊
      		if (!shouldTryNodeModules) break;␊
      		var nextDir = normalize(originalModuleDir + '/..');␊
      		if (nextDir === originalModuleDir) break;␊
      		originalModuleDir = nextDir;␊
      	}␊
      	return null;␊
      }␊
      ␊
      function isPossibleNodeModulesPath (modulePath) {␊
      	var c0 = modulePath[0];␊
      	if (c0 === '/' || c0 === '\\\\') return false;␊
      	var c1 = modulePath[1], c2 = modulePath[2];␊
      	if ((c0 === '.' && (!c1 || c1 === '/' || c1 === '\\\\')) ||␊
      		(c0 === '.' && c1 === '.' && (!c2 || c2 === '/' || c2 === '\\\\'))) return false;␊
      	if (c1 === ':' && (c2 === '/' || c2 === '\\\\')) return false;␊
      	return true;␊
      }␊
      ␊
      function normalize (path) {␊
      	path = path.replace(/\\\\/g, '/');␊
      	var parts = path.split('/');␊
      	var slashed = parts[0] === '';␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] === '.' || parts[i] === '') {␊
      			parts.splice(i--, 1);␊
      		}␊
      	}␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] !== '..') continue;␊
      		if (i > 0 && parts[i - 1] !== '..' && parts[i - 1] !== '.') {␊
      			parts.splice(--i, 2);␊
      			i--;␊
      		}␊
      	}␊
      	path = parts.join('/');␊
      	if (slashed && path[0] !== '/') path = '/' + path;␊
      	else if (path.length === 0) path = '.';␊
      	return path;␊
      }␊
      ␊
      var main = {};␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      let message;␊
      ␊
      function takeModule(withName) {␊
        return createCommonjsRequire("/fixtures/function/dynamic-module-require")(\`./${withName}\`);␊
      }␊
      ␊
      try {␊
        const submodule = takeModule('submodule');␊
        message = submodule();␊
      } catch (err) {␊
        ({ message } = err);␊
      }␊
      ␊
      t.is(message, 'Hello there');␊
      ␊
      module.exports = main;␊
      `,
    }

## dynamic-require

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var submodule;␊
      var hasRequiredSubmodule;␊
      ␊
      function requireSubmodule () {␊
      	if (hasRequiredSubmodule) return submodule;␊
      	hasRequiredSubmodule = 1;␊
      	submodule = function () {␊
      	  return 'Hello there';␊
      	};␊
      	return submodule;␊
      }␊
      ␊
      var dynamicModules;␊
      ␊
      function getDynamicModules() {␊
      	return dynamicModules || (dynamicModules = {␊
      		"/fixtures/function/dynamic-require/submodule.js": requireSubmodule␊
      	});␊
      }␊
      ␊
      function createCommonjsRequire(originalModuleDir) {␊
      	function handleRequire(path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return getDynamicModules()[resolvedPath]();␊
      		}␊
      		throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');␊
      	}␊
      	handleRequire.resolve = function (path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return resolvedPath;␊
      		}␊
      		return require.resolve(path);␊
      	};␊
      	return handleRequire;␊
      }␊
      ␊
      function commonjsResolve (path, originalModuleDir) {␊
      	var shouldTryNodeModules = isPossibleNodeModulesPath(path);␊
      	path = normalize(path);␊
      	var relPath;␊
      	if (path[0] === '/') {␊
      		originalModuleDir = '';␊
      	}␊
      	var modules = getDynamicModules();␊
      	var checkedExtensions = ['', '.js', '.json'];␊
      	while (true) {␊
      		if (!shouldTryNodeModules) {␊
      			relPath = normalize(originalModuleDir + '/' + path);␊
      		} else {␊
      			relPath = normalize(originalModuleDir + '/node_modules/' + path);␊
      		}␊
      ␊
      		if (relPath.endsWith('/..')) {␊
      			break; // Travelled too far up, avoid infinite loop␊
      		}␊
      ␊
      		for (var extensionIndex = 0; extensionIndex < checkedExtensions.length; extensionIndex++) {␊
      			var resolvedPath = relPath + checkedExtensions[extensionIndex];␊
      			if (modules[resolvedPath]) {␊
      				return resolvedPath;␊
      			}␊
      		}␊
      		if (!shouldTryNodeModules) break;␊
      		var nextDir = normalize(originalModuleDir + '/..');␊
      		if (nextDir === originalModuleDir) break;␊
      		originalModuleDir = nextDir;␊
      	}␊
      	return null;␊
      }␊
      ␊
      function isPossibleNodeModulesPath (modulePath) {␊
      	var c0 = modulePath[0];␊
      	if (c0 === '/' || c0 === '\\\\') return false;␊
      	var c1 = modulePath[1], c2 = modulePath[2];␊
      	if ((c0 === '.' && (!c1 || c1 === '/' || c1 === '\\\\')) ||␊
      		(c0 === '.' && c1 === '.' && (!c2 || c2 === '/' || c2 === '\\\\'))) return false;␊
      	if (c1 === ':' && (c2 === '/' || c2 === '\\\\')) return false;␊
      	return true;␊
      }␊
      ␊
      function normalize (path) {␊
      	path = path.replace(/\\\\/g, '/');␊
      	var parts = path.split('/');␊
      	var slashed = parts[0] === '';␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] === '.' || parts[i] === '') {␊
      			parts.splice(i--, 1);␊
      		}␊
      	}␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] !== '..') continue;␊
      		if (i > 0 && parts[i - 1] !== '..' && parts[i - 1] !== '.') {␊
      			parts.splice(--i, 2);␊
      			i--;␊
      		}␊
      	}␊
      	path = parts.join('/');␊
      	if (slashed && path[0] !== '/') path = '/' + path;␊
      	else if (path.length === 0) path = '.';␊
      	return path;␊
      }␊
      ␊
      var main = {};␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      let message;␊
      ␊
      function takeModule(withName) {␊
        return createCommonjsRequire("/fixtures/function/dynamic-require")(\`./${withName}\`);␊
      }␊
      ␊
      try {␊
        const submodule = takeModule('submodule');␊
        message = submodule();␊
      } catch (err) {␊
        ({ message } = err);␊
      }␊
      ␊
      t.is(message, 'Hello there');␊
      ␊
      module.exports = main;␊
      `,
    }

## dynamic-require-absolute-import

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var direct;␊
      var hasRequiredDirect;␊
      ␊
      function requireDirect () {␊
      	if (hasRequiredDirect) return direct;␊
      	hasRequiredDirect = 1;␊
      	direct = 'direct';␊
      	return direct;␊
      }␊
      ␊
      var nested;␊
      var hasRequiredNested;␊
      ␊
      function requireNested () {␊
      	if (hasRequiredNested) return nested;␊
      	hasRequiredNested = 1;␊
      	nested = 'nested';␊
      	return nested;␊
      }␊
      ␊
      var parent;␊
      var hasRequiredParent;␊
      ␊
      function requireParent () {␊
      	if (hasRequiredParent) return parent;␊
      	hasRequiredParent = 1;␊
      	parent = 'parent';␊
      	return parent;␊
      }␊
      ␊
      var dynamicModules;␊
      ␊
      function getDynamicModules() {␊
      	return dynamicModules || (dynamicModules = {␊
      		"/fixtures/function/dynamic-require-absolute-import/sub/node_modules/module/direct.js": requireDirect,␊
      		"/fixtures/function/dynamic-require-absolute-import/sub/node_modules/module/nested/nested.js": requireNested,␊
      		"/fixtures/function/dynamic-require-absolute-import/node_modules/parent-module/parent.js": requireParent␊
      	});␊
      }␊
      ␊
      function createCommonjsRequire(originalModuleDir) {␊
      	function handleRequire(path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return getDynamicModules()[resolvedPath]();␊
      		}␊
      		throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');␊
      	}␊
      	handleRequire.resolve = function (path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return resolvedPath;␊
      		}␊
      		return require.resolve(path);␊
      	};␊
      	return handleRequire;␊
      }␊
      ␊
      function commonjsResolve (path, originalModuleDir) {␊
      	var shouldTryNodeModules = isPossibleNodeModulesPath(path);␊
      	path = normalize(path);␊
      	var relPath;␊
      	if (path[0] === '/') {␊
      		originalModuleDir = '';␊
      	}␊
      	var modules = getDynamicModules();␊
      	var checkedExtensions = ['', '.js', '.json'];␊
      	while (true) {␊
      		if (!shouldTryNodeModules) {␊
      			relPath = normalize(originalModuleDir + '/' + path);␊
      		} else {␊
      			relPath = normalize(originalModuleDir + '/node_modules/' + path);␊
      		}␊
      ␊
      		if (relPath.endsWith('/..')) {␊
      			break; // Travelled too far up, avoid infinite loop␊
      		}␊
      ␊
      		for (var extensionIndex = 0; extensionIndex < checkedExtensions.length; extensionIndex++) {␊
      			var resolvedPath = relPath + checkedExtensions[extensionIndex];␊
      			if (modules[resolvedPath]) {␊
      				return resolvedPath;␊
      			}␊
      		}␊
      		if (!shouldTryNodeModules) break;␊
      		var nextDir = normalize(originalModuleDir + '/..');␊
      		if (nextDir === originalModuleDir) break;␊
      		originalModuleDir = nextDir;␊
      	}␊
      	return null;␊
      }␊
      ␊
      function isPossibleNodeModulesPath (modulePath) {␊
      	var c0 = modulePath[0];␊
      	if (c0 === '/' || c0 === '\\\\') return false;␊
      	var c1 = modulePath[1], c2 = modulePath[2];␊
      	if ((c0 === '.' && (!c1 || c1 === '/' || c1 === '\\\\')) ||␊
      		(c0 === '.' && c1 === '.' && (!c2 || c2 === '/' || c2 === '\\\\'))) return false;␊
      	if (c1 === ':' && (c2 === '/' || c2 === '\\\\')) return false;␊
      	return true;␊
      }␊
      ␊
      function normalize (path) {␊
      	path = path.replace(/\\\\/g, '/');␊
      	var parts = path.split('/');␊
      	var slashed = parts[0] === '';␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] === '.' || parts[i] === '') {␊
      			parts.splice(i--, 1);␊
      		}␊
      	}␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] !== '..') continue;␊
      		if (i > 0 && parts[i - 1] !== '..' && parts[i - 1] !== '.') {␊
      			parts.splice(--i, 2);␊
      			i--;␊
      		}␊
      	}␊
      	path = parts.join('/');␊
      	if (slashed && path[0] !== '/') path = '/' + path;␊
      	else if (path.length === 0) path = '.';␊
      	return path;␊
      }␊
      ␊
      var submodule = {};␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      function takeModule(name) {␊
        return createCommonjsRequire("/fixtures/function/dynamic-require-absolute-import/sub")(name);␊
      }␊
      ␊
      submodule.moduleDirect = takeModule('module/direct');␊
      submodule.moduleNested = takeModule('module/nested/nested');␊
      submodule.parentModule = takeModule('parent-module/parent');␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      t.deepEqual(submodule, {␊
        moduleDirect: 'direct',␊
        moduleNested: 'nested',␊
        parentModule: 'parent'␊
      });␊
      ␊
      module.exports = main;␊
      `,
    }

## dynamic-require-alias-hack

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var require$$0 = require('buffer');␊
      ␊
      function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }␊
      ␊
      var require$$0__default = /*#__PURE__*/_interopDefaultCompat(require$$0);␊
      ␊
      var stub;␊
      var hasRequiredStub;␊
      ␊
      function requireStub () {␊
      	if (hasRequiredStub) return stub;␊
      	hasRequiredStub = 1;␊
      	stub = function () {␊
      	  return 'Hello there';␊
      	};␊
      	return stub;␊
      }␊
      ␊
      var dynamicModules;␊
      ␊
      function getDynamicModules() {␊
      	return dynamicModules || (dynamicModules = {␊
      		"/fixtures/function/dynamic-require-alias-hack/stub.js": requireStub␊
      	});␊
      }␊
      ␊
      function createCommonjsRequire(originalModuleDir) {␊
      	function handleRequire(path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return getDynamicModules()[resolvedPath]();␊
      		}␊
      		return require(path);␊
      	}␊
      	handleRequire.resolve = function (path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return resolvedPath;␊
      		}␊
      		return require.resolve(path);␊
      	};␊
      	return handleRequire;␊
      }␊
      ␊
      function commonjsResolve (path, originalModuleDir) {␊
      	var shouldTryNodeModules = isPossibleNodeModulesPath(path);␊
      	path = normalize(path);␊
      	var relPath;␊
      	if (path[0] === '/') {␊
      		originalModuleDir = '';␊
      	}␊
      	var modules = getDynamicModules();␊
      	var checkedExtensions = ['', '.js', '.json'];␊
      	while (true) {␊
      		if (!shouldTryNodeModules) {␊
      			relPath = normalize(originalModuleDir + '/' + path);␊
      		} else {␊
      			relPath = normalize(originalModuleDir + '/node_modules/' + path);␊
      		}␊
      ␊
      		if (relPath.endsWith('/..')) {␊
      			break; // Travelled too far up, avoid infinite loop␊
      		}␊
      ␊
      		for (var extensionIndex = 0; extensionIndex < checkedExtensions.length; extensionIndex++) {␊
      			var resolvedPath = relPath + checkedExtensions[extensionIndex];␊
      			if (modules[resolvedPath]) {␊
      				return resolvedPath;␊
      			}␊
      		}␊
      		if (!shouldTryNodeModules) break;␊
      		var nextDir = normalize(originalModuleDir + '/..');␊
      		if (nextDir === originalModuleDir) break;␊
      		originalModuleDir = nextDir;␊
      	}␊
      	return null;␊
      }␊
      ␊
      function isPossibleNodeModulesPath (modulePath) {␊
      	var c0 = modulePath[0];␊
      	if (c0 === '/' || c0 === '\\\\') return false;␊
      	var c1 = modulePath[1], c2 = modulePath[2];␊
      	if ((c0 === '.' && (!c1 || c1 === '/' || c1 === '\\\\')) ||␊
      		(c0 === '.' && c1 === '.' && (!c2 || c2 === '/' || c2 === '\\\\'))) return false;␊
      	if (c1 === ':' && (c2 === '/' || c2 === '\\\\')) return false;␊
      	return true;␊
      }␊
      ␊
      function normalize (path) {␊
      	path = path.replace(/\\\\/g, '/');␊
      	var parts = path.split('/');␊
      	var slashed = parts[0] === '';␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] === '.' || parts[i] === '') {␊
      			parts.splice(i--, 1);␊
      		}␊
      	}␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] !== '..') continue;␊
      		if (i > 0 && parts[i - 1] !== '..' && parts[i - 1] !== '.') {␊
      			parts.splice(--i, 2);␊
      			i--;␊
      		}␊
      	}␊
      	path = parts.join('/');␊
      	if (slashed && path[0] !== '/') path = '/' + path;␊
      	else if (path.length === 0) path = '.';␊
      	return path;␊
      }␊
      ␊
      var main = {};␊
      ␊
      /* eslint-disable global-require */␊
      ␊
      // noinspection UnnecessaryLocalVariableJS␊
      ␊
      // A hack used in many old libraries, saying "workaround to exclude package from browserify list."␊
      // Will bypass rollup-commonjs finding out that this is a require that should not go through the plugin, and will do an infinite search.␊
      const _require = createCommonjsRequire("/fixtures/function/dynamic-require-alias-hack");␊
      const buffer = _require('buffer');␊
      ␊
      t.is(buffer, require$$0__default.default);␊
      ␊
      module.exports = main;␊
      `,
    }

## dynamic-require-code-splitting

> Snapshot 1

    {
      'generated-lib2.js': `'use strict';␊
      ␊
      var target1;␊
      var hasRequiredTarget1;␊
      ␊
      function requireTarget1 () {␊
      	if (hasRequiredTarget1) return target1;␊
      	hasRequiredTarget1 = 1;␊
      	target1 = '1';␊
      	return target1;␊
      }␊
      ␊
      var target2;␊
      var hasRequiredTarget2;␊
      ␊
      function requireTarget2 () {␊
      	if (hasRequiredTarget2) return target2;␊
      	hasRequiredTarget2 = 1;␊
      	target2 = '2';␊
      	return target2;␊
      }␊
      ␊
      var dynamicModules;␊
      ␊
      function getDynamicModules() {␊
      	return dynamicModules || (dynamicModules = {␊
      		"/fixtures/function/dynamic-require-code-splitting/target1.js": requireTarget1,␊
      		"/fixtures/function/dynamic-require-code-splitting/target2.js": requireTarget2␊
      	});␊
      }␊
      ␊
      function createCommonjsRequire(originalModuleDir) {␊
      	function handleRequire(path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return getDynamicModules()[resolvedPath]();␊
      		}␊
      		throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');␊
      	}␊
      	handleRequire.resolve = function (path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return resolvedPath;␊
      		}␊
      		return require.resolve(path);␊
      	};␊
      	return handleRequire;␊
      }␊
      ␊
      function commonjsResolve (path, originalModuleDir) {␊
      	var shouldTryNodeModules = isPossibleNodeModulesPath(path);␊
      	path = normalize(path);␊
      	var relPath;␊
      	if (path[0] === '/') {␊
      		originalModuleDir = '';␊
      	}␊
      	var modules = getDynamicModules();␊
      	var checkedExtensions = ['', '.js', '.json'];␊
      	while (true) {␊
      		if (!shouldTryNodeModules) {␊
      			relPath = normalize(originalModuleDir + '/' + path);␊
      		} else {␊
      			relPath = normalize(originalModuleDir + '/node_modules/' + path);␊
      		}␊
      ␊
      		if (relPath.endsWith('/..')) {␊
      			break; // Travelled too far up, avoid infinite loop␊
      		}␊
      ␊
      		for (var extensionIndex = 0; extensionIndex < checkedExtensions.length; extensionIndex++) {␊
      			var resolvedPath = relPath + checkedExtensions[extensionIndex];␊
      			if (modules[resolvedPath]) {␊
      				return resolvedPath;␊
      			}␊
      		}␊
      		if (!shouldTryNodeModules) break;␊
      		var nextDir = normalize(originalModuleDir + '/..');␊
      		if (nextDir === originalModuleDir) break;␊
      		originalModuleDir = nextDir;␊
      	}␊
      	return null;␊
      }␊
      ␊
      function isPossibleNodeModulesPath (modulePath) {␊
      	var c0 = modulePath[0];␊
      	if (c0 === '/' || c0 === '\\\\') return false;␊
      	var c1 = modulePath[1], c2 = modulePath[2];␊
      	if ((c0 === '.' && (!c1 || c1 === '/' || c1 === '\\\\')) ||␊
      		(c0 === '.' && c1 === '.' && (!c2 || c2 === '/' || c2 === '\\\\'))) return false;␊
      	if (c1 === ':' && (c2 === '/' || c2 === '\\\\')) return false;␊
      	return true;␊
      }␊
      ␊
      function normalize (path) {␊
      	path = path.replace(/\\\\/g, '/');␊
      	var parts = path.split('/');␊
      	var slashed = parts[0] === '';␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] === '.' || parts[i] === '') {␊
      			parts.splice(i--, 1);␊
      		}␊
      	}␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] !== '..') continue;␊
      		if (i > 0 && parts[i - 1] !== '..' && parts[i - 1] !== '.') {␊
      			parts.splice(--i, 2);␊
      			i--;␊
      		}␊
      	}␊
      	path = parts.join('/');␊
      	if (slashed && path[0] !== '/') path = '/' + path;␊
      	else if (path.length === 0) path = '.';␊
      	return path;␊
      }␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      let message;␊
      ␊
      for (const index of [1, 2]) {␊
        try {␊
          message = createCommonjsRequire("/fixtures/function/dynamic-require-code-splitting")(\`./target${index}.js\`);␊
        } catch (err) {␊
          ({ message } = err);␊
        }␊
        t.is(message, index.toString());␊
      }␊
      ␊
      exports.createCommonjsRequire = createCommonjsRequire;␊
      `,
      'main.js': `'use strict';␊
      ␊
      var lib2 = require('./generated-lib2.js');␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      let message;␊
      ␊
      for (const index of [1, 2]) {␊
        try {␊
          message = lib2.createCommonjsRequire("/fixtures/function/dynamic-require-code-splitting")(\`./target${index}.js\`);␊
        } catch (err) {␊
          ({ message } = err);␊
        }␊
        t.is(message, index.toString());␊
      }␊
      `,
      'main2.js': `'use strict';␊
      ␊
      require('./generated-lib2.js');␊
      ␊
      `,
    }

## dynamic-require-different-loader

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var submodule2;␊
      var hasRequiredSubmodule2;␊
      ␊
      function requireSubmodule2 () {␊
      	if (hasRequiredSubmodule2) return submodule2;␊
      	hasRequiredSubmodule2 = 1;␊
      	submodule2 = function () {␊
      	  return 'Hello there';␊
      	};␊
      	return submodule2;␊
      }␊
      ␊
      const fn = requireSubmodule2();␊
      ␊
      var main = fn();␊
      ␊
      module.exports = main;␊
      `,
    }

## dynamic-require-empty

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var submodule = {};␊
      ␊
      var hasRequiredSubmodule;␊
      ␊
      function requireSubmodule () {␊
      	if (hasRequiredSubmodule) return submodule;␊
      	hasRequiredSubmodule = 1;␊
      ␊
      	return submodule;␊
      }␊
      ␊
      var dynamicModules;␊
      ␊
      function getDynamicModules() {␊
      	return dynamicModules || (dynamicModules = {␊
      		"/fixtures/function/dynamic-require-empty/submodule.js": requireSubmodule␊
      	});␊
      }␊
      ␊
      function createCommonjsRequire(originalModuleDir) {␊
      	function handleRequire(path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return getDynamicModules()[resolvedPath]();␊
      		}␊
      		throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');␊
      	}␊
      	handleRequire.resolve = function (path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return resolvedPath;␊
      		}␊
      		return require.resolve(path);␊
      	};␊
      	return handleRequire;␊
      }␊
      ␊
      function commonjsResolve (path, originalModuleDir) {␊
      	var shouldTryNodeModules = isPossibleNodeModulesPath(path);␊
      	path = normalize(path);␊
      	var relPath;␊
      	if (path[0] === '/') {␊
      		originalModuleDir = '';␊
      	}␊
      	var modules = getDynamicModules();␊
      	var checkedExtensions = ['', '.js', '.json'];␊
      	while (true) {␊
      		if (!shouldTryNodeModules) {␊
      			relPath = normalize(originalModuleDir + '/' + path);␊
      		} else {␊
      			relPath = normalize(originalModuleDir + '/node_modules/' + path);␊
      		}␊
      ␊
      		if (relPath.endsWith('/..')) {␊
      			break; // Travelled too far up, avoid infinite loop␊
      		}␊
      ␊
      		for (var extensionIndex = 0; extensionIndex < checkedExtensions.length; extensionIndex++) {␊
      			var resolvedPath = relPath + checkedExtensions[extensionIndex];␊
      			if (modules[resolvedPath]) {␊
      				return resolvedPath;␊
      			}␊
      		}␊
      		if (!shouldTryNodeModules) break;␊
      		var nextDir = normalize(originalModuleDir + '/..');␊
      		if (nextDir === originalModuleDir) break;␊
      		originalModuleDir = nextDir;␊
      	}␊
      	return null;␊
      }␊
      ␊
      function isPossibleNodeModulesPath (modulePath) {␊
      	var c0 = modulePath[0];␊
      	if (c0 === '/' || c0 === '\\\\') return false;␊
      	var c1 = modulePath[1], c2 = modulePath[2];␊
      	if ((c0 === '.' && (!c1 || c1 === '/' || c1 === '\\\\')) ||␊
      		(c0 === '.' && c1 === '.' && (!c2 || c2 === '/' || c2 === '\\\\'))) return false;␊
      	if (c1 === ':' && (c2 === '/' || c2 === '\\\\')) return false;␊
      	return true;␊
      }␊
      ␊
      function normalize (path) {␊
      	path = path.replace(/\\\\/g, '/');␊
      	var parts = path.split('/');␊
      	var slashed = parts[0] === '';␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] === '.' || parts[i] === '') {␊
      			parts.splice(i--, 1);␊
      		}␊
      	}␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] !== '..') continue;␊
      		if (i > 0 && parts[i - 1] !== '..' && parts[i - 1] !== '.') {␊
      			parts.splice(--i, 2);␊
      			i--;␊
      		}␊
      	}␊
      	path = parts.join('/');␊
      	if (slashed && path[0] !== '/') path = '/' + path;␊
      	else if (path.length === 0) path = '.';␊
      	return path;␊
      }␊
      ␊
      var main = {};␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      function takeModule(withName) {␊
        return createCommonjsRequire("/fixtures/function/dynamic-require-empty")(\`./${withName}\`);␊
      }␊
      ␊
      t.deepEqual(takeModule('submodule'), {});␊
      ␊
      module.exports = main;␊
      `,
    }

## dynamic-require-es-entry

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var submodule;␊
      var hasRequiredSubmodule;␊
      ␊
      function requireSubmodule () {␊
      	if (hasRequiredSubmodule) return submodule;␊
      	hasRequiredSubmodule = 1;␊
      	submodule = 'submodule';␊
      	return submodule;␊
      }␊
      ␊
      var dynamicModules;␊
      ␊
      function getDynamicModules() {␊
      	return dynamicModules || (dynamicModules = {␊
      		"/fixtures/function/dynamic-require-es-entry/submodule.js": requireSubmodule␊
      	});␊
      }␊
      ␊
      function createCommonjsRequire(originalModuleDir) {␊
      	function handleRequire(path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return getDynamicModules()[resolvedPath]();␊
      		}␊
      		throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');␊
      	}␊
      	handleRequire.resolve = function (path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return resolvedPath;␊
      		}␊
      		return require.resolve(path);␊
      	};␊
      	return handleRequire;␊
      }␊
      ␊
      function commonjsResolve (path, originalModuleDir) {␊
      	var shouldTryNodeModules = isPossibleNodeModulesPath(path);␊
      	path = normalize(path);␊
      	var relPath;␊
      	if (path[0] === '/') {␊
      		originalModuleDir = '';␊
      	}␊
      	var modules = getDynamicModules();␊
      	var checkedExtensions = ['', '.js', '.json'];␊
      	while (true) {␊
      		if (!shouldTryNodeModules) {␊
      			relPath = normalize(originalModuleDir + '/' + path);␊
      		} else {␊
      			relPath = normalize(originalModuleDir + '/node_modules/' + path);␊
      		}␊
      ␊
      		if (relPath.endsWith('/..')) {␊
      			break; // Travelled too far up, avoid infinite loop␊
      		}␊
      ␊
      		for (var extensionIndex = 0; extensionIndex < checkedExtensions.length; extensionIndex++) {␊
      			var resolvedPath = relPath + checkedExtensions[extensionIndex];␊
      			if (modules[resolvedPath]) {␊
      				return resolvedPath;␊
      			}␊
      		}␊
      		if (!shouldTryNodeModules) break;␊
      		var nextDir = normalize(originalModuleDir + '/..');␊
      		if (nextDir === originalModuleDir) break;␊
      		originalModuleDir = nextDir;␊
      	}␊
      	return null;␊
      }␊
      ␊
      function isPossibleNodeModulesPath (modulePath) {␊
      	var c0 = modulePath[0];␊
      	if (c0 === '/' || c0 === '\\\\') return false;␊
      	var c1 = modulePath[1], c2 = modulePath[2];␊
      	if ((c0 === '.' && (!c1 || c1 === '/' || c1 === '\\\\')) ||␊
      		(c0 === '.' && c1 === '.' && (!c2 || c2 === '/' || c2 === '\\\\'))) return false;␊
      	if (c1 === ':' && (c2 === '/' || c2 === '\\\\')) return false;␊
      	return true;␊
      }␊
      ␊
      function normalize (path) {␊
      	path = path.replace(/\\\\/g, '/');␊
      	var parts = path.split('/');␊
      	var slashed = parts[0] === '';␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] === '.' || parts[i] === '') {␊
      			parts.splice(i--, 1);␊
      		}␊
      	}␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] !== '..') continue;␊
      		if (i > 0 && parts[i - 1] !== '..' && parts[i - 1] !== '.') {␊
      			parts.splice(--i, 2);␊
      			i--;␊
      		}␊
      	}␊
      	path = parts.join('/');␊
      	if (slashed && path[0] !== '/') path = '/' + path;␊
      	else if (path.length === 0) path = '.';␊
      	return path;␊
      }␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      function takeModule(withName) {␊
        return createCommonjsRequire("/fixtures/function/dynamic-require-es-entry")(\`./${withName}\`);␊
      }␊
      ␊
      var importer = takeModule('submodule.js');␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      t.is(importer, 'submodule');␊
      `,
    }

## dynamic-require-es-mixed-helpers

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};␊
      ␊
      var submodule;␊
      var hasRequiredSubmodule;␊
      ␊
      function requireSubmodule () {␊
      	if (hasRequiredSubmodule) return submodule;␊
      	hasRequiredSubmodule = 1;␊
      	commonjsGlobal.hasSubmoduleRun = true;␊
      	submodule = 'submodule';␊
      	return submodule;␊
      }␊
      ␊
      t.is(global.hasSubmoduleRun, undefined, 'before require');␊
      ␊
      // eslint-disable-next-line global-require␊
      var result = requireSubmodule();␊
      ␊
      t.is(global.hasSubmoduleRun, true, 'after require');␊
      delete global.hasSubmoduleRun;␊
      ␊
      t.is(result, 'submodule');␊
      `,
    }

## dynamic-require-extensions

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var submodule;␊
      var hasRequiredSubmodule;␊
      ␊
      function requireSubmodule () {␊
      	if (hasRequiredSubmodule) return submodule;␊
      	hasRequiredSubmodule = 1;␊
      	submodule = { name: 'submodule', value: null };␊
      	return submodule;␊
      }␊
      ␊
      var dynamicModules;␊
      ␊
      function getDynamicModules() {␊
      	return dynamicModules || (dynamicModules = {␊
      		"/fixtures/function/dynamic-require-extensions/submodule.js": requireSubmodule␊
      	});␊
      }␊
      ␊
      function createCommonjsRequire(originalModuleDir) {␊
      	function handleRequire(path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return getDynamicModules()[resolvedPath]();␊
      		}␊
      		throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');␊
      	}␊
      	handleRequire.resolve = function (path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return resolvedPath;␊
      		}␊
      		return require.resolve(path);␊
      	};␊
      	return handleRequire;␊
      }␊
      ␊
      function commonjsResolve (path, originalModuleDir) {␊
      	var shouldTryNodeModules = isPossibleNodeModulesPath(path);␊
      	path = normalize(path);␊
      	var relPath;␊
      	if (path[0] === '/') {␊
      		originalModuleDir = '';␊
      	}␊
      	var modules = getDynamicModules();␊
      	var checkedExtensions = ['', '.js', '.json'];␊
      	while (true) {␊
      		if (!shouldTryNodeModules) {␊
      			relPath = normalize(originalModuleDir + '/' + path);␊
      		} else {␊
      			relPath = normalize(originalModuleDir + '/node_modules/' + path);␊
      		}␊
      ␊
      		if (relPath.endsWith('/..')) {␊
      			break; // Travelled too far up, avoid infinite loop␊
      		}␊
      ␊
      		for (var extensionIndex = 0; extensionIndex < checkedExtensions.length; extensionIndex++) {␊
      			var resolvedPath = relPath + checkedExtensions[extensionIndex];␊
      			if (modules[resolvedPath]) {␊
      				return resolvedPath;␊
      			}␊
      		}␊
      		if (!shouldTryNodeModules) break;␊
      		var nextDir = normalize(originalModuleDir + '/..');␊
      		if (nextDir === originalModuleDir) break;␊
      		originalModuleDir = nextDir;␊
      	}␊
      	return null;␊
      }␊
      ␊
      function isPossibleNodeModulesPath (modulePath) {␊
      	var c0 = modulePath[0];␊
      	if (c0 === '/' || c0 === '\\\\') return false;␊
      	var c1 = modulePath[1], c2 = modulePath[2];␊
      	if ((c0 === '.' && (!c1 || c1 === '/' || c1 === '\\\\')) ||␊
      		(c0 === '.' && c1 === '.' && (!c2 || c2 === '/' || c2 === '\\\\'))) return false;␊
      	if (c1 === ':' && (c2 === '/' || c2 === '\\\\')) return false;␊
      	return true;␊
      }␊
      ␊
      function normalize (path) {␊
      	path = path.replace(/\\\\/g, '/');␊
      	var parts = path.split('/');␊
      	var slashed = parts[0] === '';␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] === '.' || parts[i] === '') {␊
      			parts.splice(i--, 1);␊
      		}␊
      	}␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] !== '..') continue;␊
      		if (i > 0 && parts[i - 1] !== '..' && parts[i - 1] !== '.') {␊
      			parts.splice(--i, 2);␊
      			i--;␊
      		}␊
      	}␊
      	path = parts.join('/');␊
      	if (slashed && path[0] !== '/') path = '/' + path;␊
      	else if (path.length === 0) path = '.';␊
      	return path;␊
      }␊
      ␊
      var main = {};␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      function takeModule(withName) {␊
        return createCommonjsRequire("/fixtures/function/dynamic-require-extensions")(\`./${withName}\`);␊
      }␊
      ␊
      const withExtension = takeModule('submodule.js');␊
      const withoutExtension = takeModule('submodule');␊
      ␊
      t.is(withExtension.name, 'submodule');␊
      t.is(withoutExtension.name, 'submodule');␊
      ␊
      withExtension.value = 'mutated';␊
      ␊
      t.is(withoutExtension.value, 'mutated');␊
      ␊
      module.exports = main;␊
      `,
    }

## dynamic-require-fallback

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      function takeModule(withName) {␊
        return require(withName);␊
      }␊
      ␊
      // The bundled code will run from test/helpers/util.js␊
      t.is(takeModule('../fixtures/function/dynamic-require-fallback/dep.js'), 'dep');␊
      ␊
      module.exports = main;␊
      `,
    }

## dynamic-require-from-es-import

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var submodule;␊
      var hasRequiredSubmodule;␊
      ␊
      function requireSubmodule () {␊
      	if (hasRequiredSubmodule) return submodule;␊
      	hasRequiredSubmodule = 1;␊
      	submodule = 'submodule';␊
      	return submodule;␊
      }␊
      ␊
      var submoduleExports = requireSubmodule();␊
      ␊
      t.is(submoduleExports, 'submodule');␊
      `,
    }

## dynamic-require-globs

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var submodule1;␊
      var hasRequiredSubmodule1;␊
      ␊
      function requireSubmodule1 () {␊
      	if (hasRequiredSubmodule1) return submodule1;␊
      	hasRequiredSubmodule1 = 1;␊
      	submodule1 = 'submodule1';␊
      	return submodule1;␊
      }␊
      ␊
      var submodule2;␊
      var hasRequiredSubmodule2;␊
      ␊
      function requireSubmodule2 () {␊
      	if (hasRequiredSubmodule2) return submodule2;␊
      	hasRequiredSubmodule2 = 1;␊
      	submodule2 = 'submodule2';␊
      	return submodule2;␊
      }␊
      ␊
      var extramodule1;␊
      var hasRequiredExtramodule1;␊
      ␊
      function requireExtramodule1 () {␊
      	if (hasRequiredExtramodule1) return extramodule1;␊
      	hasRequiredExtramodule1 = 1;␊
      	extramodule1 = 'extramodule1';␊
      	return extramodule1;␊
      }␊
      ␊
      var dynamicModules;␊
      ␊
      function getDynamicModules() {␊
      	return dynamicModules || (dynamicModules = {␊
      		"/fixtures/function/dynamic-require-globs/submodule1.js": requireSubmodule1,␊
      		"/fixtures/function/dynamic-require-globs/submodule2.js": requireSubmodule2,␊
      		"/fixtures/function/dynamic-require-globs/extramodule1.js": requireExtramodule1␊
      	});␊
      }␊
      ␊
      function createCommonjsRequire(originalModuleDir) {␊
      	function handleRequire(path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return getDynamicModules()[resolvedPath]();␊
      		}␊
      		throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');␊
      	}␊
      	handleRequire.resolve = function (path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return resolvedPath;␊
      		}␊
      		return require.resolve(path);␊
      	};␊
      	return handleRequire;␊
      }␊
      ␊
      function commonjsResolve (path, originalModuleDir) {␊
      	var shouldTryNodeModules = isPossibleNodeModulesPath(path);␊
      	path = normalize(path);␊
      	var relPath;␊
      	if (path[0] === '/') {␊
      		originalModuleDir = '';␊
      	}␊
      	var modules = getDynamicModules();␊
      	var checkedExtensions = ['', '.js', '.json'];␊
      	while (true) {␊
      		if (!shouldTryNodeModules) {␊
      			relPath = normalize(originalModuleDir + '/' + path);␊
      		} else {␊
      			relPath = normalize(originalModuleDir + '/node_modules/' + path);␊
      		}␊
      ␊
      		if (relPath.endsWith('/..')) {␊
      			break; // Travelled too far up, avoid infinite loop␊
      		}␊
      ␊
      		for (var extensionIndex = 0; extensionIndex < checkedExtensions.length; extensionIndex++) {␊
      			var resolvedPath = relPath + checkedExtensions[extensionIndex];␊
      			if (modules[resolvedPath]) {␊
      				return resolvedPath;␊
      			}␊
      		}␊
      		if (!shouldTryNodeModules) break;␊
      		var nextDir = normalize(originalModuleDir + '/..');␊
      		if (nextDir === originalModuleDir) break;␊
      		originalModuleDir = nextDir;␊
      	}␊
      	return null;␊
      }␊
      ␊
      function isPossibleNodeModulesPath (modulePath) {␊
      	var c0 = modulePath[0];␊
      	if (c0 === '/' || c0 === '\\\\') return false;␊
      	var c1 = modulePath[1], c2 = modulePath[2];␊
      	if ((c0 === '.' && (!c1 || c1 === '/' || c1 === '\\\\')) ||␊
      		(c0 === '.' && c1 === '.' && (!c2 || c2 === '/' || c2 === '\\\\'))) return false;␊
      	if (c1 === ':' && (c2 === '/' || c2 === '\\\\')) return false;␊
      	return true;␊
      }␊
      ␊
      function normalize (path) {␊
      	path = path.replace(/\\\\/g, '/');␊
      	var parts = path.split('/');␊
      	var slashed = parts[0] === '';␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] === '.' || parts[i] === '') {␊
      			parts.splice(i--, 1);␊
      		}␊
      	}␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] !== '..') continue;␊
      		if (i > 0 && parts[i - 1] !== '..' && parts[i - 1] !== '.') {␊
      			parts.splice(--i, 2);␊
      			i--;␊
      		}␊
      	}␊
      	path = parts.join('/');␊
      	if (slashed && path[0] !== '/') path = '/' + path;␊
      	else if (path.length === 0) path = '.';␊
      	return path;␊
      }␊
      ␊
      var main = {};␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      function takeModule(withName) {␊
        return createCommonjsRequire("/fixtures/function/dynamic-require-globs")(\`./${withName}\`);␊
      }␊
      ␊
      t.is(takeModule('submodule1.js'), 'submodule1');␊
      t.is(takeModule('submodule2.js'), 'submodule2');␊
      t.is(takeModule('extramodule1.js'), 'extramodule1');␊
      t.throws(() => takeModule('extramodule2.js'), {␊
        message:␊
          'Could not dynamically require "./extramodule2.js". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.'␊
      });␊
      ␊
      module.exports = main;␊
      `,
    }

## dynamic-require-instances

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var direct;␊
      var hasRequiredDirect;␊
      ␊
      function requireDirect () {␊
      	if (hasRequiredDirect) return direct;␊
      	hasRequiredDirect = 1;␊
      	direct = { name: 'direct', value: null };␊
      	return direct;␊
      }␊
      ␊
      var main$1;␊
      var hasRequiredMain;␊
      ␊
      function requireMain () {␊
      	if (hasRequiredMain) return main$1;␊
      	hasRequiredMain = 1;␊
      	main$1 = { name: 'package', value: null };␊
      	return main$1;␊
      }␊
      ␊
      var dynamicModules;␊
      ␊
      function getDynamicModules() {␊
      	return dynamicModules || (dynamicModules = {␊
      		"/fixtures/function/dynamic-require-instances/direct": requireDirect,␊
      		"/fixtures/function/dynamic-require-instances/direct/index.js": requireDirect,␊
      		"/fixtures/function/dynamic-require-instances/package": requireMain,␊
      		"/fixtures/function/dynamic-require-instances/package/main.js": requireMain␊
      	});␊
      }␊
      ␊
      function createCommonjsRequire(originalModuleDir) {␊
      	function handleRequire(path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return getDynamicModules()[resolvedPath]();␊
      		}␊
      		throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');␊
      	}␊
      	handleRequire.resolve = function (path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return resolvedPath;␊
      		}␊
      		return require.resolve(path);␊
      	};␊
      	return handleRequire;␊
      }␊
      ␊
      function commonjsResolve (path, originalModuleDir) {␊
      	var shouldTryNodeModules = isPossibleNodeModulesPath(path);␊
      	path = normalize(path);␊
      	var relPath;␊
      	if (path[0] === '/') {␊
      		originalModuleDir = '';␊
      	}␊
      	var modules = getDynamicModules();␊
      	var checkedExtensions = ['', '.js', '.json'];␊
      	while (true) {␊
      		if (!shouldTryNodeModules) {␊
      			relPath = normalize(originalModuleDir + '/' + path);␊
      		} else {␊
      			relPath = normalize(originalModuleDir + '/node_modules/' + path);␊
      		}␊
      ␊
      		if (relPath.endsWith('/..')) {␊
      			break; // Travelled too far up, avoid infinite loop␊
      		}␊
      ␊
      		for (var extensionIndex = 0; extensionIndex < checkedExtensions.length; extensionIndex++) {␊
      			var resolvedPath = relPath + checkedExtensions[extensionIndex];␊
      			if (modules[resolvedPath]) {␊
      				return resolvedPath;␊
      			}␊
      		}␊
      		if (!shouldTryNodeModules) break;␊
      		var nextDir = normalize(originalModuleDir + '/..');␊
      		if (nextDir === originalModuleDir) break;␊
      		originalModuleDir = nextDir;␊
      	}␊
      	return null;␊
      }␊
      ␊
      function isPossibleNodeModulesPath (modulePath) {␊
      	var c0 = modulePath[0];␊
      	if (c0 === '/' || c0 === '\\\\') return false;␊
      	var c1 = modulePath[1], c2 = modulePath[2];␊
      	if ((c0 === '.' && (!c1 || c1 === '/' || c1 === '\\\\')) ||␊
      		(c0 === '.' && c1 === '.' && (!c2 || c2 === '/' || c2 === '\\\\'))) return false;␊
      	if (c1 === ':' && (c2 === '/' || c2 === '\\\\')) return false;␊
      	return true;␊
      }␊
      ␊
      function normalize (path) {␊
      	path = path.replace(/\\\\/g, '/');␊
      	var parts = path.split('/');␊
      	var slashed = parts[0] === '';␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] === '.' || parts[i] === '') {␊
      			parts.splice(i--, 1);␊
      		}␊
      	}␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] !== '..') continue;␊
      		if (i > 0 && parts[i - 1] !== '..' && parts[i - 1] !== '.') {␊
      			parts.splice(--i, 2);␊
      			i--;␊
      		}␊
      	}␊
      	path = parts.join('/');␊
      	if (slashed && path[0] !== '/') path = '/' + path;␊
      	else if (path.length === 0) path = '.';␊
      	return path;␊
      }␊
      ␊
      var main = {};␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      function takeModule(withName) {␊
        return createCommonjsRequire("/fixtures/function/dynamic-require-instances")(withName);␊
      }␊
      ␊
      takeModule('./direct').value = 'direct-instance';␊
      t.is(takeModule('./direct/index.js').value, 'direct-instance');␊
      t.is(requireDirect().value, 'direct-instance');␊
      ␊
      takeModule('./package').value = 'package-instance';␊
      t.is(takeModule('./package/main.js').value, 'package-instance');␊
      t.is(requireMain().value, 'package-instance');␊
      ␊
      module.exports = main;␊
      `,
    }

## dynamic-require-json

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var value = "present";␊
      var json0 = {␊
      	value: value␊
      };␊
      ␊
      var dynamicModules;␊
      ␊
      function getDynamicModules() {␊
      	return dynamicModules || (dynamicModules = {␊
      		"/fixtures/function/dynamic-require-json/dynamic.json": function () { return json0; }␊
      	});␊
      }␊
      ␊
      function createCommonjsRequire(originalModuleDir) {␊
      	function handleRequire(path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return getDynamicModules()[resolvedPath]();␊
      		}␊
      		throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');␊
      	}␊
      	handleRequire.resolve = function (path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return resolvedPath;␊
      		}␊
      		return require.resolve(path);␊
      	};␊
      	return handleRequire;␊
      }␊
      ␊
      function commonjsResolve (path, originalModuleDir) {␊
      	var shouldTryNodeModules = isPossibleNodeModulesPath(path);␊
      	path = normalize(path);␊
      	var relPath;␊
      	if (path[0] === '/') {␊
      		originalModuleDir = '';␊
      	}␊
      	var modules = getDynamicModules();␊
      	var checkedExtensions = ['', '.js', '.json'];␊
      	while (true) {␊
      		if (!shouldTryNodeModules) {␊
      			relPath = normalize(originalModuleDir + '/' + path);␊
      		} else {␊
      			relPath = normalize(originalModuleDir + '/node_modules/' + path);␊
      		}␊
      ␊
      		if (relPath.endsWith('/..')) {␊
      			break; // Travelled too far up, avoid infinite loop␊
      		}␊
      ␊
      		for (var extensionIndex = 0; extensionIndex < checkedExtensions.length; extensionIndex++) {␊
      			var resolvedPath = relPath + checkedExtensions[extensionIndex];␊
      			if (modules[resolvedPath]) {␊
      				return resolvedPath;␊
      			}␊
      		}␊
      		if (!shouldTryNodeModules) break;␊
      		var nextDir = normalize(originalModuleDir + '/..');␊
      		if (nextDir === originalModuleDir) break;␊
      		originalModuleDir = nextDir;␊
      	}␊
      	return null;␊
      }␊
      ␊
      function isPossibleNodeModulesPath (modulePath) {␊
      	var c0 = modulePath[0];␊
      	if (c0 === '/' || c0 === '\\\\') return false;␊
      	var c1 = modulePath[1], c2 = modulePath[2];␊
      	if ((c0 === '.' && (!c1 || c1 === '/' || c1 === '\\\\')) ||␊
      		(c0 === '.' && c1 === '.' && (!c2 || c2 === '/' || c2 === '\\\\'))) return false;␊
      	if (c1 === ':' && (c2 === '/' || c2 === '\\\\')) return false;␊
      	return true;␊
      }␊
      ␊
      function normalize (path) {␊
      	path = path.replace(/\\\\/g, '/');␊
      	var parts = path.split('/');␊
      	var slashed = parts[0] === '';␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] === '.' || parts[i] === '') {␊
      			parts.splice(i--, 1);␊
      		}␊
      	}␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] !== '..') continue;␊
      		if (i > 0 && parts[i - 1] !== '..' && parts[i - 1] !== '.') {␊
      			parts.splice(--i, 2);␊
      			i--;␊
      		}␊
      	}␊
      	path = parts.join('/');␊
      	if (slashed && path[0] !== '/') path = '/' + path;␊
      	else if (path.length === 0) path = '.';␊
      	return path;␊
      }␊
      ␊
      var main = {};␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      function takeModule(withName) {␊
        return createCommonjsRequire("/fixtures/function/dynamic-require-json")(\`./${withName}\`);␊
      }␊
      ␊
      t.deepEqual(takeModule('dynamic.json'), { value: 'present' });␊
      t.deepEqual(takeModule('dynamic'), { value: 'present' });␊
      ␊
      module.exports = main;␊
      `,
    }

## dynamic-require-no-fallback

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      function commonjsRequire(path) {␊
      	throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');␊
      }␊
      ␊
      var main = {};␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      function takeModule(withName) {␊
        return commonjsRequire(withName);␊
      }␊
      ␊
      t.throws(() => takeModule('./dep.js'), {␊
        message:␊
          'Could not dynamically require "./dep.js". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.'␊
      });␊
      ␊
      module.exports = main;␊
      `,
    }

## dynamic-require-package

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var entry$2;␊
      var hasRequiredEntry$2;␊
      ␊
      function requireEntry$2 () {␊
      	if (hasRequiredEntry$2) return entry$2;␊
      	hasRequiredEntry$2 = 1;␊
      	entry$2 = 'same-directory';␊
      	return entry$2;␊
      }␊
      ␊
      var entry$1;␊
      var hasRequiredEntry$1;␊
      ␊
      function requireEntry$1 () {␊
      	if (hasRequiredEntry$1) return entry$1;␊
      	hasRequiredEntry$1 = 1;␊
      	entry$1 = 'sub';␊
      	return entry$1;␊
      }␊
      ␊
      var entry;␊
      var hasRequiredEntry;␊
      ␊
      function requireEntry () {␊
      	if (hasRequiredEntry) return entry;␊
      	hasRequiredEntry = 1;␊
      	entry = 'custom-module';␊
      	return entry;␊
      }␊
      ␊
      var dynamicModules;␊
      ␊
      function getDynamicModules() {␊
      	return dynamicModules || (dynamicModules = {␊
      		"/fixtures/function/dynamic-require-package": requireEntry$2,␊
      		"/fixtures/function/dynamic-require-package/entry.js": requireEntry$2,␊
      		"/fixtures/function/dynamic-require-package/sub": requireEntry$1,␊
      		"/fixtures/function/dynamic-require-package/sub/entry.js": requireEntry$1,␊
      		"/fixtures/function/dynamic-require-package/node_modules/custom-module": requireEntry,␊
      		"/fixtures/function/dynamic-require-package/node_modules/custom-module/entry.js": requireEntry␊
      	});␊
      }␊
      ␊
      function createCommonjsRequire(originalModuleDir) {␊
      	function handleRequire(path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return getDynamicModules()[resolvedPath]();␊
      		}␊
      		throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');␊
      	}␊
      	handleRequire.resolve = function (path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return resolvedPath;␊
      		}␊
      		return require.resolve(path);␊
      	};␊
      	return handleRequire;␊
      }␊
      ␊
      function commonjsResolve (path, originalModuleDir) {␊
      	var shouldTryNodeModules = isPossibleNodeModulesPath(path);␊
      	path = normalize(path);␊
      	var relPath;␊
      	if (path[0] === '/') {␊
      		originalModuleDir = '';␊
      	}␊
      	var modules = getDynamicModules();␊
      	var checkedExtensions = ['', '.js', '.json'];␊
      	while (true) {␊
      		if (!shouldTryNodeModules) {␊
      			relPath = normalize(originalModuleDir + '/' + path);␊
      		} else {␊
      			relPath = normalize(originalModuleDir + '/node_modules/' + path);␊
      		}␊
      ␊
      		if (relPath.endsWith('/..')) {␊
      			break; // Travelled too far up, avoid infinite loop␊
      		}␊
      ␊
      		for (var extensionIndex = 0; extensionIndex < checkedExtensions.length; extensionIndex++) {␊
      			var resolvedPath = relPath + checkedExtensions[extensionIndex];␊
      			if (modules[resolvedPath]) {␊
      				return resolvedPath;␊
      			}␊
      		}␊
      		if (!shouldTryNodeModules) break;␊
      		var nextDir = normalize(originalModuleDir + '/..');␊
      		if (nextDir === originalModuleDir) break;␊
      		originalModuleDir = nextDir;␊
      	}␊
      	return null;␊
      }␊
      ␊
      function isPossibleNodeModulesPath (modulePath) {␊
      	var c0 = modulePath[0];␊
      	if (c0 === '/' || c0 === '\\\\') return false;␊
      	var c1 = modulePath[1], c2 = modulePath[2];␊
      	if ((c0 === '.' && (!c1 || c1 === '/' || c1 === '\\\\')) ||␊
      		(c0 === '.' && c1 === '.' && (!c2 || c2 === '/' || c2 === '\\\\'))) return false;␊
      	if (c1 === ':' && (c2 === '/' || c2 === '\\\\')) return false;␊
      	return true;␊
      }␊
      ␊
      function normalize (path) {␊
      	path = path.replace(/\\\\/g, '/');␊
      	var parts = path.split('/');␊
      	var slashed = parts[0] === '';␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] === '.' || parts[i] === '') {␊
      			parts.splice(i--, 1);␊
      		}␊
      	}␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] !== '..') continue;␊
      		if (i > 0 && parts[i - 1] !== '..' && parts[i - 1] !== '.') {␊
      			parts.splice(--i, 2);␊
      			i--;␊
      		}␊
      	}␊
      	path = parts.join('/');␊
      	if (slashed && path[0] !== '/') path = '/' + path;␊
      	else if (path.length === 0) path = '.';␊
      	return path;␊
      }␊
      ␊
      var main = {};␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      function takeModule$1(name) {␊
        return createCommonjsRequire("/fixtures/function/dynamic-require-package/sub")(name);␊
      }␊
      ␊
      var sub = {␊
        parent: takeModule$1('..'),␊
        customModule: takeModule$1('custom-module')␊
      };␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      function takeModule(name) {␊
        return createCommonjsRequire("/fixtures/function/dynamic-require-package")(name);␊
      }␊
      ␊
      t.is(takeModule('.'), 'same-directory');␊
      t.is(takeModule('./'), 'same-directory');␊
      t.is(takeModule('.//'), 'same-directory');␊
      ␊
      t.is(takeModule('./sub'), 'sub');␊
      ␊
      t.is(takeModule('custom-module'), 'custom-module');␊
      t.deepEqual(sub, { parent: 'same-directory', customModule: 'custom-module' });␊
      ␊
      module.exports = main;␊
      `,
    }

## dynamic-require-package-sub

> Snapshot 1

    {
      'entry.js': `'use strict';␊
      ␊
      var entry$1 = {};␊
      ␊
      var entry;␊
      var hasRequiredEntry;␊
      ␊
      function requireEntry () {␊
      	if (hasRequiredEntry) return entry;␊
      	hasRequiredEntry = 1;␊
      	entry = 'custom-module';␊
      	return entry;␊
      }␊
      ␊
      t.is(requireEntry(), 'custom-module');␊
      ␊
      module.exports = entry$1;␊
      `,
    }

## dynamic-require-relative-paths

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var submodule;␊
      var hasRequiredSubmodule;␊
      ␊
      function requireSubmodule () {␊
      	if (hasRequiredSubmodule) return submodule;␊
      	hasRequiredSubmodule = 1;␊
      	submodule = 'submodule';␊
      	return submodule;␊
      }␊
      ␊
      var subsubmodule;␊
      var hasRequiredSubsubmodule;␊
      ␊
      function requireSubsubmodule () {␊
      	if (hasRequiredSubsubmodule) return subsubmodule;␊
      	hasRequiredSubsubmodule = 1;␊
      	subsubmodule = 'subsubmodule';␊
      	return subsubmodule;␊
      }␊
      ␊
      var dynamicModules;␊
      ␊
      function getDynamicModules() {␊
      	return dynamicModules || (dynamicModules = {␊
      		"/fixtures/function/dynamic-require-relative-paths/sub/submodule.js": requireSubmodule,␊
      		"/fixtures/function/dynamic-require-relative-paths/sub/subsub/subsubmodule.js": requireSubsubmodule␊
      	});␊
      }␊
      ␊
      function createCommonjsRequire(originalModuleDir) {␊
      	function handleRequire(path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return getDynamicModules()[resolvedPath]();␊
      		}␊
      		throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');␊
      	}␊
      	handleRequire.resolve = function (path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return resolvedPath;␊
      		}␊
      		return require.resolve(path);␊
      	};␊
      	return handleRequire;␊
      }␊
      ␊
      function commonjsResolve (path, originalModuleDir) {␊
      	var shouldTryNodeModules = isPossibleNodeModulesPath(path);␊
      	path = normalize(path);␊
      	var relPath;␊
      	if (path[0] === '/') {␊
      		originalModuleDir = '';␊
      	}␊
      	var modules = getDynamicModules();␊
      	var checkedExtensions = ['', '.js', '.json'];␊
      	while (true) {␊
      		if (!shouldTryNodeModules) {␊
      			relPath = normalize(originalModuleDir + '/' + path);␊
      		} else {␊
      			relPath = normalize(originalModuleDir + '/node_modules/' + path);␊
      		}␊
      ␊
      		if (relPath.endsWith('/..')) {␊
      			break; // Travelled too far up, avoid infinite loop␊
      		}␊
      ␊
      		for (var extensionIndex = 0; extensionIndex < checkedExtensions.length; extensionIndex++) {␊
      			var resolvedPath = relPath + checkedExtensions[extensionIndex];␊
      			if (modules[resolvedPath]) {␊
      				return resolvedPath;␊
      			}␊
      		}␊
      		if (!shouldTryNodeModules) break;␊
      		var nextDir = normalize(originalModuleDir + '/..');␊
      		if (nextDir === originalModuleDir) break;␊
      		originalModuleDir = nextDir;␊
      	}␊
      	return null;␊
      }␊
      ␊
      function isPossibleNodeModulesPath (modulePath) {␊
      	var c0 = modulePath[0];␊
      	if (c0 === '/' || c0 === '\\\\') return false;␊
      	var c1 = modulePath[1], c2 = modulePath[2];␊
      	if ((c0 === '.' && (!c1 || c1 === '/' || c1 === '\\\\')) ||␊
      		(c0 === '.' && c1 === '.' && (!c2 || c2 === '/' || c2 === '\\\\'))) return false;␊
      	if (c1 === ':' && (c2 === '/' || c2 === '\\\\')) return false;␊
      	return true;␊
      }␊
      ␊
      function normalize (path) {␊
      	path = path.replace(/\\\\/g, '/');␊
      	var parts = path.split('/');␊
      	var slashed = parts[0] === '';␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] === '.' || parts[i] === '') {␊
      			parts.splice(i--, 1);␊
      		}␊
      	}␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] !== '..') continue;␊
      		if (i > 0 && parts[i - 1] !== '..' && parts[i - 1] !== '.') {␊
      			parts.splice(--i, 2);␊
      			i--;␊
      		}␊
      	}␊
      	path = parts.join('/');␊
      	if (slashed && path[0] !== '/') path = '/' + path;␊
      	else if (path.length === 0) path = '.';␊
      	return path;␊
      }␊
      ␊
      var main = {};␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      function takeModuleWithDelimiter(name, delimiter) {␊
        return createCommonjsRequire("/fixtures/function/dynamic-require-relative-paths")(\`.${delimiter}${name.replace(/=/g, delimiter)}\`);␊
      }␊
      ␊
      t.is(takeModuleWithDelimiter('sub=submodule.js', '/'), 'submodule');␊
      t.is(takeModuleWithDelimiter('sub=subsub=subsubmodule.js', '/'), 'subsubmodule');␊
      t.is(takeModuleWithDelimiter('sub=submodule.js', '\\\\'), 'submodule');␊
      t.is(takeModuleWithDelimiter('sub=subsub=subsubmodule.js', '\\\\'), 'subsubmodule');␊
      ␊
      module.exports = main;␊
      `,
    }

## dynamic-require-resolve-index

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var dynamicRequireResolveIndex;␊
      var hasRequiredDynamicRequireResolveIndex;␊
      ␊
      function requireDynamicRequireResolveIndex () {␊
      	if (hasRequiredDynamicRequireResolveIndex) return dynamicRequireResolveIndex;␊
      	hasRequiredDynamicRequireResolveIndex = 1;␊
      	dynamicRequireResolveIndex = 'same-directory';␊
      	return dynamicRequireResolveIndex;␊
      }␊
      ␊
      var sub$1;␊
      var hasRequiredSub;␊
      ␊
      function requireSub () {␊
      	if (hasRequiredSub) return sub$1;␊
      	hasRequiredSub = 1;␊
      	sub$1 = 'sub';␊
      	return sub$1;␊
      }␊
      ␊
      var customModule;␊
      var hasRequiredCustomModule;␊
      ␊
      function requireCustomModule () {␊
      	if (hasRequiredCustomModule) return customModule;␊
      	hasRequiredCustomModule = 1;␊
      	customModule = 'custom-module';␊
      	return customModule;␊
      }␊
      ␊
      var dynamicModules;␊
      ␊
      function getDynamicModules() {␊
      	return dynamicModules || (dynamicModules = {␊
      		"/fixtures/function/dynamic-require-resolve-index": requireDynamicRequireResolveIndex,␊
      		"/fixtures/function/dynamic-require-resolve-index/index.js": requireDynamicRequireResolveIndex,␊
      		"/fixtures/function/dynamic-require-resolve-index/sub": requireSub,␊
      		"/fixtures/function/dynamic-require-resolve-index/sub/index.js": requireSub,␊
      		"/fixtures/function/dynamic-require-resolve-index/node_modules/custom-module": requireCustomModule,␊
      		"/fixtures/function/dynamic-require-resolve-index/node_modules/custom-module/index.js": requireCustomModule␊
      	});␊
      }␊
      ␊
      function createCommonjsRequire(originalModuleDir) {␊
      	function handleRequire(path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return getDynamicModules()[resolvedPath]();␊
      		}␊
      		throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');␊
      	}␊
      	handleRequire.resolve = function (path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return resolvedPath;␊
      		}␊
      		return require.resolve(path);␊
      	};␊
      	return handleRequire;␊
      }␊
      ␊
      function commonjsResolve (path, originalModuleDir) {␊
      	var shouldTryNodeModules = isPossibleNodeModulesPath(path);␊
      	path = normalize(path);␊
      	var relPath;␊
      	if (path[0] === '/') {␊
      		originalModuleDir = '';␊
      	}␊
      	var modules = getDynamicModules();␊
      	var checkedExtensions = ['', '.js', '.json'];␊
      	while (true) {␊
      		if (!shouldTryNodeModules) {␊
      			relPath = normalize(originalModuleDir + '/' + path);␊
      		} else {␊
      			relPath = normalize(originalModuleDir + '/node_modules/' + path);␊
      		}␊
      ␊
      		if (relPath.endsWith('/..')) {␊
      			break; // Travelled too far up, avoid infinite loop␊
      		}␊
      ␊
      		for (var extensionIndex = 0; extensionIndex < checkedExtensions.length; extensionIndex++) {␊
      			var resolvedPath = relPath + checkedExtensions[extensionIndex];␊
      			if (modules[resolvedPath]) {␊
      				return resolvedPath;␊
      			}␊
      		}␊
      		if (!shouldTryNodeModules) break;␊
      		var nextDir = normalize(originalModuleDir + '/..');␊
      		if (nextDir === originalModuleDir) break;␊
      		originalModuleDir = nextDir;␊
      	}␊
      	return null;␊
      }␊
      ␊
      function isPossibleNodeModulesPath (modulePath) {␊
      	var c0 = modulePath[0];␊
      	if (c0 === '/' || c0 === '\\\\') return false;␊
      	var c1 = modulePath[1], c2 = modulePath[2];␊
      	if ((c0 === '.' && (!c1 || c1 === '/' || c1 === '\\\\')) ||␊
      		(c0 === '.' && c1 === '.' && (!c2 || c2 === '/' || c2 === '\\\\'))) return false;␊
      	if (c1 === ':' && (c2 === '/' || c2 === '\\\\')) return false;␊
      	return true;␊
      }␊
      ␊
      function normalize (path) {␊
      	path = path.replace(/\\\\/g, '/');␊
      	var parts = path.split('/');␊
      	var slashed = parts[0] === '';␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] === '.' || parts[i] === '') {␊
      			parts.splice(i--, 1);␊
      		}␊
      	}␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] !== '..') continue;␊
      		if (i > 0 && parts[i - 1] !== '..' && parts[i - 1] !== '.') {␊
      			parts.splice(--i, 2);␊
      			i--;␊
      		}␊
      	}␊
      	path = parts.join('/');␊
      	if (slashed && path[0] !== '/') path = '/' + path;␊
      	else if (path.length === 0) path = '.';␊
      	return path;␊
      }␊
      ␊
      var main = {};␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      function takeModule$1(name) {␊
        return createCommonjsRequire("/fixtures/function/dynamic-require-resolve-index/sub")(name);␊
      }␊
      ␊
      var sub = {␊
        parent: takeModule$1('..'),␊
        customModule: takeModule$1('custom-module')␊
      };␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      function takeModule(name) {␊
        return createCommonjsRequire("/fixtures/function/dynamic-require-resolve-index")(name);␊
      }␊
      ␊
      t.is(takeModule('.'), 'same-directory');␊
      t.is(takeModule('./'), 'same-directory');␊
      t.is(takeModule('.//'), 'same-directory');␊
      ␊
      t.is(takeModule('./sub'), 'sub');␊
      ␊
      t.is(takeModule('custom-module'), 'custom-module');␊
      t.deepEqual(sub, { parent: 'same-directory', customModule: 'custom-module' });␊
      ␊
      module.exports = main;␊
      `,
    }

## dynamic-require-resolve-reference

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var customModule2;␊
      var hasRequiredCustomModule2;␊
      ␊
      function requireCustomModule2 () {␊
      	if (hasRequiredCustomModule2) return customModule2;␊
      	hasRequiredCustomModule2 = 1;␊
      	customModule2 = () => createCommonjsRequire("/fixtures/function/dynamic-require-resolve-reference/node_modules/custom-module2").resolve('custom-module');␊
      	return customModule2;␊
      }␊
      ␊
      var dynamicModules;␊
      ␊
      function getDynamicModules() {␊
      	return dynamicModules || (dynamicModules = {␊
      		"/fixtures/function/dynamic-require-resolve-reference/node_modules/custom-module": requireCustomModule,␊
      		"/fixtures/function/dynamic-require-resolve-reference/node_modules/custom-module/index.js": requireCustomModule,␊
      		"/fixtures/function/dynamic-require-resolve-reference/node_modules/custom-module2": requireCustomModule2,␊
      		"/fixtures/function/dynamic-require-resolve-reference/node_modules/custom-module2/index.js": requireCustomModule2␊
      	});␊
      }␊
      ␊
      function createCommonjsRequire(originalModuleDir) {␊
      	function handleRequire(path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return getDynamicModules()[resolvedPath]();␊
      		}␊
      		throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');␊
      	}␊
      	handleRequire.resolve = function (path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return resolvedPath;␊
      		}␊
      		return require.resolve(path);␊
      	};␊
      	return handleRequire;␊
      }␊
      ␊
      function commonjsResolve (path, originalModuleDir) {␊
      	var shouldTryNodeModules = isPossibleNodeModulesPath(path);␊
      	path = normalize(path);␊
      	var relPath;␊
      	if (path[0] === '/') {␊
      		originalModuleDir = '';␊
      	}␊
      	var modules = getDynamicModules();␊
      	var checkedExtensions = ['', '.js', '.json'];␊
      	while (true) {␊
      		if (!shouldTryNodeModules) {␊
      			relPath = normalize(originalModuleDir + '/' + path);␊
      		} else {␊
      			relPath = normalize(originalModuleDir + '/node_modules/' + path);␊
      		}␊
      ␊
      		if (relPath.endsWith('/..')) {␊
      			break; // Travelled too far up, avoid infinite loop␊
      		}␊
      ␊
      		for (var extensionIndex = 0; extensionIndex < checkedExtensions.length; extensionIndex++) {␊
      			var resolvedPath = relPath + checkedExtensions[extensionIndex];␊
      			if (modules[resolvedPath]) {␊
      				return resolvedPath;␊
      			}␊
      		}␊
      		if (!shouldTryNodeModules) break;␊
      		var nextDir = normalize(originalModuleDir + '/..');␊
      		if (nextDir === originalModuleDir) break;␊
      		originalModuleDir = nextDir;␊
      	}␊
      	return null;␊
      }␊
      ␊
      function isPossibleNodeModulesPath (modulePath) {␊
      	var c0 = modulePath[0];␊
      	if (c0 === '/' || c0 === '\\\\') return false;␊
      	var c1 = modulePath[1], c2 = modulePath[2];␊
      	if ((c0 === '.' && (!c1 || c1 === '/' || c1 === '\\\\')) ||␊
      		(c0 === '.' && c1 === '.' && (!c2 || c2 === '/' || c2 === '\\\\'))) return false;␊
      	if (c1 === ':' && (c2 === '/' || c2 === '\\\\')) return false;␊
      	return true;␊
      }␊
      ␊
      function normalize (path) {␊
      	path = path.replace(/\\\\/g, '/');␊
      	var parts = path.split('/');␊
      	var slashed = parts[0] === '';␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] === '.' || parts[i] === '') {␊
      			parts.splice(i--, 1);␊
      		}␊
      	}␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] !== '..') continue;␊
      		if (i > 0 && parts[i - 1] !== '..' && parts[i - 1] !== '.') {␊
      			parts.splice(--i, 2);␊
      			i--;␊
      		}␊
      	}␊
      	path = parts.join('/');␊
      	if (slashed && path[0] !== '/') path = '/' + path;␊
      	else if (path.length === 0) path = '.';␊
      	return path;␊
      }␊
      ␊
      var customModule = {exports: {}};␊
      ␊
      var hasRequiredCustomModule;␊
      ␊
      function requireCustomModule () {␊
      	if (hasRequiredCustomModule) return customModule.exports;␊
      	hasRequiredCustomModule = 1;␊
      	(function (module) {␊
      		module.exports = () => createCommonjsRequire("/fixtures/function/dynamic-require-resolve-reference/node_modules/custom-module").resolve('custom-module2');␊
      } (customModule));␊
      	return customModule.exports;␊
      }␊
      ␊
      t.is(␊
        requireCustomModule()(),␊
        '/fixtures/function/dynamic-require-resolve-reference/node_modules/custom-module2'␊
      );␊
      t.is(␊
        requireCustomModule2()(),␊
        '/fixtures/function/dynamic-require-resolve-reference/node_modules/custom-module'␊
      );␊
      ␊
      module.exports = main;␊
      `,
    }

## dynamic-require-root

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var submodule;␊
      var hasRequiredSubmodule;␊
      ␊
      function requireSubmodule () {␊
      	if (hasRequiredSubmodule) return submodule;␊
      	hasRequiredSubmodule = 1;␊
      	submodule = function () {␊
      	  return 'Hello there';␊
      	};␊
      	return submodule;␊
      }␊
      ␊
      var dynamicModules;␊
      ␊
      function getDynamicModules() {␊
      	return dynamicModules || (dynamicModules = {␊
      		"/submodule.js": requireSubmodule␊
      	});␊
      }␊
      ␊
      function createCommonjsRequire(originalModuleDir) {␊
      	function handleRequire(path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return getDynamicModules()[resolvedPath]();␊
      		}␊
      		throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');␊
      	}␊
      	handleRequire.resolve = function (path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return resolvedPath;␊
      		}␊
      		return require.resolve(path);␊
      	};␊
      	return handleRequire;␊
      }␊
      ␊
      function commonjsResolve (path, originalModuleDir) {␊
      	var shouldTryNodeModules = isPossibleNodeModulesPath(path);␊
      	path = normalize(path);␊
      	var relPath;␊
      	if (path[0] === '/') {␊
      		originalModuleDir = '';␊
      	}␊
      	var modules = getDynamicModules();␊
      	var checkedExtensions = ['', '.js', '.json'];␊
      	while (true) {␊
      		if (!shouldTryNodeModules) {␊
      			relPath = normalize(originalModuleDir + '/' + path);␊
      		} else {␊
      			relPath = normalize(originalModuleDir + '/node_modules/' + path);␊
      		}␊
      ␊
      		if (relPath.endsWith('/..')) {␊
      			break; // Travelled too far up, avoid infinite loop␊
      		}␊
      ␊
      		for (var extensionIndex = 0; extensionIndex < checkedExtensions.length; extensionIndex++) {␊
      			var resolvedPath = relPath + checkedExtensions[extensionIndex];␊
      			if (modules[resolvedPath]) {␊
      				return resolvedPath;␊
      			}␊
      		}␊
      		if (!shouldTryNodeModules) break;␊
      		var nextDir = normalize(originalModuleDir + '/..');␊
      		if (nextDir === originalModuleDir) break;␊
      		originalModuleDir = nextDir;␊
      	}␊
      	return null;␊
      }␊
      ␊
      function isPossibleNodeModulesPath (modulePath) {␊
      	var c0 = modulePath[0];␊
      	if (c0 === '/' || c0 === '\\\\') return false;␊
      	var c1 = modulePath[1], c2 = modulePath[2];␊
      	if ((c0 === '.' && (!c1 || c1 === '/' || c1 === '\\\\')) ||␊
      		(c0 === '.' && c1 === '.' && (!c2 || c2 === '/' || c2 === '\\\\'))) return false;␊
      	if (c1 === ':' && (c2 === '/' || c2 === '\\\\')) return false;␊
      	return true;␊
      }␊
      ␊
      function normalize (path) {␊
      	path = path.replace(/\\\\/g, '/');␊
      	var parts = path.split('/');␊
      	var slashed = parts[0] === '';␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] === '.' || parts[i] === '') {␊
      			parts.splice(i--, 1);␊
      		}␊
      	}␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] !== '..') continue;␊
      		if (i > 0 && parts[i - 1] !== '..' && parts[i - 1] !== '.') {␊
      			parts.splice(--i, 2);␊
      			i--;␊
      		}␊
      	}␊
      	path = parts.join('/');␊
      	if (slashed && path[0] !== '/') path = '/' + path;␊
      	else if (path.length === 0) path = '.';␊
      	return path;␊
      }␊
      ␊
      var main = {};␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      let message;␊
      ␊
      function takeModule(withName) {␊
        return createCommonjsRequire("/")(\`./${withName}\`);␊
      }␊
      ␊
      try {␊
        const submodule = takeModule('submodule');␊
        message = submodule();␊
      } catch (err) {␊
        ({ message } = err);␊
      }␊
      ␊
      t.is(message, 'Hello there');␊
      ␊
      module.exports = main;␊
      `,
    }

## dynamic-require-root-circular

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var customModule = {exports: {}};␊
      ␊
      var circular = {};␊
      ␊
      var hasRequiredCircular;␊
      ␊
      function requireCircular () {␊
      	if (hasRequiredCircular) return circular;␊
      	hasRequiredCircular = 1;␊
      	const lib = requireCustomModule();␊
      ␊
      	circular.extend1 = function (exports) {␊
      	  exports.get2 = function () {␊
      	    return 'indirect ref';␊
      	  };␊
      	};␊
      ␊
      	circular.extend2 = function (exports) {␊
      	  exports.get3 = lib.get1;␊
      	};␊
      	return circular;␊
      }␊
      ␊
      var hasRequiredCustomModule;␊
      ␊
      function requireCustomModule () {␊
      	if (hasRequiredCustomModule) return customModule.exports;␊
      	hasRequiredCustomModule = 1;␊
      	(function (module) {␊
      		const circular = requireCircular();␊
      ␊
      		circular.extend1(module.exports);␊
      ␊
      		module.exports.get1 = function () {␊
      		  return 'all good';␊
      		};␊
      ␊
      		circular.extend2(module.exports);␊
      } (customModule));␊
      	return customModule.exports;␊
      }␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      const custom = requireCustomModule();␊
      ␊
      t.is(custom.get1(), 'all good');␊
      t.is(custom.get2(), 'indirect ref');␊
      t.is(custom.get3(), custom.get1());␊
      ␊
      module.exports = main;␊
      `,
    }

## dynamic-require-slash-access

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var dynamicRequireSlashAccess;␊
      var hasRequiredDynamicRequireSlashAccess;␊
      ␊
      function requireDynamicRequireSlashAccess () {␊
      	if (hasRequiredDynamicRequireSlashAccess) return dynamicRequireSlashAccess;␊
      	hasRequiredDynamicRequireSlashAccess = 1;␊
      	dynamicRequireSlashAccess = 'same-directory';␊
      	return dynamicRequireSlashAccess;␊
      }␊
      ␊
      var sub$2;␊
      var hasRequiredSub$1;␊
      ␊
      function requireSub$1 () {␊
      	if (hasRequiredSub$1) return sub$2;␊
      	hasRequiredSub$1 = 1;␊
      	sub$2 = 'sub';␊
      	return sub$2;␊
      }␊
      ␊
      var sub$1;␊
      var hasRequiredSub;␊
      ␊
      function requireSub () {␊
      	if (hasRequiredSub) return sub$1;␊
      	hasRequiredSub = 1;␊
      	sub$1 = 'sub';␊
      	return sub$1;␊
      }␊
      ␊
      var customModule;␊
      var hasRequiredCustomModule;␊
      ␊
      function requireCustomModule () {␊
      	if (hasRequiredCustomModule) return customModule;␊
      	hasRequiredCustomModule = 1;␊
      	customModule = 'custom-module' + ' + ' + requireSub();␊
      	return customModule;␊
      }␊
      ␊
      var dynamicModules;␊
      ␊
      function getDynamicModules() {␊
      	return dynamicModules || (dynamicModules = {␊
      		"/fixtures/function/dynamic-require-slash-access": requireDynamicRequireSlashAccess,␊
      		"/fixtures/function/dynamic-require-slash-access/index.js": requireDynamicRequireSlashAccess,␊
      		"/fixtures/function/dynamic-require-slash-access/sub": requireSub$1,␊
      		"/fixtures/function/dynamic-require-slash-access/sub/index.js": requireSub$1,␊
      		"/fixtures/function/dynamic-require-slash-access/node_modules/custom-module": requireCustomModule,␊
      		"/fixtures/function/dynamic-require-slash-access/node_modules/custom-module/index.js": requireCustomModule,␊
      		"/fixtures/function/dynamic-require-slash-access/node_modules/custom-module2/sub.js": requireSub␊
      	});␊
      }␊
      ␊
      function createCommonjsRequire(originalModuleDir) {␊
      	function handleRequire(path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return getDynamicModules()[resolvedPath]();␊
      		}␊
      		throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');␊
      	}␊
      	handleRequire.resolve = function (path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return resolvedPath;␊
      		}␊
      		return require.resolve(path);␊
      	};␊
      	return handleRequire;␊
      }␊
      ␊
      function commonjsResolve (path, originalModuleDir) {␊
      	var shouldTryNodeModules = isPossibleNodeModulesPath(path);␊
      	path = normalize(path);␊
      	var relPath;␊
      	if (path[0] === '/') {␊
      		originalModuleDir = '';␊
      	}␊
      	var modules = getDynamicModules();␊
      	var checkedExtensions = ['', '.js', '.json'];␊
      	while (true) {␊
      		if (!shouldTryNodeModules) {␊
      			relPath = normalize(originalModuleDir + '/' + path);␊
      		} else {␊
      			relPath = normalize(originalModuleDir + '/node_modules/' + path);␊
      		}␊
      ␊
      		if (relPath.endsWith('/..')) {␊
      			break; // Travelled too far up, avoid infinite loop␊
      		}␊
      ␊
      		for (var extensionIndex = 0; extensionIndex < checkedExtensions.length; extensionIndex++) {␊
      			var resolvedPath = relPath + checkedExtensions[extensionIndex];␊
      			if (modules[resolvedPath]) {␊
      				return resolvedPath;␊
      			}␊
      		}␊
      		if (!shouldTryNodeModules) break;␊
      		var nextDir = normalize(originalModuleDir + '/..');␊
      		if (nextDir === originalModuleDir) break;␊
      		originalModuleDir = nextDir;␊
      	}␊
      	return null;␊
      }␊
      ␊
      function isPossibleNodeModulesPath (modulePath) {␊
      	var c0 = modulePath[0];␊
      	if (c0 === '/' || c0 === '\\\\') return false;␊
      	var c1 = modulePath[1], c2 = modulePath[2];␊
      	if ((c0 === '.' && (!c1 || c1 === '/' || c1 === '\\\\')) ||␊
      		(c0 === '.' && c1 === '.' && (!c2 || c2 === '/' || c2 === '\\\\'))) return false;␊
      	if (c1 === ':' && (c2 === '/' || c2 === '\\\\')) return false;␊
      	return true;␊
      }␊
      ␊
      function normalize (path) {␊
      	path = path.replace(/\\\\/g, '/');␊
      	var parts = path.split('/');␊
      	var slashed = parts[0] === '';␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] === '.' || parts[i] === '') {␊
      			parts.splice(i--, 1);␊
      		}␊
      	}␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] !== '..') continue;␊
      		if (i > 0 && parts[i - 1] !== '..' && parts[i - 1] !== '.') {␊
      			parts.splice(--i, 2);␊
      			i--;␊
      		}␊
      	}␊
      	path = parts.join('/');␊
      	if (slashed && path[0] !== '/') path = '/' + path;␊
      	else if (path.length === 0) path = '.';␊
      	return path;␊
      }␊
      ␊
      var main = {};␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      function takeModule$1(name) {␊
        return createCommonjsRequire("/fixtures/function/dynamic-require-slash-access/sub")(name);␊
      }␊
      ␊
      var sub = {␊
        parent: takeModule$1('..'),␊
        customModule: takeModule$1('custom-module')␊
      };␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      function takeModule(name) {␊
        return createCommonjsRequire("/fixtures/function/dynamic-require-slash-access")(name);␊
      }␊
      ␊
      t.is(takeModule('.'), 'same-directory', '.');␊
      t.is(takeModule('./'), 'same-directory', './');␊
      t.is(takeModule('.//'), 'same-directory', './/');␊
      ␊
      t.is(takeModule('./sub'), 'sub', './sub');␊
      ␊
      t.is(takeModule('custom-module'), 'custom-module + sub', 'custom-module');␊
      t.deepEqual(sub, {␊
        parent: 'same-directory',␊
        customModule: 'custom-module + sub'␊
      });␊
      ␊
      module.exports = main;␊
      `,
    }

## dynamic-require-targets-fallback

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var dep1;␊
      var hasRequiredDep1;␊
      ␊
      function requireDep1 () {␊
      	if (hasRequiredDep1) return dep1;␊
      	hasRequiredDep1 = 1;␊
      	dep1 = 'dep';␊
      	return dep1;␊
      }␊
      ␊
      var dynamicModules;␊
      ␊
      function getDynamicModules() {␊
      	return dynamicModules || (dynamicModules = {␊
      		"/fixtures/function/dynamic-require-targets-fallback/dep1.js": requireDep1␊
      	});␊
      }␊
      ␊
      function createCommonjsRequire(originalModuleDir) {␊
      	function handleRequire(path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return getDynamicModules()[resolvedPath]();␊
      		}␊
      		return require(path);␊
      	}␊
      	handleRequire.resolve = function (path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return resolvedPath;␊
      		}␊
      		return require.resolve(path);␊
      	};␊
      	return handleRequire;␊
      }␊
      ␊
      function commonjsResolve (path, originalModuleDir) {␊
      	var shouldTryNodeModules = isPossibleNodeModulesPath(path);␊
      	path = normalize(path);␊
      	var relPath;␊
      	if (path[0] === '/') {␊
      		originalModuleDir = '';␊
      	}␊
      	var modules = getDynamicModules();␊
      	var checkedExtensions = ['', '.js', '.json'];␊
      	while (true) {␊
      		if (!shouldTryNodeModules) {␊
      			relPath = normalize(originalModuleDir + '/' + path);␊
      		} else {␊
      			relPath = normalize(originalModuleDir + '/node_modules/' + path);␊
      		}␊
      ␊
      		if (relPath.endsWith('/..')) {␊
      			break; // Travelled too far up, avoid infinite loop␊
      		}␊
      ␊
      		for (var extensionIndex = 0; extensionIndex < checkedExtensions.length; extensionIndex++) {␊
      			var resolvedPath = relPath + checkedExtensions[extensionIndex];␊
      			if (modules[resolvedPath]) {␊
      				return resolvedPath;␊
      			}␊
      		}␊
      		if (!shouldTryNodeModules) break;␊
      		var nextDir = normalize(originalModuleDir + '/..');␊
      		if (nextDir === originalModuleDir) break;␊
      		originalModuleDir = nextDir;␊
      	}␊
      	return null;␊
      }␊
      ␊
      function isPossibleNodeModulesPath (modulePath) {␊
      	var c0 = modulePath[0];␊
      	if (c0 === '/' || c0 === '\\\\') return false;␊
      	var c1 = modulePath[1], c2 = modulePath[2];␊
      	if ((c0 === '.' && (!c1 || c1 === '/' || c1 === '\\\\')) ||␊
      		(c0 === '.' && c1 === '.' && (!c2 || c2 === '/' || c2 === '\\\\'))) return false;␊
      	if (c1 === ':' && (c2 === '/' || c2 === '\\\\')) return false;␊
      	return true;␊
      }␊
      ␊
      function normalize (path) {␊
      	path = path.replace(/\\\\/g, '/');␊
      	var parts = path.split('/');␊
      	var slashed = parts[0] === '';␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] === '.' || parts[i] === '') {␊
      			parts.splice(i--, 1);␊
      		}␊
      	}␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] !== '..') continue;␊
      		if (i > 0 && parts[i - 1] !== '..' && parts[i - 1] !== '.') {␊
      			parts.splice(--i, 2);␊
      			i--;␊
      		}␊
      	}␊
      	path = parts.join('/');␊
      	if (slashed && path[0] !== '/') path = '/' + path;␊
      	else if (path.length === 0) path = '.';␊
      	return path;␊
      }␊
      ␊
      var main = {};␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      function takeModule(withName) {␊
        return createCommonjsRequire("/fixtures/function/dynamic-require-targets-fallback")(withName);␊
      }␊
      ␊
      t.is(takeModule('./dep1.js'), 'dep');␊
      // The bundled code will run from test/helpers/util.js␊
      t.is(takeModule('../fixtures/function/dynamic-require-targets-fallback/dep2.js'), 'dep');␊
      ␊
      module.exports = main;␊
      `,
    }

## dynamic-require-targets-no-fallback

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var dep1;␊
      var hasRequiredDep1;␊
      ␊
      function requireDep1 () {␊
      	if (hasRequiredDep1) return dep1;␊
      	hasRequiredDep1 = 1;␊
      	dep1 = 'dep';␊
      	return dep1;␊
      }␊
      ␊
      var dynamicModules;␊
      ␊
      function getDynamicModules() {␊
      	return dynamicModules || (dynamicModules = {␊
      		"/fixtures/function/dynamic-require-targets-no-fallback/dep1.js": requireDep1␊
      	});␊
      }␊
      ␊
      function createCommonjsRequire(originalModuleDir) {␊
      	function handleRequire(path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return getDynamicModules()[resolvedPath]();␊
      		}␊
      		throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');␊
      	}␊
      	handleRequire.resolve = function (path) {␊
      		var resolvedPath = commonjsResolve(path, originalModuleDir);␊
      		if (resolvedPath !== null) {␊
      			return resolvedPath;␊
      		}␊
      		return require.resolve(path);␊
      	};␊
      	return handleRequire;␊
      }␊
      ␊
      function commonjsResolve (path, originalModuleDir) {␊
      	var shouldTryNodeModules = isPossibleNodeModulesPath(path);␊
      	path = normalize(path);␊
      	var relPath;␊
      	if (path[0] === '/') {␊
      		originalModuleDir = '';␊
      	}␊
      	var modules = getDynamicModules();␊
      	var checkedExtensions = ['', '.js', '.json'];␊
      	while (true) {␊
      		if (!shouldTryNodeModules) {␊
      			relPath = normalize(originalModuleDir + '/' + path);␊
      		} else {␊
      			relPath = normalize(originalModuleDir + '/node_modules/' + path);␊
      		}␊
      ␊
      		if (relPath.endsWith('/..')) {␊
      			break; // Travelled too far up, avoid infinite loop␊
      		}␊
      ␊
      		for (var extensionIndex = 0; extensionIndex < checkedExtensions.length; extensionIndex++) {␊
      			var resolvedPath = relPath + checkedExtensions[extensionIndex];␊
      			if (modules[resolvedPath]) {␊
      				return resolvedPath;␊
      			}␊
      		}␊
      		if (!shouldTryNodeModules) break;␊
      		var nextDir = normalize(originalModuleDir + '/..');␊
      		if (nextDir === originalModuleDir) break;␊
      		originalModuleDir = nextDir;␊
      	}␊
      	return null;␊
      }␊
      ␊
      function isPossibleNodeModulesPath (modulePath) {␊
      	var c0 = modulePath[0];␊
      	if (c0 === '/' || c0 === '\\\\') return false;␊
      	var c1 = modulePath[1], c2 = modulePath[2];␊
      	if ((c0 === '.' && (!c1 || c1 === '/' || c1 === '\\\\')) ||␊
      		(c0 === '.' && c1 === '.' && (!c2 || c2 === '/' || c2 === '\\\\'))) return false;␊
      	if (c1 === ':' && (c2 === '/' || c2 === '\\\\')) return false;␊
      	return true;␊
      }␊
      ␊
      function normalize (path) {␊
      	path = path.replace(/\\\\/g, '/');␊
      	var parts = path.split('/');␊
      	var slashed = parts[0] === '';␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] === '.' || parts[i] === '') {␊
      			parts.splice(i--, 1);␊
      		}␊
      	}␊
      	for (var i = 1; i < parts.length; i++) {␊
      		if (parts[i] !== '..') continue;␊
      		if (i > 0 && parts[i - 1] !== '..' && parts[i - 1] !== '.') {␊
      			parts.splice(--i, 2);␊
      			i--;␊
      		}␊
      	}␊
      	path = parts.join('/');␊
      	if (slashed && path[0] !== '/') path = '/' + path;␊
      	else if (path.length === 0) path = '.';␊
      	return path;␊
      }␊
      ␊
      var main = {};␊
      ␊
      /* eslint-disable import/no-dynamic-require, global-require */␊
      ␊
      function takeModule(withName) {␊
        return createCommonjsRequire("/fixtures/function/dynamic-require-targets-no-fallback")(withName);␊
      }␊
      ␊
      t.is(takeModule('./dep1.js'), 'dep');␊
      t.throws(() => takeModule('./dep2.js'), {␊
        message:␊
          'Could not dynamically require "./dep2.js". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.'␊
      });␊
      ␊
      module.exports = main;␊
      `,
    }

## es6-export-with-global-sniffing

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      let root;␊
      ␊
      if (typeof self !== 'undefined') {␊
        root = self;␊
      } else if (typeof window !== 'undefined') {␊
        root = window;␊
      } else if (typeof global !== 'undefined') {␊
        root = global;␊
      } else if (typeof module !== 'undefined') {␊
        root = module;␊
      } else {␊
        root = Function('return this')(); // eslint-disable-line no-new-func␊
      }␊
      ␊
      root.pollution = 'foo';␊
      ␊
      const getGlobalPollution = () => 'foo';␊
      ␊
      // this test makes sure that "submodule" is not wrapped in commonjs␊
      ␊
      t.is(getGlobalPollution(), global.pollution);␊
      `,
    }

## esm-externals-false

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var require$$0 = require('external-cjs-exports');␊
      var require$$1 = require('external-cjs-module-exports');␊
      var require$$2 = require('external-esm-named');␊
      var require$$3 = require('external-esm-mixed');␊
      var require$$4 = require('external-esm-default');␊
      ␊
      function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }␊
      ␊
      var require$$0__default = /*#__PURE__*/_interopDefaultCompat(require$$0);␊
      var require$$1__default = /*#__PURE__*/_interopDefaultCompat(require$$1);␊
      var require$$2__default = /*#__PURE__*/_interopDefaultCompat(require$$2);␊
      var require$$3__default = /*#__PURE__*/_interopDefaultCompat(require$$3);␊
      var require$$4__default = /*#__PURE__*/_interopDefaultCompat(require$$4);␊
      ␊
      var main = {};␊
      ␊
      const externalExports = require$$0__default.default;␊
      const externalModuleExports = require$$1__default.default;␊
      const externalNamed = require$$2__default.default;␊
      const externalMixed = require$$3__default.default;␊
      const externalDefault = require$$4__default.default;␊
      ␊
      t.deepEqual(externalExports, { foo: 'foo' }, 'external exports');␊
      t.deepEqual(externalModuleExports, 'bar', 'external module exports');␊
      t.deepEqual(externalNamed, { foo: 'foo' }, 'external named');␊
      t.deepEqual(externalMixed, 'bar', 'external mixed');␊
      t.deepEqual(externalDefault, 'bar', 'external default');␊
      ␊
      module.exports = main;␊
      `,
    }

## esm-externals-function

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var require$$0 = require('external-cjs-exports');␊
      var require$$1 = require('external-cjs-module-exports');␊
      var require$$2 = require('external-esm-named');␊
      var require$$3 = require('external-esm-mixed');␊
      var externalEsmDefault = require('external-esm-default');␊
      ␊
      function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }␊
      ␊
      function _interopNamespaceCompat(e) {␊
      	if (e && typeof e === 'object' && 'default' in e) return e;␊
      	var n = Object.create(null);␊
      	if (e) {␊
      		Object.keys(e).forEach(function (k) {␊
      			if (k !== 'default') {␊
      				var d = Object.getOwnPropertyDescriptor(e, k);␊
      				Object.defineProperty(n, k, d.get ? d : {␊
      					enumerable: true,␊
      					get: function () { return e[k]; }␊
      				});␊
      			}␊
      		});␊
      	}␊
      	n.default = e;␊
      	return Object.freeze(n);␊
      }␊
      ␊
      var require$$0__default = /*#__PURE__*/_interopDefaultCompat(require$$0);␊
      var require$$1__default = /*#__PURE__*/_interopDefaultCompat(require$$1);␊
      var require$$2__default = /*#__PURE__*/_interopDefaultCompat(require$$2);␊
      var require$$3__default = /*#__PURE__*/_interopDefaultCompat(require$$3);␊
      var externalEsmDefault__namespace = /*#__PURE__*/_interopNamespaceCompat(externalEsmDefault);␊
      ␊
      function getAugmentedNamespace(n) {␊
        var f = n.default;␊
      	if (typeof f == "function") {␊
      		var a = function a () {␊
      			if (this instanceof a) {␊
      				var args = [null];␊
      				args.push.apply(args, arguments);␊
      				var Ctor = Function.bind.apply(f, args);␊
      				return new Ctor();␊
      			}␊
      			return f.apply(this, arguments);␊
      		};␊
      		a.prototype = f.prototype;␊
        } else a = {};␊
        Object.defineProperty(a, '__esModule', {value: true});␊
      	Object.keys(n).forEach(function (k) {␊
      		var d = Object.getOwnPropertyDescriptor(n, k);␊
      		Object.defineProperty(a, k, d.get ? d : {␊
      			enumerable: true,␊
      			get: function () {␊
      				return n[k];␊
      			}␊
      		});␊
      	});␊
      	return a;␊
      }␊
      ␊
      var main = {};␊
      ␊
      var require$$4 = /*@__PURE__*/getAugmentedNamespace(externalEsmDefault__namespace);␊
      ␊
      const externalExports = require$$0__default.default;␊
      const externalModuleExports = require$$1__default.default;␊
      const externalNamed = require$$2__default.default;␊
      const externalMixed = require$$3__default.default;␊
      const externalDefault = require$$4;␊
      ␊
      t.deepEqual(externalExports, { foo: 'foo' }, 'external exports');␊
      t.deepEqual(externalModuleExports, 'bar', 'external module exports');␊
      t.deepEqual(externalNamed, { foo: 'foo' }, 'external named');␊
      t.deepEqual(externalMixed, 'bar', 'external mixed');␊
      t.deepEqual(externalDefault, { default: 'bar' }, 'external default');␊
      ␊
      module.exports = main;␊
      `,
    }

## esm-externals-list

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var require$$0 = require('external-cjs-exports');␊
      var require$$1 = require('external-cjs-module-exports');␊
      var require$$2 = require('external-esm-named');␊
      var require$$3 = require('external-esm-mixed');␊
      var externalEsmDefault = require('external-esm-default');␊
      ␊
      function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }␊
      ␊
      function _interopNamespaceCompat(e) {␊
      	if (e && typeof e === 'object' && 'default' in e) return e;␊
      	var n = Object.create(null);␊
      	if (e) {␊
      		Object.keys(e).forEach(function (k) {␊
      			if (k !== 'default') {␊
      				var d = Object.getOwnPropertyDescriptor(e, k);␊
      				Object.defineProperty(n, k, d.get ? d : {␊
      					enumerable: true,␊
      					get: function () { return e[k]; }␊
      				});␊
      			}␊
      		});␊
      	}␊
      	n.default = e;␊
      	return Object.freeze(n);␊
      }␊
      ␊
      var require$$0__default = /*#__PURE__*/_interopDefaultCompat(require$$0);␊
      var require$$1__default = /*#__PURE__*/_interopDefaultCompat(require$$1);␊
      var require$$2__default = /*#__PURE__*/_interopDefaultCompat(require$$2);␊
      var require$$3__default = /*#__PURE__*/_interopDefaultCompat(require$$3);␊
      var externalEsmDefault__namespace = /*#__PURE__*/_interopNamespaceCompat(externalEsmDefault);␊
      ␊
      function getAugmentedNamespace(n) {␊
        var f = n.default;␊
      	if (typeof f == "function") {␊
      		var a = function a () {␊
      			if (this instanceof a) {␊
      				var args = [null];␊
      				args.push.apply(args, arguments);␊
      				var Ctor = Function.bind.apply(f, args);␊
      				return new Ctor();␊
      			}␊
      			return f.apply(this, arguments);␊
      		};␊
      		a.prototype = f.prototype;␊
        } else a = {};␊
        Object.defineProperty(a, '__esModule', {value: true});␊
      	Object.keys(n).forEach(function (k) {␊
      		var d = Object.getOwnPropertyDescriptor(n, k);␊
      		Object.defineProperty(a, k, d.get ? d : {␊
      			enumerable: true,␊
      			get: function () {␊
      				return n[k];␊
      			}␊
      		});␊
      	});␊
      	return a;␊
      }␊
      ␊
      var main = {};␊
      ␊
      var require$$4 = /*@__PURE__*/getAugmentedNamespace(externalEsmDefault__namespace);␊
      ␊
      const externalExports = require$$0__default.default;␊
      const externalModuleExports = require$$1__default.default;␊
      const externalNamed = require$$2__default.default;␊
      const externalMixed = require$$3__default.default;␊
      const externalDefault = require$$4;␊
      ␊
      t.deepEqual(externalExports, { foo: 'foo' }, 'external exports');␊
      t.deepEqual(externalModuleExports, 'bar', 'external module exports');␊
      t.deepEqual(externalNamed, { foo: 'foo' }, 'external named');␊
      t.deepEqual(externalMixed, 'bar', 'external mixed');␊
      t.deepEqual(externalDefault, { default: 'bar' }, 'external default');␊
      ␊
      module.exports = main;␊
      `,
    }

## esm-externals-true

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var externalEsmNamed = require('external-esm-named');␊
      var externalEsmMixed = require('external-esm-mixed');␊
      var externalEsmDefault = require('external-esm-default');␊
      ␊
      function _interopNamespaceCompat(e) {␊
      	if (e && typeof e === 'object' && 'default' in e) return e;␊
      	var n = Object.create(null);␊
      	if (e) {␊
      		Object.keys(e).forEach(function (k) {␊
      			if (k !== 'default') {␊
      				var d = Object.getOwnPropertyDescriptor(e, k);␊
      				Object.defineProperty(n, k, d.get ? d : {␊
      					enumerable: true,␊
      					get: function () { return e[k]; }␊
      				});␊
      			}␊
      		});␊
      	}␊
      	n.default = e;␊
      	return Object.freeze(n);␊
      }␊
      ␊
      var externalEsmNamed__namespace = /*#__PURE__*/_interopNamespaceCompat(externalEsmNamed);␊
      var externalEsmMixed__namespace = /*#__PURE__*/_interopNamespaceCompat(externalEsmMixed);␊
      var externalEsmDefault__namespace = /*#__PURE__*/_interopNamespaceCompat(externalEsmDefault);␊
      ␊
      function getAugmentedNamespace(n) {␊
        var f = n.default;␊
      	if (typeof f == "function") {␊
      		var a = function a () {␊
      			if (this instanceof a) {␊
      				var args = [null];␊
      				args.push.apply(args, arguments);␊
      				var Ctor = Function.bind.apply(f, args);␊
      				return new Ctor();␊
      			}␊
      			return f.apply(this, arguments);␊
      		};␊
      		a.prototype = f.prototype;␊
        } else a = {};␊
        Object.defineProperty(a, '__esModule', {value: true});␊
      	Object.keys(n).forEach(function (k) {␊
      		var d = Object.getOwnPropertyDescriptor(n, k);␊
      		Object.defineProperty(a, k, d.get ? d : {␊
      			enumerable: true,␊
      			get: function () {␊
      				return n[k];␊
      			}␊
      		});␊
      	});␊
      	return a;␊
      }␊
      ␊
      var main = {};␊
      ␊
      var require$$0 = /*@__PURE__*/getAugmentedNamespace(externalEsmNamed__namespace);␊
      ␊
      var require$$1 = /*@__PURE__*/getAugmentedNamespace(externalEsmMixed__namespace);␊
      ␊
      var require$$2 = /*@__PURE__*/getAugmentedNamespace(externalEsmDefault__namespace);␊
      ␊
      const externalNamed = require$$0;␊
      const externalMixed = require$$1;␊
      const externalDefault = require$$2;␊
      ␊
      t.deepEqual(externalNamed, { foo: 'foo', default: { foo: 'foo' } }, 'external named');␊
      t.deepEqual(externalMixed, { default: 'bar', foo: 'foo' }, 'external mixed');␊
      t.deepEqual(externalDefault, { default: 'bar' }, 'external default');␊
      ␊
      module.exports = main;␊
      `,
    }

## esm-externals-undefined

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var require$$0 = require('external-cjs-exports');␊
      var require$$1 = require('external-cjs-module-exports');␊
      var require$$2 = require('external-esm-named');␊
      var require$$3 = require('external-esm-mixed');␊
      var require$$4 = require('external-esm-default');␊
      ␊
      function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }␊
      ␊
      var require$$0__default = /*#__PURE__*/_interopDefaultCompat(require$$0);␊
      var require$$1__default = /*#__PURE__*/_interopDefaultCompat(require$$1);␊
      var require$$2__default = /*#__PURE__*/_interopDefaultCompat(require$$2);␊
      var require$$3__default = /*#__PURE__*/_interopDefaultCompat(require$$3);␊
      var require$$4__default = /*#__PURE__*/_interopDefaultCompat(require$$4);␊
      ␊
      var main = {};␊
      ␊
      const externalExports = require$$0__default.default;␊
      const externalModuleExports = require$$1__default.default;␊
      const externalNamed = require$$2__default.default;␊
      const externalMixed = require$$3__default.default;␊
      const externalDefault = require$$4__default.default;␊
      ␊
      t.deepEqual(externalExports, { foo: 'foo' }, 'external exports');␊
      t.deepEqual(externalModuleExports, 'bar', 'external module exports');␊
      t.deepEqual(externalNamed, { foo: 'foo' }, 'external named');␊
      t.deepEqual(externalMixed, 'bar', 'external mixed');␊
      t.deepEqual(externalDefault, 'bar', 'external default');␊
      ␊
      module.exports = main;␊
      `,
    }

## esm-mixed-exports-function-default

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      function getAugmentedNamespace(n) {␊
        var f = n.default;␊
      	if (typeof f == "function") {␊
      		var a = function a () {␊
      			if (this instanceof a) {␊
      				var args = [null];␊
      				args.push.apply(args, arguments);␊
      				var Ctor = Function.bind.apply(f, args);␊
      				return new Ctor();␊
      			}␊
      			return f.apply(this, arguments);␊
      		};␊
      		a.prototype = f.prototype;␊
        } else a = {};␊
        Object.defineProperty(a, '__esModule', {value: true});␊
      	Object.keys(n).forEach(function (k) {␊
      		var d = Object.getOwnPropertyDescriptor(n, k);␊
      		Object.defineProperty(a, k, d.get ? d : {␊
      			enumerable: true,␊
      			get: function () {␊
      				return n[k];␊
      			}␊
      		});␊
      	});␊
      	return a;␊
      }␊
      ␊
      var main = {};␊
      ␊
      function foo$1(...args) {␊
        return args;␊
      }␊
      ␊
      const bar$1 = 'bar';␊
      ␊
      var esmFunction = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	default: foo$1,␊
      	bar: bar$1␊
      });␊
      ␊
      var require$$0 = /*@__PURE__*/getAugmentedNamespace(esmFunction);␊
      ␊
      function Foo$1(...args) {␊
        this.foo = args;␊
      }␊
      ␊
      Foo$1.prototype.update = function () {␊
        this.foo = 'updated';␊
      };␊
      ␊
      const bar = 'bar';␊
      ␊
      var esmConstructor = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	default: Foo$1,␊
      	bar: bar␊
      });␊
      ␊
      var require$$1 = /*@__PURE__*/getAugmentedNamespace(esmConstructor);␊
      ␊
      const foo = require$$0;␊
      const Foo = require$$1;␊
      ␊
      t.is(foo.bar, 'bar');␊
      t.deepEqual(foo.default('first'), ['first']);␊
      t.deepEqual(foo('second'), ['second']);␊
      ␊
      t.is(Foo.bar, 'bar');␊
      ␊
      // eslint-disable-next-line new-cap␊
      const newDefault = new Foo.default('third');␊
      t.deepEqual(newDefault.foo, ['third']);␊
      newDefault.update();␊
      t.is(newDefault.foo, 'updated');␊
      ␊
      const newFoo = new Foo('fourth');␊
      t.deepEqual(newFoo.foo, ['fourth']);␊
      newFoo.update();␊
      t.is(newFoo.foo, 'updated');␊
      ␊
      module.exports = main;␊
      `,
    }

## export-default-from

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var require$$0 = 'default export';␊
      ␊
      t.is(require$$0, 'default export');␊
      ␊
      module.exports = main;␊
      `,
    }

## exports

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var foo = {};␊
      ␊
      foo.bar = 'BAR';␊
      foo.baz = 'BAZ';␊
      ␊
      const { bar } = foo;␊
      const { baz } = foo;␊
      ␊
      var main = bar + baz;␊
      ␊
      module.exports = main;␊
      `,
    }

## exports-with-reassigned-module-exports

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var dep$1 = {exports: {}};␊
      ␊
      (function (module, exports) {␊
      	exports.foo = 'foo';␊
      	module.exports = { replaced: true };␊
      	exports.bar = 'bar';␊
      } (dep$1, dep$1.exports));␊
      ␊
      const dep = dep$1.exports;␊
      ␊
      t.deepEqual(dep, { replaced: true });␊
      ␊
      module.exports = main;␊
      `,
    }

## expose-file-type-detection

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var other = require('./other-72e4efff.js');␊
      ␊
      t.is(other.other, 'foo');␊
      `,
      'other-72e4efff.js': `'use strict';␊
      ␊
      var other = 'foo';␊
      ␊
      exports.other = other;␊
      `,
      'other.js': `'use strict';␊
      ␊
      var other = require('./other-72e4efff.js');␊
      ␊
      ␊
      ␊
      module.exports = other.other;␊
      `,
    }

## external-imports

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var require$$0 = require('foo');␊
      ␊
      function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }␊
      ␊
      var require$$0__default = /*#__PURE__*/_interopDefaultCompat(require$$0);␊
      ␊
      const foo = require$$0__default.default;␊
      ␊
      var main = foo;␊
      ␊
      module.exports = main;␊
      `,
    }

## fallback-no-default

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      function getAugmentedNamespace(n) {␊
        var f = n.default;␊
      	if (typeof f == "function") {␊
      		var a = function a () {␊
      			if (this instanceof a) {␊
      				var args = [null];␊
      				args.push.apply(args, arguments);␊
      				var Ctor = Function.bind.apply(f, args);␊
      				return new Ctor();␊
      			}␊
      			return f.apply(this, arguments);␊
      		};␊
      		a.prototype = f.prototype;␊
        } else a = {};␊
        Object.defineProperty(a, '__esModule', {value: true});␊
      	Object.keys(n).forEach(function (k) {␊
      		var d = Object.getOwnPropertyDescriptor(n, k);␊
      		Object.defineProperty(a, k, d.get ? d : {␊
      			enumerable: true,␊
      			get: function () {␊
      				return n[k];␊
      			}␊
      		});␊
      	});␊
      	return a;␊
      }␊
      ␊
      var main = {};␊
      ␊
      /* eslint-disable */␊
      var one = 1;␊
      ␊
      var two = 2;␊
      ␊
      var foo$1 = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	one: one,␊
      	two: two␊
      });␊
      ␊
      var require$$0 = /*@__PURE__*/getAugmentedNamespace(foo$1);␊
      ␊
      const foo = require$$0;␊
      ␊
      t.is(foo.one, 1);␊
      t.is(foo.two, 2);␊
      ␊
      module.exports = main;␊
      `,
    }

## global-not-overwritten

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};␊
      ␊
      var encode = {};␊
      ␊
      (function (exports) {␊
      	exports.encodeURIComponent = function () {␊
      	  return encodeURIComponent(this.str);␊
      	};␊
      ␊
      	// to ensure module is wrapped␊
      	commonjsGlobal.foo = exports;␊
      } (encode));␊
      ␊
      /* eslint-disable */␊
      ␊
      const foo = {␊
        str: 'test string',␊
        encodeURIComponent: encode.encodeURIComponent␊
      };␊
      ␊
      var encoded = foo.encodeURIComponent();␊
      ␊
      exports.encoded = encoded;␊
      `,
    }

## global-var

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};␊
      ␊
      /* eslint-disable */␊
      ␊
      function foo() {␊
        const global = {};␊
        global.modified = true;␊
        return global;␊
      }␊
      ␊
      const notGlobal = foo();␊
      t.truthy(notGlobal.modified);␊
      t.truthy(!commonjsGlobal.modified);␊
      ␊
      var main = {};␊
      ␊
      module.exports = main;␊
      `,
    }

## import-esm-require-returns-default-auto

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var externalEsmNamed = require('external-esm-named');␊
      var externalEsmMixed = require('external-esm-mixed');␊
      var externalEsmDefault = require('external-esm-default');␊
      ␊
      function _interopNamespaceCompat(e) {␊
      	if (e && typeof e === 'object' && 'default' in e) return e;␊
      	var n = Object.create(null);␊
      	if (e) {␊
      		Object.keys(e).forEach(function (k) {␊
      			if (k !== 'default') {␊
      				var d = Object.getOwnPropertyDescriptor(e, k);␊
      				Object.defineProperty(n, k, d.get ? d : {␊
      					enumerable: true,␊
      					get: function () { return e[k]; }␊
      				});␊
      			}␊
      		});␊
      	}␊
      	n.default = e;␊
      	return Object.freeze(n);␊
      }␊
      ␊
      var externalEsmNamed__namespace = /*#__PURE__*/_interopNamespaceCompat(externalEsmNamed);␊
      var externalEsmMixed__namespace = /*#__PURE__*/_interopNamespaceCompat(externalEsmMixed);␊
      var externalEsmDefault__namespace = /*#__PURE__*/_interopNamespaceCompat(externalEsmDefault);␊
      ␊
      function getDefaultExportFromNamespaceIfNotNamed (n) {␊
      	return n && Object.prototype.hasOwnProperty.call(n, 'default') && Object.keys(n).length === 1 ? n['default'] : n;␊
      }␊
      ␊
      var main = {};␊
      ␊
      var require$$0 = /*@__PURE__*/getDefaultExportFromNamespaceIfNotNamed(externalEsmNamed__namespace);␊
      ␊
      var require$$1 = /*@__PURE__*/getDefaultExportFromNamespaceIfNotNamed(externalEsmMixed__namespace);␊
      ␊
      var require$$2 = /*@__PURE__*/getDefaultExportFromNamespaceIfNotNamed(externalEsmDefault__namespace);␊
      ␊
      const foo$1 = 'foo';␊
      ␊
      var named = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	foo: foo$1␊
      });␊
      ␊
      const foo = 'foo';␊
      var mixed = 'bar';␊
      ␊
      var mixed$1 = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	foo: foo,␊
      	default: mixed␊
      });␊
      ␊
      var require$$5 = 'bar';␊
      ␊
      var none = {};␊
      ␊
      const externalNamed = require$$0;␊
      const externalMixed = require$$1;␊
      const externalDefault = require$$2;␊
      ␊
      const namedExports = named;␊
      const mixedExports = mixed$1;␊
      const defaultExport = require$$5;␊
      const noExports = none;␊
      ␊
      t.deepEqual(namedExports, { foo: 'foo' }, 'named exports');␊
      t.deepEqual(mixedExports, { foo: 'foo', default: 'bar' }, 'mixed exports');␊
      t.deepEqual(defaultExport, 'bar', 'default export');␊
      t.deepEqual(noExports, {}, 'no exports');␊
      t.deepEqual(externalNamed, { foo: 'foo', default: { foo: 'foo' } }, 'external named');␊
      t.deepEqual(externalMixed, { foo: 'foo', default: 'bar' }, 'external mixed');␊
      t.deepEqual(externalDefault, 'bar', 'external default');␊
      ␊
      module.exports = main;␊
      `,
    }

## import-esm-require-returns-default-false

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var externalEsmNamed = require('external-esm-named');␊
      var externalEsmMixed = require('external-esm-mixed');␊
      var externalEsmDefault = require('external-esm-default');␊
      ␊
      function _interopNamespaceCompat(e) {␊
      	if (e && typeof e === 'object' && 'default' in e) return e;␊
      	var n = Object.create(null);␊
      	if (e) {␊
      		Object.keys(e).forEach(function (k) {␊
      			if (k !== 'default') {␊
      				var d = Object.getOwnPropertyDescriptor(e, k);␊
      				Object.defineProperty(n, k, d.get ? d : {␊
      					enumerable: true,␊
      					get: function () { return e[k]; }␊
      				});␊
      			}␊
      		});␊
      	}␊
      	n.default = e;␊
      	return Object.freeze(n);␊
      }␊
      ␊
      var externalEsmNamed__namespace = /*#__PURE__*/_interopNamespaceCompat(externalEsmNamed);␊
      var externalEsmMixed__namespace = /*#__PURE__*/_interopNamespaceCompat(externalEsmMixed);␊
      var externalEsmDefault__namespace = /*#__PURE__*/_interopNamespaceCompat(externalEsmDefault);␊
      ␊
      function getAugmentedNamespace(n) {␊
        var f = n.default;␊
      	if (typeof f == "function") {␊
      		var a = function a () {␊
      			if (this instanceof a) {␊
      				var args = [null];␊
      				args.push.apply(args, arguments);␊
      				var Ctor = Function.bind.apply(f, args);␊
      				return new Ctor();␊
      			}␊
      			return f.apply(this, arguments);␊
      		};␊
      		a.prototype = f.prototype;␊
        } else a = {};␊
        Object.defineProperty(a, '__esModule', {value: true});␊
      	Object.keys(n).forEach(function (k) {␊
      		var d = Object.getOwnPropertyDescriptor(n, k);␊
      		Object.defineProperty(a, k, d.get ? d : {␊
      			enumerable: true,␊
      			get: function () {␊
      				return n[k];␊
      			}␊
      		});␊
      	});␊
      	return a;␊
      }␊
      ␊
      var main = {};␊
      ␊
      var require$$0 = /*@__PURE__*/getAugmentedNamespace(externalEsmNamed__namespace);␊
      ␊
      var require$$1 = /*@__PURE__*/getAugmentedNamespace(externalEsmMixed__namespace);␊
      ␊
      var require$$2 = /*@__PURE__*/getAugmentedNamespace(externalEsmDefault__namespace);␊
      ␊
      const foo$1 = 'foo';␊
      ␊
      var named = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	foo: foo$1␊
      });␊
      ␊
      var require$$3 = /*@__PURE__*/getAugmentedNamespace(named);␊
      ␊
      const foo = 'foo';␊
      var mixed = 'bar';␊
      ␊
      var mixed$1 = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	foo: foo,␊
      	default: mixed␊
      });␊
      ␊
      var require$$4 = /*@__PURE__*/getAugmentedNamespace(mixed$1);␊
      ␊
      var _default = 'bar';␊
      ␊
      var _default$1 = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	default: _default␊
      });␊
      ␊
      var require$$5 = /*@__PURE__*/getAugmentedNamespace(_default$1);␊
      ␊
      var none = {};␊
      ␊
      const externalNamed = require$$0;␊
      const externalMixed = require$$1;␊
      const externalDefault = require$$2;␊
      ␊
      const namedExports = require$$3;␊
      const mixedExports = require$$4;␊
      const defaultExport = require$$5;␊
      const noExports = none;␊
      ␊
      t.deepEqual(namedExports, { foo: 'foo' }, 'named exports');␊
      t.deepEqual(mixedExports, { foo: 'foo', default: 'bar' }, 'mixed exports');␊
      t.deepEqual(defaultExport, { default: 'bar' }, 'default export');␊
      t.deepEqual(noExports, {}, 'no exports');␊
      t.deepEqual(externalNamed, { foo: 'foo', default: { foo: 'foo' } }, 'external named');␊
      t.deepEqual(externalMixed, { foo: 'foo', default: 'bar' }, 'external mixed');␊
      t.deepEqual(externalDefault, { default: 'bar' }, 'external default');␊
      ␊
      /* eslint-disable no-prototype-builtins */␊
      t.is(namedExports.hasOwnProperty('foo'), true);␊
      t.is(mixedExports.hasOwnProperty('foo'), true);␊
      t.is(defaultExport.hasOwnProperty('foo'), false);␊
      t.is(externalNamed.hasOwnProperty('foo'), true);␊
      t.is(externalMixed.hasOwnProperty('foo'), true);␊
      t.is(externalDefault.hasOwnProperty('foo'), false);␊
      ␊
      module.exports = main;␊
      `,
    }

## import-esm-require-returns-default-function

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      function getAugmentedNamespace(n) {␊
        var f = n.default;␊
      	if (typeof f == "function") {␊
      		var a = function a () {␊
      			if (this instanceof a) {␊
      				var args = [null];␊
      				args.push.apply(args, arguments);␊
      				var Ctor = Function.bind.apply(f, args);␊
      				return new Ctor();␊
      			}␊
      			return f.apply(this, arguments);␊
      		};␊
      		a.prototype = f.prototype;␊
        } else a = {};␊
        Object.defineProperty(a, '__esModule', {value: true});␊
      	Object.keys(n).forEach(function (k) {␊
      		var d = Object.getOwnPropertyDescriptor(n, k);␊
      		Object.defineProperty(a, k, d.get ? d : {␊
      			enumerable: true,␊
      			get: function () {␊
      				return n[k];␊
      			}␊
      		});␊
      	});␊
      	return a;␊
      }␊
      ␊
      var main = {};␊
      ␊
      var dep_false_default_ = 'default';␊
      ␊
      var dep_false_default_$1 = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	default: dep_false_default_␊
      });␊
      ␊
      var require$$0 = /*@__PURE__*/getAugmentedNamespace(dep_false_default_$1);␊
      ␊
      var dep_false_mixed_ = 'default'; const named$4 = 'named';␊
      ␊
      var dep_false_mixed_$1 = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	default: dep_false_mixed_,␊
      	named: named$4␊
      });␊
      ␊
      var require$$1 = /*@__PURE__*/getAugmentedNamespace(dep_false_mixed_$1);␊
      ␊
      const named$3 = 'named';␊
      ␊
      var dep_false_named_ = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	named: named$3␊
      });␊
      ␊
      var require$$2 = /*@__PURE__*/getAugmentedNamespace(dep_false_named_);␊
      ␊
      var require$$3 = 'default';␊
      ␊
      var dep_auto_mixed_ = 'default'; const named$2 = 'named';␊
      ␊
      var dep_auto_mixed_$1 = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	default: dep_auto_mixed_,␊
      	named: named$2␊
      });␊
      ␊
      const named$1 = 'named';␊
      ␊
      var dep_auto_named_ = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	named: named$1␊
      });␊
      ␊
      var require$$6 = 'default';␊
      ␊
      var require$$7 = 'default';␊
      ␊
      const named = 'named';␊
      ␊
      var dep_preferred_named_ = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	named: named␊
      });␊
      ␊
      var require$$9 = 'default';␊
      ␊
      var require$$10 = 'default';␊
      ␊
      const falseDefault = require$$0;␊
      const falseMixed = require$$1;␊
      const falseNamed = require$$2;␊
      ␊
      const autoDefault = require$$3;␊
      const autoMixed = dep_auto_mixed_$1;␊
      const autoNamed = dep_auto_named_;␊
      ␊
      const preferredDefault = require$$6;␊
      const preferredMixed = require$$7;␊
      const preferredNamed = dep_preferred_named_;␊
      ␊
      const trueDefault = require$$9;␊
      const trueMixed = require$$10;␊
      ␊
      t.deepEqual(falseDefault, { default: 'default' }, 'false default');␊
      t.deepEqual(falseMixed, { default: 'default', named: 'named' }, 'false mixed');␊
      t.deepEqual(falseNamed, { named: 'named' }, 'false named');␊
      ␊
      t.deepEqual(autoDefault, 'default', 'auto default');␊
      t.deepEqual(autoMixed, { default: 'default', named: 'named' }, 'auto mixed');␊
      t.deepEqual(autoNamed, { named: 'named' }, 'auto named');␊
      ␊
      t.deepEqual(preferredDefault, 'default', 'preferred default');␊
      t.deepEqual(preferredMixed, 'default', 'preferred mixed');␊
      t.deepEqual(preferredNamed, { named: 'named' }, 'preferred named');␊
      ␊
      t.deepEqual(trueDefault, 'default', 'true default');␊
      t.deepEqual(trueMixed, 'default', 'true mixed');␊
      ␊
      module.exports = main;␊
      `,
    }

## import-esm-require-returns-default-function-called-once

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main$1 = {};␊
      ␊
      var require$$0 = 'other.js';␊
      ␊
      var require$$2 = 'both.js';␊
      ␊
      const other = require$$0;␊
      const both$1 = require$$2;␊
      ␊
      t.deepEqual(other, 'other.js', 'other other');␊
      t.deepEqual(both$1, 'both.js', 'other both');␊
      ␊
      var require$$1 = 'main.js';␊
      ␊
      const main = require$$1;␊
      const both = require$$2;␊
      ␊
      t.deepEqual(main, 'main.js', 'main main');␊
      t.deepEqual(both, 'both.js', 'main both');␊
      ␊
      module.exports = main$1;␊
      `,
    }

## import-esm-require-returns-default-function-external

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var externalEsmNamed = require('external-esm-named');␊
      var require$$1 = require('external-esm-mixed');␊
      var externalEsmDefault = require('external-esm-default');␊
      ␊
      function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }␊
      ␊
      function _interopNamespaceCompat(e) {␊
      	if (e && typeof e === 'object' && 'default' in e) return e;␊
      	var n = Object.create(null);␊
      	if (e) {␊
      		Object.keys(e).forEach(function (k) {␊
      			if (k !== 'default') {␊
      				var d = Object.getOwnPropertyDescriptor(e, k);␊
      				Object.defineProperty(n, k, d.get ? d : {␊
      					enumerable: true,␊
      					get: function () { return e[k]; }␊
      				});␊
      			}␊
      		});␊
      	}␊
      	n.default = e;␊
      	return Object.freeze(n);␊
      }␊
      ␊
      var externalEsmNamed__namespace = /*#__PURE__*/_interopNamespaceCompat(externalEsmNamed);␊
      var require$$1__default = /*#__PURE__*/_interopDefaultCompat(require$$1);␊
      var externalEsmDefault__namespace = /*#__PURE__*/_interopNamespaceCompat(externalEsmDefault);␊
      ␊
      function getDefaultExportFromNamespaceIfNotNamed (n) {␊
      	return n && Object.prototype.hasOwnProperty.call(n, 'default') && Object.keys(n).length === 1 ? n['default'] : n;␊
      }␊
      ␊
      function getAugmentedNamespace(n) {␊
        var f = n.default;␊
      	if (typeof f == "function") {␊
      		var a = function a () {␊
      			if (this instanceof a) {␊
      				var args = [null];␊
      				args.push.apply(args, arguments);␊
      				var Ctor = Function.bind.apply(f, args);␊
      				return new Ctor();␊
      			}␊
      			return f.apply(this, arguments);␊
      		};␊
      		a.prototype = f.prototype;␊
        } else a = {};␊
        Object.defineProperty(a, '__esModule', {value: true});␊
      	Object.keys(n).forEach(function (k) {␊
      		var d = Object.getOwnPropertyDescriptor(n, k);␊
      		Object.defineProperty(a, k, d.get ? d : {␊
      			enumerable: true,␊
      			get: function () {␊
      				return n[k];␊
      			}␊
      		});␊
      	});␊
      	return a;␊
      }␊
      ␊
      var main = {};␊
      ␊
      var require$$0 = /*@__PURE__*/getDefaultExportFromNamespaceIfNotNamed(externalEsmNamed__namespace);␊
      ␊
      var require$$2 = /*@__PURE__*/getAugmentedNamespace(externalEsmDefault__namespace);␊
      ␊
      const externalNamed = require$$0;␊
      const externalMixed = require$$1__default.default;␊
      const externalDefault = require$$2;␊
      ␊
      t.deepEqual(externalNamed, { foo: 'foo', default: { foo: 'foo' } }, 'named');␊
      t.deepEqual(externalMixed, 'bar', 'mixed');␊
      t.deepEqual(externalDefault, { default: 'bar' }, 'default');␊
      ␊
      module.exports = main;␊
      `,
    }

## import-esm-require-returns-default-namespace

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var externalEsmNamed = require('external-esm-named');␊
      var externalEsmMixed = require('external-esm-mixed');␊
      var externalEsmDefault = require('external-esm-default');␊
      ␊
      function _interopNamespaceCompat(e) {␊
      	if (e && typeof e === 'object' && 'default' in e) return e;␊
      	var n = Object.create(null);␊
      	if (e) {␊
      		Object.keys(e).forEach(function (k) {␊
      			if (k !== 'default') {␊
      				var d = Object.getOwnPropertyDescriptor(e, k);␊
      				Object.defineProperty(n, k, d.get ? d : {␊
      					enumerable: true,␊
      					get: function () { return e[k]; }␊
      				});␊
      			}␊
      		});␊
      	}␊
      	n.default = e;␊
      	return Object.freeze(n);␊
      }␊
      ␊
      var externalEsmNamed__namespace = /*#__PURE__*/_interopNamespaceCompat(externalEsmNamed);␊
      var externalEsmMixed__namespace = /*#__PURE__*/_interopNamespaceCompat(externalEsmMixed);␊
      var externalEsmDefault__namespace = /*#__PURE__*/_interopNamespaceCompat(externalEsmDefault);␊
      ␊
      var main = {};␊
      ␊
      const foo$1 = 'foo';␊
      ␊
      var named = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	foo: foo$1␊
      });␊
      ␊
      const foo = 'foo';␊
      var mixed = 'bar';␊
      ␊
      var mixed$1 = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	foo: foo,␊
      	default: mixed␊
      });␊
      ␊
      var _default = 'bar';␊
      ␊
      var _default$1 = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	default: _default␊
      });␊
      ␊
      var none = {};␊
      ␊
      const externalNamed = externalEsmNamed__namespace;␊
      const externalMixed = externalEsmMixed__namespace;␊
      const externalDefault = externalEsmDefault__namespace;␊
      ␊
      const namedExports = named;␊
      const mixedExports = mixed$1;␊
      const defaultExport = _default$1;␊
      const noExports = none;␊
      ␊
      t.deepEqual(namedExports, { foo: 'foo' }, 'named exports');␊
      t.deepEqual(mixedExports, { foo: 'foo', default: 'bar' }, 'mixed exports');␊
      t.deepEqual(defaultExport, { default: 'bar' }, 'default export');␊
      t.deepEqual(noExports, {}, 'no exports');␊
      t.deepEqual(externalNamed, { foo: 'foo', default: { foo: 'foo' } }, 'external named');␊
      t.deepEqual(externalMixed, { foo: 'foo', default: 'bar' }, 'external mixed');␊
      t.deepEqual(externalDefault, { default: 'bar' }, 'external default');␊
      ␊
      module.exports = main;␊
      `,
    }

## import-esm-require-returns-default-preferred

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var externalEsmNamed = require('external-esm-named');␊
      var externalEsmMixed = require('external-esm-mixed');␊
      var externalEsmDefault = require('external-esm-default');␊
      ␊
      function _interopNamespaceCompat(e) {␊
      	if (e && typeof e === 'object' && 'default' in e) return e;␊
      	var n = Object.create(null);␊
      	if (e) {␊
      		Object.keys(e).forEach(function (k) {␊
      			if (k !== 'default') {␊
      				var d = Object.getOwnPropertyDescriptor(e, k);␊
      				Object.defineProperty(n, k, d.get ? d : {␊
      					enumerable: true,␊
      					get: function () { return e[k]; }␊
      				});␊
      			}␊
      		});␊
      	}␊
      	n.default = e;␊
      	return Object.freeze(n);␊
      }␊
      ␊
      var externalEsmNamed__namespace = /*#__PURE__*/_interopNamespaceCompat(externalEsmNamed);␊
      var externalEsmMixed__namespace = /*#__PURE__*/_interopNamespaceCompat(externalEsmMixed);␊
      var externalEsmDefault__namespace = /*#__PURE__*/_interopNamespaceCompat(externalEsmDefault);␊
      ␊
      function getDefaultExportFromNamespaceIfPresent (n) {␊
      	return n && Object.prototype.hasOwnProperty.call(n, 'default') ? n['default'] : n;␊
      }␊
      ␊
      var main = {};␊
      ␊
      var require$$0 = /*@__PURE__*/getDefaultExportFromNamespaceIfPresent(externalEsmNamed__namespace);␊
      ␊
      var require$$1 = /*@__PURE__*/getDefaultExportFromNamespaceIfPresent(externalEsmMixed__namespace);␊
      ␊
      var require$$2 = /*@__PURE__*/getDefaultExportFromNamespaceIfPresent(externalEsmDefault__namespace);␊
      ␊
      const foo = 'foo';␊
      ␊
      var named = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	foo: foo␊
      });␊
      ␊
      var require$$4 = 'bar';␊
      ␊
      var require$$5 = 'bar';␊
      ␊
      var none = {};␊
      ␊
      const externalNamed = require$$0;␊
      const externalMixed = require$$1;␊
      const externalDefault = require$$2;␊
      ␊
      const namedExports = named;␊
      const mixedExports = require$$4;␊
      const defaultExport = require$$5;␊
      const noExports = none;␊
      ␊
      t.deepEqual(namedExports, { foo: 'foo' }, 'named exports');␊
      t.deepEqual(mixedExports, 'bar', 'mixed exports');␊
      t.deepEqual(defaultExport, 'bar', 'default export');␊
      t.deepEqual(noExports, {}, 'no exports');␊
      t.deepEqual(externalNamed, { foo: 'foo' }, 'external named');␊
      t.deepEqual(externalMixed, 'bar', 'external mixed');␊
      t.deepEqual(externalDefault, 'bar', 'external default');␊
      ␊
      module.exports = main;␊
      `,
    }

## import-esm-require-returns-default-true

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var require$$0 = require('external-esm-named');␊
      var require$$1 = require('external-esm-mixed');␊
      var require$$2 = require('external-esm-default');␊
      ␊
      function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }␊
      ␊
      var require$$0__default = /*#__PURE__*/_interopDefaultCompat(require$$0);␊
      var require$$1__default = /*#__PURE__*/_interopDefaultCompat(require$$1);␊
      var require$$2__default = /*#__PURE__*/_interopDefaultCompat(require$$2);␊
      ␊
      var main = {};␊
      ␊
      var require$$3 = 'bar';␊
      ␊
      var require$$4 = 'bar';␊
      ␊
      const externalNamed = require$$0__default.default;␊
      const externalMixed = require$$1__default.default;␊
      const externalDefault = require$$2__default.default;␊
      ␊
      const mixedExports = require$$3;␊
      const defaultExport = require$$4;␊
      ␊
      t.deepEqual(mixedExports, 'bar', 'mixed exports');␊
      t.deepEqual(defaultExport, 'bar', 'default export');␊
      t.deepEqual(externalNamed, { foo: 'foo' }, 'external named');␊
      t.deepEqual(externalMixed, 'bar', 'external mixed');␊
      t.deepEqual(externalDefault, 'bar', 'external default');␊
      ␊
      module.exports = main;␊
      `,
    }

## import-esm-require-returns-default-undefined

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var externalEsmNamed = require('external-esm-named');␊
      var externalEsmMixed = require('external-esm-mixed');␊
      var externalEsmDefault = require('external-esm-default');␊
      ␊
      function _interopNamespaceCompat(e) {␊
      	if (e && typeof e === 'object' && 'default' in e) return e;␊
      	var n = Object.create(null);␊
      	if (e) {␊
      		Object.keys(e).forEach(function (k) {␊
      			if (k !== 'default') {␊
      				var d = Object.getOwnPropertyDescriptor(e, k);␊
      				Object.defineProperty(n, k, d.get ? d : {␊
      					enumerable: true,␊
      					get: function () { return e[k]; }␊
      				});␊
      			}␊
      		});␊
      	}␊
      	n.default = e;␊
      	return Object.freeze(n);␊
      }␊
      ␊
      var externalEsmNamed__namespace = /*#__PURE__*/_interopNamespaceCompat(externalEsmNamed);␊
      var externalEsmMixed__namespace = /*#__PURE__*/_interopNamespaceCompat(externalEsmMixed);␊
      var externalEsmDefault__namespace = /*#__PURE__*/_interopNamespaceCompat(externalEsmDefault);␊
      ␊
      function getAugmentedNamespace(n) {␊
        var f = n.default;␊
      	if (typeof f == "function") {␊
      		var a = function a () {␊
      			if (this instanceof a) {␊
      				var args = [null];␊
      				args.push.apply(args, arguments);␊
      				var Ctor = Function.bind.apply(f, args);␊
      				return new Ctor();␊
      			}␊
      			return f.apply(this, arguments);␊
      		};␊
      		a.prototype = f.prototype;␊
        } else a = {};␊
        Object.defineProperty(a, '__esModule', {value: true});␊
      	Object.keys(n).forEach(function (k) {␊
      		var d = Object.getOwnPropertyDescriptor(n, k);␊
      		Object.defineProperty(a, k, d.get ? d : {␊
      			enumerable: true,␊
      			get: function () {␊
      				return n[k];␊
      			}␊
      		});␊
      	});␊
      	return a;␊
      }␊
      ␊
      var main = {};␊
      ␊
      var require$$0 = /*@__PURE__*/getAugmentedNamespace(externalEsmNamed__namespace);␊
      ␊
      var require$$1 = /*@__PURE__*/getAugmentedNamespace(externalEsmMixed__namespace);␊
      ␊
      var require$$2 = /*@__PURE__*/getAugmentedNamespace(externalEsmDefault__namespace);␊
      ␊
      const foo$1 = 'foo';␊
      ␊
      var named = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	foo: foo$1␊
      });␊
      ␊
      var require$$3 = /*@__PURE__*/getAugmentedNamespace(named);␊
      ␊
      const foo = 'foo';␊
      var mixed = 'bar';␊
      ␊
      var mixed$1 = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	foo: foo,␊
      	default: mixed␊
      });␊
      ␊
      var require$$4 = /*@__PURE__*/getAugmentedNamespace(mixed$1);␊
      ␊
      var _default = 'bar';␊
      ␊
      var _default$1 = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	default: _default␊
      });␊
      ␊
      var require$$5 = /*@__PURE__*/getAugmentedNamespace(_default$1);␊
      ␊
      var none = {};␊
      ␊
      const externalNamed = require$$0;␊
      const externalMixed = require$$1;␊
      const externalDefault = require$$2;␊
      ␊
      const namedExports = require$$3;␊
      const mixedExports = require$$4;␊
      const defaultExport = require$$5;␊
      const noExports = none;␊
      ␊
      t.deepEqual(namedExports, { foo: 'foo' }, 'named exports');␊
      t.deepEqual(mixedExports, { foo: 'foo', default: 'bar' }, 'mixed exports');␊
      t.deepEqual(defaultExport, { default: 'bar' }, 'default export');␊
      t.deepEqual(noExports, {}, 'no exports');␊
      t.deepEqual(externalNamed, { foo: 'foo', default: { foo: 'foo' } }, 'external named');␊
      t.deepEqual(externalMixed, { foo: 'foo', default: 'bar' }, 'external mixed');␊
      t.deepEqual(externalDefault, { default: 'bar' }, 'external default');␊
      ␊
      module.exports = main;␊
      `,
    }

## import-esm-with-interop

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      function getAugmentedNamespace(n) {␊
        var f = n.default;␊
      	if (typeof f == "function") {␊
      		var a = function a () {␊
      			if (this instanceof a) {␊
      				var args = [null];␊
      				args.push.apply(args, arguments);␊
      				var Ctor = Function.bind.apply(f, args);␊
      				return new Ctor();␊
      			}␊
      			return f.apply(this, arguments);␊
      		};␊
      		a.prototype = f.prototype;␊
        } else a = {};␊
        Object.defineProperty(a, '__esModule', {value: true});␊
      	Object.keys(n).forEach(function (k) {␊
      		var d = Object.getOwnPropertyDescriptor(n, k);␊
      		Object.defineProperty(a, k, d.get ? d : {␊
      			enumerable: true,␊
      			get: function () {␊
      				return n[k];␊
      			}␊
      		});␊
      	});␊
      	return a;␊
      }␊
      ␊
      var main = {};␊
      ␊
      /* eslint-disable import/no-mutable-exports */␊
      let foo = 'foo';␊
      let bar = 'bar';␊
      ␊
      function update(newFoo, newBar) {␊
        foo = newFoo;␊
        bar = newBar;␊
      }␊
      ␊
      var lib$1 = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	get default () { return foo; },␊
      	get bar () { return bar; },␊
      	update: update␊
      });␊
      ␊
      var require$$0 = /*@__PURE__*/getAugmentedNamespace(lib$1);␊
      ␊
      /* eslint-disable */␊
      ␊
      var lib = require$$0;␊
      ␊
      function _interopDefault$1(e) {␊
        return e && e.__esModule ? e : { default: e };␊
      }␊
      ␊
      var lib__default = /*#__PURE__*/_interopDefault$1(lib);␊
      t.is(lib__default['default'], 'foo');␊
      t.is(lib.bar, 'bar');␊
      ␊
      lib.update('newFoo', 'newBar');␊
      t.is(lib__default['default'], 'newFoo');␊
      t.is(lib.bar, 'newBar');␊
      ␊
      module.exports = main;␊
      `,
    }

## indent-multiline-strings

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      function getDefaultExportFromCjs (x) {␊
      	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊
      }␊
      ␊
      var main$1 = {exports: {}};␊
      ␊
      var dep = {};␊
      ␊
      var hasRequiredDep;␊
      ␊
      function requireDep () {␊
      	if (hasRequiredDep) return dep;␊
      	hasRequiredDep = 1;␊
      	requireMain();␊
      ␊
      	dep.value = \`␊
      dep␊
      multi␊
      line␊
      string␊
      \`;␊
      	return dep;␊
      }␊
      ␊
      var hasRequiredMain;␊
      ␊
      function requireMain () {␊
      	if (hasRequiredMain) return main$1.exports;␊
      	hasRequiredMain = 1;␊
      	(function (module) {␊
      		requireDep();␊
      ␊
      		module.exports = \`␊
      main␊
      multi␊
      line␊
      string␊
      \`;␊
      } (main$1));␊
      	return main$1.exports;␊
      }␊
      ␊
      var mainExports = requireMain();␊
      var main = /*@__PURE__*/getDefaultExportFromCjs(mainExports);␊
      ␊
      module.exports = main;␊
      `,
    }

## index

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var foo$1 = 42;␊
      ␊
      const foo = foo$1;␊
      ␊
      t.is(foo, 42);␊
      ␊
      module.exports = main;␊
      `,
    }

## inline

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var multiply;␊
      var hasRequiredMultiply;␊
      ␊
      function requireMultiply () {␊
      	if (hasRequiredMultiply) return multiply;␊
      	hasRequiredMultiply = 1;␊
      	multiply = function (a, b) {␊
      	  return a * b;␊
      	};␊
      	return multiply;␊
      }␊
      ␊
      var foo;␊
      var hasRequiredFoo;␊
      ␊
      function requireFoo () {␊
      	if (hasRequiredFoo) return foo;␊
      	hasRequiredFoo = 1;␊
      	foo = 1;␊
      	return foo;␊
      }␊
      ␊
      /* eslint-disable global-require */␊
      ␊
      var main = function () {␊
        return requireMultiply()(2, requireFoo());␊
      };␊
      ␊
      module.exports = main;␊
      `,
    }

## interop-esmodule-wrapped

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      function getDefaultExportFromCjs (x) {␊
      	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊
      }␊
      ␊
      var other = {exports: {}};␊
      ␊
      (function (module, exports) {␊
      	exports.default = 42;␊
      ␊
      	addCompiledMarker(module.exports);␊
      ␊
      	function addCompiledMarker(exports) {␊
      	  // eslint-disable-next-line no-param-reassign␊
      	  exports.__esModule = true;␊
      	}␊
      } (other, other.exports));␊
      ␊
      var foo = /*@__PURE__*/getDefaultExportFromCjs(other.exports);␊
      ␊
      t.deepEqual(foo, 42);␊
      `,
    }

## interop-no-esmodule-wrapped

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var other = {exports: {}};␊
      ␊
      (function (module) {␊
      	addDefaultExport(module.exports);␊
      ␊
      	function addDefaultExport(exports) {␊
      	  // eslint-disable-next-line no-param-reassign␊
      	  exports.default = 42;␊
      	}␊
      } (other));␊
      ␊
      var foo = other.exports;␊
      ␊
      t.deepEqual(foo, { default: 42 });␊
      `,
    }

## interop-without-default-unwrapped

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var other = {};␊
      ␊
      other.foo = '__esModule';␊
      ␊
      t.deepEqual(other, { foo: '__esModule' });␊
      `,
    }

## late-entry-dependency

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var other = require('./other2.js');␊
      ␊
      var main = {};␊
      ␊
      const foo = other.other;␊
      ␊
      t.is(foo, 'foo');␊
      ␊
      module.exports = main;␊
      `,
      'other.js': `'use strict';␊
      ␊
      var other = require('./other2.js');␊
      ␊
      ␊
      ␊
      module.exports = other.other;␊
      `,
      'other2.js': `'use strict';␊
      ␊
      var other = 'foo';␊
      ␊
      exports.other = other;␊
      `,
    }

## leading-comment

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      /*␊
       * This comment could be really important and should not be removed␊
       */␊
      ␊
      var main = 'bar';␊
      ␊
      module.exports = main;␊
      `,
    }

## leading-comment-imports

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var require$$0 = require('external-cjs-exports');␊
      ␊
      function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }␊
      ␊
      var require$$0__default = /*#__PURE__*/_interopDefaultCompat(require$$0);␊
      ␊
      var main = {};␊
      ␊
      /*␊
       * This comment could be really important and should not be removed␊
       */␊
      ␊
      const externalExports = require$$0__default.default;␊
      ␊
      t.is(externalExports.foo, 'foo');␊
      ␊
      module.exports = main;␊
      `,
    }

## leading-comment-wrapped

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      /*␊
       * This comment could be really important and should not be removed␊
       */␊
      ␊
      (function (exports) {␊
      ␊
      	modifyExports(exports);␊
      ␊
      	function modifyExports(exported) {␊
      	  // eslint-disable-next-line no-param-reassign␊
      	  exported.foo = 'bar';␊
      	}␊
      } (main));␊
      ␊
      module.exports = main;␊
      `,
    }

## load-cycle-parallel

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      module.exports = main;␊
      `,
    }

## module-meta-properties

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var dep$1 = {};␊
      ␊
      dep$1.foo = 'foo';␊
      ␊
      const dep = dep$1;␊
      ␊
      t.is(dep.foo, 'foo');␊
      ␊
      module.exports = main;␊
      `,
    }

## module-side-effects-late-entry

> Snapshot 1

    {
      'generated-foo.js': `'use strict';␊
      ␊
      var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};␊
      ␊
      // This side-effect will only be respected if this is an entry point␊
      commonjsGlobal.foo = 'foo';␊
      `,
      'generated-foo2.js': `'use strict';␊
      ␊
      require('./generated-foo.js');␊
      ␊
      var foo = {};␊
      ␊
      module.exports = foo;␊
      `,
      'main.js': `'use strict';␊
      ␊
      require('./generated-foo.js');␊
      ␊
      var main = 'main';␊
      ␊
      module.exports = main;␊
      `,
    }

## module_require

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var foo$1 = 21;␊
      ␊
      const foo = foo$1;␊
      ␊
      var main = foo * 2;␊
      ␊
      module.exports = main;␊
      `,
    }

## multiple-define-compiled-esm

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var foo = {};␊
      ␊
      Object.defineProperty(foo, '__esModule', { value: true });␊
      ␊
      Object.defineProperty(foo, '__esModule', { value: true });␊
      ␊
      var _default = foo.default = 'foo';␊
      ␊
      t.deepEqual(_default, 'foo');␊
      `,
    }

## named-exports

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var a = 1;␊
      var b = 2;␊
      ␊
      t.is(a, 1);␊
      t.is(b, 2);␊
      `,
    }

## named-exports-conditional

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var x = {exports: {}};␊
      ␊
      if (typeof someUnknownGlobal !== 'undefined') {␊
        x.exports = { named: 'bar' };␊
      } else {␊
        x.exports = { named: 'foo' };␊
      }␊
      ␊
      t.is(x.exports.named, 'foo');␊
      `,
    }

## named-exports-dynamic

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var x = {exports: {}};␊
      ␊
      (function (module) {␊
      	window.addExport = (key, value) => {␊
      	  module.exports[key] = value;␊
      	};␊
      } (x));␊
      ␊
      t.is(x.exports.named, undefined);␊
      ␊
      window.addExport('named', 'foo');␊
      ␊
      t.is(x.exports.named, 'foo');␊
      `,
    }

## named-exports-object-define

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var x = {exports: {}};␊
      ␊
      (function (module) {␊
      	Object.defineProperty(module.exports, 'named', {␊
      	  enumerable: true,␊
      	  get: function get() {␊
      	    return 'foo';␊
      	  }␊
      	});␊
      } (x));␊
      ␊
      t.is(x.exports.named, 'foo');␊
      `,
    }

## named-exports-reexport-default

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var reexport = {exports: {}};␊
      ␊
      var _export = {};␊
      ␊
      _export.named = 2;␊
      ␊
      (function (module) {␊
      	module.exports = _export;␊
      } (reexport));␊
      ␊
      t.is(reexport.exports.named, 2);␊
      `,
    }

## named-exports-reexport-named

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var _export = {};␊
      ␊
      _export.named = 2;␊
      ␊
      const myModule = _export;␊
      ␊
      var named = myModule.named;␊
      ␊
      t.is(named, 2);␊
      `,
    }

## named-exports-unexported

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var x = {};␊
      ␊
      x.named = 2;␊
      ␊
      t.is(x.nonExisting, undefined);␊
      `,
    }

## nested-define-compiled-esm-unused

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      function getDefaultExportFromCjs (x) {␊
      	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊
      }␊
      ␊
      var foo$1 = {};␊
      ␊
      (function (exports) {␊
      ␊
      	exports.default = 'foo';␊
      } (foo$1));␊
      ␊
      var foo = /*@__PURE__*/getDefaultExportFromCjs(foo$1);␊
      ␊
      t.deepEqual(foo, { default: 'foo' });␊
      `,
    }

## nested-define-compiled-esm-used

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      function getDefaultExportFromCjs (x) {␊
      	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊
      }␊
      ␊
      var foo$1 = {};␊
      ␊
      (function (exports) {␊
      	Object.defineProperty(exports, '__esModule', { value: true });␊
      ␊
      	{␊
      	  Object.defineProperty(exports, '__esModule', { value: true });␊
      	}␊
      ␊
      	exports.default = 'foo';␊
      } (foo$1));␊
      ␊
      var foo = /*@__PURE__*/getDefaultExportFromCjs(foo$1);␊
      ␊
      t.deepEqual(foo, 'foo');␊
      `,
    }

## nested-named-export-assignments

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var dep1 = {};␊
      ␊
      dep1.foo = 'first';␊
      ␊
      reassignSomeExports$1();␊
      reassignSomeMoreExports$1();␊
      ␊
      function reassignSomeExports$1() {␊
        dep1.foo = 'second';␊
        dep1.bar = 'first';␊
      }␊
      ␊
      function reassignSomeMoreExports$1() {␊
        dep1.bar = 'second';␊
      }␊
      ␊
      var bar;␊
      var foo = 'first';␊
      ␊
      reassignSomeExports();␊
      reassignSomeMoreExports();␊
      ␊
      function reassignSomeExports() {␊
        foo = 'second';␊
        bar = 'first';␊
      }␊
      ␊
      function reassignSomeMoreExports() {␊
        bar = 'second';␊
      }␊
      ␊
      t.is(dep1.foo, 'second');␊
      t.is(dep1.bar, 'second');␊
      t.is(foo, 'second');␊
      t.is(bar, 'second');␊
      `,
    }

## no-exports-entry

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var dep$1 = 42;␊
      ␊
      const dep = dep$1;␊
      ␊
      t.is(dep, 42);␊
      ␊
      module.exports = main;␊
      `,
    }

## no-side-effects

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var dep$1 = {};␊
      ␊
      dep$1.foo = 'bar';␊
      ␊
      const dep = dep$1;␊
      ␊
      t.is(dep.foo, 'bar');␊
      ␊
      module.exports = main;␊
      `,
    }

## only-nested-module-exports-reassignment

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var dep1$1 = {exports: {}};␊
      ␊
      if (reassignFirstModuleExports) {␊
        dep1$1.exports = 'reassigned';␊
      }␊
      ␊
      var dep2$1 = {exports: {}};␊
      ␊
      if (reassignSecondModuleExports) {␊
        dep2$1.exports = 'reassigned';␊
      }␊
      ␊
      const dep1 = dep1$1.exports;␊
      const dep2 = dep2$1.exports;␊
      ␊
      t.is(dep1, 'reassigned');␊
      t.deepEqual(dep2, {});␊
      ␊
      module.exports = main;␊
      `,
    }

## ordering

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var shared$2 = {␊
        fooLoaded: false␊
      };␊
      ␊
      const shared$1 = shared$2;␊
      ␊
      // Mutate the shared module␊
      shared$1.fooLoaded = true;␊
      ␊
      const shared = shared$2;␊
      ␊
      var bar = shared.fooLoaded;␊
      ␊
      const fooLoaded = bar;␊
      ␊
      t.truthy(fooLoaded);␊
      ␊
      module.exports = main;␊
      `,
    }

## pass-require-to-node-resolve

> Snapshot 1

    {
      'bar-imported-f14679e4.js': `'use strict';␊
      ␊
      var barImported = 'imported';␊
      ␊
      exports.default = barImported;␊
      `,
      'main.js': `'use strict';␊
      ␊
      var foo = 'imported';␊
      ␊
      var requiring = {};␊
      ␊
      var fooRequired = 'required';␊
      ␊
      requiring.foo = fooRequired;␊
      ␊
      requiring.barPromise = Promise.resolve().then(function () { return require('./bar-imported-f14679e4.js'); });␊
      ␊
      t.is(foo, 'imported');␊
      t.is(requiring.foo, 'required');␊
      ␊
      var main = Promise.all([Promise.resolve().then(function () { return require('./bar-imported-f14679e4.js'); }), requiring.barPromise]);␊
      ␊
      module.exports = main;␊
      `,
    }

## plugin-isentry

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      global.entryDetected = true;␊
      ␊
      var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};␊
      ␊
      function getDefaultExportFromCjs (x) {␊
      	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊
      }␊
      ␊
      var main$1 = {exports: {}};␊
      ␊
      t.is(commonjsGlobal.entryDetected, true);␊
      var dep = 'dep';␊
      ␊
      (function (module) {␊
      	t.is(commonjsGlobal.entryDetected, true);␊
      	module.exports = dep;␊
      } (main$1));␊
      ␊
      var main = /*@__PURE__*/getDefaultExportFromCjs(main$1.exports);␊
      ␊
      module.exports = main;␊
      `,
      'other.js': `'use strict';␊
      ␊
      const other = true;␊
      ␊
      exports.other = other;␊
      `,
    }

## preserve-modules

> Snapshot 1

    {
      '_virtual/_commonjsHelpers.js': `'use strict';␊
      ␊
      var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};␊
      ␊
      exports.commonjsGlobal = commonjsGlobal;␊
      `,
      'main.js': `'use strict';␊
      ␊
      var main = require('./main2.js');␊
      ␊
      var mainExports = main.__require();␊
      ␊
      module.exports = mainExports;␊
      `,
      'main2.js': `'use strict';␊
      ␊
      var _commonjsHelpers = require('./_virtual/_commonjsHelpers.js');␊
      ␊
      var main;␊
      var hasRequiredMain;␊
      ␊
      function requireMain () {␊
      	if (hasRequiredMain) return main;␊
      	hasRequiredMain = 1;␊
      	_commonjsHelpers.commonjsGlobal.main = 'main';␊
      	console.log('main');␊
      ␊
      	main = 'main';␊
      	return main;␊
      }␊
      ␊
      exports.__require = requireMain;␊
      `,
    }

## react-apollo

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var commonjsBar = {};␊
      ␊
      /* eslint-disable no-underscore-dangle */␊
      ␊
      function Bar$1() {␊
        this.x = 42;␊
      }␊
      ␊
      commonjsBar.__esModule = true;␊
      commonjsBar.default = Bar$1;␊
      ␊
      /* eslint-disable no-underscore-dangle */␊
      ␊
      const Bar = commonjsBar;␊
      var Bar_1 = Bar.default;␊
      ␊
      t.is(new Bar_1().x, 42);␊
      `,
    }

## reassign-exports

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var identifier$1 = {};␊
      ␊
      (function (exports) {␊
      	exports = 'foo';␊
      	t.is(exports, 'foo');␊
      } (identifier$1));␊
      ␊
      var property$1 = {};␊
      ␊
      (function (exports) {␊
      	({ foo: exports } = { foo: 'foo' });␊
      	t.is(exports, 'foo');␊
      } (property$1));␊
      ␊
      var arrayPattern$1 = {};␊
      ␊
      (function (exports) {␊
      	[exports] = ['foo'];␊
      	t.is(exports, 'foo');␊
      } (arrayPattern$1));␊
      ␊
      var assignmentPattern$1 = {};␊
      ␊
      (function (exports) {␊
      	({ exports = 'foo' } = {});␊
      	t.is(exports, 'foo');␊
      } (assignmentPattern$1));␊
      ␊
      const identifier = identifier$1;␊
      const property = property$1;␊
      const arrayPattern = arrayPattern$1;␊
      const assignmentPattern = assignmentPattern$1;␊
      ␊
      t.deepEqual(identifier, {});␊
      t.deepEqual(property, {});␊
      t.deepEqual(arrayPattern, {});␊
      t.deepEqual(assignmentPattern, {});␊
      ␊
      module.exports = main;␊
      `,
    }

## reassign-module

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var identifier$1 = {exports: {}};␊
      ␊
      (function (module) {␊
      	// eslint-disable-next-line no-global-assign␊
      	module = 'foo';␊
      	t.is(module, 'foo');␊
      } (identifier$1));␊
      ␊
      var property$1 = {exports: {}};␊
      ␊
      (function (module) {␊
      	// eslint-disable-next-line no-global-assign␊
      	({ foo: module } = { foo: 'foo' });␊
      	t.is(module, 'foo');␊
      } (property$1));␊
      ␊
      var arrayPattern$1 = {exports: {}};␊
      ␊
      (function (module) {␊
      	// eslint-disable-next-line no-global-assign␊
      	[module] = ['foo'];␊
      	t.is(module, 'foo');␊
      } (arrayPattern$1));␊
      ␊
      var assignmentPattern$1 = {exports: {}};␊
      ␊
      (function (module) {␊
      	// eslint-disable-next-line no-global-assign␊
      	({ module = 'foo' } = {});␊
      	t.is(module, 'foo');␊
      } (assignmentPattern$1));␊
      ␊
      const identifier = identifier$1.exports;␊
      const property = property$1.exports;␊
      const arrayPattern = arrayPattern$1.exports;␊
      const assignmentPattern = assignmentPattern$1.exports;␊
      ␊
      t.deepEqual(identifier, {}, 'identifier');␊
      t.deepEqual(property, {}, 'property');␊
      t.deepEqual(arrayPattern, {}, 'arrayPattern');␊
      t.deepEqual(assignmentPattern, {}, 'assignmentPattern');␊
      ␊
      module.exports = main;␊
      `,
    }

## reassigned-module-exports-object

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var dep$1 = {exports: {}};␊
      ␊
      const exported = {};␊
      dep$1.exports = exported;␊
      dep$1.exports.foo = 'foo';␊
      ␊
      t.deepEqual(exported, { foo: 'foo' });␊
      ␊
      const dep = dep$1.exports;␊
      ␊
      t.deepEqual(dep, { foo: 'foo' });␊
      ␊
      module.exports = main;␊
      `,
    }

## reassignment

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      function foo$1() {}␊
      foo$1.something = false;␊
      ␊
      var foo_1 = foo$1;␊
      ␊
      let foo = foo_1;␊
      ␊
      if (!foo.something) {␊
        foo = function somethingElse() {};␊
        foo.something = true;␊
      }␊
      ␊
      t.truthy(foo.something);␊
      ␊
      module.exports = main;␊
      `,
    }

## relative-external

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var require$$0 = require('../fixtures/function/relative-external/external.js');␊
      ␊
      function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }␊
      ␊
      var require$$0__default = /*#__PURE__*/_interopDefaultCompat(require$$0);␊
      ␊
      var main = {};␊
      ␊
      const { foo } = require$$0__default.default;␊
      ␊
      t.is(foo, 'foo');␊
      ␊
      module.exports = main;␊
      `,
    }

## require-esm-with-named-namespace

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      const foo = 'foo';␊
      var other = 'bar';␊
      ␊
      var other$1 = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	foo: foo,␊
      	default: other␊
      });␊
      ␊
      var dep$1 = 'default';␊
      ␊
      var dep$2 = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	default: dep$1,␊
      	ns: other$1␊
      });␊
      ␊
      const dep = dep$2;␊
      ␊
      t.deepEqual(dep, { default: 'default', ns: { default: 'bar', foo: 'foo' } });␊
      ␊
      module.exports = main;␊
      `,
    }

## require-esm-with-namespace-and-default

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      const foo = 'foo';␊
      ␊
      var dep$1 = 'default';␊
      ␊
      var dep$2 = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	default: dep$1,␊
      	foo: foo␊
      });␊
      ␊
      const dep = dep$2;␊
      ␊
      t.deepEqual(dep, { default: 'default', foo: 'foo' });␊
      ␊
      module.exports = main;␊
      `,
    }

## require-esm-with-namespace-named-default

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      const foo = 'foo';␊
      var other = 'bar';␊
      ␊
      var other$1 = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	foo: foo,␊
      	default: other␊
      });␊
      ␊
      const dep = other$1;␊
      ␊
      t.deepEqual(dep, { default: 'bar', foo: 'foo' });␊
      ␊
      module.exports = main;␊
      `,
    }

## require-esm-with-namespace-prefer-default

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      const foo = 'foo';␊
      ␊
      var dep$1 = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	foo: foo␊
      });␊
      ␊
      const dep = dep$1;␊
      ␊
      t.deepEqual(dep, { foo: 'foo' });␊
      ␊
      module.exports = main;␊
      `,
    }

## require-snapshotting

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var dep$1 = {␊
        foo: 'foo',␊
        update: () => (dep$1 = { foo: 'bar' })␊
      };␊
      ␊
      const dep = dep$1;␊
      ␊
      t.is(dep.foo, 'foo');␊
      ␊
      dep.update();␊
      ␊
      t.is(dep.foo, 'foo');␊
      t.is(dep$1.foo, 'bar');␊
      ␊
      module.exports = main;␊
      `,
    }

## resolve-is-cjs-extension

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      function getAugmentedNamespace(n) {␊
        var f = n.default;␊
      	if (typeof f == "function") {␊
      		var a = function a () {␊
      			if (this instanceof a) {␊
      				var args = [null];␊
      				args.push.apply(args, arguments);␊
      				var Ctor = Function.bind.apply(f, args);␊
      				return new Ctor();␊
      			}␊
      			return f.apply(this, arguments);␊
      		};␊
      		a.prototype = f.prototype;␊
        } else a = {};␊
        Object.defineProperty(a, '__esModule', {value: true});␊
      	Object.keys(n).forEach(function (k) {␊
      		var d = Object.getOwnPropertyDescriptor(n, k);␊
      		Object.defineProperty(a, k, d.get ? d : {␊
      			enumerable: true,␊
      			get: function () {␊
      				return n[k];␊
      			}␊
      		});␊
      	});␊
      	return a;␊
      }␊
      ␊
      var main = {};␊
      ␊
      const result = 'second';␊
      ␊
      var second = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	result: result␊
      });␊
      ␊
      var require$$0 = /*@__PURE__*/getAugmentedNamespace(second);␊
      ␊
      t.is(require$$0.result, 'second');␊
      ␊
      module.exports = main;␊
      `,
    }

## resolve-is-cjs-filtered

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      function getAugmentedNamespace(n) {␊
        var f = n.default;␊
      	if (typeof f == "function") {␊
      		var a = function a () {␊
      			if (this instanceof a) {␊
      				var args = [null];␊
      				args.push.apply(args, arguments);␊
      				var Ctor = Function.bind.apply(f, args);␊
      				return new Ctor();␊
      			}␊
      			return f.apply(this, arguments);␊
      		};␊
      		a.prototype = f.prototype;␊
        } else a = {};␊
        Object.defineProperty(a, '__esModule', {value: true});␊
      	Object.keys(n).forEach(function (k) {␊
      		var d = Object.getOwnPropertyDescriptor(n, k);␊
      		Object.defineProperty(a, k, d.get ? d : {␊
      			enumerable: true,␊
      			get: function () {␊
      				return n[k];␊
      			}␊
      		});␊
      	});␊
      	return a;␊
      }␊
      ␊
      var main = {};␊
      ␊
      const result = 'second';␊
      ␊
      var second = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	result: result␊
      });␊
      ␊
      var require$$0 = /*@__PURE__*/getAugmentedNamespace(second);␊
      ␊
      t.is(require$$0.result, 'second');␊
      ␊
      module.exports = main;␊
      `,
    }

## shadowed-import

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var foo$1 = 'foo';␊
      ␊
      const foo = foo$1;␊
      ␊
      t.is(foo, 'foo');␊
      ␊
      {␊
        // eslint-disable-next-line no-shadow␊
        const foo = 'wrong';␊
        // eslint-disable-next-line global-require␊
        const bar = foo$1;␊
        t.is(foo, 'wrong');␊
        t.is(bar, 'foo');␊
      }␊
      ␊
      module.exports = main;␊
      `,
    }

## shadowing

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      function foo(require) {␊
        require('not-an-actual-require-statement');␊
      }␊
      ␊
      let result;␊
      ␊
      foo((msg) => {␊
        result = msg;␊
      });␊
      ␊
      t.is(result, 'not-an-actual-require-statement');␊
      `,
    }

## shorthand-require

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      function commonjsRequire(path) {␊
      	throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');␊
      }␊
      ␊
      const HOST = {␊
        require: commonjsRequire␊
      };␊
      ␊
      var main = {␊
        HOST␊
      };␊
      ␊
      module.exports = main;␊
      `,
    }

## skips-dead-branches

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      Object.defineProperty(exports, '__esModule', { value: true });␊
      ␊
      var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};␊
      ␊
      var main = {};␊
      ␊
      commonjsGlobal.b = 2;␊
      var b = 'b';␊
      ␊
      /* eslint-disable */␊
      ␊
      var conditionalTrue = main.conditionalTrue = b ;␊
      var conditionalFalse = main.conditionalFalse = b;␊
      var logicalAnd1 = main.logicalAnd1 = b;␊
      var logicalAnd2 = main.logicalAnd2 = false ;␊
      var logicalOr1 = main.logicalOr1 = true ;␊
      var logicalOr2 = main.logicalOr2 = b;␊
      ␊
      exports.conditionalFalse = conditionalFalse;␊
      exports.conditionalTrue = conditionalTrue;␊
      exports.default = main;␊
      exports.logicalAnd1 = logicalAnd1;␊
      exports.logicalAnd2 = logicalAnd2;␊
      exports.logicalOr1 = logicalOr1;␊
      exports.logicalOr2 = logicalOr2;␊
      `,
    }

## strict-requires-auto

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var aImportsB = {};␊
      ␊
      var bImportsC = {};␊
      ␊
      var cImportsA = {};␊
      ␊
      var hasRequiredCImportsA;␊
      ␊
      function requireCImportsA () {␊
      	if (hasRequiredCImportsA) return cImportsA;␊
      	hasRequiredCImportsA = 1;␊
      	cImportsA.a = requireAImportsB().a;␊
      	return cImportsA;␊
      }␊
      ␊
      var hasRequiredBImportsC;␊
      ␊
      function requireBImportsC () {␊
      	if (hasRequiredBImportsC) return bImportsC;␊
      	hasRequiredBImportsC = 1;␊
      	bImportsC.a = requireCImportsA().a;␊
      	return bImportsC;␊
      }␊
      ␊
      var hasRequiredAImportsB;␊
      ␊
      function requireAImportsB () {␊
      	if (hasRequiredAImportsB) return aImportsB;␊
      	hasRequiredAImportsB = 1;␊
      	aImportsB.a = 'a';␊
      	t.is(requireBImportsC().a, 'a');␊
      	return aImportsB;␊
      }␊
      ␊
      requireAImportsB();␊
      ␊
      module.exports = main;␊
      `,
    }

## strict-requires-circular

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var other = {};␊
      ␊
      var hasRequiredOther;␊
      ␊
      function requireOther () {␊
      	if (hasRequiredOther) return other;␊
      	hasRequiredOther = 1;␊
      	other.foo = requireMain().foo;␊
      	return other;␊
      }␊
      ␊
      var hasRequiredMain;␊
      ␊
      function requireMain () {␊
      	if (hasRequiredMain) return main;␊
      	hasRequiredMain = 1;␊
      	main.foo = 'foo';␊
      	t.is(requireOther().foo, 'foo');␊
      	return main;␊
      }␊
      ␊
      var mainExports = requireMain();␊
      ␊
      module.exports = mainExports;␊
      `,
    }

## strict-requires-cycle-detection

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var aImportsB = {};␊
      ␊
      var bImportsC = {};␊
      ␊
      var cImportsA = {};␊
      ␊
      var hasRequiredCImportsA;␊
      ␊
      function requireCImportsA () {␊
      	if (hasRequiredCImportsA) return cImportsA;␊
      	hasRequiredCImportsA = 1;␊
      	cImportsA.a = requireAImportsB().a;␊
      	return cImportsA;␊
      }␊
      ␊
      var hasRequiredBImportsC;␊
      ␊
      function requireBImportsC () {␊
      	if (hasRequiredBImportsC) return bImportsC;␊
      	hasRequiredBImportsC = 1;␊
      	bImportsC.a = requireCImportsA().a;␊
      	return bImportsC;␊
      }␊
      ␊
      var hasRequiredAImportsB;␊
      ␊
      function requireAImportsB () {␊
      	if (hasRequiredAImportsB) return aImportsB;␊
      	hasRequiredAImportsB = 1;␊
      	aImportsB.a = 'a';␊
      	t.is(requireBImportsC().a, 'a');␊
      	return aImportsB;␊
      }␊
      ␊
      requireAImportsB();␊
      ␊
      module.exports = main;␊
      `,
    }

## strict-requires-debug

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var aImportsB = {};␊
      ␊
      var bImportsC = {};␊
      ␊
      var cImportsA = {};␊
      ␊
      var hasRequiredCImportsA;␊
      ␊
      function requireCImportsA () {␊
      	if (hasRequiredCImportsA) return cImportsA;␊
      	hasRequiredCImportsA = 1;␊
      	cImportsA.a = requireAImportsB().a;␊
      	return cImportsA;␊
      }␊
      ␊
      var hasRequiredBImportsC;␊
      ␊
      function requireBImportsC () {␊
      	if (hasRequiredBImportsC) return bImportsC;␊
      	hasRequiredBImportsC = 1;␊
      	bImportsC.a = requireCImportsA().a;␊
      	return bImportsC;␊
      }␊
      ␊
      var hasRequiredAImportsB;␊
      ␊
      function requireAImportsB () {␊
      	if (hasRequiredAImportsB) return aImportsB;␊
      	hasRequiredAImportsB = 1;␊
      	aImportsB.a = 'a';␊
      	t.is(requireBImportsC().a, 'a');␊
      	return aImportsB;␊
      }␊
      ␊
      requireAImportsB();␊
      ␊
      module.exports = main;␊
      `,
    }

## strict-requires-debug-none

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = 'bar';␊
      ␊
      module.exports = main;␊
      `,
    }

## strict-requires-detect-conditionals

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};␊
      ␊
      var main = {};␊
      ␊
      var throws = {};␊
      ␊
      var hasRequiredThrows;␊
      ␊
      function requireThrows () {␊
      	if (hasRequiredThrows) return throws;␊
      	hasRequiredThrows = 1;␊
      	throw new Error('This should never be executed or imported');␊
      }␊
      ␊
      var hoisted = 'this should be top-level';␊
      ␊
      /* eslint-disable global-require */␊
      ␊
      commonjsGlobal.false = false;␊
      commonjsGlobal.true = true;␊
      ␊
      if (commonjsGlobal.false) {␊
        requireThrows();␊
      }␊
      ␊
      if (commonjsGlobal.true) ; else {␊
        requireThrows();␊
      }␊
      ␊
      commonjsGlobal.false ? requireThrows() : null;␊
      commonjsGlobal.true ? null : requireThrows();␊
      ␊
      commonjsGlobal.false && requireThrows();␊
      commonjsGlobal.true || requireThrows();␊
      ␊
      function requireFunctionDeclaration() {␊
        requireThrows();␊
      }␊
      ␊
      const requireFunctionExpression = function () {␊
        requireThrows();␊
      };␊
      ␊
      const requireArrowFunction = () => requireThrows();␊
      ␊
      if (commonjsGlobal.false) {␊
        requireFunctionDeclaration();␊
        requireFunctionExpression();␊
        requireArrowFunction();␊
      }␊
      ␊
      // These should not cause wrapping␊
      t.is(␊
        (function () {␊
          return hoisted;␊
        })(),␊
        'this should be top-level'␊
      );␊
      t.is((() => hoisted)(), 'this should be top-level');␊
      ␊
      module.exports = main;␊
      `,
    }

## strict-requires-entry-node-resolve

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var hasRequiredMain;␊
      ␊
      function requireMain () {␊
      	if (hasRequiredMain) return main;␊
      	hasRequiredMain = 1;␊
      	main.foo = 'foo';␊
      	return main;␊
      }␊
      ␊
      var mainExports = requireMain();␊
      ␊
      module.exports = mainExports;␊
      `,
    }

## strict-requires-exportmode-exports

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};␊
      ␊
      var main = {};␊
      ␊
      var assignExports = {};␊
      ␊
      var hasRequiredAssignExports;␊
      ␊
      function requireAssignExports () {␊
      	if (hasRequiredAssignExports) return assignExports;␊
      	hasRequiredAssignExports = 1;␊
      	assignExports.foo = 'foo';␊
      	assignExports.bar = 'bar';␊
      	commonjsGlobal.hasAssignExportsRun = true;␊
      	return assignExports;␊
      }␊
      ␊
      var compiledEsm = {};␊
      ␊
      var hasRequiredCompiledEsm;␊
      ␊
      function requireCompiledEsm () {␊
      	if (hasRequiredCompiledEsm) return compiledEsm;␊
      	hasRequiredCompiledEsm = 1;␊
      	compiledEsm.__esModule = true;␊
      	Object.defineProperty(compiledEsm, '__esModule', { value: true });␊
      	compiledEsm.foo = 'foo';␊
      	commonjsGlobal.hasCompiledEsmRun = true;␊
      	return compiledEsm;␊
      }␊
      ␊
      var wrappedExports = {};␊
      ␊
      var hasRequiredWrappedExports;␊
      ␊
      function requireWrappedExports () {␊
      	if (hasRequiredWrappedExports) return wrappedExports;␊
      	hasRequiredWrappedExports = 1;␊
      	(function (exports) {␊
      		exports.foo = 'foo';␊
      		exports = {};␊
      		exports.bar = 'bar';␊
      		commonjsGlobal.hasWrappedExportsRun = true;␊
      } (wrappedExports));␊
      	return wrappedExports;␊
      }␊
      ␊
      t.is(commonjsGlobal.hasAssignExportsRun, undefined, 'before require');␊
      t.deepEqual(requireAssignExports(), { foo: 'foo', bar: 'bar' });␊
      ␊
      t.is(commonjsGlobal.hasAssignExportsRun, true, 'after require');␊
      delete commonjsGlobal.hasAssignExportsRun;␊
      ␊
      t.is(commonjsGlobal.hasCompiledEsmRun, undefined, 'before require');␊
      t.deepEqual(requireCompiledEsm(), { foo: 'foo', __esModule: true });␊
      ␊
      t.is(commonjsGlobal.hasCompiledEsmRun, true, 'after require');␊
      delete commonjsGlobal.hasCompiledEsmRun;␊
      ␊
      t.is(commonjsGlobal.hasWrappedExportsRun, undefined, 'before require');␊
      t.deepEqual(requireWrappedExports(), { foo: 'foo' });␊
      ␊
      t.is(commonjsGlobal.hasWrappedExportsRun, true, 'after require');␊
      delete commonjsGlobal.hasWrappedExportsRun;␊
      ␊
      module.exports = main;␊
      `,
    }

## strict-requires-exportmode-module

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};␊
      ␊
      var main = {};␊
      ␊
      var assignModuleExports = {exports: {}};␊
      ␊
      var hasRequiredAssignModuleExports;␊
      ␊
      function requireAssignModuleExports () {␊
      	if (hasRequiredAssignModuleExports) return assignModuleExports.exports;␊
      	hasRequiredAssignModuleExports = 1;␊
      	if (Math.random() > 0.5) {␊
      	  assignModuleExports.exports = { foo: 'foo' };␊
      	} else {␊
      	  assignModuleExports.exports = { foo: 'foo' };␊
      	}␊
      	commonjsGlobal.hasAssignModuleExportsRun = true;␊
      	return assignModuleExports.exports;␊
      }␊
      ␊
      var assignModuleAndExports = {exports: {}};␊
      ␊
      var hasRequiredAssignModuleAndExports;␊
      ␊
      function requireAssignModuleAndExports () {␊
      	if (hasRequiredAssignModuleAndExports) return assignModuleAndExports.exports;␊
      	hasRequiredAssignModuleAndExports = 1;␊
      	assignModuleAndExports.exports = { foo: 'foo' };␊
      	assignModuleAndExports.exports.bar = 'bar';␊
      	commonjsGlobal.hasAssignModuleAndExportsRun = true;␊
      	return assignModuleAndExports.exports;␊
      }␊
      ␊
      var wrappedModuleExports = {exports: {}};␊
      ␊
      var hasRequiredWrappedModuleExports;␊
      ␊
      function requireWrappedModuleExports () {␊
      	if (hasRequiredWrappedModuleExports) return wrappedModuleExports.exports;␊
      	hasRequiredWrappedModuleExports = 1;␊
      	(function (module, exports) {␊
      		module.exports = { foo: 'foo' };␊
      		commonjsGlobal.hasWrappedModuleExportsRun = true;␊
      } (wrappedModuleExports));␊
      	return wrappedModuleExports.exports;␊
      }␊
      ␊
      t.is(commonjsGlobal.hasAssignModuleExportsRun, undefined, 'before require');␊
      t.is(requireAssignModuleExports().foo, 'foo');␊
      ␊
      t.is(commonjsGlobal.hasAssignModuleExportsRun, true, 'after require');␊
      delete commonjsGlobal.hasAssignModuleExportsRun;␊
      ␊
      t.is(commonjsGlobal.hasAssignModuleAndExportsRun, undefined, 'before require');␊
      t.is(requireAssignModuleAndExports().foo, 'foo');␊
      ␊
      t.is(commonjsGlobal.hasAssignModuleAndExportsRun, true, 'after require');␊
      delete commonjsGlobal.hasAssignModuleAndExportsRun;␊
      ␊
      t.is(commonjsGlobal.hasWrappedModuleExportsRun, undefined, 'before require');␊
      t.is(requireWrappedModuleExports().foo, 'foo');␊
      ␊
      t.is(commonjsGlobal.hasWrappedModuleExportsRun, true, 'after require');␊
      delete commonjsGlobal.hasWrappedModuleExportsRun;␊
      ␊
      module.exports = main;␊
      `,
    }

## strict-requires-exportmode-replace

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};␊
      ␊
      var main = {};␊
      ␊
      var replaceModuleExports;␊
      var hasRequiredReplaceModuleExports;␊
      ␊
      function requireReplaceModuleExports () {␊
      	if (hasRequiredReplaceModuleExports) return replaceModuleExports;␊
      	hasRequiredReplaceModuleExports = 1;␊
      	replaceModuleExports = { foo: 'foo' };␊
      	commonjsGlobal.hasReplaceModuleExportsRun = true;␊
      	return replaceModuleExports;␊
      }␊
      ␊
      t.is(commonjsGlobal.hasReplaceModuleExportsRun, undefined, 'before require');␊
      t.is(requireReplaceModuleExports().foo, 'foo');␊
      ␊
      t.is(commonjsGlobal.hasReplaceModuleExportsRun, true, 'after require');␊
      delete commonjsGlobal.hasReplaceModuleExportsRun;␊
      ␊
      module.exports = main;␊
      `,
    }

## strict-requires-external

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var require$$0 = require('external');␊
      ␊
      function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }␊
      ␊
      var require$$0__default = /*#__PURE__*/_interopDefaultCompat(require$$0);␊
      ␊
      var main = {};␊
      ␊
      var hasRequiredMain;␊
      ␊
      function requireMain () {␊
      	if (hasRequiredMain) return main;␊
      	hasRequiredMain = 1;␊
      	t.is(require$$0__default.default.message, 'it works');␊
      	return main;␊
      }␊
      ␊
      var mainExports = requireMain();␊
      ␊
      module.exports = mainExports;␊
      `,
    }

## strict-requires-file-without-module-type

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};␊
      ␊
      var main = {};␊
      ␊
      var error = {};␊
      ␊
      var hasRequiredError;␊
      ␊
      function requireError () {␊
      	if (hasRequiredError) return error;␊
      	hasRequiredError = 1;␊
      	throw new Error('FAIL');␊
      }␊
      ␊
      var hasRequiredMain;␊
      ␊
      function requireMain () {␊
      	if (hasRequiredMain) return main;␊
      	hasRequiredMain = 1;␊
      	commonjsGlobal.null = 0;␊
      ␊
      	// eslint-disable-next-line global-require␊
      	t.is(commonjsGlobal.null && requireError(), 0);␊
      	return main;␊
      }␊
      ␊
      var mainExports = requireMain();␊
      ␊
      module.exports = mainExports;␊
      `,
    }

## strict-requires-from-esm

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var strict = {};␊
      ␊
      var hasRequiredStrict;␊
      ␊
      function requireStrict () {␊
      	if (hasRequiredStrict) return strict;␊
      	hasRequiredStrict = 1;␊
      	strict.foo = 'foo';␊
      	return strict;␊
      }␊
      ␊
      var strictExports = requireStrict();␊
      ␊
      t.is(requireStrict().foo, 'foo');␊
      ␊
      t.is(strictExports.foo, 'foo');␊
      `,
    }

## strict-requires-mixed-esm

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var require$1 = {};␊
      ␊
      var hasRequiredRequire;␊
      ␊
      function requireRequire () {␊
      	if (hasRequiredRequire) return require$1;␊
      	hasRequiredRequire = 1;␊
      	require$1.foo = 'foo';␊
      	return require$1;␊
      }␊
      ␊
      var _import = {};␊
      ␊
      var hasRequired_import;␊
      ␊
      function require_import () {␊
      	if (hasRequired_import) return _import;␊
      	hasRequired_import = 1;␊
      	_import.foo = 'foo';␊
      	return _import;␊
      }␊
      ␊
      var _importExports = require_import();␊
      ␊
      const cjs = requireRequire();␊
      ␊
      t.is(_importExports.foo, 'foo');␊
      t.is(cjs.foo, 'foo');␊
      `,
    }

## strict-requires-multiple-entry

> Snapshot 1

    {
      'generated-main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var hasRequiredMain;␊
      ␊
      function requireMain () {␊
      	if (hasRequiredMain) return main;␊
      	hasRequiredMain = 1;␊
      	main.foo = 'foo';␊
      	return main;␊
      }␊
      ␊
      exports.requireMain = requireMain;␊
      `,
      'main.js': `'use strict';␊
      ␊
      var main = require('./generated-main.js');␊
      ␊
      var mainExports = main.requireMain();␊
      ␊
      module.exports = mainExports;␊
      `,
      'other.js': `'use strict';␊
      ␊
      var main = require('./generated-main.js');␊
      ␊
      var other = {};␊
      ␊
      t.is(main.requireMain().foo, 'foo');␊
      ␊
      module.exports = other;␊
      `,
    }

## this

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};␊
      ␊
      var main = {};␊
      ␊
      var foo$1 = function augmentThis() {␊
        this.x = 'x';␊
      };␊
      ␊
      commonjsGlobal.y = 'y';␊
      ␊
      const foo = foo$1;␊
      ␊
      const obj = {};␊
      foo.call(obj);␊
      ␊
      t.is(obj.x, 'x');␊
      t.is(commonjsGlobal.y, 'y');␊
      ␊
      module.exports = main;␊
      `,
    }

## top-level-and-nested-module-exports-reassignment

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var dep1$1 = 'original';␊
      if (reassignFirstModuleExports) {␊
        dep1$1 = 'reassigned';␊
      }␊
      ␊
      var dep2$1 = 'original';␊
      if (reassignSecondModuleExports) {␊
        dep2$1 = 'reassigned';␊
      }␊
      ␊
      if (reassignFirstModuleExports) {␊
        dep3$1 = 'reassigned';␊
      }␊
      var dep3$1 = 'final';␊
      ␊
      if (reassignSecondModuleExports) {␊
        dep4$1 = 'reassigned';␊
      }␊
      var dep4$1 = 'final';␊
      ␊
      const dep1 = dep1$1;␊
      const dep2 = dep2$1;␊
      const dep3 = dep3$1;␊
      const dep4 = dep4$1;␊
      ␊
      t.is(dep1, 'reassigned');␊
      t.is(dep2, 'original');␊
      t.is(dep3, 'final');␊
      t.is(dep4, 'final');␊
      ␊
      module.exports = main;␊
      `,
    }

## toplevel-return

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      /* eslint-disable */␊
      ␊
      var main = 'foo';␊
      ␊
      module.exports = main;␊
      `,
    }

## toplevel-return-complex

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var foo$1 = {exports: {}};␊
      ␊
      (function (module) {␊
      ␊
      	module.exports = 'bar';␊
      	{␊
      	  return;␊
      	}␊
      } (foo$1));␊
      ␊
      const foo = foo$1.exports;␊
      ␊
      var main = foo;␊
      ␊
      module.exports = main;␊
      `,
    }

## trailing-slash

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var foo$1 = 42;␊
      ␊
      const foo = foo$1;␊
      ␊
      t.is(foo, 42);␊
      ␊
      module.exports = main;␊
      `,
    }

## transform-mixed-modules

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      function getAugmentedNamespace(n) {␊
        var f = n.default;␊
      	if (typeof f == "function") {␊
      		var a = function a () {␊
      			if (this instanceof a) {␊
      				var args = [null];␊
      				args.push.apply(args, arguments);␊
      				var Ctor = Function.bind.apply(f, args);␊
      				return new Ctor();␊
      			}␊
      			return f.apply(this, arguments);␊
      		};␊
      		a.prototype = f.prototype;␊
        } else a = {};␊
        Object.defineProperty(a, '__esModule', {value: true});␊
      	Object.keys(n).forEach(function (k) {␊
      		var d = Object.getOwnPropertyDescriptor(n, k);␊
      		Object.defineProperty(a, k, d.get ? d : {␊
      			enumerable: true,␊
      			get: function () {␊
      				return n[k];␊
      			}␊
      		});␊
      	});␊
      	return a;␊
      }␊
      ␊
      var other$1 = 'other';␊
      ␊
      const other = other$1;␊
      ␊
      var dep$1 = /*#__PURE__*/Object.freeze({␊
      	__proto__: null,␊
      	other: other␊
      });␊
      ␊
      var require$$0 = /*@__PURE__*/getAugmentedNamespace(dep$1);␊
      ␊
      const dep = require$$0;␊
      ␊
      t.is(other, 'other');␊
      t.deepEqual(dep, { other: 'other' });␊
      `,
    }

## transpiled-esm-default

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var external = require('external-esm-default');␊
      ␊
      function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }␊
      ␊
      var external__default = /*#__PURE__*/_interopDefaultCompat(external);␊
      ␊
      var dep = {};␊
      ␊
      Object.defineProperty(dep, '__esModule', { value: true });␊
      var _default = dep.default = 'default';␊
      ␊
      t.is(_default, 'default');␊
      t.is(external__default.default, 'bar');␊
      `,
    }

## transpiled-esm-entry-default

> Snapshot 1

    {
      'entry-b0367e48.js': `'use strict';␊
      ␊
      function _mergeNamespaces(n, m) {␊
      	m.forEach(function (e) {␊
      		e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {␊
      			if (k !== 'default' && !(k in n)) {␊
      				var d = Object.getOwnPropertyDescriptor(e, k);␊
      				Object.defineProperty(n, k, d.get ? d : {␊
      					enumerable: true,␊
      					get: function () { return e[k]; }␊
      				});␊
      			}␊
      		});␊
      	});␊
      	return Object.freeze(n);␊
      }␊
      ␊
      var entry$1 = {};␊
      ␊
      Object.defineProperty(entry$1, '__esModule', { value: true });␊
      var _default = entry$1.default = 'default';␊
      ␊
      var entry = /*#__PURE__*/_mergeNamespaces({␊
      	__proto__: null,␊
      	default: _default␊
      }, [entry$1]);␊
      ␊
      exports._default = _default;␊
      exports.entry = entry;␊
      `,
      'entry.js': `'use strict';␊
      ␊
      var entry = require('./entry-b0367e48.js');␊
      ␊
      ␊
      ␊
      module.exports = entry._default;␊
      `,
      'main.js': `'use strict';␊
      ␊
      var entry = require('./entry-b0367e48.js');␊
      ␊
      t.deepEqual(entry.entry, { default: 'default' });␊
      `,
    }

## transpiled-esm-entry-mixed

> Snapshot 1

    {
      'entry-4415ca7c.js': `'use strict';␊
      ␊
      function _mergeNamespaces(n, m) {␊
      	m.forEach(function (e) {␊
      		e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {␊
      			if (k !== 'default' && !(k in n)) {␊
      				var d = Object.getOwnPropertyDescriptor(e, k);␊
      				Object.defineProperty(n, k, d.get ? d : {␊
      					enumerable: true,␊
      					get: function () { return e[k]; }␊
      				});␊
      			}␊
      		});␊
      	});␊
      	return Object.freeze(n);␊
      }␊
      ␊
      var entry$1 = {};␊
      ␊
      Object.defineProperty(entry$1, '__esModule', { value: true });␊
      var _default = entry$1.default = 'default';␊
      var named = entry$1.named = 'named';␊
      ␊
      var entry = /*#__PURE__*/_mergeNamespaces({␊
      	__proto__: null,␊
      	named: named,␊
      	default: _default␊
      }, [entry$1]);␊
      ␊
      exports._default = _default;␊
      exports.entry = entry;␊
      exports.named = named;␊
      `,
      'entry.js': `'use strict';␊
      ␊
      Object.defineProperty(exports, '__esModule', { value: true });␊
      ␊
      var entry = require('./entry-4415ca7c.js');␊
      ␊
      ␊
      ␊
      exports.default = entry._default;␊
      exports.named = entry.named;␊
      `,
      'main.js': `'use strict';␊
      ␊
      var entry = require('./entry-4415ca7c.js');␊
      ␊
      t.deepEqual(entry.entry, { default: 'default', named: 'named' });␊
      `,
    }

## transpiled-esm-entry-named

> Snapshot 1

    {
      'entry.js': `'use strict';␊
      ␊
      Object.defineProperty(exports, '__esModule', { value: true });␊
      ␊
      var entry = require('./generated-entry.js');␊
      ␊
      ␊
      ␊
      exports.default = entry.entry$1;␊
      exports.named = entry.named;␊
      `,
      'generated-entry.js': `'use strict';␊
      ␊
      function _mergeNamespaces(n, m) {␊
      	m.forEach(function (e) {␊
      		e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {␊
      			if (k !== 'default' && !(k in n)) {␊
      				var d = Object.getOwnPropertyDescriptor(e, k);␊
      				Object.defineProperty(n, k, d.get ? d : {␊
      					enumerable: true,␊
      					get: function () { return e[k]; }␊
      				});␊
      			}␊
      		});␊
      	});␊
      	return Object.freeze(n);␊
      }␊
      ␊
      var entry$1 = {};␊
      ␊
      Object.defineProperty(entry$1, '__esModule', { value: true });␊
      var named = entry$1.named = 'named';␊
      ␊
      var entry = /*#__PURE__*/_mergeNamespaces({␊
      	__proto__: null,␊
      	named: named,␊
      	default: entry$1␊
      }, [entry$1]);␊
      ␊
      exports.entry = entry;␊
      exports.entry$1 = entry$1;␊
      exports.named = named;␊
      `,
      'main.js': `'use strict';␊
      ␊
      var entry = require('./generated-entry.js');␊
      ␊
      t.deepEqual(entry.entry, {␊
        default: {␊
          named: 'named'␊
        },␊
        named: 'named'␊
      });␊
      `,
    }

## transpiled-esm-mixed

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var external = require('external-esm-mixed');␊
      ␊
      function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }␊
      ␊
      var external__default = /*#__PURE__*/_interopDefaultCompat(external);␊
      ␊
      var dep = {};␊
      ␊
      Object.defineProperty(dep, '__esModule', { value: true });␊
      var named = dep.named = 'named';␊
      var _default = dep.default = 'default';␊
      ␊
      t.is(_default, 'default');␊
      t.is(named, 'named');␊
      t.is(external__default.default, 'bar');␊
      t.is(external.foo, 'foo');␊
      `,
    }

## transpiled-esm-named

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var externalEsmNamed = require('external-esm-named');␊
      ␊
      var dep = {};␊
      ␊
      Object.defineProperty(dep, '__esModule', { value: true });␊
      var named = dep.named = 'named';␊
      ␊
      t.is(named, 'named');␊
      t.is(externalEsmNamed.foo, 'foo');␊
      `,
    }

## transpiled-esm-namespace-default

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var external = require('external-esm-default');␊
      ␊
      function _interopNamespaceCompat(e) {␊
        if (e && typeof e === 'object' && 'default' in e) return e;␊
        var n = Object.create(null);␊
        if (e) {␊
          Object.keys(e).forEach(function (k) {␊
            if (k !== 'default') {␊
              var d = Object.getOwnPropertyDescriptor(e, k);␊
              Object.defineProperty(n, k, d.get ? d : {␊
                enumerable: true,␊
                get: function () { return e[k]; }␊
              });␊
            }␊
          });␊
        }␊
        n.default = e;␊
        return Object.freeze(n);␊
      }␊
      ␊
      function _mergeNamespaces(n, m) {␊
        m.forEach(function (e) {␊
          e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {␊
            if (k !== 'default' && !(k in n)) {␊
              var d = Object.getOwnPropertyDescriptor(e, k);␊
              Object.defineProperty(n, k, d.get ? d : {␊
                enumerable: true,␊
                get: function () { return e[k]; }␊
              });␊
            }␊
          });␊
        });␊
        return Object.freeze(n);␊
      }␊
      ␊
      var external__namespace = /*#__PURE__*/_interopNamespaceCompat(external);␊
      ␊
      var dep$1 = {};␊
      ␊
      Object.defineProperty(dep$1, '__esModule', { value: true });␊
      var _default = dep$1.default = 'default';␊
      ␊
      var dep = /*#__PURE__*/_mergeNamespaces({␊
        __proto__: null,␊
        default: _default␊
      }, [dep$1]);␊
      ␊
      t.deepEqual(dep, {␊
        default: 'default'␊
      });␊
      ␊
      t.deepEqual(external__namespace, {␊
        default: 'bar'␊
      });␊
      `,
    }

## transpiled-esm-namespace-mixed

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var external = require('external-esm-mixed');␊
      ␊
      function _interopNamespaceCompat(e) {␊
        if (e && typeof e === 'object' && 'default' in e) return e;␊
        var n = Object.create(null);␊
        if (e) {␊
          Object.keys(e).forEach(function (k) {␊
            if (k !== 'default') {␊
              var d = Object.getOwnPropertyDescriptor(e, k);␊
              Object.defineProperty(n, k, d.get ? d : {␊
                enumerable: true,␊
                get: function () { return e[k]; }␊
              });␊
            }␊
          });␊
        }␊
        n.default = e;␊
        return Object.freeze(n);␊
      }␊
      ␊
      function _mergeNamespaces(n, m) {␊
        m.forEach(function (e) {␊
          e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {␊
            if (k !== 'default' && !(k in n)) {␊
              var d = Object.getOwnPropertyDescriptor(e, k);␊
              Object.defineProperty(n, k, d.get ? d : {␊
                enumerable: true,␊
                get: function () { return e[k]; }␊
              });␊
            }␊
          });␊
        });␊
        return Object.freeze(n);␊
      }␊
      ␊
      var external__namespace = /*#__PURE__*/_interopNamespaceCompat(external);␊
      ␊
      var dep$1 = {};␊
      ␊
      Object.defineProperty(dep$1, '__esModule', { value: true });␊
      var named = dep$1.named = 'named';␊
      var _default = dep$1.default = 'default';␊
      ␊
      var dep = /*#__PURE__*/_mergeNamespaces({␊
        __proto__: null,␊
        named: named,␊
        default: _default␊
      }, [dep$1]);␊
      ␊
      t.deepEqual(dep, {␊
        default: 'default',␊
        named: 'named'␊
      });␊
      ␊
      t.deepEqual(external__namespace, {␊
        default: 'bar',␊
        foo: 'foo'␊
      });␊
      `,
    }

## transpiled-esm-namespace-named

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var external = require('external-esm-named');␊
      ␊
      function _interopNamespaceCompat(e) {␊
        if (e && typeof e === 'object' && 'default' in e) return e;␊
        var n = Object.create(null);␊
        if (e) {␊
          Object.keys(e).forEach(function (k) {␊
            if (k !== 'default') {␊
              var d = Object.getOwnPropertyDescriptor(e, k);␊
              Object.defineProperty(n, k, d.get ? d : {␊
                enumerable: true,␊
                get: function () { return e[k]; }␊
              });␊
            }␊
          });␊
        }␊
        n.default = e;␊
        return Object.freeze(n);␊
      }␊
      ␊
      function _mergeNamespaces(n, m) {␊
        m.forEach(function (e) {␊
          e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {␊
            if (k !== 'default' && !(k in n)) {␊
              var d = Object.getOwnPropertyDescriptor(e, k);␊
              Object.defineProperty(n, k, d.get ? d : {␊
                enumerable: true,␊
                get: function () { return e[k]; }␊
              });␊
            }␊
          });␊
        });␊
        return Object.freeze(n);␊
      }␊
      ␊
      var external__namespace = /*#__PURE__*/_interopNamespaceCompat(external);␊
      ␊
      var dep$1 = {};␊
      ␊
      Object.defineProperty(dep$1, '__esModule', { value: true });␊
      var named = dep$1.named = 'named';␊
      ␊
      var dep = /*#__PURE__*/_mergeNamespaces({␊
        __proto__: null,␊
        named: named,␊
        default: dep$1␊
      }, [dep$1]);␊
      ␊
      t.deepEqual(dep, {␊
        default: {␊
          named: 'named'␊
        },␊
        named: 'named'␊
      });␊
      ␊
      t.deepEqual(external__namespace, {␊
        foo: 'foo',␊
        default: { foo: 'foo' }␊
      });␊
      `,
    }

## transpiled-esm-nested-module-exports

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      function getDefaultExportFromCjs (x) {␊
      	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊
      }␊
      ␊
      var dep$1 = {exports: {}};␊
      ␊
      Object.defineProperty(dep$1.exports, '__esModule', { value: true });␊
      ␊
      if (globalValue) {␊
        dep$1.exports = 'first';␊
      } else {␊
        dep$1.exports = 'second';␊
      }␊
      ␊
      var dep = /*@__PURE__*/getDefaultExportFromCjs(dep$1.exports);␊
      ␊
      t.is(dep, 'first');␊
      `,
    }

## transpiled-esm-nested-module-exports2

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      function getDefaultExportFromCjs (x) {␊
      	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊
      }␊
      ␊
      var dep$1 = {exports: {}};␊
      ␊
      if (globalValue) {␊
        dep$1.exports = { default: 'first' };␊
      } else {␊
        dep$1.exports = { default: 'second' };␊
      }␊
      ␊
      Object.defineProperty(dep$1.exports, '__esModule', { value: true });␊
      ␊
      var dep = /*@__PURE__*/getDefaultExportFromCjs(dep$1.exports);␊
      ␊
      t.is(dep, 'first');␊
      `,
    }

## transpiled-esm-reexported-default

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      function getDefaultExportFromCjs (x) {␊
      	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊
      }␊
      ␊
      var proxy = {exports: {}};␊
      ␊
      var dep$1 = {};␊
      ␊
      Object.defineProperty(dep$1, '__esModule', { value: true });␊
      dep$1.default = 'default';␊
      ␊
      (function (module) {␊
      	module.exports = dep$1;␊
      } (proxy));␊
      ␊
      var dep = /*@__PURE__*/getDefaultExportFromCjs(proxy.exports);␊
      ␊
      t.is(dep, 'default');␊
      `,
    }

## transpiled-esm-reexported-entry-default

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      function _mergeNamespaces(n, m) {␊
      	m.forEach(function (e) {␊
      		e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {␊
      			if (k !== 'default' && !(k in n)) {␊
      				var d = Object.getOwnPropertyDescriptor(e, k);␊
      				Object.defineProperty(n, k, d.get ? d : {␊
      					enumerable: true,␊
      					get: function () { return e[k]; }␊
      				});␊
      			}␊
      		});␊
      	});␊
      	return Object.freeze(n);␊
      }␊
      ␊
      function getDefaultExportFromCjs (x) {␊
      	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊
      }␊
      ␊
      var proxy$1 = {exports: {}};␊
      ␊
      var entry$1 = {};␊
      ␊
      Object.defineProperty(entry$1, '__esModule', { value: true });␊
      entry$1.default = 'default';␊
      ␊
      (function (module) {␊
      	module.exports = entry$1;␊
      } (proxy$1));␊
      ␊
      var proxy = /*@__PURE__*/getDefaultExportFromCjs(proxy$1.exports);␊
      ␊
      var entry = /*#__PURE__*/_mergeNamespaces({␊
      	__proto__: null,␊
      	default: proxy␊
      }, [proxy$1.exports]);␊
      ␊
      t.deepEqual(entry, { default: 'default' });␊
      `,
    }

## transpiled-esm-reexported-entry-mixed

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      function _mergeNamespaces(n, m) {␊
      	m.forEach(function (e) {␊
      		e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {␊
      			if (k !== 'default' && !(k in n)) {␊
      				var d = Object.getOwnPropertyDescriptor(e, k);␊
      				Object.defineProperty(n, k, d.get ? d : {␊
      					enumerable: true,␊
      					get: function () { return e[k]; }␊
      				});␊
      			}␊
      		});␊
      	});␊
      	return Object.freeze(n);␊
      }␊
      ␊
      function getDefaultExportFromCjs (x) {␊
      	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊
      }␊
      ␊
      var proxy$1 = {exports: {}};␊
      ␊
      var entry$1 = {};␊
      ␊
      Object.defineProperty(entry$1, '__esModule', { value: true });␊
      entry$1.default = 'default';␊
      entry$1.named = 'named';␊
      ␊
      (function (module) {␊
      	module.exports = entry$1;␊
      } (proxy$1));␊
      ␊
      var proxy = /*@__PURE__*/getDefaultExportFromCjs(proxy$1.exports);␊
      ␊
      var entry = /*#__PURE__*/_mergeNamespaces({␊
      	__proto__: null,␊
      	default: proxy␊
      }, [proxy$1.exports]);␊
      ␊
      t.deepEqual(entry, { default: 'default', named: 'named' });␊
      `,
    }

## transpiled-esm-reexported-entry-named

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      function _mergeNamespaces(n, m) {␊
      	m.forEach(function (e) {␊
      		e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {␊
      			if (k !== 'default' && !(k in n)) {␊
      				var d = Object.getOwnPropertyDescriptor(e, k);␊
      				Object.defineProperty(n, k, d.get ? d : {␊
      					enumerable: true,␊
      					get: function () { return e[k]; }␊
      				});␊
      			}␊
      		});␊
      	});␊
      	return Object.freeze(n);␊
      }␊
      ␊
      function getDefaultExportFromCjs (x) {␊
      	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊
      }␊
      ␊
      var proxy$1 = {exports: {}};␊
      ␊
      var entry$1 = {};␊
      ␊
      Object.defineProperty(entry$1, '__esModule', { value: true });␊
      entry$1.named = 'named';␊
      ␊
      (function (module) {␊
      	module.exports = entry$1;␊
      } (proxy$1));␊
      ␊
      var proxy = /*@__PURE__*/getDefaultExportFromCjs(proxy$1.exports);␊
      ␊
      var entry = /*#__PURE__*/_mergeNamespaces({␊
      	__proto__: null,␊
      	default: proxy␊
      }, [proxy$1.exports]);␊
      ␊
      t.deepEqual(entry, {␊
        default: {␊
          named: 'named',␊
        },␊
        named: 'named'␊
      });␊
      `,
    }

## transpiled-esm-reexported-mixed

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      function getDefaultExportFromCjs (x) {␊
      	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊
      }␊
      ␊
      var proxy = {exports: {}};␊
      ␊
      var dep$1 = {};␊
      ␊
      Object.defineProperty(dep$1, '__esModule', { value: true });␊
      dep$1.named = 'named';␊
      dep$1.default = 'default';␊
      ␊
      (function (module) {␊
      	module.exports = dep$1;␊
      } (proxy));␊
      ␊
      var dep = /*@__PURE__*/getDefaultExportFromCjs(proxy.exports);␊
      ␊
      t.is(dep, 'default');␊
      t.is(proxy.exports.named, 'named');␊
      `,
    }

## transpiled-esm-reexported-named

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var proxy = {exports: {}};␊
      ␊
      var dep = {};␊
      ␊
      Object.defineProperty(dep, '__esModule', { value: true });␊
      dep.named = 'named';␊
      ␊
      (function (module) {␊
      	module.exports = dep;␊
      } (proxy));␊
      ␊
      t.is(proxy.exports.named, 'named');␊
      `,
    }

## transpiled-esm-required

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var dep$1 = {};␊
      ␊
      Object.defineProperty(dep$1, '__esModule', { value: true });␊
      dep$1.named = 'named';␊
      dep$1.default = 'default';␊
      ␊
      const dep = dep$1;␊
      ␊
      t.deepEqual(dep, {␊
        default: 'default',␊
        named: 'named'␊
      });␊
      ␊
      // eslint-disable-next-line no-prototype-builtins␊
      t.is(dep.hasOwnProperty('named'), true);␊
      ␊
      module.exports = main;␊
      `,
    }

## transpiled-esm-transpiled-importer

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var dep$1 = {};␊
      ␊
      Object.defineProperty(dep$1, '__esModule', { value: true });␊
      dep$1.default = 'default';␊
      ␊
      const dep = dep$1;␊
      ␊
      function _interopDefault$1(e) {␊
        return e && e.__esModule ? e : { default: e };␊
      }␊
      ␊
      t.is(dep.__esModule, true);␊
      const dep__default = /* #__PURE__*/ _interopDefault$1(dep);␊
      t.is(dep__default.default, 'default');␊
      ␊
      module.exports = main;␊
      `,
    }

## try-catch

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      /* eslint-disable global-require */␊
      ␊
      try {␊
        require('uninstalled-external-module');␊
      } catch (ignored) {␊
        /* ignore */␊
      }␊
      ␊
      module.exports = main;␊
      `,
    }

## try-catch-ids-array

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      /* eslint-disable global-require */␊
      ␊
      try {␊
        require('uninstalled-external-module');␊
      } catch (ignored) {␊
        /* ignore */␊
      }␊
      ␊
      module.exports = main;␊
      `,
    }

## try-catch-ids-function

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      /* eslint-disable global-require */␊
      ␊
      try {␊
        require('uninstalled-external-module');␊
      } catch (ignored) {␊
        /* ignore */␊
      }␊
      ␊
      module.exports = main;␊
      `,
    }

## try-catch-internal

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      var dep = {};␊
      ␊
      var hasRequiredDep;␊
      ␊
      function requireDep () {␊
      	if (hasRequiredDep) return dep;␊
      	hasRequiredDep = 1;␊
      	dep.foo = 'foo';␊
      	return dep;␊
      }␊
      ␊
      var throws = {};␊
      ␊
      var hasRequiredThrows;␊
      ␊
      function requireThrows () {␊
      	if (hasRequiredThrows) return throws;␊
      	hasRequiredThrows = 1;␊
      	throw new Error('Expected error');␊
      }␊
      ␊
      /* eslint-disable global-require */␊
      ␊
      try {␊
        t.is(requireDep().foo, 'foo');␊
      } catch (err) {␊
        throw new Error(\`Could not require: ${err}\`);␊
      }␊
      ␊
      try {␊
        requireThrows();␊
      } catch (err) {␊
        t.is(err.message, 'Expected error');␊
      }␊
      ␊
      module.exports = main;␊
      `,
    }

## try-catch-remove

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var main = {};␊
      ␊
      module.exports = main;␊
      `,
    }

## typeof-module-require

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      function commonjsRequire(path) {␊
      	throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');␊
      }␊
      ␊
      var foo = {exports: {}};␊
      ␊
      if (typeof commonjsRequire === 'function' && commonjsRequire) {␊
        foo.exports = 'require detected';␊
      } else {␊
        foo.exports = 'could not detect require';␊
      }␊
      ␊
      t.is(foo.exports, 'require detected');␊
      `,
    }

## typeof-require

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      function commonjsRequire(path) {␊
      	throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');␊
      }␊
      ␊
      var foo = {exports: {}};␊
      ␊
      if (typeof commonjsRequire === 'function' && commonjsRequire) {␊
        foo.exports = 1;␊
      } else {␊
        foo.exports = 2;␊
      }␊
      ␊
      t.is(foo.exports, 1);␊
      `,
    }

## unresolved-dependencies

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var require$$0 = require('path');␊
      ␊
      function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }␊
      ␊
      var require$$0__default = /*#__PURE__*/_interopDefaultCompat(require$$0);␊
      ␊
      var main = {};␊
      ␊
      const path = require$$0__default.default;␊
      ␊
      t.is(typeof path.resolve, 'function');␊
      ␊
      module.exports = main;␊
      `,
    }

## warn-this-resolve-without-options

> Snapshot 1

    {
      'main.js': `'use strict';␊
      ␊
      var foo$1 = 21;␊
      ␊
      const foo = foo$1;␊
      ␊
      var main = foo * 2;␊
      ␊
      module.exports = main;␊
      `,
    }
