PATH:
usr
/
local
/
lib
/
node_modules
/
gulp
/
node_modules
/
object.assign
'use strict'; var implementation = require('./implementation'); var lacksProperEnumerationOrder = function () { if (!Object.assign) { return false; } // v8, specifically in node 4.x, has a bug with incorrect property enumeration order // note: this does not detect the bug unless there's 20 characters var str = 'abcdefghijklmnopqrst'; var letters = str.split(''); var map = {}; for (var i = 0; i < letters.length; ++i) { map[letters[i]] = letters[i]; } var obj = Object.assign({}, map); var actual = ''; for (var k in obj) { actual += k; } return str !== actual; }; var assignHasPendingExceptions = function () { if (!Object.assign || !Object.preventExtensions) { return false; } // Firefox 37 still has "pending exception" logic in its Object.assign implementation, // which is 72% slower than our shim, and Firefox 40's native implementation. var thrower = Object.preventExtensions({ 1: 2 }); try { Object.assign(thrower, 'xy'); } catch (e) { return thrower[1] === 'y'; } return false; }; module.exports = function getPolyfill() { if (!Object.assign) { return implementation; } if (lacksProperEnumerationOrder()) { return implementation; } if (assignHasPendingExceptions()) { return implementation; } return Object.assign; };
[-] auto.js
[edit]
[-] test.sh
[edit]
[+]
..
[-] package.json
[edit]
[-] hasSymbols.js
[edit]
[-] .eslintrc
[edit]
[-] polyfill.js
[edit]
[-] shim.js
[edit]
[-] .editorconfig
[edit]
[-] index.js
[edit]
[-] implementation.js
[edit]
[-] README.md
[edit]
[+]
dist
[+]
test
[-] LICENSE
[edit]
[-] CHANGELOG.md
[edit]