You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							34 lines
						
					
					
						
							533 B
						
					
					
				
			
		
		
	
	
							34 lines
						
					
					
						
							533 B
						
					
					
				| 'use strict';
 | |
| 
 | |
| var result = require('./')();
 | |
| 
 | |
| var test = {
 | |
| 	__proto__: null,
 | |
| 	foo: {}
 | |
| };
 | |
| 
 | |
| var setter = require('dunder-proto/set');
 | |
| 
 | |
| /** @type {import('./mutator')} */
 | |
| module.exports = function hasMutator() {
 | |
| 	if (!result) {
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	var obj = { __proto__: test };
 | |
| 	// @ts-expect-error: TS errors on an inherited property for some reason
 | |
| 	if (obj.foo !== test.foo) {
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	if (!setter) {
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	setter(obj, null);
 | |
| 	if ('foo' in obj || 'toString' in obj) {
 | |
| 		return false;
 | |
| 	}
 | |
| 	return true;
 | |
| };
 |