diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index ae7fc25c7e4..cc73dca16ed 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -8171,7 +8171,12 @@ module ts { } function checkWithStatement(node: WithStatement) { - // Grammar checking + // Grammar checking for withStatement + if (node.parserContextFlags & ParserContextFlags.StrictMode) { + grammarErrorOnFirstToken(node, Diagnostics.with_statements_are_not_allowed_in_strict_mode); + } + + // Grammar checking for invalid use of return statement if (node.statement.kind === SyntaxKind.ReturnStatement) { // Grammar check for invalid use of return statement grammarErrorOnFirstToken(node.statement, Diagnostics.A_return_statement_can_only_be_used_within_a_function_body); diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index c1ec9a113a7..29b91a434a7 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -4675,7 +4675,7 @@ module ts { //case SyntaxKind.TypeReference: return checkTypeReference(node); case SyntaxKind.VariableDeclaration: return checkVariableDeclaration(node); case SyntaxKind.VariableStatement: return checkVariableStatement(node); - case SyntaxKind.WithStatement: return checkWithStatement(node); + //case SyntaxKind.WithStatement: return checkWithStatement(node); case SyntaxKind.YieldExpression: return checkYieldExpression(node); } }