1
0
Fork 0
forked from svrjs/svrjs
This repository has been archived on 2024-11-10. You can view files and clone it, but cannot push or open issues or pull requests.
svrjs/node_modules/define-data-property
2024-08-26 08:36:01 +02:00
..
.github Update to SVR.JS 3.15.7 2024-08-26 08:36:01 +02:00
test Update to SVR.JS 3.15.7 2024-08-26 08:36:01 +02:00
.eslintrc Update to SVR.JS 3.15.7 2024-08-26 08:36:01 +02:00
.nycrc Update to SVR.JS 3.15.7 2024-08-26 08:36:01 +02:00
CHANGELOG.md Update to SVR.JS 3.15.7 2024-08-26 08:36:01 +02:00
index.d.ts Update to SVR.JS 3.15.7 2024-08-26 08:36:01 +02:00
index.js Update to SVR.JS 3.15.7 2024-08-26 08:36:01 +02:00
LICENSE Update to SVR.JS 3.15.7 2024-08-26 08:36:01 +02:00
package.json Update to SVR.JS 3.15.7 2024-08-26 08:36:01 +02:00
README.md Update to SVR.JS 3.15.7 2024-08-26 08:36:01 +02:00
tsconfig.json Update to SVR.JS 3.15.7 2024-08-26 08:36:01 +02:00

define-data-property Version Badge

github actions coverage License Downloads

npm badge

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,
		},
	}
);