Skip to content

Commit 4fcb53b

Browse files
committed
Strict mode errors
1 parent da8557d commit 4fcb53b

2 files changed

Lines changed: 33 additions & 17 deletions

File tree

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
tests/cases/compiler/a.js(3,5): error TS2300: Duplicate identifier 'a'.
22
tests/cases/compiler/a.js(5,5): error TS1117: An object literal cannot have multiple properties with the same name in strict mode.
33
tests/cases/compiler/a.js(5,5): error TS2300: Duplicate identifier 'a'.
4+
tests/cases/compiler/a.js(7,5): error TS1212: Identifier expected. 'let' is a reserved word in strict mode
45
tests/cases/compiler/a.js(8,8): error TS1102: 'delete' cannot be called on an identifier in strict mode.
56
tests/cases/compiler/a.js(10,10): error TS1100: Invalid use of 'eval' in strict mode.
67
tests/cases/compiler/a.js(12,10): error TS1100: Invalid use of 'arguments' in strict mode.
7-
tests/cases/compiler/a.js(14,9): error TS1121: Octal literals are not allowed in strict mode.
8-
tests/cases/compiler/a.js(14,11): error TS1005: ',' expected.
98
tests/cases/compiler/a.js(15,1): error TS1101: 'with' statements are not allowed in strict mode.
10-
tests/cases/compiler/b.js(5,7): error TS1210: Invalid use of 'eval'. Class definitions are automatically in strict mode.
9+
tests/cases/compiler/b.js(3,7): error TS1210: Invalid use of 'eval'. Class definitions are automatically in strict mode.
10+
tests/cases/compiler/b.js(6,13): error TS1213: Identifier expected. 'let' is a reserved word in strict mode. Class definitions are automatically in strict mode.
1111
tests/cases/compiler/c.js(1,12): error TS1214: Identifier expected. 'let' is a reserved word in strict mode. Modules are automatically in strict mode.
1212
tests/cases/compiler/c.js(2,5): error TS1215: Invalid use of 'eval'. Modules are automatically in strict mode.
13+
tests/cases/compiler/d.js(2,9): error TS1121: Octal literals are not allowed in strict mode.
14+
tests/cases/compiler/d.js(2,11): error TS1005: ',' expected.
1315

1416

15-
==== tests/cases/compiler/a.js (9 errors) ====
17+
==== tests/cases/compiler/a.js (8 errors) ====
1618
"use strict";
1719
var a = {
1820
a: "hello", // error
@@ -26,6 +28,8 @@ tests/cases/compiler/c.js(2,5): error TS1215: Invalid use of 'eval'. Modules are
2628
!!! error TS2300: Duplicate identifier 'a'.
2729
};
2830
var let = 10; // error
31+
~~~
32+
!!! error TS1212: Identifier expected. 'let' is a reserved word in strict mode
2933
delete a; // error
3034
~
3135
!!! error TS1102: 'delete' cannot be called on an identifier in strict mode.
@@ -38,26 +42,25 @@ tests/cases/compiler/c.js(2,5): error TS1215: Invalid use of 'eval'. Modules are
3842
~~~~~~~~~
3943
!!! error TS1100: Invalid use of 'arguments' in strict mode.
4044
}
41-
var x = 009;
42-
~~
43-
!!! error TS1121: Octal literals are not allowed in strict mode.
44-
~
45-
!!! error TS1005: ',' expected.
45+
4646
with (a) {
4747
~~~~
4848
!!! error TS1101: 'with' statements are not allowed in strict mode.
4949
b = 10;
5050
}
5151

52-
==== tests/cases/compiler/b.js (1 errors) ====
52+
==== tests/cases/compiler/b.js (2 errors) ====
5353
// this is not in strict mode but class definitions are always in strict mode
5454
class c {
55-
let() { // error
56-
}
5755
a(eval) { //error
5856
~~~~
5957
!!! error TS1210: Invalid use of 'eval'. Class definitions are automatically in strict mode.
6058
}
59+
method() {
60+
var let = 10; // error
61+
~~~
62+
!!! error TS1213: Identifier expected. 'let' is a reserved word in strict mode. Class definitions are automatically in strict mode.
63+
}
6164
}
6265

6366
==== tests/cases/compiler/c.js (2 errors) ====
@@ -67,4 +70,12 @@ tests/cases/compiler/c.js(2,5): error TS1215: Invalid use of 'eval'. Modules are
6770
var eval = function () {
6871
~~~~
6972
!!! error TS1215: Invalid use of 'eval'. Modules are automatically in strict mode.
70-
};
73+
};
74+
75+
==== tests/cases/compiler/d.js (2 errors) ====
76+
"use strict";
77+
var x = 009; // error
78+
~~
79+
!!! error TS1121: Octal literals are not allowed in strict mode.
80+
~
81+
!!! error TS1005: ',' expected.

tests/cases/compiler/jsFileCompilationBindStrictModeErrors.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,26 @@ try {
1515
}
1616
function arguments() { // error
1717
}
18-
var x = 009;
18+
1919
with (a) {
2020
b = 10;
2121
}
2222

2323
// @filename: b.js
2424
// this is not in strict mode but class definitions are always in strict mode
2525
class c {
26-
let() { // error
27-
}
2826
a(eval) { //error
2927
}
28+
method() {
29+
var let = 10; // error
30+
}
3031
}
3132

3233
// @filename: c.js
3334
export var let = 10; // external modules are automatically in strict mode
3435
var eval = function () {
35-
};
36+
};
37+
38+
//@filename: d.js
39+
"use strict";
40+
var x = 009; // error

0 commit comments

Comments
 (0)