mirror of
				https://github.com/LadybirdBrowser/ladybird.git
				synced 2025-10-30 21:01:00 +00:00 
			
		
		
		
	
		
			
	
	
		
			40 lines
		
	
	
	
		
			987 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			40 lines
		
	
	
	
		
			987 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|   | load("test-common.js"); | ||
|  | 
 | ||
|  | try { | ||
|  |     let o = { | ||
|  |         var1: "foo", | ||
|  |         var2: 42, | ||
|  |         arr: [1, 2, { | ||
|  |             nested: { | ||
|  |                 hello: "world", | ||
|  |             }, | ||
|  |             get x() { return 10; } | ||
|  |         }], | ||
|  |         obj: { | ||
|  |             subarr: [3], | ||
|  |         }, | ||
|  |     }; | ||
|  | 
 | ||
|  |     let string = JSON.stringify(o, (key, value) => { | ||
|  |         if (key === "hello") | ||
|  |             return undefined; | ||
|  |         if (value === 10) | ||
|  |             return 20; | ||
|  |         if (key === "subarr") | ||
|  |             return [3, 4, 5]; | ||
|  |         return value; | ||
|  |     }); | ||
|  | 
 | ||
|  |     assert(string === '{"var1":"foo","var2":42,"arr":[1,2,{"nested":{},"x":20}],"obj":{"subarr":[3,4,5]}}'); | ||
|  | 
 | ||
|  |     string = JSON.stringify(o, ["var1", "var1", "var2", "obj"]); | ||
|  |     assert(string == '{"var1":"foo","var2":42,"obj":{}}'); | ||
|  | 
 | ||
|  |     string = JSON.stringify(o, ["var1", "var1", "var2", "obj", "subarr"]); | ||
|  |     assert(string == '{"var1":"foo","var2":42,"obj":{"subarr":[3]}}'); | ||
|  | 
 | ||
|  |     console.log("PASS"); | ||
|  | } catch (e) { | ||
|  |     console.log("FAIL: " + e); | ||
|  | } |