mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 13:52:43 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			61 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "do not use strict";
 | |
| "no really";
 | |
| // /\ Valid directives which should not trigger strict mode
 | |
| 
 | |
| test("basic functionality", () => {
 | |
|     expect(isStrictMode()).toBeFalse();
 | |
| 
 | |
|     (function () {
 | |
|         expect(isStrictMode()).toBeFalse();
 | |
|     })();
 | |
| 
 | |
|     (() => {
 | |
|         expect(isStrictMode()).toBeFalse();
 | |
|     })();
 | |
| 
 | |
|     (() => {
 | |
|         expect(isStrictMode()).toBeFalse();
 | |
|     })();
 | |
| 
 | |
|     function a() {
 | |
|         expect(isStrictMode()).toBeFalse();
 | |
|     }
 | |
| 
 | |
|     a();
 | |
| 
 | |
|     eval("expect(isStrictMode()).toBeFalse()");
 | |
| });
 | |
| 
 | |
| test("functions with strict mode", () => {
 | |
|     expect(isStrictMode()).toBeFalse();
 | |
| 
 | |
|     function a() {
 | |
|         "this is allowed trust me";
 | |
|         "use strict";
 | |
|         expect(isStrictMode()).toBeTrue();
 | |
|     }
 | |
| 
 | |
|     a();
 | |
| 
 | |
|     expect(isStrictMode()).toBeFalse();
 | |
| 
 | |
|     (() => {
 | |
|         "use strict";
 | |
|         expect(isStrictMode()).toBeTrue();
 | |
|     })();
 | |
| 
 | |
|     function b() {
 | |
|         eval("expect(isStrictMode()).toBeFalse()");
 | |
| 
 | |
|         function nested() {
 | |
|             "use strict";
 | |
|             eval("expect(isStrictMode()).toBeTrue()");
 | |
|         }
 | |
| 
 | |
|         nested();
 | |
| 
 | |
|         eval("expect(isStrictMode()).toBeFalse()");
 | |
|     }
 | |
| 
 | |
|     b();
 | |
| });
 | 
