Repository: webpack-contrib/css-loader
Pull request #949 (2019-06-04 14:40:30)

refactor: runtime
<!--
  HOLY CRAP a Pull Request. We ❤️ those!

  If you remove or skip this template, you'll make the 🐼 sad and the mighty god
  of Github will appear and pile-drive the close button from a great height
  while making animal noises.

  Please place an x (no spaces!) in all [ ] that apply
-->

This PR contains a:

- [ ] **bugfix**
- [ ] new **feature**
- [x] **code refactor**
- [ ] **test update** <!-- if bug or feature is checked, this should be too -->
- [ ] **typo fix**
- [ ] **metadata update**

### Motivation / Use-Case

just refactor

### Breaking Changes

No

### Additional Info

No

codecov[bot]: # [Codecov](https://codecov.io/gh/webpack-contrib/css-loader/pull/949?src=pr&el=h1) Report
> Merging [#949](https://codecov.io/gh/webpack-contrib/css-loader/pull/949?src=pr&el=desc) into [master](https://codecov.io/gh/webpack-contrib/css-loader/commit/823fd608eb8999821d6b255e03bb89c02dc85be0?src=pr&el=desc) will **not change** coverage.
> The diff coverage is `100%`.

[![Impacted file tree graph](https://codecov.io/gh/webpack-contrib/css-loader/pull/949/graphs/tree.svg?width=650&token=DlN3OQ0JnO&height=150&src=pr)](https://codecov.io/gh/webpack-contrib/css-loader/pull/949?src=pr&el=tree)

```diff
@@           Coverage Diff           @@
##           master     #949   +/-   ##
=======================================
  Coverage   98.77%   98.77%           
=======================================
  Files          10       10           
  Lines         409      409           
  Branches      126      126           
=======================================
  Hits          404      404           
  Misses          5        5
```


| [Impacted Files](https://codecov.io/gh/webpack-contrib/css-loader/pull/949?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [src/runtime/get-url.js](https://codecov.io/gh/webpack-contrib/css-loader/pull/949/diff?src=pr&el=tree#diff-c3JjL3J1bnRpbWUvZ2V0LXVybC5qcw==) | `100% <ø> (ø)` | |
| [src/utils.js](https://codecov.io/gh/webpack-contrib/css-loader/pull/949/diff?src=pr&el=tree#diff-c3JjL3V0aWxzLmpz) | `99.23% <100%> (ø)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/webpack-contrib/css-loader/pull/949?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/webpack-contrib/css-loader/pull/949?src=pr&el=footer). Last update [823fd60...84f3393](https://codecov.io/gh/webpack-contrib/css-loader/pull/949?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).


Patch:
diff --git a/src/runtime/url-escape.js b/src/runtime/get-url.js
similarity index 100%
rename from src/runtime/url-escape.js
rename to src/runtime/get-url.js
diff --git a/src/utils.js b/src/utils.js
index d115ce8..e9dcba9 100644
--- a/src/utils.js
+++ b/src/utils.js
@@ -207,8 +207,8 @@ function getExports(messages, exportLocalsStyle, importItemReplacer) {
 function getImports(messages, importUrlPrefix, loaderContext, callback) {
   const imports = [];
 
-  // Helper for ensuring valid CSS strings from requires
-  let hasUrlEscapeHelper = false;
+  // Helper for getting url
+  let hasUrlHelper = false;
 
   messages.forEach((message) => {
     if (message.type === 'import') {
@@ -234,15 +234,15 @@ function getImports(messages, importUrlPrefix, loaderContext, callback) {
     }
 
     if (message.type === 'url') {
-      if (!hasUrlEscapeHelper) {
+      if (!hasUrlHelper) {
         imports.push(
-          `var urlEscape = require(${stringifyRequest(
+          `var getUrl = require(${stringifyRequest(
             loaderContext,
-            require.resolve('./runtime/url-escape.js')
+            require.resolve('./runtime/get-url.js')
           )});`
         );
 
-        hasUrlEscapeHelper = true;
+        hasUrlHelper = true;
       }
 
       const { url, placeholder, needQuotes } = message.item;
@@ -254,7 +254,7 @@ function getImports(messages, importUrlPrefix, loaderContext, callback) {
           : '';
 
       imports.push(
-        `var ${placeholder} = urlEscape(require(${stringifyRequest(
+        `var ${placeholder} = getUrl(require(${stringifyRequest(
           loaderContext,
           urlToRequest(normalizedUrl)
         )})${hash ? ` + ${hash}` : ''}${needQuotes ? ', true' : ''});`


Test patch:
diff --git a/test/__snapshots__/import-option.test.js.snap b/test/__snapshots__/import-option.test.js.snap
index 704c33f..16223e2 100644
--- a/test/__snapshots__/import-option.test.js.snap
+++ b/test/__snapshots__/import-option.test.js.snap
@@ -204,8 +204,8 @@ exports.i(require(\\"-!../../../src/index.js??ref--4-0!../import/top-relative.cs
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!package/tilde.css\\"), \\"\\");
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!aliasesImport/alias.css\\"), \\"\\");
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!./url.css\\"), \\"\\");
-var urlEscape = require(\\"../../../src/runtime/url-escape.js\\");
-var ___CSS_LOADER_URL___0___ = urlEscape(require(\\"./img.png\\"));
+var getUrl = require(\\"../../../src/runtime/get-url.js\\");
+var ___CSS_LOADER_URL___0___ = getUrl(require(\\"./img.png\\"));
 
 // Module
 exports.push([module.id, \\"@import url(test.css);\\\\n@import url('test.css');\\\\n@import url(\\\\\\"test.css\\\\\\");\\\\n@IMPORT url(test.css);\\\\n@import URL(test.css);\\\\n@import url(test.css );\\\\n@import url( test.css);\\\\n@import url( test.css );\\\\n@import url(\\\\n  test.css\\\\n);\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import \\\\\\"test.css\\\\\\";\\\\n@import 'test.css';\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\"   \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import url(test.css) screen and print;\\\\n@import url(test.css) SCREEN AND PRINT;\\\\n@import url(test.css)screen and print;\\\\n@import url(test.css)  screen and print;\\\\n@import url(~package/test.css);\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n\\\\n.class {\\\\n  a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n  @import 'path.css';\\\\n}\\\\n\\\\n.background {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\", \\"\\"]);
@@ -353,8 +353,8 @@ Array [
 exports[`import option false: module 1`] = `
 "exports = module.exports = require(\\"../../../src/runtime/api.js\\")(false);
 // Imports
-var urlEscape = require(\\"../../../src/runtime/url-escape.js\\");
-var ___CSS_LOADER_URL___0___ = urlEscape(require(\\"./img.png\\"));
+var getUrl = require(\\"../../../src/runtime/get-url.js\\");
+var ___CSS_LOADER_URL___0___ = getUrl(require(\\"./img.png\\"));
 
 // Module
 exports.push([module.id, \\"@import url(test.css);\\\\n@import url('test.css');\\\\n@import url(\\\\\\"test.css\\\\\\");\\\\n@IMPORT url(test.css);\\\\n@import URL(test.css);\\\\n@import url(test.css );\\\\n@import url( test.css);\\\\n@import url( test.css );\\\\n@import url(\\\\n  test.css\\\\n);\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import \\\\\\"test.css\\\\\\";\\\\n@import 'test.css';\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\"   \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import url(test.css) screen and print;\\\\n@import url(test.css) SCREEN AND PRINT;\\\\n@import url(test.css)screen and print;\\\\n@import url(test.css)  screen and print;\\\\n@import url(test-media.css) screen and print;\\\\n@import url(test-other.css) (min-width: 100px);\\\\n@import url(http://example.com/style.css);\\\\n@import url(http://example.com/style.css);\\\\n@import url(http://example.com/style.css#hash);\\\\n@import url(http://example.com/style.css?#hash);\\\\n@import url(http://example.com/style.css?foo=bar#hash);\\\\n@import url(http://example.com/other-style.css) screen and print;\\\\n@import url(http://example.com/other-style.css) screen and print;\\\\n@import url(\\\\\\"//example.com/style.css\\\\\\");\\\\n@import url(~package/test.css);\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n@import url('query.css?foo=1&bar=1');\\\\n@import url('other-query.css?foo=1&bar=1#hash');\\\\n@import url('other-query.css?foo=1&bar=1#hash') screen and print;\\\\n@import url('https://fonts.googleapis.com/css?family=Roboto');\\\\n@import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC');\\\\n@import url('https://fonts.googleapis.com/css?family=Noto+Sans+TC|Roboto');\\\\n\\\\n.class {\\\\n  a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n  @import 'path.css';\\\\n}\\\\n\\\\n@import url('./relative.css');\\\\n@import url('../import/top-relative.css');\\\\n@import url(~package/tilde.css);\\\\n@import url(~aliasesImport/alias.css);\\\\n@import url('./url.css');\\\\n\\\\n.background {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\", \\"\\"]);
@@ -577,8 +577,8 @@ exports.i(require(\\"-!../../../src/index.js??ref--4-0!../import/top-relative.cs
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!package/tilde.css\\"), \\"\\");
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!aliasesImport/alias.css\\"), \\"\\");
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!./url.css\\"), \\"\\");
-var urlEscape = require(\\"../../../src/runtime/url-escape.js\\");
-var ___CSS_LOADER_URL___0___ = urlEscape(require(\\"./img.png\\"));
+var getUrl = require(\\"../../../src/runtime/get-url.js\\");
+var ___CSS_LOADER_URL___0___ = getUrl(require(\\"./img.png\\"));
 
 // Module
 exports.push([module.id, \\"@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\"   \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n\\\\n.class {\\\\n  a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n  @import 'path.css';\\\\n}\\\\n\\\\n.background {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\", \\"\\"]);
@@ -857,8 +857,8 @@ exports.i(require(\\"-!../../../src/index.js??ref--4-0!../import/top-relative.cs
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!package/tilde.css\\"), \\"\\");
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!aliasesImport/alias.css\\"), \\"\\");
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!./url.css\\"), \\"\\");
-var urlEscape = require(\\"../../../src/runtime/url-escape.js\\");
-var ___CSS_LOADER_URL___0___ = urlEscape(require(\\"./img.png\\"));
+var getUrl = require(\\"../../../src/runtime/get-url.js\\");
+var ___CSS_LOADER_URL___0___ = getUrl(require(\\"./img.png\\"));
 
 // Module
 exports.push([module.id, \\"@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\"   \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n\\\\n.class {\\\\n  a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n  @import 'path.css';\\\\n}\\\\n\\\\n.background {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\", \\"\\"]);
@@ -1137,8 +1137,8 @@ exports.i(require(\\"-!../../../src/index.js??ref--4-0!../import/top-relative.cs
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!package/tilde.css\\"), \\"\\");
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!aliasesImport/alias.css\\"), \\"\\");
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!./url.css\\"), \\"\\");
-var urlEscape = require(\\"../../../src/runtime/url-escape.js\\");
-var ___CSS_LOADER_URL___0___ = urlEscape(require(\\"./img.png\\"));
+var getUrl = require(\\"../../../src/runtime/get-url.js\\");
+var ___CSS_LOADER_URL___0___ = getUrl(require(\\"./img.png\\"));
 
 // Module
 exports.push([module.id, \\"@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\"   \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n\\\\n.hnxX78DgkaA2kCp_BPbLd {\\\\n  a: b c d;\\\\n}\\\\n\\\\n._1Lug_45kZL-M7XuNeM4SCw {\\\\n  @import 'path.css';\\\\n}\\\\n\\\\n._1E9CLkKp-0idM8IkvZwXn9 {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\", \\"\\"]);
@@ -1422,8 +1422,8 @@ exports.i(require(\\"-!../../../src/index.js??ref--4-0!../import/top-relative.cs
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!package/tilde.css\\"), \\"\\");
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!aliasesImport/alias.css\\"), \\"\\");
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!./url.css\\"), \\"\\");
-var urlEscape = require(\\"../../../src/runtime/url-escape.js\\");
-var ___CSS_LOADER_URL___0___ = urlEscape(require(\\"./img.png\\"));
+var getUrl = require(\\"../../../src/runtime/get-url.js\\");
+var ___CSS_LOADER_URL___0___ = getUrl(require(\\"./img.png\\"));
 
 // Module
 exports.push([module.id, \\"@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\"   \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n\\\\n.hnxX78DgkaA2kCp_BPbLd {\\\\n  a: b c d;\\\\n}\\\\n\\\\n._1Lug_45kZL-M7XuNeM4SCw {\\\\n  @import 'path.css';\\\\n}\\\\n\\\\n._1E9CLkKp-0idM8IkvZwXn9 {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\", \\"\\"]);
@@ -1707,8 +1707,8 @@ exports.i(require(\\"-!../../../src/index.js??ref--4-0!../import/top-relative.cs
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!package/tilde.css\\"), \\"\\");
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!aliasesImport/alias.css\\"), \\"\\");
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!./url.css\\"), \\"\\");
-var urlEscape = require(\\"../../../src/runtime/url-escape.js\\");
-var ___CSS_LOADER_URL___0___ = urlEscape(require(\\"./img.png\\"));
+var getUrl = require(\\"../../../src/runtime/get-url.js\\");
+var ___CSS_LOADER_URL___0___ = getUrl(require(\\"./img.png\\"));
 
 // Module
 exports.push([module.id, \\"@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import '';\\\\n@import \\\\\\"\\\\\\";\\\\n@import \\\\\\"   \\\\\\";\\\\n@import \\\\\\"\\\\n\\\\\\";\\\\n@import url();\\\\n@import url('');\\\\n@import url(\\\\\\"\\\\\\");\\\\n@import ;\\\\n@import foo-bar;\\\\n@import-normalize;\\\\n@import url('http://') :root {}\\\\n\\\\n.class {\\\\n  a: b c d;\\\\n}\\\\n\\\\n.foo {\\\\n  @import 'path.css';\\\\n}\\\\n\\\\n.background {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\", \\"\\"]);
diff --git a/test/__snapshots__/loader.test.js.snap b/test/__snapshots__/loader.test.js.snap
index 8a88186..940c882 100644
--- a/test/__snapshots__/loader.test.js.snap
+++ b/test/__snapshots__/loader.test.js.snap
@@ -281,8 +281,8 @@ exports[`loader should compile with \`css\` entry point (with \`modules\` and sc
 "exports = module.exports = require(\\"../../src/runtime/api.js\\")(false);
 // Imports
 exports.i(require(\\"-!../../src/index.js??ref--4-0!./imported.css\\"), \\"\\");
-var urlEscape = require(\\"../../src/runtime/url-escape.js\\");
-var ___CSS_LOADER_URL___0___ = urlEscape(require(\\"./url/img.png\\"));
+var getUrl = require(\\"../../src/runtime/get-url.js\\");
+var ___CSS_LOADER_URL___0___ = getUrl(require(\\"./url/img.png\\"));
 
 // Module
 exports.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n  color: red;\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n  --foo: 1px;\\\\n  --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n  body {\\\\n    background-color: lightblue;\\\\n  }\\\\n}\\\\n\\\\n.class {\\\\n  content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n  display: flex;\\\\n  flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n  align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n  align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n  align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n  align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n  font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n  content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n  content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n  --title-align: center;\\\\n  --sr-only: {\\\\n    position: absolute;\\\\n    width: 1px;\\\\n    height: 1px;\\\\n    padding: 0;\\\\n    overflow: hidden;\\\\n    clip: rect(0,0,0,0);\\\\n    white-space: nowrap;\\\\n    clip-path: inset(50%);\\\\n    border: 0;\\\\n  };\\\\n}\\\\n\\\\n.test {\\\\n  content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n  margin-top: 1px\\\\\\\\9;\\\\n  background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n  content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n  background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n  color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n  color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n  color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n  color: blue;\\\\n}\\\\n\\", \\"\\"]);
@@ -573,8 +573,8 @@ exports[`loader should compile with \`css\` entry point (with \`modules\` and sc
 "exports = module.exports = require(\\"../../src/runtime/api.js\\")(false);
 // Imports
 exports.i(require(\\"-!../../src/index.js??ref--4-0!./imported.css\\"), \\"\\");
-var urlEscape = require(\\"../../src/runtime/url-escape.js\\");
-var ___CSS_LOADER_URL___0___ = urlEscape(require(\\"./url/img.png\\"));
+var getUrl = require(\\"../../src/runtime/get-url.js\\");
+var ___CSS_LOADER_URL___0___ = getUrl(require(\\"./url/img.png\\"));
 
 // Module
 exports.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n._1PSZ4tK4URrenXyNSoawrx {\\\\n  color: red;\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n._3YYoEr128Gk7ZgfRycu4tr {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n  --foo: 1px;\\\\n  --bar: 2px;\\\\n}\\\\n\\\\n._1PSZ4tK4URrenXyNSoawrx { a: b c d; }\\\\n\\\\n._1LWD9ZV4XMmN23IPiMONS3 {}\\\\n\\\\n._3i3CD1fyX8bvzRt1H0IV-f { a: b c d; }\\\\n\\\\n._1PSZ4tK4URrenXyNSoawrx { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n  body {\\\\n    background-color: lightblue;\\\\n  }\\\\n}\\\\n\\\\n._1PSZ4tK4URrenXyNSoawrx {\\\\n  content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n._1fWEySWrY44TvDnJ8JNxnE {}\\\\n._1fWEySWrY44TvDnJ8JNxnE {}\\\\n\\\\n#Zmuw5k7Gg4hpgd6CVBEkq {}\\\\n\\\\n.nz2GDQ2B9PRi6GmzRwbUM {\\\\n  display: flex;\\\\n  flex-wrap: wrap;\\\\n}\\\\n.nz2GDQ2B9PRi6GmzRwbUM._1fWEySWrY44TvDnJ8JNxnE {\\\\n  align-items: flex-start;\\\\n}\\\\n.nz2GDQ2B9PRi6GmzRwbUM._1fWEySWrY44TvDnJ8JNxnE {\\\\n  align-items: flex-start;\\\\n}\\\\n.nz2GDQ2B9PRi6GmzRwbUM._12Sbi_HmVVsUl9TM-zo3h- {\\\\n  align-items: center;\\\\n}\\\\n.nz2GDQ2B9PRi6GmzRwbUM.gpFhy6a0Dyg4XrktE4jA3 {\\\\n  align-items: flex-end;\\\\n}\\\\n\\\\n._3i3CD1fyX8bvzRt1H0IV-f {}\\\\n\\\\n.YDvxHwoU5TyTmW1oTkKgw {}\\\\n\\\\n#_3i3CD1fyX8bvzRt1H0IV-f {}\\\\n\\\\nbody {\\\\n  font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n._3txeRUnk43pQ_ialOcI-1F {\\\\n  content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n._3txeRUnk43pQ_ialOcI-1F {\\\\n  content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n._3Zu4uw_Urs6mU3AHN6h0NV {}\\\\n\\\\n._4_pn9LmAb2XtAy0kg4FN_ {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n._2LEttkwzH7jRE93Ku8MGqY {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#_2E85FJStrx25rDG2lYWifC {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#_2pyPm3oWgKQ-rjECcnFYrX {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#_2pmolVDQD2g7wt3ejy2doK {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n  --title-align: center;\\\\n  --sr-only: {\\\\n    position: absolute;\\\\n    width: 1px;\\\\n    height: 1px;\\\\n    padding: 0;\\\\n    overflow: hidden;\\\\n    clip: rect(0,0,0,0);\\\\n    white-space: nowrap;\\\\n    clip-path: inset(50%);\\\\n    border: 0;\\\\n  };\\\\n}\\\\n\\\\n._2mQhIWfQwYBHR8C-27Rb-E {\\\\n  content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n  margin-top: 1px\\\\\\\\9;\\\\n  background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n._2H1jUQC4I1yE2c9CEwXfAS._3HDHfIW-5V2j3qdUcRiaMD ._2eB5NM0D15e1HQWl3AHa8q:before{\\\\n  content: '💡';\\\\n}\\\\n\\\\n.JNjvwXXuHnb_zjhkwPzBD {\\\\n  background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n  color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n  color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n  color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n  color: blue;\\\\n}\\\\n\\", \\"\\"]);
@@ -889,8 +889,8 @@ exports[`loader should compile with \`css\` entry point: module 1`] = `
 "exports = module.exports = require(\\"../../src/runtime/api.js\\")(false);
 // Imports
 exports.i(require(\\"-!../../src/index.js??ref--4-0!./imported.css\\"), \\"\\");
-var urlEscape = require(\\"../../src/runtime/url-escape.js\\");
-var ___CSS_LOADER_URL___0___ = urlEscape(require(\\"./url/img.png\\"));
+var getUrl = require(\\"../../src/runtime/get-url.js\\");
+var ___CSS_LOADER_URL___0___ = getUrl(require(\\"./url/img.png\\"));
 
 // Module
 exports.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n  color: red;\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n  --foo: 1px;\\\\n  --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n  body {\\\\n    background-color: lightblue;\\\\n  }\\\\n}\\\\n\\\\n.class {\\\\n  content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n  display: flex;\\\\n  flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n  align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n  align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n  align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n  align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n  font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n  content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n  content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n  --title-align: center;\\\\n  --sr-only: {\\\\n    position: absolute;\\\\n    width: 1px;\\\\n    height: 1px;\\\\n    padding: 0;\\\\n    overflow: hidden;\\\\n    clip: rect(0,0,0,0);\\\\n    white-space: nowrap;\\\\n    clip-path: inset(50%);\\\\n    border: 0;\\\\n  };\\\\n}\\\\n\\\\n.test {\\\\n  content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n  margin-top: 1px\\\\\\\\9;\\\\n  background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n  content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n  background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n  color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n  color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n  color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n  color: blue;\\\\n}\\\\n\\", \\"\\"]);
@@ -1181,8 +1181,8 @@ exports[`loader should compile with \`js\` entry point: module 1`] = `
 "exports = module.exports = require(\\"../../src/runtime/api.js\\")(false);
 // Imports
 exports.i(require(\\"-!../../src/index.js??ref--4-0!./imported.css\\"), \\"\\");
-var urlEscape = require(\\"../../src/runtime/url-escape.js\\");
-var ___CSS_LOADER_URL___0___ = urlEscape(require(\\"./url/img.png\\"));
+var getUrl = require(\\"../../src/runtime/get-url.js\\");
+var ___CSS_LOADER_URL___0___ = getUrl(require(\\"./url/img.png\\"));
 
 // Module
 exports.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n  color: red;\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n  --foo: 1px;\\\\n  --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n  body {\\\\n    background-color: lightblue;\\\\n  }\\\\n}\\\\n\\\\n.class {\\\\n  content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n  display: flex;\\\\n  flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n  align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n  align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n  align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n  align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n  font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n  content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n  content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n  --title-align: center;\\\\n  --sr-only: {\\\\n    position: absolute;\\\\n    width: 1px;\\\\n    height: 1px;\\\\n    padding: 0;\\\\n    overflow: hidden;\\\\n    clip: rect(0,0,0,0);\\\\n    white-space: nowrap;\\\\n    clip-path: inset(50%);\\\\n    border: 0;\\\\n  };\\\\n}\\\\n\\\\n.test {\\\\n  content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n  content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n  margin-top: 1px\\\\\\\\9;\\\\n  background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n  content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n  background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n  color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n  color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n  color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n  color: blue;\\\\n}\\\\n\\", \\"\\"]);
@@ -1336,9 +1336,9 @@ a:hover {
 exports[`loader using together with "postcss-loader" and reuse \`ast\`: module 1`] = `
 "exports = module.exports = require(\\"../../../src/runtime/api.js\\")(false);
 // Imports
-var urlEscape = require(\\"../../../src/runtime/url-escape.js\\");
-var ___CSS_LOADER_URL___0___ = urlEscape(require(\\"./img1x.png\\"));
-var ___CSS_LOADER_URL___1___ = urlEscape(require(\\"./img2x.png\\"));
+var getUrl = require(\\"../../../src/runtime/get-url.js\\");
+var ___CSS_LOADER_URL___0___ = getUrl(require(\\"./img1x.png\\"));
+var ___CSS_LOADER_URL___1___ = getUrl(require(\\"./img2x.png\\"));
 
 // Module
 exports.push([module.id, \\":root {\\\\n  --fontSize: 1rem;\\\\n  --mainColor: rgba(18,52,86,0.47059);\\\\n  --secondaryColor: rgba(102, 51, 153, 0.9);\\\\n}\\\\n\\\\nhtml {\\\\n  overflow-x: hidden;\\\\n  overflow-y: auto;\\\\n  overflow: hidden auto;\\\\n}\\\\n\\\\n@media (max-width: 50rem) {\\\\n  body {\\\\n    color: rgba(18,52,86,0.47059);\\\\n    color: var(--mainColor);\\\\n    font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif;\\\\n    font-size: 1rem;\\\\n    font-size: var(--fontSize);\\\\n    line-height: calc(1rem * 1.5);\\\\n    line-height: calc(var(--fontSize) * 1.5);\\\\n    word-wrap: break-word;\\\\n    padding-left: calc(1rem / 2 + 1px);\\\\n    padding-right: calc(1rem / 2 + 1px);\\\\n    padding-left: calc(var(--fontSize) / 2 + 1px);\\\\n    padding-right: calc(var(--fontSize) / 2 + 1px);\\\\n  }\\\\n}\\\\n\\\\nh1,h2,h3,h4,h5,h6 {\\\\n  margin-top: 0;\\\\n  margin-bottom: 0;\\\\n}\\\\n\\\\nmain.hero, .hero.main {\\\\n  background-image: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {\\\\n\\\\nmain.hero, .hero.main {\\\\n  background-image:  url(\\" + ___CSS_LOADER_URL___1___ + \\");\\\\n}\\\\n}\\\\n\\\\nmain.hero, .hero.main {\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL___0___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___1___ + \\") 2x);\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___0___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___1___ + \\") 2x);\\\\n}\\\\n\\\\na {\\\\n  color: rgba(0, 0, 255, 0.9)\\\\n}\\\\n\\\\na:hover {\\\\n    color: #639;\\\\n  }\\\\n\\", \\"\\"]);
diff --git a/test/__snapshots__/url-option.test.js.snap b/test/__snapshots__/url-option.test.js.snap
index 6e74372..94aa49f 100644
--- a/test/__snapshots__/url-option.test.js.snap
+++ b/test/__snapshots__/url-option.test.js.snap
@@ -292,27 +292,27 @@ exports[`url option Function: module 1`] = `
 "exports = module.exports = require(\\"../../../src/runtime/api.js\\")(false);
 // Imports
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!./imported.css\\"), \\"\\");
-var urlEscape = require(\\"../../../src/runtime/url-escape.js\\");
-var ___CSS_LOADER_URL___0___ = urlEscape(require(\\"./font.woff\\"));
-var ___CSS_LOADER_URL___1___ = urlEscape(require(\\"./font.woff2\\"));
-var ___CSS_LOADER_URL___2___ = urlEscape(require(\\"./font.eot\\"));
-var ___CSS_LOADER_URL___3___ = urlEscape(require(\\"package/font.ttf\\"));
-var ___CSS_LOADER_URL___4___ = urlEscape(require(\\"./font with spaces.eot\\"));
-var ___CSS_LOADER_URL___5___ = urlEscape(require(\\"./font.svg\\") + \\"#svgFontName\\");
-var ___CSS_LOADER_URL___6___ = urlEscape(require(\\"./font.woff2?foo=bar\\"));
-var ___CSS_LOADER_URL___7___ = urlEscape(require(\\"./font.eot\\") + \\"?#iefix\\");
-var ___CSS_LOADER_URL___8___ = urlEscape(require(\\"./font with spaces.eot\\") + \\"?#iefix\\");
-var ___CSS_LOADER_URL___9___ = urlEscape(require(\\"./img1x.png\\"));
-var ___CSS_LOADER_URL___10___ = urlEscape(require(\\"./img2x.png\\"));
-var ___CSS_LOADER_URL___11___ = urlEscape(require(\\"./img-simple.png\\"));
-var ___CSS_LOADER_URL___12___ = urlEscape(require(\\"../url/img-simple.png\\"));
-var ___CSS_LOADER_URL___13___ = urlEscape(require(\\"./img1x.png\\"), true);
-var ___CSS_LOADER_URL___14___ = urlEscape(require(\\"./img2x.png\\"), true);
-var ___CSS_LOADER_URL___15___ = urlEscape(require(\\"./img3x.png\\"), true);
-var ___CSS_LOADER_URL___16___ = urlEscape(require(\\"./img1x.png?foo=bar\\"), true);
-var ___CSS_LOADER_URL___17___ = urlEscape(require(\\"./img1x.png\\") + \\"#hash\\", true);
-var ___CSS_LOADER_URL___18___ = urlEscape(require(\\"./img1x.png\\") + \\"?#iefix\\", true);
-var ___CSS_LOADER_URL___19___ = urlEscape(require(\\"./img3x.png\\"));
+var getUrl = require(\\"../../../src/runtime/get-url.js\\");
+var ___CSS_LOADER_URL___0___ = getUrl(require(\\"./font.woff\\"));
+var ___CSS_LOADER_URL___1___ = getUrl(require(\\"./font.woff2\\"));
+var ___CSS_LOADER_URL___2___ = getUrl(require(\\"./font.eot\\"));
+var ___CSS_LOADER_URL___3___ = getUrl(require(\\"package/font.ttf\\"));
+var ___CSS_LOADER_URL___4___ = getUrl(require(\\"./font with spaces.eot\\"));
+var ___CSS_LOADER_URL___5___ = getUrl(require(\\"./font.svg\\") + \\"#svgFontName\\");
+var ___CSS_LOADER_URL___6___ = getUrl(require(\\"./font.woff2?foo=bar\\"));
+var ___CSS_LOADER_URL___7___ = getUrl(require(\\"./font.eot\\") + \\"?#iefix\\");
+var ___CSS_LOADER_URL___8___ = getUrl(require(\\"./font with spaces.eot\\") + \\"?#iefix\\");
+var ___CSS_LOADER_URL___9___ = getUrl(require(\\"./img1x.png\\"));
+var ___CSS_LOADER_URL___10___ = getUrl(require(\\"./img2x.png\\"));
+var ___CSS_LOADER_URL___11___ = getUrl(require(\\"./img-simple.png\\"));
+var ___CSS_LOADER_URL___12___ = getUrl(require(\\"../url/img-simple.png\\"));
+var ___CSS_LOADER_URL___13___ = getUrl(require(\\"./img1x.png\\"), true);
+var ___CSS_LOADER_URL___14___ = getUrl(require(\\"./img2x.png\\"), true);
+var ___CSS_LOADER_URL___15___ = getUrl(require(\\"./img3x.png\\"), true);
+var ___CSS_LOADER_URL___16___ = getUrl(require(\\"./img1x.png?foo=bar\\"), true);
+var ___CSS_LOADER_URL___17___ = getUrl(require(\\"./img1x.png\\") + \\"#hash\\", true);
+var ___CSS_LOADER_URL___18___ = getUrl(require(\\"./img1x.png\\") + \\"?#iefix\\", true);
+var ___CSS_LOADER_URL___19___ = getUrl(require(\\"./img3x.png\\"));
 
 // Module
 exports.push([module.id, \\".class {\\\\n  background: url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(./img.png);\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\n    \\\\\\"./img.png\\\\\\"\\\\n  );\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( './img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\\\\\"./img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( ./img.png ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(~package/img.png) url(./other-img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\\\\\"./img img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( './img img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\\\\"http://www.w3.org/2000/svg\\\\\\"><filter id=\\\\\\"filter\\\\\\"><feGaussianBlur in=\\\\\\"SourceAlpha\\\\\\" stdDeviation=\\\\\\"0\\\\\\" /><feOffset dx=\\\\\\"1\\\\\\" dy=\\\\\\"2\\\\\\" result=\\\\\\"offsetblur\\\\\\" /><feFlood flood-color=\\\\\\"rgba(255,255,255,1)\\\\\\" /><feComposite in2=\\\\\\"offsetblur\\\\\\" operator=\\\\\\"in\\\\\\" /><feMerge><feMergeNode /><feMergeNode in=\\\\\\"SourceGraphic\\\\\\" /></feMerge></filter></svg>#filter');\\\\n}\\\\n\\\\n.class {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.highlight {\\\\n  filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n  filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(\\" + ___CSS_LOADER_URL___0___ + \\") format('woff'),\\\\n    url(\\" + ___CSS_LOADER_URL___1___ + \\") format('woff2'),\\\\n    url(\\" + ___CSS_LOADER_URL___2___ + \\") format('eot'),\\\\n    url(\\" + ___CSS_LOADER_URL___3___ + \\") format('truetype'),\\\\n    url(\\" + ___CSS_LOADER_URL___4___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n    url(\\" + ___CSS_LOADER_URL___5___ + \\") format('svg'),\\\\n    url(\\" + ___CSS_LOADER_URL___6___ + \\") format('woff2'),\\\\n    url(\\" + ___CSS_LOADER_URL___7___ + \\") format('embedded-opentype'),\\\\n    url(\\" + ___CSS_LOADER_URL___8___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n  body {\\\\n    background: url(\\\\\\"./img.png\\\\\\");\\\\n  }\\\\n}\\\\n\\\\na {\\\\n  content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n  content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n  background: green url('./img.png') xyz;\\\\n}\\\\n\\\\n.a {\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL___9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___10___ + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___10___ + \\") 2x)\\\\n}\\\\n\\\\n.class {\\\\n  background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url('   ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\\\n  ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?foo\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?foo=bar\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\\\"./img.png?\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url('./img.png') url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\") url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n  background: ___CSS_LOADER_URL___;\\\\n  background: ___CSS_LOADER_URL___INDEX___;\\\\n  background: ___CSS_LOADER_URL___99999___;\\\\n  background: ___CSS_LOADER_IMPORT___;\\\\n  background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n  background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n  background: url(\\" + ___CSS_LOADER_URL___11___ + \\");\\\\n}\\\\n\\\\n.not-resolved {\\\\n  background: url('/img-simple.png');\\\\n}\\\\n\\\\n.above-below {\\\\n  background: url(\\" + ___CSS_LOADER_URL___12___ + \\");\\\\n}\\\\n\\\\n.tilde {\\\\n  background: url('~package/img.png');\\\\n}\\\\n\\\\n.aliases {\\\\n  background: url('~aliasesImg/img.png') ;\\\\n}\\\\n\\\\na {\\\\n  background: url(./nested/img.png);\\\\n}\\\\n\\\\na {\\\\n  background: url(nested/img.png);\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  /* Broken */\\\\n  background-image: -webkit-image-set();\\\\n  background-image: -webkit-image-set('');\\\\n  background-image: image-set();\\\\n  background-image: image-set('');\\\\n  background-image: image-set(\\\\\\"\\\\\\");\\\\n  background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n  background-image: image-set(url());\\\\n  background-image: image-set(\\\\n    url()\\\\n  );\\\\n  background-image: image-set(URL());\\\\n  background-image: image-set(url(''));\\\\n  background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n  background-image: image-set(url('') 1x);\\\\n  background-image: image-set(1x);\\\\n  background-image: image-set(\\\\n    1x\\\\n  );\\\\n  background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n  /* Strings */\\\\n  background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL___13___ + \\" 1x, \\" + ___CSS_LOADER_URL___14___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___13___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___13___ + \\" 1x, \\" + ___CSS_LOADER_URL___14___ + \\" 2x);\\\\n  background-image: image-set(\\\\\\"./img img.png\\\\\\" 1x, \\\\\\"./img img.png\\\\\\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___13___ + \\" 1x, \\" + ___CSS_LOADER_URL___14___ + \\" 2x),\\\\n    image-set(\\" + ___CSS_LOADER_URL___13___ + \\" 1x, \\" + ___CSS_LOADER_URL___14___ + \\" 2x);\\\\n  background-image: image-set(\\\\n    \\" + ___CSS_LOADER_URL___13___ + \\" 1x,\\\\n    \\" + ___CSS_LOADER_URL___14___ + \\" 2x,\\\\n    \\" + ___CSS_LOADER_URL___15___ + \\" 600dpi\\\\n  );\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___16___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___17___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___18___ + \\" 1x);\\\\n\\\\n  /* With \`url\` function */\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL___9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___10___ + \\") 2x);\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL___9___ + \\") 1x);\\\\n  background-image: -webkit-image-set(\\\\n    url(\\" + ___CSS_LOADER_URL___9___ + \\") 1x\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___9___ + \\") 1x);\\\\n  background-image: image-set(\\\\n    url(\\" + ___CSS_LOADER_URL___9___ + \\") 1x\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___9___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___10___ + \\") 2x);\\\\n  background-image: image-set(\\\\n    url(\\" + ___CSS_LOADER_URL___9___ + \\") 1x,\\\\n    url(\\" + ___CSS_LOADER_URL___10___ + \\") 2x,\\\\n    url(\\" + ___CSS_LOADER_URL___19___ + \\") 600dpi\\\\n  );\\\\n  background-image: image-set(url(\\\\\\"./img img.png\\\\\\") 1x, url(\\\\\\"./img img.png\\\\\\") 2x);\\\\n\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___9___ + \\") 1x, \\" + ___CSS_LOADER_URL___14___ + \\" 2x);\\\\n}\\\\n\\", \\"\\"]);
@@ -981,40 +981,40 @@ exports[`url option true and modules \`false\`: module 1`] = `
 "exports = module.exports = require(\\"../../../src/runtime/api.js\\")(false);
 // Imports
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!./imported.css\\"), \\"\\");
-var urlEscape = require(\\"../../../src/runtime/url-escape.js\\");
-var ___CSS_LOADER_URL___0___ = urlEscape(require(\\"./img.png\\"));
-var ___CSS_LOADER_URL___1___ = urlEscape(require(\\"./img.png\\") + \\"#hash\\");
-var ___CSS_LOADER_URL___2___ = urlEscape(require(\\"package/img.png\\"));
-var ___CSS_LOADER_URL___3___ = urlEscape(require(\\"./other-img.png\\"));
-var ___CSS_LOADER_URL___4___ = urlEscape(require(\\"./img img.png\\"));
-var ___CSS_LOADER_URL___5___ = urlEscape(require(\\"./font.woff\\"));
-var ___CSS_LOADER_URL___6___ = urlEscape(require(\\"./font.woff2\\"));
-var ___CSS_LOADER_URL___7___ = urlEscape(require(\\"./font.eot\\"));
-var ___CSS_LOADER_URL___8___ = urlEscape(require(\\"package/font.ttf\\"));
-var ___CSS_LOADER_URL___9___ = urlEscape(require(\\"./font with spaces.eot\\"));
-var ___CSS_LOADER_URL___10___ = urlEscape(require(\\"./font.svg\\") + \\"#svgFontName\\");
-var ___CSS_LOADER_URL___11___ = urlEscape(require(\\"./font.woff2?foo=bar\\"));
-var ___CSS_LOADER_URL___12___ = urlEscape(require(\\"./font.eot\\") + \\"?#iefix\\");
-var ___CSS_LOADER_URL___13___ = urlEscape(require(\\"./font with spaces.eot\\") + \\"?#iefix\\");
-var ___CSS_LOADER_URL___14___ = urlEscape(require(\\"./img1x.png\\"));
-var ___CSS_LOADER_URL___15___ = urlEscape(require(\\"./img2x.png\\"));
-var ___CSS_LOADER_URL___16___ = urlEscape(require(\\"./img.png?foo\\"));
-var ___CSS_LOADER_URL___17___ = urlEscape(require(\\"./img.png?foo=bar\\"));
-var ___CSS_LOADER_URL___18___ = urlEscape(require(\\"./img.png?foo=bar\\") + \\"#hash\\");
-var ___CSS_LOADER_URL___19___ = urlEscape(require(\\"./img.png?\\"));
-var ___CSS_LOADER_URL___20___ = urlEscape(require(\\"./img-simple.png\\"));
-var ___CSS_LOADER_URL___21___ = urlEscape(require(\\"../url/img-simple.png\\"));
-var ___CSS_LOADER_URL___22___ = urlEscape(require(\\"aliasesImg/img.png\\"));
-var ___CSS_LOADER_URL___23___ = urlEscape(require(\\"./nested/img.png\\"));
-var ___CSS_LOADER_URL___24___ = urlEscape(require(\\"./nested/img.png\\"));
-var ___CSS_LOADER_URL___25___ = urlEscape(require(\\"./img1x.png\\"), true);
-var ___CSS_LOADER_URL___26___ = urlEscape(require(\\"./img2x.png\\"), true);
-var ___CSS_LOADER_URL___27___ = urlEscape(require(\\"./img img.png\\"), true);
-var ___CSS_LOADER_URL___28___ = urlEscape(require(\\"./img3x.png\\"), true);
-var ___CSS_LOADER_URL___29___ = urlEscape(require(\\"./img1x.png?foo=bar\\"), true);
-var ___CSS_LOADER_URL___30___ = urlEscape(require(\\"./img1x.png\\") + \\"#hash\\", true);
-var ___CSS_LOADER_URL___31___ = urlEscape(require(\\"./img1x.png\\") + \\"?#iefix\\", true);
-var ___CSS_LOADER_URL___32___ = urlEscape(require(\\"./img3x.png\\"));
+var getUrl = require(\\"../../../src/runtime/get-url.js\\");
+var ___CSS_LOADER_URL___0___ = getUrl(require(\\"./img.png\\"));
+var ___CSS_LOADER_URL___1___ = getUrl(require(\\"./img.png\\") + \\"#hash\\");
+var ___CSS_LOADER_URL___2___ = getUrl(require(\\"package/img.png\\"));
+var ___CSS_LOADER_URL___3___ = getUrl(require(\\"./other-img.png\\"));
+var ___CSS_LOADER_URL___4___ = getUrl(require(\\"./img img.png\\"));
+var ___CSS_LOADER_URL___5___ = getUrl(require(\\"./font.woff\\"));
+var ___CSS_LOADER_URL___6___ = getUrl(require(\\"./font.woff2\\"));
+var ___CSS_LOADER_URL___7___ = getUrl(require(\\"./font.eot\\"));
+var ___CSS_LOADER_URL___8___ = getUrl(require(\\"package/font.ttf\\"));
+var ___CSS_LOADER_URL___9___ = getUrl(require(\\"./font with spaces.eot\\"));
+var ___CSS_LOADER_URL___10___ = getUrl(require(\\"./font.svg\\") + \\"#svgFontName\\");
+var ___CSS_LOADER_URL___11___ = getUrl(require(\\"./font.woff2?foo=bar\\"));
+var ___CSS_LOADER_URL___12___ = getUrl(require(\\"./font.eot\\") + \\"?#iefix\\");
+var ___CSS_LOADER_URL___13___ = getUrl(require(\\"./font with spaces.eot\\") + \\"?#iefix\\");
+var ___CSS_LOADER_URL___14___ = getUrl(require(\\"./img1x.png\\"));
+var ___CSS_LOADER_URL___15___ = getUrl(require(\\"./img2x.png\\"));
+var ___CSS_LOADER_URL___16___ = getUrl(require(\\"./img.png?foo\\"));
+var ___CSS_LOADER_URL___17___ = getUrl(require(\\"./img.png?foo=bar\\"));
+var ___CSS_LOADER_URL___18___ = getUrl(require(\\"./img.png?foo=bar\\") + \\"#hash\\");
+var ___CSS_LOADER_URL___19___ = getUrl(require(\\"./img.png?\\"));
+var ___CSS_LOADER_URL___20___ = getUrl(require(\\"./img-simple.png\\"));
+var ___CSS_LOADER_URL___21___ = getUrl(require(\\"../url/img-simple.png\\"));
+var ___CSS_LOADER_URL___22___ = getUrl(require(\\"aliasesImg/img.png\\"));
+var ___CSS_LOADER_URL___23___ = getUrl(require(\\"./nested/img.png\\"));
+var ___CSS_LOADER_URL___24___ = getUrl(require(\\"./nested/img.png\\"));
+var ___CSS_LOADER_URL___25___ = getUrl(require(\\"./img1x.png\\"), true);
+var ___CSS_LOADER_URL___26___ = getUrl(require(\\"./img2x.png\\"), true);
+var ___CSS_LOADER_URL___27___ = getUrl(require(\\"./img img.png\\"), true);
+var ___CSS_LOADER_URL___28___ = getUrl(require(\\"./img3x.png\\"), true);
+var ___CSS_LOADER_URL___29___ = getUrl(require(\\"./img1x.png?foo=bar\\"), true);
+var ___CSS_LOADER_URL___30___ = getUrl(require(\\"./img1x.png\\") + \\"#hash\\", true);
+var ___CSS_LOADER_URL___31___ = getUrl(require(\\"./img1x.png\\") + \\"?#iefix\\", true);
+var ___CSS_LOADER_URL___32___ = getUrl(require(\\"./img3x.png\\"));
 
 // Module
 exports.push([module.id, \\".class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___1___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\n    \\" + ___CSS_LOADER_URL___0___ + \\"\\\\n  );\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\" + ___CSS_LOADER_URL___2___ + \\") url(\\" + ___CSS_LOADER_URL___3___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\\\\"http://www.w3.org/2000/svg\\\\\\"><filter id=\\\\\\"filter\\\\\\"><feGaussianBlur in=\\\\\\"SourceAlpha\\\\\\" stdDeviation=\\\\\\"0\\\\\\" /><feOffset dx=\\\\\\"1\\\\\\" dy=\\\\\\"2\\\\\\" result=\\\\\\"offsetblur\\\\\\" /><feFlood flood-color=\\\\\\"rgba(255,255,255,1)\\\\\\" /><feComposite in2=\\\\\\"offsetblur\\\\\\" operator=\\\\\\"in\\\\\\" /><feMerge><feMergeNode /><feMergeNode in=\\\\\\"SourceGraphic\\\\\\" /></feMerge></filter></svg>#filter');\\\\n}\\\\n\\\\n.class {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.highlight {\\\\n  filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n  filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(\\" + ___CSS_LOADER_URL___5___ + \\") format('woff'),\\\\n    url(\\" + ___CSS_LOADER_URL___6___ + \\") format('woff2'),\\\\n    url(\\" + ___CSS_LOADER_URL___7___ + \\") format('eot'),\\\\n    url(\\" + ___CSS_LOADER_URL___8___ + \\") format('truetype'),\\\\n    url(\\" + ___CSS_LOADER_URL___9___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n    url(\\" + ___CSS_LOADER_URL___10___ + \\") format('svg'),\\\\n    url(\\" + ___CSS_LOADER_URL___11___ + \\") format('woff2'),\\\\n    url(\\" + ___CSS_LOADER_URL___12___ + \\") format('embedded-opentype'),\\\\n    url(\\" + ___CSS_LOADER_URL___13___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n  body {\\\\n    background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n  }\\\\n}\\\\n\\\\na {\\\\n  content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n  content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n  background: green url(\\" + ___CSS_LOADER_URL___0___ + \\") xyz;\\\\n}\\\\n\\\\n.a {\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x)\\\\n}\\\\n\\\\n.class {\\\\n  background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url('   ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\\\n  ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___16___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___17___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___18___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___18___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___19___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\" + ___CSS_LOADER_URL___0___ + \\") url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\") url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: ___CSS_LOADER_URL___;\\\\n  background: ___CSS_LOADER_URL___INDEX___;\\\\n  background: ___CSS_LOADER_URL___99999___;\\\\n  background: ___CSS_LOADER_IMPORT___;\\\\n  background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n  background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n  background: url(\\" + ___CSS_LOADER_URL___20___ + \\");\\\\n}\\\\n\\\\n.not-resolved {\\\\n  background: url('/img-simple.png');\\\\n}\\\\n\\\\n.above-below {\\\\n  background: url(\\" + ___CSS_LOADER_URL___21___ + \\");\\\\n}\\\\n\\\\n.tilde {\\\\n  background: url(\\" + ___CSS_LOADER_URL___2___ + \\");\\\\n}\\\\n\\\\n.aliases {\\\\n  background: url(\\" + ___CSS_LOADER_URL___22___ + \\");\\\\n}\\\\n\\\\na {\\\\n  background: url(\\" + ___CSS_LOADER_URL___23___ + \\");\\\\n}\\\\n\\\\na {\\\\n  background: url(\\" + ___CSS_LOADER_URL___24___ + \\");\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  /* Broken */\\\\n  background-image: -webkit-image-set();\\\\n  background-image: -webkit-image-set('');\\\\n  background-image: image-set();\\\\n  background-image: image-set('');\\\\n  background-image: image-set(\\\\\\"\\\\\\");\\\\n  background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n  background-image: image-set(url());\\\\n  background-image: image-set(\\\\n    url()\\\\n  );\\\\n  background-image: image-set(URL());\\\\n  background-image: image-set(url(''));\\\\n  background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n  background-image: image-set(url('') 1x);\\\\n  background-image: image-set(1x);\\\\n  background-image: image-set(\\\\n    1x\\\\n  );\\\\n  background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n  /* Strings */\\\\n  background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___27___ + \\" 1x, \\" + ___CSS_LOADER_URL___27___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x),\\\\n    image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x);\\\\n  background-image: image-set(\\\\n    \\" + ___CSS_LOADER_URL___25___ + \\" 1x,\\\\n    \\" + ___CSS_LOADER_URL___26___ + \\" 2x,\\\\n    \\" + ___CSS_LOADER_URL___28___ + \\" 600dpi\\\\n  );\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___29___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___30___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___31___ + \\" 1x);\\\\n\\\\n  /* With \`url\` function */\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x);\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x);\\\\n  background-image: -webkit-image-set(\\\\n    url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x);\\\\n  background-image: image-set(\\\\n    url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x);\\\\n  background-image: image-set(\\\\n    url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x,\\\\n    url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x,\\\\n    url(\\" + ___CSS_LOADER_URL___32___ + \\") 600dpi\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___4___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___4___ + \\") 2x);\\\\n\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x);\\\\n}\\\\n\\", \\"\\"]);
@@ -1383,40 +1383,40 @@ exports[`url option true and modules \`global\`: module 1`] = `
 "exports = module.exports = require(\\"../../../src/runtime/api.js\\")(false);
 // Imports
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!./imported.css\\"), \\"\\");
-var urlEscape = require(\\"../../../src/runtime/url-escape.js\\");
-var ___CSS_LOADER_URL___0___ = urlEscape(require(\\"./img.png\\"));
-var ___CSS_LOADER_URL___1___ = urlEscape(require(\\"./img.png\\") + \\"#hash\\");
-var ___CSS_LOADER_URL___2___ = urlEscape(require(\\"package/img.png\\"));
-var ___CSS_LOADER_URL___3___ = urlEscape(require(\\"./other-img.png\\"));
-var ___CSS_LOADER_URL___4___ = urlEscape(require(\\"./img img.png\\"));
-var ___CSS_LOADER_URL___5___ = urlEscape(require(\\"./font.woff\\"));
-var ___CSS_LOADER_URL___6___ = urlEscape(require(\\"./font.woff2\\"));
-var ___CSS_LOADER_URL___7___ = urlEscape(require(\\"./font.eot\\"));
-var ___CSS_LOADER_URL___8___ = urlEscape(require(\\"package/font.ttf\\"));
-var ___CSS_LOADER_URL___9___ = urlEscape(require(\\"./font with spaces.eot\\"));
-var ___CSS_LOADER_URL___10___ = urlEscape(require(\\"./font.svg\\") + \\"#svgFontName\\");
-var ___CSS_LOADER_URL___11___ = urlEscape(require(\\"./font.woff2?foo=bar\\"));
-var ___CSS_LOADER_URL___12___ = urlEscape(require(\\"./font.eot\\") + \\"?#iefix\\");
-var ___CSS_LOADER_URL___13___ = urlEscape(require(\\"./font with spaces.eot\\") + \\"?#iefix\\");
-var ___CSS_LOADER_URL___14___ = urlEscape(require(\\"./img1x.png\\"));
-var ___CSS_LOADER_URL___15___ = urlEscape(require(\\"./img2x.png\\"));
-var ___CSS_LOADER_URL___16___ = urlEscape(require(\\"./img.png?foo\\"));
-var ___CSS_LOADER_URL___17___ = urlEscape(require(\\"./img.png?foo=bar\\"));
-var ___CSS_LOADER_URL___18___ = urlEscape(require(\\"./img.png?foo=bar\\") + \\"#hash\\");
-var ___CSS_LOADER_URL___19___ = urlEscape(require(\\"./img.png?\\"));
-var ___CSS_LOADER_URL___20___ = urlEscape(require(\\"./img-simple.png\\"));
-var ___CSS_LOADER_URL___21___ = urlEscape(require(\\"../url/img-simple.png\\"));
-var ___CSS_LOADER_URL___22___ = urlEscape(require(\\"aliasesImg/img.png\\"));
-var ___CSS_LOADER_URL___23___ = urlEscape(require(\\"./nested/img.png\\"));
-var ___CSS_LOADER_URL___24___ = urlEscape(require(\\"./nested/img.png\\"));
-var ___CSS_LOADER_URL___25___ = urlEscape(require(\\"./img1x.png\\"), true);
-var ___CSS_LOADER_URL___26___ = urlEscape(require(\\"./img2x.png\\"), true);
-var ___CSS_LOADER_URL___27___ = urlEscape(require(\\"./img img.png\\"), true);
-var ___CSS_LOADER_URL___28___ = urlEscape(require(\\"./img3x.png\\"), true);
-var ___CSS_LOADER_URL___29___ = urlEscape(require(\\"./img1x.png?foo=bar\\"), true);
-var ___CSS_LOADER_URL___30___ = urlEscape(require(\\"./img1x.png\\") + \\"#hash\\", true);
-var ___CSS_LOADER_URL___31___ = urlEscape(require(\\"./img1x.png\\") + \\"?#iefix\\", true);
-var ___CSS_LOADER_URL___32___ = urlEscape(require(\\"./img3x.png\\"));
+var getUrl = require(\\"../../../src/runtime/get-url.js\\");
+var ___CSS_LOADER_URL___0___ = getUrl(require(\\"./img.png\\"));
+var ___CSS_LOADER_URL___1___ = getUrl(require(\\"./img.png\\") + \\"#hash\\");
+var ___CSS_LOADER_URL___2___ = getUrl(require(\\"package/img.png\\"));
+var ___CSS_LOADER_URL___3___ = getUrl(require(\\"./other-img.png\\"));
+var ___CSS_LOADER_URL___4___ = getUrl(require(\\"./img img.png\\"));
+var ___CSS_LOADER_URL___5___ = getUrl(require(\\"./font.woff\\"));
+var ___CSS_LOADER_URL___6___ = getUrl(require(\\"./font.woff2\\"));
+var ___CSS_LOADER_URL___7___ = getUrl(require(\\"./font.eot\\"));
+var ___CSS_LOADER_URL___8___ = getUrl(require(\\"package/font.ttf\\"));
+var ___CSS_LOADER_URL___9___ = getUrl(require(\\"./font with spaces.eot\\"));
+var ___CSS_LOADER_URL___10___ = getUrl(require(\\"./font.svg\\") + \\"#svgFontName\\");
+var ___CSS_LOADER_URL___11___ = getUrl(require(\\"./font.woff2?foo=bar\\"));
+var ___CSS_LOADER_URL___12___ = getUrl(require(\\"./font.eot\\") + \\"?#iefix\\");
+var ___CSS_LOADER_URL___13___ = getUrl(require(\\"./font with spaces.eot\\") + \\"?#iefix\\");
+var ___CSS_LOADER_URL___14___ = getUrl(require(\\"./img1x.png\\"));
+var ___CSS_LOADER_URL___15___ = getUrl(require(\\"./img2x.png\\"));
+var ___CSS_LOADER_URL___16___ = getUrl(require(\\"./img.png?foo\\"));
+var ___CSS_LOADER_URL___17___ = getUrl(require(\\"./img.png?foo=bar\\"));
+var ___CSS_LOADER_URL___18___ = getUrl(require(\\"./img.png?foo=bar\\") + \\"#hash\\");
+var ___CSS_LOADER_URL___19___ = getUrl(require(\\"./img.png?\\"));
+var ___CSS_LOADER_URL___20___ = getUrl(require(\\"./img-simple.png\\"));
+var ___CSS_LOADER_URL___21___ = getUrl(require(\\"../url/img-simple.png\\"));
+var ___CSS_LOADER_URL___22___ = getUrl(require(\\"aliasesImg/img.png\\"));
+var ___CSS_LOADER_URL___23___ = getUrl(require(\\"./nested/img.png\\"));
+var ___CSS_LOADER_URL___24___ = getUrl(require(\\"./nested/img.png\\"));
+var ___CSS_LOADER_URL___25___ = getUrl(require(\\"./img1x.png\\"), true);
+var ___CSS_LOADER_URL___26___ = getUrl(require(\\"./img2x.png\\"), true);
+var ___CSS_LOADER_URL___27___ = getUrl(require(\\"./img img.png\\"), true);
+var ___CSS_LOADER_URL___28___ = getUrl(require(\\"./img3x.png\\"), true);
+var ___CSS_LOADER_URL___29___ = getUrl(require(\\"./img1x.png?foo=bar\\"), true);
+var ___CSS_LOADER_URL___30___ = getUrl(require(\\"./img1x.png\\") + \\"#hash\\", true);
+var ___CSS_LOADER_URL___31___ = getUrl(require(\\"./img1x.png\\") + \\"?#iefix\\", true);
+var ___CSS_LOADER_URL___32___ = getUrl(require(\\"./img3x.png\\"));
 
 // Module
 exports.push([module.id, \\".class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___1___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\n    \\" + ___CSS_LOADER_URL___0___ + \\"\\\\n  );\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\" + ___CSS_LOADER_URL___2___ + \\") url(\\" + ___CSS_LOADER_URL___3___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\\\\"http://www.w3.org/2000/svg\\\\\\"><filter id=\\\\\\"filter\\\\\\"><feGaussianBlur in=\\\\\\"SourceAlpha\\\\\\" stdDeviation=\\\\\\"0\\\\\\" /><feOffset dx=\\\\\\"1\\\\\\" dy=\\\\\\"2\\\\\\" result=\\\\\\"offsetblur\\\\\\" /><feFlood flood-color=\\\\\\"rgba(255,255,255,1)\\\\\\" /><feComposite in2=\\\\\\"offsetblur\\\\\\" operator=\\\\\\"in\\\\\\" /><feMerge><feMergeNode /><feMergeNode in=\\\\\\"SourceGraphic\\\\\\" /></feMerge></filter></svg>#filter');\\\\n}\\\\n\\\\n.class {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.highlight {\\\\n  filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n  filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(\\" + ___CSS_LOADER_URL___5___ + \\") format('woff'),\\\\n    url(\\" + ___CSS_LOADER_URL___6___ + \\") format('woff2'),\\\\n    url(\\" + ___CSS_LOADER_URL___7___ + \\") format('eot'),\\\\n    url(\\" + ___CSS_LOADER_URL___8___ + \\") format('truetype'),\\\\n    url(\\" + ___CSS_LOADER_URL___9___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n    url(\\" + ___CSS_LOADER_URL___10___ + \\") format('svg'),\\\\n    url(\\" + ___CSS_LOADER_URL___11___ + \\") format('woff2'),\\\\n    url(\\" + ___CSS_LOADER_URL___12___ + \\") format('embedded-opentype'),\\\\n    url(\\" + ___CSS_LOADER_URL___13___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n  body {\\\\n    background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n  }\\\\n}\\\\n\\\\na {\\\\n  content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n  content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n  background: green url(\\" + ___CSS_LOADER_URL___0___ + \\") xyz;\\\\n}\\\\n\\\\n.a {\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x)\\\\n}\\\\n\\\\n.class {\\\\n  background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url('   ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\\\n  \\\\n  ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___16___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___17___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___18___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___18___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___19___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\" + ___CSS_LOADER_URL___0___ + \\") url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\") url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: ___CSS_LOADER_URL___;\\\\n  background: ___CSS_LOADER_URL___INDEX___;\\\\n  background: ___CSS_LOADER_URL___99999___;\\\\n  background: ___CSS_LOADER_IMPORT___;\\\\n  background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n  background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n  background: url(\\" + ___CSS_LOADER_URL___20___ + \\");\\\\n}\\\\n\\\\n.not-resolved {\\\\n  background: url('/img-simple.png');\\\\n}\\\\n\\\\n.above-below {\\\\n  background: url(\\" + ___CSS_LOADER_URL___21___ + \\");\\\\n}\\\\n\\\\n.tilde {\\\\n  background: url(\\" + ___CSS_LOADER_URL___2___ + \\");\\\\n}\\\\n\\\\n.aliases {\\\\n  background: url(\\" + ___CSS_LOADER_URL___22___ + \\");\\\\n}\\\\n\\\\na {\\\\n  background: url(\\" + ___CSS_LOADER_URL___23___ + \\");\\\\n}\\\\n\\\\na {\\\\n  background: url(\\" + ___CSS_LOADER_URL___24___ + \\");\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  /* Broken */\\\\n  background-image: -webkit-image-set();\\\\n  background-image: -webkit-image-set('');\\\\n  background-image: image-set();\\\\n  background-image: image-set('');\\\\n  background-image: image-set(\\\\\\"\\\\\\");\\\\n  background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n  background-image: image-set(url());\\\\n  background-image: image-set(\\\\n    url()\\\\n  );\\\\n  background-image: image-set(URL());\\\\n  background-image: image-set(url(''));\\\\n  background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n  background-image: image-set(url('') 1x);\\\\n  background-image: image-set(1x);\\\\n  background-image: image-set(\\\\n    1x\\\\n  );\\\\n  background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n  /* Strings */\\\\n  background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___27___ + \\" 1x, \\" + ___CSS_LOADER_URL___27___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x),\\\\n    image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x);\\\\n  background-image: image-set(\\\\n    \\" + ___CSS_LOADER_URL___25___ + \\" 1x,\\\\n    \\" + ___CSS_LOADER_URL___26___ + \\" 2x,\\\\n    \\" + ___CSS_LOADER_URL___28___ + \\" 600dpi\\\\n  );\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___29___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___30___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___31___ + \\" 1x);\\\\n\\\\n  /* With \`url\` function */\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x);\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x);\\\\n  background-image: -webkit-image-set(\\\\n    url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x);\\\\n  background-image: image-set(\\\\n    url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x);\\\\n  background-image: image-set(\\\\n    url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x,\\\\n    url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x,\\\\n    url(\\" + ___CSS_LOADER_URL___32___ + \\") 600dpi\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___4___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___4___ + \\") 2x);\\\\n\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x);\\\\n}\\\\n\\", \\"\\"]);
@@ -1786,40 +1786,40 @@ exports[`url option true and modules \`local\`: module 1`] = `
 "exports = module.exports = require(\\"../../../src/runtime/api.js\\")(false);
 // Imports
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!./imported.css\\"), \\"\\");
-var urlEscape = require(\\"../../../src/runtime/url-escape.js\\");
-var ___CSS_LOADER_URL___0___ = urlEscape(require(\\"./img.png\\"));
-var ___CSS_LOADER_URL___1___ = urlEscape(require(\\"./img.png\\") + \\"#hash\\");
-var ___CSS_LOADER_URL___2___ = urlEscape(require(\\"package/img.png\\"));
-var ___CSS_LOADER_URL___3___ = urlEscape(require(\\"./other-img.png\\"));
-var ___CSS_LOADER_URL___4___ = urlEscape(require(\\"./img img.png\\"));
-var ___CSS_LOADER_URL___5___ = urlEscape(require(\\"./font.woff\\"));
-var ___CSS_LOADER_URL___6___ = urlEscape(require(\\"./font.woff2\\"));
-var ___CSS_LOADER_URL___7___ = urlEscape(require(\\"./font.eot\\"));
-var ___CSS_LOADER_URL___8___ = urlEscape(require(\\"package/font.ttf\\"));
-var ___CSS_LOADER_URL___9___ = urlEscape(require(\\"./font with spaces.eot\\"));
-var ___CSS_LOADER_URL___10___ = urlEscape(require(\\"./font.svg\\") + \\"#svgFontName\\");
-var ___CSS_LOADER_URL___11___ = urlEscape(require(\\"./font.woff2?foo=bar\\"));
-var ___CSS_LOADER_URL___12___ = urlEscape(require(\\"./font.eot\\") + \\"?#iefix\\");
-var ___CSS_LOADER_URL___13___ = urlEscape(require(\\"./font with spaces.eot\\") + \\"?#iefix\\");
-var ___CSS_LOADER_URL___14___ = urlEscape(require(\\"./img1x.png\\"));
-var ___CSS_LOADER_URL___15___ = urlEscape(require(\\"./img2x.png\\"));
-var ___CSS_LOADER_URL___16___ = urlEscape(require(\\"./img.png?foo\\"));
-var ___CSS_LOADER_URL___17___ = urlEscape(require(\\"./img.png?foo=bar\\"));
-var ___CSS_LOADER_URL___18___ = urlEscape(require(\\"./img.png?foo=bar\\") + \\"#hash\\");
-var ___CSS_LOADER_URL___19___ = urlEscape(require(\\"./img.png?\\"));
-var ___CSS_LOADER_URL___20___ = urlEscape(require(\\"./img-simple.png\\"));
-var ___CSS_LOADER_URL___21___ = urlEscape(require(\\"../url/img-simple.png\\"));
-var ___CSS_LOADER_URL___22___ = urlEscape(require(\\"aliasesImg/img.png\\"));
-var ___CSS_LOADER_URL___23___ = urlEscape(require(\\"./nested/img.png\\"));
-var ___CSS_LOADER_URL___24___ = urlEscape(require(\\"./nested/img.png\\"));
-var ___CSS_LOADER_URL___25___ = urlEscape(require(\\"./img1x.png\\"), true);
-var ___CSS_LOADER_URL___26___ = urlEscape(require(\\"./img2x.png\\"), true);
-var ___CSS_LOADER_URL___27___ = urlEscape(require(\\"./img img.png\\"), true);
-var ___CSS_LOADER_URL___28___ = urlEscape(require(\\"./img3x.png\\"), true);
-var ___CSS_LOADER_URL___29___ = urlEscape(require(\\"./img1x.png?foo=bar\\"), true);
-var ___CSS_LOADER_URL___30___ = urlEscape(require(\\"./img1x.png\\") + \\"#hash\\", true);
-var ___CSS_LOADER_URL___31___ = urlEscape(require(\\"./img1x.png\\") + \\"?#iefix\\", true);
-var ___CSS_LOADER_URL___32___ = urlEscape(require(\\"./img3x.png\\"));
+var getUrl = require(\\"../../../src/runtime/get-url.js\\");
+var ___CSS_LOADER_URL___0___ = getUrl(require(\\"./img.png\\"));
+var ___CSS_LOADER_URL___1___ = getUrl(require(\\"./img.png\\") + \\"#hash\\");
+var ___CSS_LOADER_URL___2___ = getUrl(require(\\"package/img.png\\"));
+var ___CSS_LOADER_URL___3___ = getUrl(require(\\"./other-img.png\\"));
+var ___CSS_LOADER_URL___4___ = getUrl(require(\\"./img img.png\\"));
+var ___CSS_LOADER_URL___5___ = getUrl(require(\\"./font.woff\\"));
+var ___CSS_LOADER_URL___6___ = getUrl(require(\\"./font.woff2\\"));
+var ___CSS_LOADER_URL___7___ = getUrl(require(\\"./font.eot\\"));
+var ___CSS_LOADER_URL___8___ = getUrl(require(\\"package/font.ttf\\"));
+var ___CSS_LOADER_URL___9___ = getUrl(require(\\"./font with spaces.eot\\"));
+var ___CSS_LOADER_URL___10___ = getUrl(require(\\"./font.svg\\") + \\"#svgFontName\\");
+var ___CSS_LOADER_URL___11___ = getUrl(require(\\"./font.woff2?foo=bar\\"));
+var ___CSS_LOADER_URL___12___ = getUrl(require(\\"./font.eot\\") + \\"?#iefix\\");
+var ___CSS_LOADER_URL___13___ = getUrl(require(\\"./font with spaces.eot\\") + \\"?#iefix\\");
+var ___CSS_LOADER_URL___14___ = getUrl(require(\\"./img1x.png\\"));
+var ___CSS_LOADER_URL___15___ = getUrl(require(\\"./img2x.png\\"));
+var ___CSS_LOADER_URL___16___ = getUrl(require(\\"./img.png?foo\\"));
+var ___CSS_LOADER_URL___17___ = getUrl(require(\\"./img.png?foo=bar\\"));
+var ___CSS_LOADER_URL___18___ = getUrl(require(\\"./img.png?foo=bar\\") + \\"#hash\\");
+var ___CSS_LOADER_URL___19___ = getUrl(require(\\"./img.png?\\"));
+var ___CSS_LOADER_URL___20___ = getUrl(require(\\"./img-simple.png\\"));
+var ___CSS_LOADER_URL___21___ = getUrl(require(\\"../url/img-simple.png\\"));
+var ___CSS_LOADER_URL___22___ = getUrl(require(\\"aliasesImg/img.png\\"));
+var ___CSS_LOADER_URL___23___ = getUrl(require(\\"./nested/img.png\\"));
+var ___CSS_LOADER_URL___24___ = getUrl(require(\\"./nested/img.png\\"));
+var ___CSS_LOADER_URL___25___ = getUrl(require(\\"./img1x.png\\"), true);
+var ___CSS_LOADER_URL___26___ = getUrl(require(\\"./img2x.png\\"), true);
+var ___CSS_LOADER_URL___27___ = getUrl(require(\\"./img img.png\\"), true);
+var ___CSS_LOADER_URL___28___ = getUrl(require(\\"./img3x.png\\"), true);
+var ___CSS_LOADER_URL___29___ = getUrl(require(\\"./img1x.png?foo=bar\\"), true);
+var ___CSS_LOADER_URL___30___ = getUrl(require(\\"./img1x.png\\") + \\"#hash\\", true);
+var ___CSS_LOADER_URL___31___ = getUrl(require(\\"./img1x.png\\") + \\"?#iefix\\", true);
+var ___CSS_LOADER_URL___32___ = getUrl(require(\\"./img3x.png\\"));
 
 // Module
 exports.push([module.id, \\"._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: url(\\" + ___CSS_LOADER_URL___1___ + \\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: url(\\\\n    \\" + ___CSS_LOADER_URL___0___ + \\"\\\\n  );\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___0___ + \\" ) xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___0___ + \\" ) xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___0___ + \\" ) xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url(\\" + ___CSS_LOADER_URL___2___ + \\") url(\\" + ___CSS_LOADER_URL___3___ + \\") xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___4___ + \\" ) xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___4___ + \\" ) xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\\\\"http://www.w3.org/2000/svg\\\\\\"><filter id=\\\\\\"filter\\\\\\"><feGaussianBlur in=\\\\\\"SourceAlpha\\\\\\" stdDeviation=\\\\\\"0\\\\\\" /><feOffset dx=\\\\\\"1\\\\\\" dy=\\\\\\"2\\\\\\" result=\\\\\\"offsetblur\\\\\\" /><feFlood flood-color=\\\\\\"rgba(255,255,255,1)\\\\\\" /><feComposite in2=\\\\\\"offsetblur\\\\\\" operator=\\\\\\"in\\\\\\" /><feMerge><feMergeNode /><feMergeNode in=\\\\\\"SourceGraphic\\\\\\" /></feMerge></filter></svg>#filter');\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.lml_5t-nQdGlKc9OtKjUO {\\\\n  filter: url(#highlight);\\\\n}\\\\n\\\\n.lml_5t-nQdGlKc9OtKjUO {\\\\n  filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(\\" + ___CSS_LOADER_URL___5___ + \\") format('woff'),\\\\n    url(\\" + ___CSS_LOADER_URL___6___ + \\") format('woff2'),\\\\n    url(\\" + ___CSS_LOADER_URL___7___ + \\") format('eot'),\\\\n    url(\\" + ___CSS_LOADER_URL___8___ + \\") format('truetype'),\\\\n    url(\\" + ___CSS_LOADER_URL___9___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n    url(\\" + ___CSS_LOADER_URL___10___ + \\") format('svg'),\\\\n    url(\\" + ___CSS_LOADER_URL___11___ + \\") format('woff2'),\\\\n    url(\\" + ___CSS_LOADER_URL___12___ + \\") format('embedded-opentype'),\\\\n    url(\\" + ___CSS_LOADER_URL___13___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n  body {\\\\n    background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n  }\\\\n}\\\\n\\\\na {\\\\n  content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n  content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes O9YPhh3OZdzrkj25z-J92 {\\\\n  background: green url(\\" + ___CSS_LOADER_URL___0___ + \\") xyz;\\\\n}\\\\n\\\\n._1fj5hnOVZ8KZVIGyZbPW3p {\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x)\\\\n}\\\\n\\\\n._1fj5hnOVZ8KZVIGyZbPW3p {\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x)\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url() xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url('') xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url('   ') xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url(\\\\n  \\\\n  ) xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: url(\\" + ___CSS_LOADER_URL___16___ + \\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: url(\\" + ___CSS_LOADER_URL___17___ + \\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: url(\\" + ___CSS_LOADER_URL___18___ + \\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: url(\\" + ___CSS_LOADER_URL___18___ + \\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: url(\\" + ___CSS_LOADER_URL___19___ + \\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background-image: url(\\" + ___CSS_LOADER_URL___0___ + \\") url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\") url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: ___CSS_LOADER_URL___;\\\\n  background: ___CSS_LOADER_URL___INDEX___;\\\\n  background: ___CSS_LOADER_URL___99999___;\\\\n  background: ___CSS_LOADER_IMPORT___;\\\\n  background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n  background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n._2rb58RF5u2ij-3X8XSJaVP {\\\\n  background: url(\\" + ___CSS_LOADER_URL___20___ + \\");\\\\n}\\\\n\\\\n.mrf4tRz4T71pNku_3IMH3 {\\\\n  background: url('/img-simple.png');\\\\n}\\\\n\\\\n.c5dNFA35opKWoGz7aRj0k {\\\\n  background: url(\\" + ___CSS_LOADER_URL___21___ + \\");\\\\n}\\\\n\\\\n._2Q5a0g3xEHAboOADfIxHa5 {\\\\n  background: url(\\" + ___CSS_LOADER_URL___2___ + \\");\\\\n}\\\\n\\\\n._2TX-7lb63hK5h5DzELIAbU {\\\\n  background: url(\\" + ___CSS_LOADER_URL___22___ + \\");\\\\n}\\\\n\\\\na {\\\\n  background: url(\\" + ___CSS_LOADER_URL___23___ + \\");\\\\n}\\\\n\\\\na {\\\\n  background: url(\\" + ___CSS_LOADER_URL___24___ + \\");\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  /* Broken */\\\\n  background-image: -webkit-image-set();\\\\n  background-image: -webkit-image-set('');\\\\n  background-image: image-set();\\\\n  background-image: image-set('');\\\\n  background-image: image-set(\\\\\\"\\\\\\");\\\\n  background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n  background-image: image-set(url());\\\\n  background-image: image-set(\\\\n    url()\\\\n  );\\\\n  background-image: image-set(URL());\\\\n  background-image: image-set(url(''));\\\\n  background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n  background-image: image-set(url('') 1x);\\\\n  background-image: image-set(1x);\\\\n  background-image: image-set(\\\\n    1x\\\\n  );\\\\n  background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n  /* Strings */\\\\n  background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___27___ + \\" 1x, \\" + ___CSS_LOADER_URL___27___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x),\\\\n    image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x);\\\\n  background-image: image-set(\\\\n    \\" + ___CSS_LOADER_URL___25___ + \\" 1x,\\\\n    \\" + ___CSS_LOADER_URL___26___ + \\" 2x,\\\\n    \\" + ___CSS_LOADER_URL___28___ + \\" 600dpi\\\\n  );\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___29___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___30___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___31___ + \\" 1x);\\\\n\\\\n  /* With \`url\` function */\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x);\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x);\\\\n  background-image: -webkit-image-set(\\\\n    url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x);\\\\n  background-image: image-set(\\\\n    url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x);\\\\n  background-image: image-set(\\\\n    url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x,\\\\n    url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x,\\\\n    url(\\" + ___CSS_LOADER_URL___32___ + \\") 600dpi\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___4___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___4___ + \\") 2x);\\\\n\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x);\\\\n}\\\\n\\", \\"\\"]);
@@ -2200,40 +2200,40 @@ exports[`url option true and modules \`true\`: module 1`] = `
 "exports = module.exports = require(\\"../../../src/runtime/api.js\\")(false);
 // Imports
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!./imported.css\\"), \\"\\");
-var urlEscape = require(\\"../../../src/runtime/url-escape.js\\");
-var ___CSS_LOADER_URL___0___ = urlEscape(require(\\"./img.png\\"));
-var ___CSS_LOADER_URL___1___ = urlEscape(require(\\"./img.png\\") + \\"#hash\\");
-var ___CSS_LOADER_URL___2___ = urlEscape(require(\\"package/img.png\\"));
-var ___CSS_LOADER_URL___3___ = urlEscape(require(\\"./other-img.png\\"));
-var ___CSS_LOADER_URL___4___ = urlEscape(require(\\"./img img.png\\"));
-var ___CSS_LOADER_URL___5___ = urlEscape(require(\\"./font.woff\\"));
-var ___CSS_LOADER_URL___6___ = urlEscape(require(\\"./font.woff2\\"));
-var ___CSS_LOADER_URL___7___ = urlEscape(require(\\"./font.eot\\"));
-var ___CSS_LOADER_URL___8___ = urlEscape(require(\\"package/font.ttf\\"));
-var ___CSS_LOADER_URL___9___ = urlEscape(require(\\"./font with spaces.eot\\"));
-var ___CSS_LOADER_URL___10___ = urlEscape(require(\\"./font.svg\\") + \\"#svgFontName\\");
-var ___CSS_LOADER_URL___11___ = urlEscape(require(\\"./font.woff2?foo=bar\\"));
-var ___CSS_LOADER_URL___12___ = urlEscape(require(\\"./font.eot\\") + \\"?#iefix\\");
-var ___CSS_LOADER_URL___13___ = urlEscape(require(\\"./font with spaces.eot\\") + \\"?#iefix\\");
-var ___CSS_LOADER_URL___14___ = urlEscape(require(\\"./img1x.png\\"));
-var ___CSS_LOADER_URL___15___ = urlEscape(require(\\"./img2x.png\\"));
-var ___CSS_LOADER_URL___16___ = urlEscape(require(\\"./img.png?foo\\"));
-var ___CSS_LOADER_URL___17___ = urlEscape(require(\\"./img.png?foo=bar\\"));
-var ___CSS_LOADER_URL___18___ = urlEscape(require(\\"./img.png?foo=bar\\") + \\"#hash\\");
-var ___CSS_LOADER_URL___19___ = urlEscape(require(\\"./img.png?\\"));
-var ___CSS_LOADER_URL___20___ = urlEscape(require(\\"./img-simple.png\\"));
-var ___CSS_LOADER_URL___21___ = urlEscape(require(\\"../url/img-simple.png\\"));
-var ___CSS_LOADER_URL___22___ = urlEscape(require(\\"aliasesImg/img.png\\"));
-var ___CSS_LOADER_URL___23___ = urlEscape(require(\\"./nested/img.png\\"));
-var ___CSS_LOADER_URL___24___ = urlEscape(require(\\"./nested/img.png\\"));
-var ___CSS_LOADER_URL___25___ = urlEscape(require(\\"./img1x.png\\"), true);
-var ___CSS_LOADER_URL___26___ = urlEscape(require(\\"./img2x.png\\"), true);
-var ___CSS_LOADER_URL___27___ = urlEscape(require(\\"./img img.png\\"), true);
-var ___CSS_LOADER_URL___28___ = urlEscape(require(\\"./img3x.png\\"), true);
-var ___CSS_LOADER_URL___29___ = urlEscape(require(\\"./img1x.png?foo=bar\\"), true);
-var ___CSS_LOADER_URL___30___ = urlEscape(require(\\"./img1x.png\\") + \\"#hash\\", true);
-var ___CSS_LOADER_URL___31___ = urlEscape(require(\\"./img1x.png\\") + \\"?#iefix\\", true);
-var ___CSS_LOADER_URL___32___ = urlEscape(require(\\"./img3x.png\\"));
+var getUrl = require(\\"../../../src/runtime/get-url.js\\");
+var ___CSS_LOADER_URL___0___ = getUrl(require(\\"./img.png\\"));
+var ___CSS_LOADER_URL___1___ = getUrl(require(\\"./img.png\\") + \\"#hash\\");
+var ___CSS_LOADER_URL___2___ = getUrl(require(\\"package/img.png\\"));
+var ___CSS_LOADER_URL___3___ = getUrl(require(\\"./other-img.png\\"));
+var ___CSS_LOADER_URL___4___ = getUrl(require(\\"./img img.png\\"));
+var ___CSS_LOADER_URL___5___ = getUrl(require(\\"./font.woff\\"));
+var ___CSS_LOADER_URL___6___ = getUrl(require(\\"./font.woff2\\"));
+var ___CSS_LOADER_URL___7___ = getUrl(require(\\"./font.eot\\"));
+var ___CSS_LOADER_URL___8___ = getUrl(require(\\"package/font.ttf\\"));
+var ___CSS_LOADER_URL___9___ = getUrl(require(\\"./font with spaces.eot\\"));
+var ___CSS_LOADER_URL___10___ = getUrl(require(\\"./font.svg\\") + \\"#svgFontName\\");
+var ___CSS_LOADER_URL___11___ = getUrl(require(\\"./font.woff2?foo=bar\\"));
+var ___CSS_LOADER_URL___12___ = getUrl(require(\\"./font.eot\\") + \\"?#iefix\\");
+var ___CSS_LOADER_URL___13___ = getUrl(require(\\"./font with spaces.eot\\") + \\"?#iefix\\");
+var ___CSS_LOADER_URL___14___ = getUrl(require(\\"./img1x.png\\"));
+var ___CSS_LOADER_URL___15___ = getUrl(require(\\"./img2x.png\\"));
+var ___CSS_LOADER_URL___16___ = getUrl(require(\\"./img.png?foo\\"));
+var ___CSS_LOADER_URL___17___ = getUrl(require(\\"./img.png?foo=bar\\"));
+var ___CSS_LOADER_URL___18___ = getUrl(require(\\"./img.png?foo=bar\\") + \\"#hash\\");
+var ___CSS_LOADER_URL___19___ = getUrl(require(\\"./img.png?\\"));
+var ___CSS_LOADER_URL___20___ = getUrl(require(\\"./img-simple.png\\"));
+var ___CSS_LOADER_URL___21___ = getUrl(require(\\"../url/img-simple.png\\"));
+var ___CSS_LOADER_URL___22___ = getUrl(require(\\"aliasesImg/img.png\\"));
+var ___CSS_LOADER_URL___23___ = getUrl(require(\\"./nested/img.png\\"));
+var ___CSS_LOADER_URL___24___ = getUrl(require(\\"./nested/img.png\\"));
+var ___CSS_LOADER_URL___25___ = getUrl(require(\\"./img1x.png\\"), true);
+var ___CSS_LOADER_URL___26___ = getUrl(require(\\"./img2x.png\\"), true);
+var ___CSS_LOADER_URL___27___ = getUrl(require(\\"./img img.png\\"), true);
+var ___CSS_LOADER_URL___28___ = getUrl(require(\\"./img3x.png\\"), true);
+var ___CSS_LOADER_URL___29___ = getUrl(require(\\"./img1x.png?foo=bar\\"), true);
+var ___CSS_LOADER_URL___30___ = getUrl(require(\\"./img1x.png\\") + \\"#hash\\", true);
+var ___CSS_LOADER_URL___31___ = getUrl(require(\\"./img1x.png\\") + \\"?#iefix\\", true);
+var ___CSS_LOADER_URL___32___ = getUrl(require(\\"./img3x.png\\"));
 
 // Module
 exports.push([module.id, \\"._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: url(\\" + ___CSS_LOADER_URL___1___ + \\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: url(\\\\n    \\" + ___CSS_LOADER_URL___0___ + \\"\\\\n  );\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___0___ + \\" ) xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___0___ + \\" ) xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___0___ + \\" ) xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url(\\" + ___CSS_LOADER_URL___2___ + \\") url(\\" + ___CSS_LOADER_URL___3___ + \\") xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___4___ + \\" ) xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___4___ + \\" ) xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\\\\"http://www.w3.org/2000/svg\\\\\\"><filter id=\\\\\\"filter\\\\\\"><feGaussianBlur in=\\\\\\"SourceAlpha\\\\\\" stdDeviation=\\\\\\"0\\\\\\" /><feOffset dx=\\\\\\"1\\\\\\" dy=\\\\\\"2\\\\\\" result=\\\\\\"offsetblur\\\\\\" /><feFlood flood-color=\\\\\\"rgba(255,255,255,1)\\\\\\" /><feComposite in2=\\\\\\"offsetblur\\\\\\" operator=\\\\\\"in\\\\\\" /><feMerge><feMergeNode /><feMergeNode in=\\\\\\"SourceGraphic\\\\\\" /></feMerge></filter></svg>#filter');\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.lml_5t-nQdGlKc9OtKjUO {\\\\n  filter: url(#highlight);\\\\n}\\\\n\\\\n.lml_5t-nQdGlKc9OtKjUO {\\\\n  filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(\\" + ___CSS_LOADER_URL___5___ + \\") format('woff'),\\\\n    url(\\" + ___CSS_LOADER_URL___6___ + \\") format('woff2'),\\\\n    url(\\" + ___CSS_LOADER_URL___7___ + \\") format('eot'),\\\\n    url(\\" + ___CSS_LOADER_URL___8___ + \\") format('truetype'),\\\\n    url(\\" + ___CSS_LOADER_URL___9___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n    url(\\" + ___CSS_LOADER_URL___10___ + \\") format('svg'),\\\\n    url(\\" + ___CSS_LOADER_URL___11___ + \\") format('woff2'),\\\\n    url(\\" + ___CSS_LOADER_URL___12___ + \\") format('embedded-opentype'),\\\\n    url(\\" + ___CSS_LOADER_URL___13___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n  body {\\\\n    background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n  }\\\\n}\\\\n\\\\na {\\\\n  content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n  content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes O9YPhh3OZdzrkj25z-J92 {\\\\n  background: green url(\\" + ___CSS_LOADER_URL___0___ + \\") xyz;\\\\n}\\\\n\\\\n._1fj5hnOVZ8KZVIGyZbPW3p {\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x)\\\\n}\\\\n\\\\n._1fj5hnOVZ8KZVIGyZbPW3p {\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x)\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url() xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url('') xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url('   ') xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url(\\\\n  \\\\n  ) xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: url(\\" + ___CSS_LOADER_URL___16___ + \\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: url(\\" + ___CSS_LOADER_URL___17___ + \\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: url(\\" + ___CSS_LOADER_URL___18___ + \\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: url(\\" + ___CSS_LOADER_URL___18___ + \\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: url(\\" + ___CSS_LOADER_URL___19___ + \\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background-image: url(\\" + ___CSS_LOADER_URL___0___ + \\") url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\") url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  background: ___CSS_LOADER_URL___;\\\\n  background: ___CSS_LOADER_URL___INDEX___;\\\\n  background: ___CSS_LOADER_URL___99999___;\\\\n  background: ___CSS_LOADER_IMPORT___;\\\\n  background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n  background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n._2rb58RF5u2ij-3X8XSJaVP {\\\\n  background: url(\\" + ___CSS_LOADER_URL___20___ + \\");\\\\n}\\\\n\\\\n.mrf4tRz4T71pNku_3IMH3 {\\\\n  background: url('/img-simple.png');\\\\n}\\\\n\\\\n.c5dNFA35opKWoGz7aRj0k {\\\\n  background: url(\\" + ___CSS_LOADER_URL___21___ + \\");\\\\n}\\\\n\\\\n._2Q5a0g3xEHAboOADfIxHa5 {\\\\n  background: url(\\" + ___CSS_LOADER_URL___2___ + \\");\\\\n}\\\\n\\\\n._2TX-7lb63hK5h5DzELIAbU {\\\\n  background: url(\\" + ___CSS_LOADER_URL___22___ + \\");\\\\n}\\\\n\\\\na {\\\\n  background: url(\\" + ___CSS_LOADER_URL___23___ + \\");\\\\n}\\\\n\\\\na {\\\\n  background: url(\\" + ___CSS_LOADER_URL___24___ + \\");\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n._7NvzxsKlD5xT5cUVu5Ad- {\\\\n  /* Broken */\\\\n  background-image: -webkit-image-set();\\\\n  background-image: -webkit-image-set('');\\\\n  background-image: image-set();\\\\n  background-image: image-set('');\\\\n  background-image: image-set(\\\\\\"\\\\\\");\\\\n  background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n  background-image: image-set(url());\\\\n  background-image: image-set(\\\\n    url()\\\\n  );\\\\n  background-image: image-set(URL());\\\\n  background-image: image-set(url(''));\\\\n  background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n  background-image: image-set(url('') 1x);\\\\n  background-image: image-set(1x);\\\\n  background-image: image-set(\\\\n    1x\\\\n  );\\\\n  background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n  /* Strings */\\\\n  background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___27___ + \\" 1x, \\" + ___CSS_LOADER_URL___27___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x),\\\\n    image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x);\\\\n  background-image: image-set(\\\\n    \\" + ___CSS_LOADER_URL___25___ + \\" 1x,\\\\n    \\" + ___CSS_LOADER_URL___26___ + \\" 2x,\\\\n    \\" + ___CSS_LOADER_URL___28___ + \\" 600dpi\\\\n  );\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___29___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___30___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___31___ + \\" 1x);\\\\n\\\\n  /* With \`url\` function */\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x);\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x);\\\\n  background-image: -webkit-image-set(\\\\n    url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x);\\\\n  background-image: image-set(\\\\n    url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x);\\\\n  background-image: image-set(\\\\n    url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x,\\\\n    url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x,\\\\n    url(\\" + ___CSS_LOADER_URL___32___ + \\") 600dpi\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___4___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___4___ + \\") 2x);\\\\n\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x);\\\\n}\\\\n\\", \\"\\"]);
@@ -2613,40 +2613,40 @@ exports[`url option true: module 1`] = `
 "exports = module.exports = require(\\"../../../src/runtime/api.js\\")(false);
 // Imports
 exports.i(require(\\"-!../../../src/index.js??ref--4-0!./imported.css\\"), \\"\\");
-var urlEscape = require(\\"../../../src/runtime/url-escape.js\\");
-var ___CSS_LOADER_URL___0___ = urlEscape(require(\\"./img.png\\"));
-var ___CSS_LOADER_URL___1___ = urlEscape(require(\\"./img.png\\") + \\"#hash\\");
-var ___CSS_LOADER_URL___2___ = urlEscape(require(\\"package/img.png\\"));
-var ___CSS_LOADER_URL___3___ = urlEscape(require(\\"./other-img.png\\"));
-var ___CSS_LOADER_URL___4___ = urlEscape(require(\\"./img img.png\\"));
-var ___CSS_LOADER_URL___5___ = urlEscape(require(\\"./font.woff\\"));
-var ___CSS_LOADER_URL___6___ = urlEscape(require(\\"./font.woff2\\"));
-var ___CSS_LOADER_URL___7___ = urlEscape(require(\\"./font.eot\\"));
-var ___CSS_LOADER_URL___8___ = urlEscape(require(\\"package/font.ttf\\"));
-var ___CSS_LOADER_URL___9___ = urlEscape(require(\\"./font with spaces.eot\\"));
-var ___CSS_LOADER_URL___10___ = urlEscape(require(\\"./font.svg\\") + \\"#svgFontName\\");
-var ___CSS_LOADER_URL___11___ = urlEscape(require(\\"./font.woff2?foo=bar\\"));
-var ___CSS_LOADER_URL___12___ = urlEscape(require(\\"./font.eot\\") + \\"?#iefix\\");
-var ___CSS_LOADER_URL___13___ = urlEscape(require(\\"./font with spaces.eot\\") + \\"?#iefix\\");
-var ___CSS_LOADER_URL___14___ = urlEscape(require(\\"./img1x.png\\"));
-var ___CSS_LOADER_URL___15___ = urlEscape(require(\\"./img2x.png\\"));
-var ___CSS_LOADER_URL___16___ = urlEscape(require(\\"./img.png?foo\\"));
-var ___CSS_LOADER_URL___17___ = urlEscape(require(\\"./img.png?foo=bar\\"));
-var ___CSS_LOADER_URL___18___ = urlEscape(require(\\"./img.png?foo=bar\\") + \\"#hash\\");
-var ___CSS_LOADER_URL___19___ = urlEscape(require(\\"./img.png?\\"));
-var ___CSS_LOADER_URL___20___ = urlEscape(require(\\"./img-simple.png\\"));
-var ___CSS_LOADER_URL___21___ = urlEscape(require(\\"../url/img-simple.png\\"));
-var ___CSS_LOADER_URL___22___ = urlEscape(require(\\"aliasesImg/img.png\\"));
-var ___CSS_LOADER_URL___23___ = urlEscape(require(\\"./nested/img.png\\"));
-var ___CSS_LOADER_URL___24___ = urlEscape(require(\\"./nested/img.png\\"));
-var ___CSS_LOADER_URL___25___ = urlEscape(require(\\"./img1x.png\\"), true);
-var ___CSS_LOADER_URL___26___ = urlEscape(require(\\"./img2x.png\\"), true);
-var ___CSS_LOADER_URL___27___ = urlEscape(require(\\"./img img.png\\"), true);
-var ___CSS_LOADER_URL___28___ = urlEscape(require(\\"./img3x.png\\"), true);
-var ___CSS_LOADER_URL___29___ = urlEscape(require(\\"./img1x.png?foo=bar\\"), true);
-var ___CSS_LOADER_URL___30___ = urlEscape(require(\\"./img1x.png\\") + \\"#hash\\", true);
-var ___CSS_LOADER_URL___31___ = urlEscape(require(\\"./img1x.png\\") + \\"?#iefix\\", true);
-var ___CSS_LOADER_URL___32___ = urlEscape(require(\\"./img3x.png\\"));
+var getUrl = require(\\"../../../src/runtime/get-url.js\\");
+var ___CSS_LOADER_URL___0___ = getUrl(require(\\"./img.png\\"));
+var ___CSS_LOADER_URL___1___ = getUrl(require(\\"./img.png\\") + \\"#hash\\");
+var ___CSS_LOADER_URL___2___ = getUrl(require(\\"package/img.png\\"));
+var ___CSS_LOADER_URL___3___ = getUrl(require(\\"./other-img.png\\"));
+var ___CSS_LOADER_URL___4___ = getUrl(require(\\"./img img.png\\"));
+var ___CSS_LOADER_URL___5___ = getUrl(require(\\"./font.woff\\"));
+var ___CSS_LOADER_URL___6___ = getUrl(require(\\"./font.woff2\\"));
+var ___CSS_LOADER_URL___7___ = getUrl(require(\\"./font.eot\\"));
+var ___CSS_LOADER_URL___8___ = getUrl(require(\\"package/font.ttf\\"));
+var ___CSS_LOADER_URL___9___ = getUrl(require(\\"./font with spaces.eot\\"));
+var ___CSS_LOADER_URL___10___ = getUrl(require(\\"./font.svg\\") + \\"#svgFontName\\");
+var ___CSS_LOADER_URL___11___ = getUrl(require(\\"./font.woff2?foo=bar\\"));
+var ___CSS_LOADER_URL___12___ = getUrl(require(\\"./font.eot\\") + \\"?#iefix\\");
+var ___CSS_LOADER_URL___13___ = getUrl(require(\\"./font with spaces.eot\\") + \\"?#iefix\\");
+var ___CSS_LOADER_URL___14___ = getUrl(require(\\"./img1x.png\\"));
+var ___CSS_LOADER_URL___15___ = getUrl(require(\\"./img2x.png\\"));
+var ___CSS_LOADER_URL___16___ = getUrl(require(\\"./img.png?foo\\"));
+var ___CSS_LOADER_URL___17___ = getUrl(require(\\"./img.png?foo=bar\\"));
+var ___CSS_LOADER_URL___18___ = getUrl(require(\\"./img.png?foo=bar\\") + \\"#hash\\");
+var ___CSS_LOADER_URL___19___ = getUrl(require(\\"./img.png?\\"));
+var ___CSS_LOADER_URL___20___ = getUrl(require(\\"./img-simple.png\\"));
+var ___CSS_LOADER_URL___21___ = getUrl(require(\\"../url/img-simple.png\\"));
+var ___CSS_LOADER_URL___22___ = getUrl(require(\\"aliasesImg/img.png\\"));
+var ___CSS_LOADER_URL___23___ = getUrl(require(\\"./nested/img.png\\"));
+var ___CSS_LOADER_URL___24___ = getUrl(require(\\"./nested/img.png\\"));
+var ___CSS_LOADER_URL___25___ = getUrl(require(\\"./img1x.png\\"), true);
+var ___CSS_LOADER_URL___26___ = getUrl(require(\\"./img2x.png\\"), true);
+var ___CSS_LOADER_URL___27___ = getUrl(require(\\"./img img.png\\"), true);
+var ___CSS_LOADER_URL___28___ = getUrl(require(\\"./img3x.png\\"), true);
+var ___CSS_LOADER_URL___29___ = getUrl(require(\\"./img1x.png?foo=bar\\"), true);
+var ___CSS_LOADER_URL___30___ = getUrl(require(\\"./img1x.png\\") + \\"#hash\\", true);
+var ___CSS_LOADER_URL___31___ = getUrl(require(\\"./img1x.png\\") + \\"?#iefix\\", true);
+var ___CSS_LOADER_URL___32___ = getUrl(require(\\"./img3x.png\\"));
 
 // Module
 exports.push([module.id, \\".class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___1___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\\\n    \\" + ___CSS_LOADER_URL___0___ + \\"\\\\n  );\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\" + ___CSS_LOADER_URL___2___ + \\") url(\\" + ___CSS_LOADER_URL___3___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url( \\" + ___CSS_LOADER_URL___4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\\\\"http://www.w3.org/2000/svg\\\\\\"><filter id=\\\\\\"filter\\\\\\"><feGaussianBlur in=\\\\\\"SourceAlpha\\\\\\" stdDeviation=\\\\\\"0\\\\\\" /><feOffset dx=\\\\\\"1\\\\\\" dy=\\\\\\"2\\\\\\" result=\\\\\\"offsetblur\\\\\\" /><feFlood flood-color=\\\\\\"rgba(255,255,255,1)\\\\\\" /><feComposite in2=\\\\\\"offsetblur\\\\\\" operator=\\\\\\"in\\\\\\" /><feMerge><feMergeNode /><feMergeNode in=\\\\\\"SourceGraphic\\\\\\" /></feMerge></filter></svg>#filter');\\\\n}\\\\n\\\\n.class {\\\\n  filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.highlight {\\\\n  filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n  filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(\\" + ___CSS_LOADER_URL___5___ + \\") format('woff'),\\\\n    url(\\" + ___CSS_LOADER_URL___6___ + \\") format('woff2'),\\\\n    url(\\" + ___CSS_LOADER_URL___7___ + \\") format('eot'),\\\\n    url(\\" + ___CSS_LOADER_URL___8___ + \\") format('truetype'),\\\\n    url(\\" + ___CSS_LOADER_URL___9___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n    url(\\" + ___CSS_LOADER_URL___10___ + \\") format('svg'),\\\\n    url(\\" + ___CSS_LOADER_URL___11___ + \\") format('woff2'),\\\\n    url(\\" + ___CSS_LOADER_URL___12___ + \\") format('embedded-opentype'),\\\\n    url(\\" + ___CSS_LOADER_URL___13___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n  body {\\\\n    background: url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n  }\\\\n}\\\\n\\\\na {\\\\n  content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n  content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n  background: green url(\\" + ___CSS_LOADER_URL___0___ + \\") xyz;\\\\n}\\\\n\\\\n.a {\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x)\\\\n}\\\\n\\\\n.class {\\\\n  background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url('   ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(\\\\n  ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___16___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___17___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___18___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___18___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: url(\\" + ___CSS_LOADER_URL___19___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background-image: url(\\" + ___CSS_LOADER_URL___0___ + \\") url(\\\\\\"data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 26' fill='%23007aff'><rect width='4' height='4'/><rect x='8' y='1' width='34' height='2'/><rect y='11' width='4' height='4'/><rect x='8' y='12' width='34' height='2'/><rect y='22' width='4' height='4'/><rect x='8' y='23' width='34' height='2'/></svg>\\\\\\") url(\\" + ___CSS_LOADER_URL___0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n  background: ___CSS_LOADER_URL___;\\\\n  background: ___CSS_LOADER_URL___INDEX___;\\\\n  background: ___CSS_LOADER_URL___99999___;\\\\n  background: ___CSS_LOADER_IMPORT___;\\\\n  background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n  background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n  background: url(\\" + ___CSS_LOADER_URL___20___ + \\");\\\\n}\\\\n\\\\n.not-resolved {\\\\n  background: url('/img-simple.png');\\\\n}\\\\n\\\\n.above-below {\\\\n  background: url(\\" + ___CSS_LOADER_URL___21___ + \\");\\\\n}\\\\n\\\\n.tilde {\\\\n  background: url(\\" + ___CSS_LOADER_URL___2___ + \\");\\\\n}\\\\n\\\\n.aliases {\\\\n  background: url(\\" + ___CSS_LOADER_URL___22___ + \\");\\\\n}\\\\n\\\\na {\\\\n  background: url(\\" + ___CSS_LOADER_URL___23___ + \\");\\\\n}\\\\n\\\\na {\\\\n  background: url(\\" + ___CSS_LOADER_URL___24___ + \\");\\\\n}\\\\n\\\\n@font-face {\\\\n  src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n  /* Broken */\\\\n  background-image: -webkit-image-set();\\\\n  background-image: -webkit-image-set('');\\\\n  background-image: image-set();\\\\n  background-image: image-set('');\\\\n  background-image: image-set(\\\\\\"\\\\\\");\\\\n  background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n  background-image: image-set(url());\\\\n  background-image: image-set(\\\\n    url()\\\\n  );\\\\n  background-image: image-set(URL());\\\\n  background-image: image-set(url(''));\\\\n  background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n  background-image: image-set(url('') 1x);\\\\n  background-image: image-set(1x);\\\\n  background-image: image-set(\\\\n    1x\\\\n  );\\\\n  background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n  /* Strings */\\\\n  background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___27___ + \\" 1x, \\" + ___CSS_LOADER_URL___27___ + \\" 2x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x),\\\\n    image-set(\\" + ___CSS_LOADER_URL___25___ + \\" 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x);\\\\n  background-image: image-set(\\\\n    \\" + ___CSS_LOADER_URL___25___ + \\" 1x,\\\\n    \\" + ___CSS_LOADER_URL___26___ + \\" 2x,\\\\n    \\" + ___CSS_LOADER_URL___28___ + \\" 600dpi\\\\n  );\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___29___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___30___ + \\" 1x);\\\\n  background-image: image-set(\\" + ___CSS_LOADER_URL___31___ + \\" 1x);\\\\n\\\\n  /* With \`url\` function */\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x);\\\\n  background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x);\\\\n  background-image: -webkit-image-set(\\\\n    url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x);\\\\n  background-image: image-set(\\\\n    url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x);\\\\n  background-image: image-set(\\\\n    url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x,\\\\n    url(\\" + ___CSS_LOADER_URL___15___ + \\") 2x,\\\\n    url(\\" + ___CSS_LOADER_URL___32___ + \\") 600dpi\\\\n  );\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___4___ + \\") 1x, url(\\" + ___CSS_LOADER_URL___4___ + \\") 2x);\\\\n\\\\n  background-image: image-set(url(\\" + ___CSS_LOADER_URL___14___ + \\") 1x, \\" + ___CSS_LOADER_URL___26___ + \\" 2x);\\\\n}\\\\n\\", \\"\\"]);
diff --git a/test/helpers.js b/test/helpers.js
index 8a61878..6de4009 100644
--- a/test/helpers.js
+++ b/test/helpers.js
@@ -20,9 +20,9 @@ function evaluated(output, modules, moduleId = 1) {
         // eslint-disable-next-line global-require
         return require('../src/runtime/api');
       }
-      if (module.indexOf('runtime/url-escape') >= 0) {
+      if (module.indexOf('runtime/get-url') >= 0) {
         // eslint-disable-next-line global-require
-        return require('../src/runtime/url-escape');
+        return require('../src/runtime/get-url');
       }
       if (/^-!.*?!.*$/.test(module)) {
         // eslint-disable-next-line no-param-reassign
diff --git a/test/runtime/__snapshots__/url-escape.test.js.snap b/test/runtime/__snapshots__/get-url.test.js.snap
similarity index 100%
rename from test/runtime/__snapshots__/url-escape.test.js.snap
rename to test/runtime/__snapshots__/get-url.test.js.snap
diff --git a/test/runtime/get-url.test.js b/test/runtime/get-url.test.js
new file mode 100644
index 0000000..277d314
--- /dev/null
+++ b/test/runtime/get-url.test.js
@@ -0,0 +1,19 @@
+const getUrl = require('../../src/runtime/get-url');
+
+describe('escape', () => {
+  it('should escape url', () => {
+    expect(getUrl(true)).toMatchSnapshot();
+    expect(getUrl('image.png')).toMatchSnapshot();
+    expect(getUrl('"image.png"')).toMatchSnapshot();
+    expect(getUrl("'image.png'")).toMatchSnapshot();
+    expect(getUrl('image other.png')).toMatchSnapshot();
+    expect(getUrl('"image other.png"')).toMatchSnapshot();
+    expect(getUrl("'image other.png'")).toMatchSnapshot();
+    expect(getUrl('image"other.png')).toMatchSnapshot();
+    expect(getUrl('image\nother.png')).toMatchSnapshot();
+
+    expect(getUrl('image.png', true)).toMatchSnapshot();
+    expect(getUrl("'image other.png'", true)).toMatchSnapshot();
+    expect(getUrl('"image other.png"', true)).toMatchSnapshot();
+  });
+});
diff --git a/test/runtime/url-escape.test.js b/test/runtime/url-escape.test.js
deleted file mode 100644
index 83e33ac..0000000
--- a/test/runtime/url-escape.test.js
+++ /dev/null
@@ -1,19 +0,0 @@
-const urlEscape = require('../../src/runtime/url-escape');
-
-describe('escape', () => {
-  it('should escape url', () => {
-    expect(urlEscape(true)).toMatchSnapshot();
-    expect(urlEscape('image.png')).toMatchSnapshot();
-    expect(urlEscape('"image.png"')).toMatchSnapshot();
-    expect(urlEscape("'image.png'")).toMatchSnapshot();
-    expect(urlEscape('image other.png')).toMatchSnapshot();
-    expect(urlEscape('"image other.png"')).toMatchSnapshot();
-    expect(urlEscape("'image other.png'")).toMatchSnapshot();
-    expect(urlEscape('image"other.png')).toMatchSnapshot();
-    expect(urlEscape('image\nother.png')).toMatchSnapshot();
-
-    expect(urlEscape('image.png', true)).toMatchSnapshot();
-    expect(urlEscape("'image other.png'", true)).toMatchSnapshot();
-    expect(urlEscape('"image other.png"', true)).toMatchSnapshot();
-  });
-});