Spaces:
				
			
			
	
			
			
		Runtime error
		
	
	
	
			
			
	
	
	
	
		
		
		Runtime error
		
	
	
		
	
	
		define-data-property  
	
Define a data property on an object. Will fall back to assignment in an engine without descriptors.
The three non* argument can also be passed null, which will use the existing state if available.
The loose argument will mean that if you attempt to set a non-normal data property, in an environment without descriptor support, it will fall back to normal assignment.
Usage
var defineDataProperty = require('define-data-property');
var assert = require('assert');
var obj = {};
defineDataProperty(obj, 'key', 'value');
defineDataProperty(
    obj,
    'key2',
    'value',
    true, // nonEnumerable, optional
    false, // nonWritable, optional
    true, // nonConfigurable, optional
    false // loose, optional
);
assert.deepEqual(
    Object.getOwnPropertyDescriptors(obj),
    {
        key: {
            configurable: true,
            enumerable: true,
            value: 'value',
            writable: true,
        },
        key2: {
            configurable: false,
            enumerable: false,
            value: 'value',
            writable: true,
        },
    }
);

