summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/modules/duplicate-imports.js
blob: fa87ba8ebde997f9d1e08c5e02ae4ab52847f137 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Test errors due to duplicate lexically declared names.

load(libdir + "asserts.js");

function testNoError(source) {
    parseModule(source);
}

function testSyntaxError(source) {
    assertThrowsInstanceOf(() => parseModule(source), SyntaxError);
}

testNoError("import { a } from 'm';");
testNoError("import { a as b } from 'm';");
testNoError("import * as a from 'm';");
testNoError("import a from 'm';");

testSyntaxError("import { a } from 'm'; let a = 1;");
testSyntaxError("let a = 1; import { a } from 'm';");
testSyntaxError("import { a } from 'm'; var a = 1;");
testSyntaxError("var a = 1; import { a } from 'm';");
testSyntaxError("import { a, b } from 'm'; const b = 1;");
testSyntaxError("import { a } from 'm'; import { a } from 'm2';");
testSyntaxError("import { a } from 'm'; import { b as a } from 'm2';");
testSyntaxError("import { a } from 'm'; import * as a from 'm2';");
testSyntaxError("import { a } from 'm'; import a from 'm2';");