Skip to content

Commit b5cb60f

Browse files
authored
Fix identifier handling on export { default as ... } (#1257)
1 parent f6501a9 commit b5cb60f

9 files changed

+36
-2
lines changed

src/parser.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2473,7 +2473,7 @@ export class Parser extends DiagnosticEmitter {
24732473

24742474
// before: Identifier ('as' Identifier)?
24752475

2476-
if (tn.skipIdentifier()) {
2476+
if (tn.skipIdentifier(IdentifierHandling.ALWAYS)) {
24772477
let identifier = Node.createIdentifierExpression(tn.readIdentifier(), tn.range());
24782478
let asIdentifier: IdentifierExpression | null = null;
24792479
if (tn.skip(Token.AS)) {

tests/compiler/reexport.optimized.wat

+2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
(export "exportstar.renamed_c" (global $export/c))
2626
(export "exportstar.ns.two" (func $export/ns.one))
2727
(export "exportstar.default.two" (func $export/ns.one))
28+
(export "default" (func $export/ns.one))
29+
(export "renamed_default" (func $export/ns.one))
2830
(func $export/add (param $0 i32) (param $1 i32) (result i32)
2931
local.get $0
3032
local.get $1

tests/compiler/reexport.ts

+3
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,6 @@ export { ns as renamed_ns } from "./export";
2727

2828
import * as exportstar from "./exportstar";
2929
export { exportstar };
30+
31+
export { default } from "./export-default";
32+
export { default as renamed_default } from "./export-default";

tests/compiler/reexport.untouched.wat

+5
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
(export "exportstar.renamed_c" (global $export/c))
2727
(export "exportstar.ns.two" (func $export/ns.two))
2828
(export "exportstar.default.two" (func $export/ns.two))
29+
(export "default" (func $export-default/theDefault))
30+
(export "renamed_default" (func $export-default/theDefault))
2931
(start $~start)
3032
(func $export/add (param $0 i32) (param $1 i32) (result i32)
3133
local.get $0
@@ -58,6 +60,9 @@
5860
(func $export/ns.two
5961
nop
6062
)
63+
(func $export-default/theDefault
64+
nop
65+
)
6166
(func $~start
6267
call $start:reexport
6368
)

tests/compiler/rereexport.optimized.wat

+6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
(module
2+
(type $none_=>_none (func))
23
(memory $0 0)
34
(global $export/a i32 (i32.const 1))
45
(global $export/b i32 (i32.const 2))
@@ -7,4 +8,9 @@
78
(export "renamed_a" (global $export/a))
89
(export "renamed_b" (global $export/b))
910
(export "renamed_renamed_b" (global $export/b))
11+
(export "default" (func $export-default/theDefault))
12+
(export "renamed_default" (func $export-default/theDefault))
13+
(func $export-default/theDefault
14+
nop
15+
)
1016
)

tests/compiler/rereexport.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,7 @@ export {
22
a,
33
a as renamed_a,
44
renamed_b,
5-
renamed_b as renamed_renamed_b
5+
renamed_b as renamed_renamed_b,
6+
default,
7+
default as renamed_default
68
} from "./reexport";

tests/compiler/rereexport.untouched.wat

+5
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
(export "renamed_a" (global $export/a))
1212
(export "renamed_b" (global $export/b))
1313
(export "renamed_renamed_b" (global $export/b))
14+
(export "default" (func $export-default/theDefault))
15+
(export "renamed_default" (func $export-default/theDefault))
1416
(start $~start)
1517
(func $export/add (param $0 i32) (param $1 i32) (result i32)
1618
local.get $0
@@ -35,6 +37,9 @@
3537
(func $start:rereexport
3638
call $start:reexport
3739
)
40+
(func $export-default/theDefault
41+
nop
42+
)
3843
(func $~start
3944
call $start:rereexport
4045
)

tests/compiler/wildcard-export.optimized.wat

+6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
(module
2+
(type $none_=>_none (func))
23
(memory $0 0)
34
(global $export/a i32 (i32.const 1))
45
(global $export/b i32 (i32.const 2))
@@ -7,4 +8,9 @@
78
(export "renamed_a" (global $export/a))
89
(export "renamed_b" (global $export/b))
910
(export "renamed_renamed_b" (global $export/b))
11+
(export "default" (func $export-default/theDefault))
12+
(export "renamed_default" (func $export-default/theDefault))
13+
(func $export-default/theDefault
14+
nop
15+
)
1016
)

tests/compiler/wildcard-export.untouched.wat

+5
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
(export "renamed_a" (global $export/a))
1212
(export "renamed_b" (global $export/b))
1313
(export "renamed_renamed_b" (global $export/b))
14+
(export "default" (func $export-default/theDefault))
15+
(export "renamed_default" (func $export-default/theDefault))
1416
(start $~start)
1517
(func $export/add (param $0 i32) (param $1 i32) (result i32)
1618
local.get $0
@@ -38,6 +40,9 @@
3840
(func $start:wildcard-export
3941
call $start:rereexport
4042
)
43+
(func $export-default/theDefault
44+
nop
45+
)
4146
(func $~start
4247
call $start:wildcard-export
4348
)

0 commit comments

Comments
 (0)