Skip to content

Commit 9b6f8d1

Browse files
Merge pull request #7924 from Microsoft/correctStrictPrologueCheck
Emit "use strict" if a prologue only contains "use strict" somewhere inside of it
2 parents f0a996e + 1d16356 commit 9b6f8d1

File tree

5 files changed

+40
-1
lines changed

5 files changed

+40
-1
lines changed

src/compiler/emitter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7652,7 +7652,7 @@ const _super = (function (geti, seti) {
76527652
}
76537653

76547654
function isUseStrictPrologue(node: ExpressionStatement): boolean {
7655-
return !!(node.expression as StringLiteral).text.match(/use strict/);
7655+
return (node.expression as StringLiteral).text === "use strict";
76567656
}
76577657

76587658
function ensureUseStrictPrologue(startWithNewLine: boolean, writeUseStrict: boolean) {
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
//// [useStrictLikePrologueString01.ts]
2+
3+
"hey!"
4+
" use strict "
5+
export function f() {
6+
}
7+
8+
//// [useStrictLikePrologueString01.js]
9+
"hey!";
10+
" use strict ";
11+
"use strict";
12+
function f() {
13+
}
14+
exports.f = f;
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
=== tests/cases/compiler/useStrictLikePrologueString01.ts ===
2+
3+
"hey!"
4+
" use strict "
5+
export function f() {
6+
>f : Symbol(f, Decl(useStrictLikePrologueString01.ts, 2, 14))
7+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
=== tests/cases/compiler/useStrictLikePrologueString01.ts ===
2+
3+
"hey!"
4+
>"hey!" : string
5+
6+
" use strict "
7+
>" use strict " : string
8+
9+
export function f() {
10+
>f : () => void
11+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
//@target: commonjs
2+
//@target: es5
3+
4+
"hey!"
5+
" use strict "
6+
export function f() {
7+
}

0 commit comments

Comments
 (0)