Skip to content

Commit 0aca3b9

Browse files
Fixed 'use strict' check.
1 parent b6e8dd4 commit 0aca3b9

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/compiler/parser.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -411,9 +411,10 @@ module ts {
411411
}
412412

413413
/// Should be called only on prologue directives (isPrologueDirective(node) should be true)
414-
function isUseStrictPrologueDirective(node: Node): boolean {
414+
function isUseStrictPrologueDirective(sourceFile: SourceFile, node: Node): boolean {
415415
Debug.assert(isPrologueDirective(node));
416-
return getTextOfNode((<ExpressionStatement>node).expression) === '"use strict"';
416+
var nodeText = getSourceTextOfNodeFromSourceFile(sourceFile,(<ExpressionStatement>node).expression);
417+
return nodeText === '"use strict"' || nodeText === "'use strict'";
417418
}
418419

419420
export function createSourceFile(filename: string, sourceText: string, languageVersion: ScriptTarget, version: string, isOpen: boolean = false): SourceFile {
@@ -1073,7 +1074,7 @@ module ts {
10731074
// test elements only if we are not already in strict mode
10741075
if (checkForStrictMode && !inStrictModeContext()) {
10751076
if (isPrologueDirective(element)) {
1076-
if (isUseStrictPrologueDirective(element)) {
1077+
if (isUseStrictPrologueDirective(sourceFile, element)) {
10771078
setStrictModeContext(true);
10781079
checkForStrictMode = false;
10791080
}

0 commit comments

Comments
 (0)