@@ -2,6 +2,7 @@ var expect = require("expect.js"),
22 detectStrictMode = require ( "../lib/detectStrictMode.js" ) ;
33
44describe ( "detectStrictMode" , function ( ) {
5+
56 it ( "should detect all valid uses of \"use strict\";" , function ( ) {
67 expect ( detectStrictMode ( '"use strict";' ) ) . to . be ( true ) ;
78 expect ( detectStrictMode ( "'use strict';" ) ) . to . be ( true ) ;
@@ -11,13 +12,22 @@ describe("detectStrictMode", function () {
1112 expect ( detectStrictMode ( '"use strict"\r\n' ) ) . to . be ( true ) ;
1213 expect ( detectStrictMode ( '"use strict" ; test();' ) ) . to . be ( true ) ;
1314 } ) ;
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+
1422 it ( "should not detect invalid uses of \"use strict\";" , function ( ) {
1523 expect ( detectStrictMode ( '" use strict ";' ) ) . to . be ( false ) ;
1624 expect ( detectStrictMode ( '"use strict".replace("use", "fail");' ) ) . to . be ( false ) ;
1725 expect ( detectStrictMode ( '"use strict" .replace("use", "fail");' ) ) . to . be ( false ) ;
1826 expect ( detectStrictMode ( ';"use strict";' ) ) . to . be ( false ) ;
1927 } ) ;
28+
2029 it ( "should not detect \"use strict\"; if it occurs in some nested function" , function ( ) {
2130 expect ( detectStrictMode ( 'function () {"use strict";}' ) ) . to . be ( false ) ;
2231 } ) ;
23- } ) ;
32+
33+ } ) ;
0 commit comments