setprototypeof
Advanced tools
| 'use strict' | ||
| /* eslint-env mocha */ | ||
| /* eslint no-proto: 0 */ | ||
| var assert = require('assert') | ||
| var setPrototypeOf = require('..') | ||
| describe('setProtoOf(obj, proto)', function () { | ||
| it('should merge objects', function () { | ||
| var obj = { a: 1, b: 2 } | ||
| var proto = { b: 3, c: 4 } | ||
| var mergeObj = setPrototypeOf(obj, proto) | ||
| if (Object.getPrototypeOf) { | ||
| assert.strictEqual(Object.getPrototypeOf(obj), proto) | ||
| } else if ({ __proto__: [] } instanceof Array) { | ||
| assert.strictEqual(obj.__proto__, proto) | ||
| } else { | ||
| assert.strictEqual(obj.a, 1) | ||
| assert.strictEqual(obj.b, 2) | ||
| assert.strictEqual(obj.c, 4) | ||
| } | ||
| assert.strictEqual(mergeObj, obj) | ||
| }) | ||
| }) |
+13
-11
@@ -1,15 +0,17 @@ | ||
| module.exports = Object.setPrototypeOf || ({__proto__:[]} instanceof Array ? setProtoOf : mixinProperties); | ||
| 'use strict' | ||
| /* eslint no-proto: 0 */ | ||
| module.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties) | ||
| function setProtoOf(obj, proto) { | ||
| obj.__proto__ = proto; | ||
| return obj; | ||
| function setProtoOf (obj, proto) { | ||
| obj.__proto__ = proto | ||
| return obj | ||
| } | ||
| function mixinProperties(obj, proto) { | ||
| for (var prop in proto) { | ||
| if (!obj.hasOwnProperty(prop)) { | ||
| obj[prop] = proto[prop]; | ||
| } | ||
| } | ||
| return obj; | ||
| function mixinProperties (obj, proto) { | ||
| for (var prop in proto) { | ||
| if (!obj.hasOwnProperty(prop)) { | ||
| obj[prop] = proto[prop] | ||
| } | ||
| } | ||
| return obj | ||
| } |
+14
-3
| { | ||
| "name": "setprototypeof", | ||
| "version": "1.1.0", | ||
| "version": "1.1.1", | ||
| "description": "A small polyfill for Object.setprototypeof", | ||
@@ -8,3 +8,10 @@ "main": "index.js", | ||
| "scripts": { | ||
| "test": "echo \"Error: no test specified\" && exit 1" | ||
| "test": "standard && mocha", | ||
| "testallversions": "npm run node010 && npm run node4 && npm run node6 && npm run node9 && npm run node11", | ||
| "testversion": "docker run -it --rm -v $(PWD):/usr/src/app -w /usr/src/app node:${NODE_VER} npm install mocha@${MOCHA_VER:-latest} && npm t", | ||
| "node010": "NODE_VER=0.10 MOCHA_VER=3 npm run testversion", | ||
| "node4": "NODE_VER=4 npm run testversion", | ||
| "node6": "NODE_VER=6 npm run testversion", | ||
| "node9": "NODE_VER=9 npm run testversion", | ||
| "node11": "NODE_VER=11 npm run testversion" | ||
| }, | ||
@@ -25,3 +32,7 @@ "repository": { | ||
| }, | ||
| "homepage": "https://github.com/wesleytodd/setprototypeof" | ||
| "homepage": "https://github.com/wesleytodd/setprototypeof", | ||
| "devDependencies": { | ||
| "mocha": "^5.2.0", | ||
| "standard": "^12.0.1" | ||
| } | ||
| } |
+14
-9
| # Polyfill for `Object.setPrototypeOf` | ||
| [](https://npmjs.org/package/setprototypeof) | ||
| [](https://npmjs.org/package/setprototypeof) | ||
| [](https://github.com/standard/standard) | ||
| A simple cross platform implementation to set the prototype of an instianted object. Supports all modern browsers and at least back to IE8. | ||
@@ -12,16 +16,17 @@ | ||
| ```javascript | ||
| var setPrototypeOf = require('setprototypeof'); | ||
| var setPrototypeOf = require('setprototypeof') | ||
| var obj = {}; | ||
| var obj = {} | ||
| setPrototypeOf(obj, { | ||
| foo: function() { | ||
| return 'bar'; | ||
| } | ||
| }); | ||
| obj.foo(); // bar | ||
| foo: function () { | ||
| return 'bar' | ||
| } | ||
| }) | ||
| obj.foo() // bar | ||
| ``` | ||
| TypeScript is also supported: | ||
| ```typescript | ||
| import setPrototypeOf = require('setprototypeof'); | ||
| ``` | ||
| import setPrototypeOf = require('setprototypeof') | ||
| ``` |
No tests
QualityPackage does not have any tests. This is a strong signal of a poorly maintained or low quality package.
Found 1 instance in 1 package
3913
73.07%6
20%39
160%0
-100%32
23.08%2
Infinity%