Repository URL to install this package:
Version:
1.0.0 ▾
|
.. |
test |
.github |
.eslintrc |
.nycrc |
LICENSE |
index.js |
package.json |
tsconfig.json |
index.d.ts.map |
CHANGELOG.md |
README.md |
index.d.ts |
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.
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, }, } );