forked from mirrors/gecko-dev
		
	 918ed6c474
			
		
	
	
		918ed6c474
		
	
	
	
	
		
			
			This was done using the following script:
37e3803c7a/processors/chromeutils-import.jsm
MozReview-Commit-ID: 1Nc3XDu0wGl
--HG--
extra : source : 12fc4dee861c812fd2bd032c63ef17af61800c70
extra : intermediate-source : 34c999fa006bffe8705cf50c54708aa21a962e62
extra : histedit_source : b2be2c5e5d226e6c347312456a6ae339c1e634b0
		
	
			
		
			
				
	
	
		
			25 lines
		
	
	
	
		
			851 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
	
		
			851 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "use strict";
 | |
| 
 | |
| var {ObjectUtils} = ChromeUtils.import("resource://gre/modules/ObjectUtils.jsm", {});
 | |
| var {PromiseTestUtils} = ChromeUtils.import("resource://testing-common/PromiseTestUtils.jsm", {});
 | |
| 
 | |
| add_task(async function test_strict() {
 | |
|   let loose = { a: 1 };
 | |
|   let strict = ObjectUtils.strict(loose);
 | |
| 
 | |
|   loose.a; // Should not throw.
 | |
|   loose.b || undefined; // Should not throw.
 | |
| 
 | |
|   strict.a; // Should not throw.
 | |
|   PromiseTestUtils.expectUncaughtRejection(/No such property: "b"/);
 | |
|   Assert.throws(() => strict.b, /No such property: "b"/);
 | |
|   "b" in strict; // Should not throw.
 | |
|   strict.b = 2;
 | |
|   strict.b; // Should not throw.
 | |
| 
 | |
|   PromiseTestUtils.expectUncaughtRejection(/No such property: "c"/);
 | |
|   Assert.throws(() => strict.c, /No such property: "c"/);
 | |
|   "c" in strict; // Should not throw.
 | |
|   loose.c = 3;
 | |
|   strict.c; // Should not throw.
 | |
| });
 |