This repository has been archived on 2026-03-06. You can view files and clone it, but cannot push or open issues or pull requests.
todo/client/node_modules/has-proto
2025-06-13 14:04:40 +08:00
..
.github Initial commit 2025-06-13 14:04:40 +08:00
test Initial commit 2025-06-13 14:04:40 +08:00
.eslintrc Initial commit 2025-06-13 14:04:40 +08:00
accessor.d.ts Initial commit 2025-06-13 14:04:40 +08:00
accessor.js Initial commit 2025-06-13 14:04:40 +08:00
CHANGELOG.md Initial commit 2025-06-13 14:04:40 +08:00
index.d.ts Initial commit 2025-06-13 14:04:40 +08:00
index.js Initial commit 2025-06-13 14:04:40 +08:00
LICENSE Initial commit 2025-06-13 14:04:40 +08:00
mutator.d.ts Initial commit 2025-06-13 14:04:40 +08:00
mutator.js Initial commit 2025-06-13 14:04:40 +08:00
package.json Initial commit 2025-06-13 14:04:40 +08:00
README.md Initial commit 2025-06-13 14:04:40 +08:00
tsconfig.json Initial commit 2025-06-13 14:04:40 +08:00

has-proto Version Badge

github actions coverage License Downloads

npm badge

Does this environment have the ability to set the Prototype of an object on creation with __proto__?

Example

var hasProto = require('has-proto');
var assert = require('assert');

assert.equal(typeof hasProto(), 'boolean');

var hasProtoAccessor = require('has-proto/accessor')();
if (hasProtoAccessor) {
	assert.equal([].__proto__, Array.prototype);
} else {
	assert(!('__proto__' in Object.prototype));
}

var hasProtoMutator = require('has-proto/mutator');
var obj = {};
assert('toString' in obj);

obj.__proto__ = null;
if (hasProtoMutator) {
	assert(!('toString' in obj));
} else {
	assert('toString' in obj);
	assert.equal(obj.__proto__, null);
}

Tests

Simply clone the repo, npm install, and run npm test