
This requires a special case with names as the default function is supposed to have a unique name ("*default*" in our case) but when checked should have name "default".
26 lines
614 B
JavaScript
26 lines
614 B
JavaScript
try {
|
|
f();
|
|
} catch (e) {
|
|
if (!(e instanceof ReferenceError)) throw e;
|
|
if (!e.message.includes("bindingUsedInFunction")) throw e;
|
|
}
|
|
|
|
let bindingUsedInFunction = 0;
|
|
|
|
const immediateResult = f();
|
|
const immediateName = f.name + "";
|
|
|
|
import f from "./anon-func-decl-default-export.mjs";
|
|
export default function () {
|
|
return bindingUsedInFunction++;
|
|
}
|
|
|
|
const postImportResult = f();
|
|
const postImportName = f.name + "";
|
|
|
|
export const passed =
|
|
immediateResult === 0 &&
|
|
postImportResult === 1 &&
|
|
bindingUsedInFunction === 2 &&
|
|
immediateName === "default" &&
|
|
postImportName === "default";
|