mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 13:12:46 +00:00 
			
		
		
		
	 2505cecc0f
			
		
	
	
		2505cecc0f
		
	
	
	
	
		
			
			Window and other global objects are not technically legacy platform objects, and have other ways to override their setters and getters. However, Window does need to share some code with the legacy platform object paths, and simply adding another bool check to the mix seems the shortest putt.
		
			
				
	
	
		
			22 lines
		
	
	
	
		
			680 B
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
	
		
			680 B
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <script src="../include.js"></script>
 | |
| <script id="__NEXT_DATA__"></script>
 | |
| <script>
 | |
|     test(() => {
 | |
|         "use strict";
 | |
|         println(`window.__NEXT_DATA__ = ${window.__NEXT_DATA__}`);
 | |
|         window.__NEXT_DATA__ = undefined;
 | |
|         println(`window.__NEXT_DATA__ = ${window.__NEXT_DATA__}`);
 | |
| 
 | |
|         println(`window[0] = ${window[0]}`);
 | |
| 
 | |
|         // FIXME: Other browsers just swallow this error, but we throw an exception.
 | |
|         try {
 | |
|             window[0] = 42;
 | |
|         } catch (e) {
 | |
|             println(`e = ${e}`);
 | |
|         }
 | |
|         println(`window[0] = ${window[0]}`);
 | |
|         window.__proto__[0] = 42;
 | |
|         println(`window[0] = ${window[0]}`);
 | |
|     });
 | |
| </script>
 |