| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>import() inside compiled strings inside a classic script</title> |
| <link rel="help" href="https://github.com/whatwg/html/pull/3163"> |
| <link rel="help" href="https://github.com/tc39/ecma262/issues/871#issuecomment-292493142"> |
| <link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me"> |
| |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| |
| <script> |
| "use strict"; |
| |
| self.ran = false; |
| |
| promise_test(t => { |
| t.add_cleanup(() => { |
| self.ran = false; |
| }) |
| |
| return Promise.resolve(`import("../imports-a.js?1").then(() => { self.ran = true; })`) |
| .then(eval) |
| .then(() => { |
| assert_true(self.ran); |
| }); |
| }, "Evaled the script via eval, successful import"); |
| |
| promise_test(t => { |
| t.add_cleanup(() => { |
| self.ran = false; |
| }) |
| |
| return Promise.resolve(`import("bad-specifier?1").catch(() => { self.ran = true; })`) |
| .then(eval) |
| .then(() => { |
| assert_true(self.ran); |
| }); |
| }, "Evaled the script via eval, failed import"); |
| |
| promise_test(t => { |
| t.add_cleanup(() => { |
| self.ran = false; |
| }) |
| |
| return Promise.resolve(`return import("../imports-a.js?2").then(() => { self.ran = true; })`) |
| .then(Function) |
| .then(Function.prototype.call.bind(Function.prototype.call)) |
| .then(() => { |
| assert_true(self.ran); |
| }); |
| }, "Evaled the script via Function, successful import"); |
| |
| promise_test(t => { |
| t.add_cleanup(() => { |
| self.ran = false; |
| }) |
| |
| return Promise.resolve(`return import("bad-specifier?2").catch(() => { self.ran = true; })`) |
| .then(Function) |
| .then(Function.prototype.call.bind(Function.prototype.call)) |
| .then(() => { |
| assert_true(self.ran); |
| }); |
| }, "Evaled the script via Function, failed import"); |
| </script> |