@@ -2,6 +2,7 @@ var expect = require("expect.js"),
2
2
detectStrictMode = require ( "../lib/detectStrictMode.js" ) ;
3
3
4
4
describe ( "detectStrictMode" , function ( ) {
5
+
5
6
it ( "should detect all valid uses of \"use strict\";" , function ( ) {
6
7
expect ( detectStrictMode ( '"use strict";' ) ) . to . be ( true ) ;
7
8
expect ( detectStrictMode ( "'use strict';" ) ) . to . be ( true ) ;
@@ -11,13 +12,22 @@ describe("detectStrictMode", function () {
11
12
expect ( detectStrictMode ( '"use strict"\r\n' ) ) . to . be ( true ) ;
12
13
expect ( detectStrictMode ( '"use strict" ; test();' ) ) . to . be ( true ) ;
13
14
} ) ;
15
+
16
+ it ( "should be allowed to place comments before \"use strict\";" , function ( ) {
17
+ expect ( detectStrictMode ( '// some comment\n"use strict";' ) ) . to . be ( true ) ;
18
+ expect ( detectStrictMode ( '/* yo! */"use strict"; /* another comment */' ) ) . to . be ( true ) ;
19
+ expect ( detectStrictMode ( ' // yes yo\r\n\r\n\r\n /*oh yoh*/\r\n//oh snap!\r /* yoh! */"use strict";' ) ) . to . be ( true ) ;
20
+ } ) ;
21
+
14
22
it ( "should not detect invalid uses of \"use strict\";" , function ( ) {
15
23
expect ( detectStrictMode ( '" use strict ";' ) ) . to . be ( false ) ;
16
24
expect ( detectStrictMode ( '"use strict".replace("use", "fail");' ) ) . to . be ( false ) ;
17
25
expect ( detectStrictMode ( '"use strict" .replace("use", "fail");' ) ) . to . be ( false ) ;
18
26
expect ( detectStrictMode ( ';"use strict";' ) ) . to . be ( false ) ;
19
27
} ) ;
28
+
20
29
it ( "should not detect \"use strict\"; if it occurs in some nested function" , function ( ) {
21
30
expect ( detectStrictMode ( 'function () {"use strict";}' ) ) . to . be ( false ) ;
22
31
} ) ;
23
- } ) ;
32
+
33
+ } ) ;